Posts

Showing posts from 2018

Membuat Project Gradle dengan IntelliJ IDEA

Image
Langkah-langkah membuat project gradle di IntelliJ IDEA * diperlukan adanya koneksi internet 1. Pilih menu Create New Project 2. Pilih Gradle , kemudian pilih library / frameworks . Misal pilih Java untuk membuat project Java 3. Isi GroupId , ArtifactId , dan Version . GroupId biasanya saya samakan dengan nama package ArtifactId akan menjadi nama project Version adalah versi projectnya 4. Selanjutnya pilih menggunakan default gradle wrapper atau menggunakan local gradle yang diinstall di laptop 5. Masukkan nama project dan lokasi menyimpan source code project 6. Tunggu sampai proses sync gradle selesai

Deploy CodeIgniter 3 di Docker

Image
Artikel ini diperbarui pada 27 September 2023. PERINGATAN!!! Tutorial ini sudah tidak bisa digunakan Ada pembaca yang melaporkan error  'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. Error tersebut karena image PHP 5.6 dibuat dari Debian Stretch (Debian versi lawas), yang repository softwarenya sudah tidak bisa diakses. Padahal ketika build image ada perintah apt-get install (perintah instalasi packages di Debian), akibatnya gagal melakukan install packages. - - - - - - Sebuah web app berbasis CodeIgniter 3 harus dideploy, masalahnya web app tersebut membutuhkan PHP versi 5.6 yang repot untuk saya install di Ubuntu 22.10. Oleh karena itu saya gunakan docker untuk deployment-nya. Source code web app terdapat pada folder myweb, berikut ini adalah hal-hal yang saya lakukan untuk melakukan deploy CI3 di Docker. Instalasi Docker Silakan buka website Docker untuk melihat cara instalasi, misalnya untuk instalasi Docker di Ubuntu ada

Tutorial Android Studio : Membuat Project

Image
Setelah Android Studio dan Android SDK terinstall, selanjutnya dapat digunakan untuk membuat project Android. Langkah-langkah membuat project Android menggunakan Android Studio adalah sebagai berikut : 1. Buka Android Studio, klik opsi Start a new Android Studio project 2. Masukkan beberapa informasi terkait dengan project Android yang dibuat. Informasi yang dibutuhkan meliputi Application name , Company domain , Project location , dan Package name . Application name : Beri nama aplikasi Android yang dibuat, misalnya Aplikasi Android Pertamaku . Company domain : Dalam tutorial ini misalnya saya menggunakan domain blog saya ardhi.web.id sebagai company domain project Android. Anda dapat pula menggunakan sembarang kata yang unik yang bukan merupakan domain situs web. Kata yang dimasukkan di Company name ini akan mengawali Package name. Project location : Pilih lokasi folder untuk menyimpan file project Android Studio. Package name : Android Studio akan meng

Tutorial Android Studio : Instalasi

Image
Minimum Hardware Requirement Sebelum melakukan instalasi Android Studio, terlebih dahulu periksa spesifikasi komputer / laptop yang akan digunakan untuk coding. 1. Prosesor Menurut pengalaman penulis, prosesor yang rilis dalam kurun waktu 3 hingga 4 tahun ke belakang tidak memiliki masalah dalam menjalankan Android Studio. Saya menggunakan laptop As*s seri X454Y dengan prosesor AMD A8-7410. 2. Memory Menurut dokumentasi di https://developer.android.com/studio/ , komputer dengan memory 4 GB sudah dapat menjalankan Android Studio. Namun saya sarankan untuk menggunakan RAM setidaknya 8 GB agar lebih nyaman karena Android Studio + emulator Android membutuhkan sumber daya memory yang besar. 2 GB bisa habis oleh Android Studio dan emulator Android, pada kondisi tertentu pemakaian RAM bahkan bisa lebih besar. 3. Storage Android Studio setidaknya membutuhkan ruang harddisk sekitar 500 MB untuk IDE + sekitar 1,5 GB untuk SDK dan emulator. Semakin banyak SDK dan emulator yang diinstall

Mengatasi Masalah Tidak Bisa Login ke Akun Google pada Signed-APK Android

