• Kategori Tulisan

  • Masukkan alamat email Anda untuk berlangganan blog Ri32 dan menerima pemberitahuan posting baru melalui email anda. Jika sudah bosan silahkan unsubscript.
    Terima kasih... : )

    Join 919 other subscribers

Instalasi Docker Desktop di Windows


Latar Belakang

Saat ini lagi nge-trend penggunaan docker termasuk di tempat saya bekerja saat ini. saya pun coba untuk mempelajari konsep-konsep dasar docker dan perintah-perintahnya.

Dilanjutkan dengan belajar membuat image dan mengupload image ke registry. Untuk tutorial lengkapnya saya belajar dari youtube programmer zaman now

Konsep Dasar Docker

  • Docker adalah container manager untuk membuat package software development ke production
  • Docker bukan virtual machine, container tidak memiliki sistem operasi tersendiri
  • Docker memiliki client/terminal & docker server/host/daemon
  • Docker server berfungsi untuk management : container, images, dan koneksi registry
  • Docker client untuk memberikan perintah ke docker server
  • Docker saat ini support dengan linux OS di production
  • Docker di windows atau di mac, sebenarnya running linux based

Istilah-istilah Docker

  1. Container Registry adalah tempat yang digunakan untuk menyimpan image docker. contohnya : Docker hub, Google Container, AWS Elastic Container Registry
  2. Images adalah hasil distribution file/package/bundel, yang akan di deploy ke Container Registry. images bukan installer tapi aplikasi yang sudah jadi. dalam “Docker Hub” terdapat image yang siap dipakai, tidak perlu membuat ulang image
  3. Container adalah hasil instansiasi dari image yang di running, dan dapat running beberapa container dari image yang sama

Perintah Dasar Docker

Sebelumnya pastikan kita sudah menginstal software docker desktop dan membuat account di docker hub. Setelah semua tahapan instalasi selesai dilakukan, silahkan bukan terminal atau CMD.

Sekenarionya adalah kita akan menginstall sebuah image database “mongodb” yang diambil dari docker hub dan menjalan container nya di local kita.

docker pull mongo:4.1
docker images
docker rm image mongo:4.1

Perintah diatas untuk mendownload image mongodb, mengecek image di local kita, dan menghapus image yang ada di local kita.

docker container ls --all
docker container create --name mongoserver -p 8080:27017 mongo:4.1
docker container start mongoserver
docker container stop mongoserver
docker container rm mongoserver

Perintah diatas untuk mengecek container yang ada di local kita, membuat container baru dari image yang sudah didownload, menjalankan, menghentikan, atau menghapus container yang sudah dibuat.

Membuat Image Sendiri

Selanjutnya kita akan membuat image sendiri dan menguploadnya ke account docker hub. Sekenarionya kita akan menginstall image bahasa golang dan menjalankan contoh script golang di local kita. Langkah-langkahnya adalah sebagai berikut :

  • Membuat sample file golang
package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello World!")
	})

	http.ListenAndServe(":8080", nil)
}
  • Membuat dockerfile untuk proses membuat image baru, dengan menyertakan image pendukung yang sudah tersedia di container registry (docker hub) yaitu bahasa golang
FROM golang:1.11.4

COPY main.go /app/main.go

CMD ["go", "run", "/app/main.go"]
  • Setelah 2 file ini sudah tersedia di satu folder yang sama, maka masuk ke terminal lokasi tempat 2 file ini berada, kemudian jalankan perintah dibawah ini.
docker build --tag app-golang:1.0 .
docker images

Perintah tag untuk memberi nama dan versi image. Sedangkan tanda titik (.) di belakang versi image menandakan alamat folder yang sekarang kita berada (current)

  • Setelah pembuatan image selesai di local, maka cek image dengan mengetikan perintah docker images
  • Setelah itu kita akan membuat container dari image yang sudah terbuat tadi dengan mengetikan perintah dibawah ini :
docker container create --name app1 -p 8080:8080 app-golang:1.0
docker container start app1
docker container ls -all
  • Jika telah berhasil menjalankan containernya, maka silahkan testing di web browser dengan mengetikan localhost:8080 maka akan muncul tulisan Hello World!