Image
Seorang mahasiswa membuat aplikasi Android yang memiliki fitur login ke akun Google untuk berbagi agenda kegiatan memanfaatkan API Google Calendar. Semua berjalan baik, namun ketika aplikasi dibuild ke format signed-apk terjadi masalah yaitu tidak bisa membuat event. Masalah tersebut ternyata disebabkan konfigurasi OAuth client ID di developer console, lebih jelasnya berikut ini saya bagikan langkah-langkah membuat oAuth credential dan membuat signed-apk. Generate Signed APK (di komputer) 1. Di Android Studio klik menu Build --> Generate Signed APK 2. Pilih Choose existing... jika sudah pernah membuat Key store sebelumnya, atau pilih Create new... untuk membuat Key store baru. Misalnya di sini saya membuat Key store baru, isikan data yang dibutuhkan. Sebagai catatan, password di bagian Key store dengan password di isian Key sebaiknya dibedakan. 3. Selanjutnya pastikan Key store path sudah sesuai, kemudian masukkan Key store password sesuai yang dibuat pada langkah se

Mengekstrak Halaman PDF Menggunakan Linux

Siang tadi saya diminta oleh seorang rekan kerja untuk mengirimkan halaman dari sebuah file lama. Yang diminta adalah satu halaman dari sebuah file pdf, untuk itu saya rasa akan lebih efisien jika saya tidak mengirimkan satu file utuh namun hanya satu halaman yang diminta tadi. Ternyata hal ini dapat saya lakukan dengan mudah menggunakan linux. Saya menggunakan Ubuntu dan tool bernama qpdf, apabila anda belum memiliki qpdf silakan install menggunakan perintah sudo apt install qpdf Kemudian untuk mengambil halaman yang diperlukan, eksekusi perintah qpdf --pages path_file_input nomor_halaman -- path_file_input path_file_output Contoh perintah yang saya eksekusi qpdf --pages /tmp/input.pdf 2 -- /tmp/input.pdf /tmp/output.pdf Perintah di atas akan mengekstrak halaman nomor 2 dari file /tmp/input.pdf dan hasilnya disimpan ke file /tmp/output.pdf Apabila anda ingin mengambil lebih dari satu halaman, misalnya halaman 2 hingga halaman 5, modifikasi perintah menjadi qpdf --pages /tmp

Menggunakan Kernel Linux Terbaru di Ubuntu 20.04

Image
diperbarui tanggal 30 Desember 2020 Kernel adalah inti dari sistem operasi Linux yang menjadi jembatan antara hardware dengan software pendukung sistem operasi lainnya. Pada kernel ini ditanamkan driver yang membuat hardware bisa digunakan. Kernel terus dikembangkan, anda dapat mengikuti perkembangan kernel linux di https://www.kernel.org/ , pada saat artikel ini diperbarui, kernel versi stabil yang terbaru adalah versi 5.10.3. Distro Ubuntu 20.04 menggunakan kernel versi yang lebih lama yaitu 5.4.x. Sebenarnya kernel ini dapat diganti, diupdate dengan versi yang lebih baru untuk meningkatkan kemampuan sistem operasi, salah satunya adalah dukungan terhadap hardware baru. Ketika user memperbarui versi Ubuntu, user akan mendapatkan kernel baru. Namun user juga dapat mengganti kernel tanpa memperbarui versi Ubuntunya. Cara mengganti kernel dapat dilakukan dengan melakukan compile kernel dari source codenya, namun cara ini rumit dan memakan waktu. Cara lain untuk mengupgrade kernel ad

Trash-cli sebagai Alternatif Perintah rm di Linux

Linux memiliki terminal / command line yang dapat digunakan sebagai alternatif dari GUI. User dapat menggunakan Linux tanpa adanya GUI untuk melakukan berbagai hal misalnya operasi terhadap file (membuat file, mengcopy file, dan menghapus file). Menghapus file melalui command line Linux dapat dilakukan menggunakan perintah rm . Berbeda dengan Wind*ws, ketika file dihapus biasanya di Wind*ws file akan masuk ke Recycler Bin, namun ketika menggunakan perintah rm di command line Linux maka file yang dihapus akan dihapus permanen. Hal ini mengharuskan user berhati-hati karena file yang telanjur dihapus melalui perintah rm akan sangat sulit dikembalikan. Untuk mencegah user tidak sengaja menghapus file menggunakan rm, sebenarnya dapat digunakan perintah rm -i yang akan menampilkan konfirmasi kepada user sebelum penghapusan file dilakukan. Ternyata ada alternatif lain untuk menghapus file melalui command line yaitu menggunakan perintah trash . Bedanya dengan rm, file yang dihapus meng