Mengupload Image ke Container Registry

Yang terakhir dalam tutorial dasar docker ini adalah kita akan mengupload image ke container registry dalam hal ini kita menggunakan docker hub sebagai container registry. Langkah-langkahnya adalah sebagai berikut :

  • Login ke website docker hub
  • Membuat repository di docker hub misalnya nama reponya adalah app-golang
  • Setelah itu, ketik perintah dibawah ini :
docker tag app-golang:1.0 kangagus/app-golang:1.0
docker images
docker login
docker push kangagus/app-golang:1.0

Perintah diatas untuk membuat tag atau nama image baru dari nama image yang ada di local kita, di dalam tag baru tersebut disertakan nama account yang terdaftar di docker hub misalnya account saya adalah “kangagus” sehingga saya akan membuat nama image baru kangagus/app-golang:1.0 dari image local saya sebelumnya yaitu app-golang:1.0

Setelah itu cek image yang telah dibuat dengan mengetikan docker images, login ke docker hub dengan perintah docker login. setelah itu upload image yang ada di local ke server docker hub dengan perintah docker push disertai nama image yang baru.

Penutup

Cara belajar yang kita gunakan sekarang adalah dengan melihat panduan dari tutorial youtube yang saya lampirkan diatas. Sehingga artikel ini hanyalah sebuah catatan kecil dari video yang sudah teman-teman simak dan ikuti langkah-langkahnya. Jika teman-teman ingin mengulang tutorial tersebut bisa menggunakan artikel ini sebagai best practise.

Sekian artikel dari saya, semoga bermanfaat untuk teman-teman dan Anda semua…aamiin

Bogor, 25 November 2021

KangAgus

Cara menggunakan Tools WPScan


Latar Belakang

WPScan merupakan tools vulnerability scanner untuk CMS WordPress yang ditulis dengan menggunakan bahasa pemrograman ruby, WPScan mampu mendeteksi kerentanan umum serta daftar semua plugin dan themes yang digunakan oleh sebuah website yang menggunakan CMS WordPress.

Pada artikel ini, saya menggunakan fitur bruteforce yang ada di tools WPScan dan mempelajari cara kerja brutefoce dalam mencocokan antara password sample dengan password  sesungguhnya yang terdapat pada table user login.

Instalasi WPScan

Tahap Persiapan :

  • sudo apt update
  • sudo apt upgrade
  • sudo apt install curl git libcurl4-openssl-dev make zlib1g-dev gawk g++ gcc libreadline6-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config ruby ruby-bundler ruby-dev -y

Install Melalui Gem :

  • gem install wpscan
  • gem uninstall wpscan

Install Melalui Git :

Wordlist

Setelah selesai instalasi, kita download file .txt yang bersisi password sample (wordlist) yang digunakan dalam proses bruteforce. Download file wordlist dengan nama rockyou.txt (Ukuran File : 140MB Jumlah Data : Sekitar 11Juta sample password). Namun jika saya langsung menggunakan data ini pasti akan lama proses pencocokan passwordnya.

Sehingga untuk percobaan ini, saya hanya menggunakan wordlist dummy yang saya buat dengan nama simplewordlist.txt (ukuran file : 126 byte Jumlah Data : 15 sample password) dimana didalamnya saya sisipkan password yang sesungguhnya dari login admin wordpress.

Testing WPScan

Sebelumnya saya install wordpress di localhost saya. Sehingga saya tidak menggunakan website orang lain.

Ketik perintah pertama untuk mengetahui username loginnya. Perintah kedua untuk membandingkan password yang ada di table user login dengan sample password yang ada di file wordlist.

  1. wpscan –url http://localhost/wordpress –enumerate u
  2. wpscan –url http://localhost/wordpress -P ‘/home/kangagus/Downloads/simplewordlist.txt’ -U Admin

Serangan Bruteforce