Yang Harus Dipersiapkan untuk Menekuni Profesi Sebagai Programmer

"Mau tanya mas, kalo fresh graduate, dan ingin jadi programmer begitu, ada tips khusus tidak mas? Soalnya saya bingung tentang apa yang harus saya pelajari dan kompetensi yang dibutuhkan" Pertanyaan tersebut masuk ke inbox Facebook saya dari seorang mahasiswa tingkat akhir. Saya akan membagikan jawaban dari pertanyaan tersebut berdasarkan pengalaman yang saya dapatkan selama menekuni profesi yang akrab dengan ketik-mengetik dan kode-mengkode tersebut. 1. Kuasai minimal satu bahasa pemrograman Bahasa pemrograman wajib dikuasai oleh seorang programmer (software developer) karena hal tersebut adalah tool yang digunakan untuk membangun perangkat lunak. Minimal satu bahasa pemrograman harus dikuasai oleh seseorang yang ingin menjadi programmer profesional. Ada banyak sekali bahasa pemrograman yang bisa digunakan, banyak pilihan yang tersedia. Manakah bahasa pemrograman yang harus dikuasai? Jawaban dari pertanyaan tersebut adalah, pelajarilah bahasa pemrograman dengan m

Bus Suroboyoan sebagai Duta Dangdut Koplo

"Dik mbiyen kowe janji karo aku Nglakoni tresno suci kanthi ikhlas tekan mati Ning nyatane ngapusi, cidro ati iki Netes eluhku mili deres neng pipi" Lirik lagu Kelingan Mantan dari NDX aka Familia mengalun kencang dari sound system bus Sugeng Rahayu yang saya tumpangi dalam perjalanan menuju Ngawi. Alunan musik dangdut koplo dan dangdut ajep-ajep bisa dikatakan adalah salah satu fasilitas yang default yang dinikmati penumpang setia bus-bus trayek Surabaya-Jogja. Bus-bus yang masuk trayek ini antara lain Sugeng Rahayu, Mira, dan Eka. Dengan harga tiket yang cukup terjangkau, fasilitas AC, kecepatan bus yang dijamin ngebut abis (minimal bikin penumpang beristigfar selama perjalanan), dan masih ditambah full music dengan layar monitor video, sungguh sebuah kombinasi yang sangat memanjakan penumpangnya. Maka tak heran kalau naik bus ini selalu padat penumpang, bahkan bisa saya harus terpaksa berdiri selama perjalanan Ngawi - Solo. Alunan dangdut masih mengalir, kali in

Memperbaiki Error UNREGISTERED_ON_API_CONSOLE Google Calendar API

Image
Sorang mahasiswa mengkonsultasikan masalah ketika membuat aplikasi Android yang terhubung dengan Google Calendar. Masalah yang ditemui adalah tidak bisa membuat event, output di LogCat menunjukkan error UNREGISTERED_ON_API_CONSOLE . Ternyata masalahnya adalah pada pembuatan OAuth Client Id. Setiap aplikasi yang membutuhkan akses autentikasi ke API Google harus melewati proses login OAuth. Pembuatan OAuth client id melalui developer console secara singkat adalah sebagai berikut, di menu Credentials klik Create credentials --> OAuth client ID Pilih Android sebagai Application type nya, kemudian masukkan nilai SHA-1 dan nama package. Package name harus sama persis dengan package name yang digunakan di project Android Studio yang dibuat, kalau tidak sama nanti akan mengalami error UNREGISTERED_ON_API_CONSOLE ketika membuat event.

Pengumuman SBMPTN 2018

Image
Hasil selesksi SBMPTN 2018 telah diumumkan pada tanggal 3 Juli 2018, selamat kepada peserta yang telah diterima di program studi pilihannya. Pengumuman SBMPTN 2018 dapat dilihat di tautan berikut ini detik.com http://pengumuman.sbmptn.ac.id/ http://sbmptn.ui.ac.id http://sbmptn.undip.ac.id http://sbmptn.ugm.ac.id http://sbmptn.unair.ac.id http://sbmptn.unsri.ac.id http://sbmptn.untan.ac.id http://sbmptn.itb.ac.id http://sbmptn.its.ac.id http://sbmptn.ipb.ac.id http://sbmptn.unand.ac.id http://sbmptn.unhas.ac.id http://sbmptn.unsyiah.ac.id