Brute Force adalah serangan yang dilakukan untuk membobol password dengan cara mencoba setiap password sampai akhirnya menemukan password yang tepat. Peretas akan menggunakan algoritma yang menggabungkan huruf, angka dan simbol untuk menghasilkan password untuk serangan tersebut. Seperti mencoba menggunakan kata “password” yang ditulis dan dikombinasikan dengan simbol sehingga menjadi “p@$$word”.

Pada umumnya para peretas memiliki wordlist dalam jumlah yang banyak untuk menebak kemungkinan password. Serangan ini dapat memakan waktu beberapa menit, beberapa bulan, atau bahkan beberapa tahun tergantung dari seberapa kuat password yang digunakan oleh target sasaran.

Oleh karena itu, biasanya hacker melakukan serangan ini dengan bantuan sebuah tools pintar untuk mengatur wordlist dan secara otomatis menebak kata sandi pengguna.

Sebaiknya saat membuat sebuah password, minimal menggunakan 8 digit dengan kombinasi : huruf besar dan kecil, angka, karakter khusus. Agar memastikan bahwa kombinasi password kita buat tidak ada yang cocok dengan contoh password contoh yang terdapat di file wordlist.

Tampilan Output

Login dengan username dan password sebenarnya

Contoh Password yang ada di wordlist

Untuk Menampilkan Username

Untuk mencocokan password sebenarnya dengan password contoh

Sekian artikel dari saya, semoga bermanfaat untuk teman-teman dan Anda semua…aamiin

Bogor, 01-09-2020

KangAgus

Manajemen Project dengan Bitbucket dan TortoiseGit


ri32-git

Latar Belakang

Sebelumnya saya menggunakan software SVNServer untuk mengelola sourcecode project via jaringan LAN. kemudian saya juga pernah menggunakan Assembla agar sourcecodenya disimpan secara online. Namun kendalanya assembla sekarang berbayar.

Terakhir saya mendapat saran dari teman untuk menggunakan Bitbucket karena cocok untuk repository yang private. setelah saya registrasi dan coba interfacenya cukup userfriendly. dan ada fitur group untuk mengumpulkan repo dengan tim programmer.

Solusi Cloning Desktop

Tahap selanjutnya adalah melakukan cloning repo project tersebut ke masing-masing komputer programmer. Saya menggunakan 2 software dibawah ini :

  1. http://git-scm.com/downloads
  2. https://code.google.com/tortoisegit/Download

Di komputer saya terinstall 2 aplikasi client yaitu tortoiseSVN dan tortoiseGit. Yang membedakan adalah pada tortoiseGit ada tombol Push untuk mengupload file yang sudah di commit dan tombol Pull untuk mendownload file dari server bitbucket ke komputer local.

tortoise-ri32

tortoiseGit-ri32

tortoiseButton-ri32

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Bogor, 17-06-2019

KangAgus

Algoritma Random Soal dan Pilihan Jawaban Pada Ujian Online


Latar Belakang

Pada sebuah aplikasi ujian online biasanya terdapat fitur random untuk mengacak soal yang tampil dan pilihan jawaban yang tampil. Alasannya untuk mencegah satu user dengan user yang lain saling bertukar informasi jawaban.

Fitur random tersebut dipakai di dua tipe tampilan soal yaitu tampil semua soal dan tampil soal satuan. Algoritma ini saya buat untuk aplikasi ujian online, Algoritma yang saya buat mungkin belum sempurna atau ada algoritma yang lebih baik.

Random Soal Ujian

  1. Ambil semua data soal pada satu kegiatan ujian
  2. Data tersebut ditampung kedalam sebuah variable sehingga membentuk data string
  3. Konversi data string tersebut kedalam bentuk data array
  4. Gunakan fungsi shuffle untuk mengacak posisi data yang ada di dalam variable array
  5. Setelah data ID soal teracak, maka lakukan looping atau perulangan
  6. Saat perulangan, lakukan proses insert data ID_soal kedalam table_sementara dengan parameter ID_user dan ID_ujian
  7. Sistem menampilkan soal ujian ke user dari table_sementara
  8. Jika ujian selesai, maka jawaban user disimpan pada table_jawaban
  9. Sedangkan data pada table_sementara dihapus berdasarkan parameter diatas