Rangkuman Hasil Piala Dunia 2018 (18 Juni 2018 - 23 Juni 2018)

18 Juni 2018 Grup E Brasil (1) vs (1) Swiss pencetak gol : 10' Philippe Coutinho 50' Steven Zuber Grup F Swedia (1) vs (0) Korea Selatan pencetak gol : 65' Andreas Granqvist Grup G Belgia (3) vs (0) Panama pencetak gol : 47' Dries Mertens 69', 75' Romelu Lukaku   19 Juni 2018 Grup G Tunisia (1) vs (2) Inggris pencetak gol : 35' Ferjani Sassi 11', 90' Harry Kane Grup H Kolombia (1) vs (2) Jepang pencetak gol : 39' Juan Quintero 6' Shinji Kagawa 73' Yuya Osako Grup H Polandia (1) vs (2) Senegal pencetak gol : 86' Grzegorz Krychowiak 37' Thiago Cionek 60' Mbaye Niang 20 Juni 2018 Grup A Rusia (3) vs (1) Mesir pencetak gol : 47' (o.g.)  Ahmed Fathi 59' Denis Cheryshev 62' Artem Dzyuba 73' Mohamed Salah Uruguay (1) vs (0) Arab Saudi pencetak gol : 23' Luis Suarez Grup B Portugal (1) vs (0) Maroko pencetak gol : 4' Cristiano Ronaldo 21 Juni 2

Rangkuman Hasil Piala Dunia 2018 (14 Juni 2018 - 17 Juni 2018)

14 Juni 2018 Grup A Rusia (5) vs (0) Arab Saudi pencetak gol : 12' Yuri Gazinskiy 43', 88' Denis Cheryshev 71' Artem Dzyuba 90' Aleksandr Golovin 15 Juni 2018 Grup A Mesir (0) vs (1) Uruguay pencetak gol : 89' Jose Gimenez Grup B Maroko (0) vs (1) Iran pencetak gol : 90' (o.g.) Aziz Bouhaddouz 16 Juni 2018 Grup B Portugal (3) vs (3) Spanyol pencetak gol : 4', 44', 88' Cristiano Ronaldo --- 24', 55' Diego Costa 58' Nacho Fernandez Grup C Prancis (2) vs (1) Australia pencetak gol : 58' Antoine Griezmann 80' Paul Pogba --- 62' Mile Jedinak Peru (0) vs (1) Denmark pencetak gol : 59' Yussuf Poulsen Grup D Argentina (1) vs (1) Islandia pencetak gol : 19' Sergio Aguero --- 23' Alfred Finnbogason Kroasia (2) vs (0) Nigeria pencetak gol : 32' (o.g.) Oghenekaro Etebo 71' Luka Modric Grup E

React Native Fix Unable to start server

Ketika mencoba React Native saya mendapati error Unable to start server {12:46}~/Projects/js/HelloWorldRN ➭ npm start > HelloWorldRN@0.1.0 start /home/linuxluv/Projects/js/HelloWorldRN > react-native-scripts start 12:56:52: Unable to start server See https://git.io/v5vcn for more information, either install watchman or run the following snippet: sudo sysctl -w fs.inotify.max_user_instances=1024 sudo sysctl -w fs.inotify.max_user_watches=12288 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! HelloWorldRN@0.1.0 start: `react-native-scripts start` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the HelloWorldRN@0.1.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/linuxluv/.npm/_logs/2018-04-09T05_56_52_919Z-debug.log Untukmengatasi masalah tersebut, eksekusi perintah berikut sudo sysctl -w fs.inotify.max_user_instances=10

Membuat Autentikasi User di Node.js Menggunakan Passport