Random Pilihan Jawaban

  1. Pada table_soal terdapat field pertanyaan, pilihan jawaban, dan jawaban yang benar
  2. Ambil satu data soal pada satu kegiatan ujian. Pada satu data soal terdapat pilihan A,B,C,D, dan E
  3. Cek jika pilihan jawaban tidak kosong, maka beri nilai 1, jika kosong beri nilai 0
  4. Akumulasikan nilai tersebut dan simpan kedalam variable jumlah_pilihan 
  5. Definisikan nilai array berdasarkan variable jumlah. Misalnya jumlah pilihan 3 maka nilai array pada variabel abjad_isi adalah A,B,C
  6. Gunakan fungsi shuffle untuk mengacak posisi pilihan jawaban. Misalnya dari A,B,C menjadi C,B,A
  7. Lakukan looping atau perulangan sebanyak nilai variable jumlah pilihan. Saat perulangan lakukan 2 proses
  8. Proses pertama menampilkan abjad_cangkang berdasarkan looping. Misalnya abjad_cangkang A untuk looping pertama, B untuk looping kedua
  9. Proses kedua menampilkan abjad_isi yang sudah teracak. Misalnya pada looping pertama abjad_cangkang adalah A, namun abjad_isi adalah C
  10. Menampilkan isi variable abjad_cangkang, abjad_isi, dan variable pilihan_jawaban pada template soal ujian
  11. Pengecekan jawaban berdasarkan parameter ID_user, ID_soal, dan nilai pada variable abjad_isi

Per tanggal 20 Mei 2019 : Kami telah melakukan update algoritma dari yang menggunakan table sekarang kami ganti menggunakan session dan cookies untuk menyimpan jawaban user sementara. Agar tidak memberatkan kinerja server.

Sekian artikel dari saya, semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Bogor, 12-03-2019

KangAgus

Mengubah Environment Coding Windows Menjadi Linux Mint


Latar Belakang

Sejak kuliah sampai saat ini saya telah mencoba beberapa distro linux seperti Suse, Ubuntu, dan terakhir Linux Mint. Pada distro Suse dan Ubuntu sifat penggunaanya lebih ke eksperimental atau coba-coba. Namun di dunia kerja saya diperkenalkan dengan distro Linux Mint sampai memutuskan untuk mengubah lingkungan kerja dari windows ke linux.

Untuk pekerjaan setiap hari 90% menggunakan linux mint, walaupun 10% ada keperluan untuk me-remote sebuah PC yang dijadikan server backup database sekaligus sebagai tempat di-instalnya SVNserver untuk sourcecode.

Aplikasi yang Diperlukan

  • LAMPP menggantikan XAMPP
  • Rabbit SVN menggantikan Tortoise SVN
  • MySQL-Workbench menggantikan SQLyog
  • Remmina menggantikan RemoteDesktop Windows
  • Pinta menggantikan Paint Windows
  • TextEditor menggantikan Notepad++
  • Install Team Viewer
  • Install Google Chrome
  • Install Android Studio

Instalasi Software

#install LAMPP :
sudo chmod +x xampp-linux-x64-5.6.8-0-installer.run
sudo ./xampp-linux-x64-5.6.8-0-installer.run
sudo /opt/lampp/lampp start
sudo /opt/lampp/manager-linux-x64.run

#install Rabit SVN :
sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-nightly
sudo apt-get update; sudo apt-get install nemo-rabbitvcs

Untuk instalasi teamviewer, chrome, dropbox, googledrive, androidstudio silahkan baca artikel berikut ini.

Sisanya cari di software Manager

Shortcut keyboard Linux

  • WorkspaceShow Alt+F1
  • RunCommand Alt+F2
  • CloseWindow Alt+F4
  • MoveWindow Alt+F7
  • Minimize Alt+F10
  • WindowMenu Alt+Space
  • LogoutSystem Ctrl+Alt+Del
  • WorkspaceSelect Ctrl+Alt+UP
  • Lockscreen Ctrl+Alt+L
  • ShowTerminal Ctrl+Alt+T
  • ShowDesktop Super(tanda window)+D

Perintah Dasar Linux

#untuk membuat shortcut folder :
sudo ln -s /opt/lampp/htdocs /home/kangagus/www

#untuk memberi akses user ke folder :
sudo chown -R $USER:$USER /opt/lampp/htdocs/

#untuk menjalankan lampp :
sudo /opt/lampp/lampp start

#untuk mengelola aplikasi :
apt-get update
apt-get upgrade
apt-get autoremove
apt-get autoclean

#untuk manajemen dokumen :
ls -l/-la
cd ~/..
cp
rm
mv
mkdir
rmdir
clear

#untuk create file :
cat > contoh.txt
ls -l contoh.txt
cat contoh.txt

#untuk extract file :
tar xvzf [file.tar.gz]
tar -tvf [file.tar.gz]
tar -xvzf [file.tar.gz] [test.doc]
gunzip [file.gz]
zipinfo [file.zip]
unzip [file.zip]

#untuk system :
shutdown -r now
shutdown -h now
hostname
whoami
date
time
chmod
chown

Sekian artikel dari saya, semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Bogor, 27-12-2018

KangAgus

Fitur SQLyog untuk Sinkronisasi Data


Latar Belakang

Pada tulisan saya sebelumnya dijelaskan tentang 2 metode untuk backup database yaitu dengan metode sqldump, replikasi data, ataupun dengan melakukan kombinasi 2 metode tersebut.

Saya sendiri melakukan 2 metode dengan jadwal waktu yang berbeda misalnya selang 1 jam diluar jam kerja. Setelah selesai melakukan backup SQLdump, dilanjutkan dengan proses replikasi data ke sebuah database “backup” di PC yang dijadikan server sandbox.

Langkah-langkah

  1. Buka SQLyog dan lakukan koneksi ke database yang dituju
  2. Pilih menu Powertools=>Database Synchronization Wizard
  3. Pilih database yang dijadikan Source (production) dan Target (sandbox)
  4. Klik tombol Next untuk seting selanjutnya
  5. Pada Advance Options pilih One-way synchronization
  6. Pilih Sync all tables in the database
  7. Pada Synchronization Type pilih Direct Sync
  8. Pada Error Handling tidak perlu memilih apapun
  9. Pada bagian run this task pilih save & schedule dan tentukan lokasi file log
  10. Jika memilih run immediately saat Next maka akan menjalankan proses
  11. Setelah selesai, lanjutkan dengan membuat task schedule
  12. Di task scheduler tentukan kapan waktu menjalankan proses sinkronisasi data

Pilih menu sinkronisasi data

Lakukan koneksi dan pilih database

Menjalankan task dan membuat jadwal

Proses sinkronisai data

Tahap pembuatan jadwal sinkronisasi

Sekian artikel dari saya, semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Bogor, 27-12-2018

KangAgus

Fitur SQLyog untuk Sinkronisasi Skema


Latar Belakang

Misalnya saya memiliki database di 2 server yaitu production dan sandbox. di sandbox saya memiliki database “backup” yang digunakan untuk replikasi data. sedangkan untuk keperluan development ada database tersendiri di sandbox.

Ada kalanya banyak perubahan di skema atau struktur table di database. penambahan atau pengurangan table dan field misalnya. ataupun perubahan tipe data di field.

Oleh karena itu perlu dilakukan sinkronisasi skema table di 2 database (production & sandbox) agar skema databasenya sama dan tidak terjadi error saat dilakukan proses sinkronisasi data.

Langkah-langkah

  1. Buka SQLyog dan lakukan koneksi ke database yang dituju
  2. Pilih menu Powertools=>Schema Synchronization Tool
  3. Tentukan database yang dijadikan Source (production) dan database yang dijadikan Target (sandbox).
  4. Klik tombol Compare, maka tampil table yang tidak sama skema/strukturnya
  5. Dibawahnya adalah query yang akan dijalankan jika akan lakukan sinkronisasi skema
  6. Klik tombol Execute All, sampai query selesai dikalankan
  7. Untuk mengecek kembali klik tombol Compare
  8. Jika proses sinkronisasi skema berhasil, maka tidak akan memunculkan list table