Image
diupdate pada 29 Desember 2020 Postingan kali ini akan dibahas turotial membuat autentikasi user untuk proses login di web app yang dibuat menggunakan nodejs , express , dan passport . Ketika user belum login akan diarahkan ke halaman /login untuk memasukkan username dan password yang terdapat di database. Setelah berhasil login, user akan diarahkan ke halaman / . Untuk login digunakan database MySQL. Data user untuk login ada di tabel users, username mengambil kolom first_name dan password menggunakan data di kolom password . File database langkap dapat diunduh di sini . Install node module yang dibutuhkan npm install express express-session pug mysql passport passport-local --save Buat halaman untuk login, memuat sebuah form dengan method POST dan action, misalnya ke /login . Pada project ini digunakan templating engine pug . Source code halaman login adalah sebagai berikut (file views/signin.pug ) extends layout block content main.container.mt-5 h1= 

Tipu-tipu Layanan Premium *123*552 dan *123*553

Image
Akhir-akhir ini nomor Indos*t saya sering menerima SMS dari nomor-nomor seluler yang tidak diketahui identitasnya. Semua SMS twrsebut memiliki pola yang sama, berpura-pura memberitahukan sesuatu yang penting. Kadang bertindak seolah-olah dari operator seluler, yang agak keterlaluan adalah bertindak seolah-olah dari pemerintah. Seperti misalnya SMS berikut Saya diimingi-imingi berkesempatan memenangkan hadian jutaan rupiah karena masih memiliki poin yang belum ditukar. Entah poin apa itu tidak jelas. Saya diminta memasukkan kode seperti yang tertulis di SMS tersebut. Ternyata setelah saya cek melalui kode *123*553# saya ketahui bahwa itu adalah layanan SMS premium berlangganan yang tentu saja akan memakan pulsa jika saya terdaftar ke dalamnya. Contoh lain yang lebih wow. Kali ini saya mendapat SMS dari nomor yang berbeda, namun godaannya lebih besar. SMS ini seolah-olah berasal dari pemerintah. Saya diiming-imingi mudik gratis Kemenhub pada Lebaran 2018 ini, tinggal memasu

Mencoba Mesin Penjual Minuman di Stasiun Lempuyangan

Image
Pada perjalanan saya yang kesekian kalinya ke Solo dari Jogja, seperti biasanya saya menggunakan moda transportasi kereta api yaitu KA Prameks yang sudah terkenal sebagai andalan jalur Solo, Jogja, hingga Kutoarjo. Pagi ini, setelah membeli tiket Prameks tujuan Solo yang akan berangkan pukul 05.36 WIB saya bergegas menuju peron. Mata saya tertuju pada vending machine (mesin penjual minuman) yang terletak di sebelah mesin penjual tiket kereta. Ada satu lembar uang dua ribuan, kembalian tiket Prameks yang saya pesan. Saya pikir boleh nih mencoba beli minuman dari vending machine, untuk mendapatkan pengalaman. Saya mendekati mesin penjual minuman tersebut. Terdapat beberapa jenis minuman yang tersedia mulai dari air mineral hinggal minuman teh dalam kemasan kaleng. Harga minuman yang dijual jauh lebih mahal daripada harga yang biasa kuta temui di warung atau di minimarket. Seperti misalnya air mineral dijual seharga lima ribu rupiah dan minuman teh dalam kemasan kaleng dijual denga

Router vs Switch vs Hub : Apa sih perbedaannya?

Ketika dihadapkan dengan perangkat networking, sering kali saya bingung membedakannya. Misalnya antara router, siwtch, dan hub yang nampak hampir sama. Ternyata ada perbedaan di antara perangkat-perangkat tersebut. Router Seperti namanya router bertugas untuk mengirimkan packet data ke network lain hingga packet tersebut sampai di tujuan. Router menghubungkan beberapa network yang berbeda misalnya LAN dengan WAN. Router terletak di gateway. Di dalam router isinya tidak hanya data namun juga alamat tujuan ke mana data dikirim. Switch Switch hampir sama dengan hub di mana keduanya bertugas sebagai pusat network dan mengatur sebuah tipe data yang disebut sebagai frame, frame membawa data yang dikirim di network. Perbedaan keduanya adalah pada cara menangani frame. Switch menyimpan sebuah record yang berisi MAC address dari semua perangkat yang terhubung ke switch. Ketika frame diterima oleh switch, frame akan dikirimkan menuju alamat tujuan. Switch juga menjamin bahwa bandwidth