Menu Sinkronisasi Skema

Table yang akan di sinkronisasi

Query sinkronisasi yang berhasil di jalankan

Tidak ada table yang perlu di sinkronisasi

Sekian artikel dari saya, semoga bermanfaat untuk teman-teman dan anda semua..aamiin

Bogor, 27-12-2018

KangAgus

Pengenalan Profile Matching


Definisi

Profile Matching adalah mekanisme pengambilan keputusan dengan mengasumsikan bahwa terdapat tingkatan variable predictor yang ideal yang harus dipenuhi oleh subyek yang diteliti, bukan tingkat minimal yang harus dipenuhi atau dilewati.

Metode yang di gunakan untuk Decision Support System untuk menentukan kelayakan yang pas dalam suatu pengembangan. Kelebihan menggunakan metode ini adalah bisa mengukur spesifikasi yang di harapkan. Tidak harus kurang dan lebih hanya saja pas dan tepat sesuai dengan kebutuhan.

Manfaat

Metode profile maching biasanya digunakan mencari kandidat calon karyawan, kandidat karyawan teladan, siswa teladan, mahasiswa penerima beasiswa. Ada juga yang menggunakan metode profile matching untuk penentuan lokasi tower atau lokasi cabang usaha yang lain.

Penerapan

Untuk penerapan metode profile matching dapat melihat referensi di website cahyadsn.phpindonesia.id. Untuk bahasa pemrogramannya bisa mengunakan apa saja. karena proses perhitungan metode ini dilakukan di database.

Saya menggunakan metode profile matching untuk memberikan rekomendasi lokasi ke pimpinan terkait dengan pendirian cabang baru. Lokasi tersebut bisa berupa rumah atau ruko yang disewakan. Adapun aspek yang menjadi kriteria adalah aspek lingkungan, lokasi, dan tempat.

Lokasi Target

Rekomendasi Lokasi

Perhitungan Sistem

Perhitungan Manual

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Bogor, 26-12-2018

KangAgus

Pengenalan Sentiment Analysis


Latar Belakang

Ini adalah tulisan pertama saya setelah sekian lama tidak menulis, karena harus menyelesaikan penulisan sampai sidang tesis. kali ini saya ingin sharing sedikit ilmu terkait dengan sentiment analysis. definisi, manfaat, serta penerapannya.

Definisi 

Sentiment Analysis merupakan sebuah cabang penelitian di domain Text Mining yang mulai dikenal pada awal tahun 2002-an. Risetnya mulai marak sejak paper dari B.Pang dan L.Lee keluar. Salah satu pendekatan yang digunakan dalam sentiment analysis adalah pendekatan lexicon-based.

Lexicon-based bergantung pada kamus kata atau korpus yang digambarkan sebagai polaritas positif, negatif, dan netral. Pendekatan ini memberikan hasil presisi yang tinggi selama leksikon yang digunakan memiliki cakupan yang baik dari kata-kata yang dihadapi dalam teks yang dianalisa.

Manfaat

Sentiment analysis dapat digunakan sebagai alat bantu untuk melihat respon konsumen atau masyarakat terhadap suatu produk barang atau produk jasa tertentu, sehingga dapat segera diambil langkah-langkah strategis berikutnya.

Sentiment Analysis juga dapat digunakan untuk melihat sentimen masyarakat terhadap seorang public figure. Sentimen masyarakat terhadap suatu keadaan, wilayah, atau tempat tertentu.

Penerapan

Untuk penerapan sentimen analisis menggunakan PHP dapat melihat referensinya di website phpclass.org

Saya menggunakan sentiment analysis untuk mengetahui sentimen surveyor terhadap suatu daerah atau wilayah yang disurvey. Daerah atau wilayah tersebut menjadi target lokasi pendirian cabang baru.

Tampilan Program

Perhitungan Sistem

Perhitungan Manual

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Bogor, 26-12-2018

KangAgus