Headlines News :

POPULAR POST

Replikasi Database MySQL

Topologi Replikasi Database MySQL, Master to Master dan Master to Slave

Topologi Replikasi Database MySQL, Master to Master dan Master to Slave

Pengenalan Replikasi Database MySQL

Replikasi Database MySQL adalah melakukan sinkronisasi database agar saling entry atau isi database. Selain itu replikasi database bertujuan untuk membuat backup secara realtime apabila Server database MySQL utama (Master) offline / down maka kita tetap bisa mendapatkan data saat entry terakhir dilakukan oleh user di database Backup (Slave). Replikasi Database MySQL ada dua macam:
Master to Master MySQL Replication
Web 1 dan Web 2 bertindak kedua – dua nya sebagai master. Apabila ada Update database di Web 1 maka secara realtime akan di salin ke Web2. Apabila ada update database di Web2 maka secara realtime akan di salin ke Web 1.
Master to Slave MySQL Replication
Web 1 bertindak sebagai database utama (Master), apabila ada update di database Web 1 maka secara realtime di salin ke Web 3. Web 3 hanya bersifat sebagai backup (Slave). Web 3 selalu standby aktif menunggu salinan data dari Web 1.

Konfigurasi Database MySQL Web 1

Konfigurasi my.cnf Web1
root@web1:~# vim /etc/mysql/my.cnf
[mysqld]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
#Nama Database yg akan kita replikasi
binlog_do_db = kurusetra
binlog_ignore_db = mysql
binlog_ignore_db = test
#bind-address = 127.0.0.1
Restart MySQL Web1
root@web1:~# service mysql restart
Replicator Database Web1
root@web1:~# mysql
mysql> create database kurusetra;
mysql> create user ‘replicator’@'%’ identified by ‘password’;
mysql> grant replication slave on *.* to ‘replicator’@'%’;
mysql> \q

Konfigurasi Database MySQL Web2

Konfigurasi my.cnf Web2
root@web2:~# vim /etc/mysql/my.cnf
[mysqld]
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = kurusetra
binlog_ignore_db = mysql
binlog_ignore_db = test
#bind-address = 127.0.0.1
Restart MySQL Web2
root@web2:~# service mysql restart
Replicator Database Web2
root@web2:~# mysql
mysql> create database kurusetra;
mysql> create user ‘replicator’@'%’ identified by ‘password’;
mysql> grant replication slave on *.* to ‘replicator’@'%’;
mysql> \q

Pengujian Replikasi Database MySQL

Konfigurasi Replikasi Web1 ke Web2

## POSISI DI WEB1 ##
root@web1:~# mysql
mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000004 | 107 | kurusetra | mysql,test |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
# 107 adalah posisi awal sebelum database kurusetra di isi dengan tabel
## POSISI DI WEB2 ##
# KITA JADIKAN WEB1 SEBAGAI MASTER WEB2
root@web2:~# mysql
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.57.40′, MASTER_USER=’replicator’, MASTER_PASSWORD=’password’,MASTER_LOG_FILE=’mysql-bin.000004′, MASTER_LOG_POS=107;
mysql> start slave;
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.57.45
Master_User: replicator
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 107
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000004
#Slave_IO_Running: Yes dan Slave_SQL_Running: Yes
#Berarti Web2 siap melakukan replikasi tabel database kurusetra dari Web1
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000004 | 1065 | kurusetra | mysql,test |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

Konfigurasi Replikasi Web2 ke Web1

#POSISI DI WEB1
#KITA JADIKAN WEB2 SEBAGAI MASTER WEB1
root@web1:~# mysql
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.57.41′, MASTER_USER=’replicator’, MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.000004′, MASTER_LOG_POS=1065;
mysql> slave start;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.57.46
Master_User: replicator
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 1065
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Pengujian Replikasi Web1 ke Web2

## POSISI KEMBALI KE WEB1 ##
mysql> use kurusetra;
mysql> create table dariweb1 (mid int(11) auto_increment, PRIMARY KEY
-> (mid)) Engine=MyISAM;
mysql> insert into dariweb1 () values ();
##CEK TABEL DI WEB2 (POSISI DI WEB2) ##
mysql> use kurusetra;
mysql> show tables;
#TABEL YANG DIBUAT DI WEB1
#MUNCUL DI WEB2
mysql> show tables;
+———————+
| Tables_in_kurusetra |
+———————+
| dariweb1 |
+———————+
mysql> select * from dariweb1
-> ;
+—–+
| mid |
+—–+
| 1 |
+—–+

Pengujian Replikasi Web2 ke Web1

#POSISI DI WEB2
root@web2:~# mysql
mysql> use kurusetra;
mysql> create table dariweb2 (mid int(11) auto_increment, PRIMARY KEY
-> (mid)) Engine=MyISAM;
mysql> insert into dariweb2 () values ();
mysql> insert into dariweb1 () values ();

#POSISI DI WEB1
root@web1:~# mysql
mysql> use kurusetra;
mysql> show tables;
+———————+
| Tables_in_kurusetra |
+———————+
| dariweb1 |
| dariweb2 |
+———————+

mysql> select * from dariweb2;
+—–+
| mid |
+—–+
| 1 |
+—–+
mysql> select * from dariweb1;
+—–+
| mid |
+—–+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+—–+

Linux IPTV

 
 
IPTV Server
features:

  • multicast streaming to local networks (in basic setup) 
  • multicast udp proxy streaming to public networks
  • User authentication
  • Scrambled channels with scam (latest oscam) or CAM module
  • IPTV management Portal
  • Set Top Box with custom IPTV Portal

Hardware
Ubuntu precise (12.04.1 LTS)
  • 4 GB DDR3 Ram
  • AMD FX-6100 Six-Core Processor
DVB-S cards from Digitaldevices 
2x Digital Devices Cine S2 PCI-E
  • 6x Digital Devices DuoFlex S2
  • 16 Tuners on 2 PCI-E 1x cards
Card Reader

Software used
Apache2

Installasi 


Install a Linux System on your Server (Preferred Debian or Ubuntu)

Download and install Mumudvb from source.
 wget https://github.com/braice/MuMuDVB/archive/master.zip  
 unzip master zip  
 cd mumudvb  
 apt-get update  
 apt-get install build-essential autotools automake gettext libtool  
 autoreconf -i -f  
 ./configure --enable-cam-support --enable-scam-support  
 make  
 make install  

 
Stalker Portal (IPTV Portal)
 wget https://github.com/azhurb/stalker_portal/archive/v4.8.71.zip  
 sudo apt-get update  
 sudo apt-get install apache2 php5 php5-pear mysql-server libapache2-mod-php5filter  
 pear channel-discover pear.phing.info  
 pear install phing/phing  
 unzip v4.8.71.zip  
 cp -a stalker_portal* /var/www/stalker  
 mysql -u root -p  
   
 create database stalker_db;  
 GRANT ALL PRIVILEGES ON stalker_db.* TO stalker@localhost IDENTIFIED BY '1' WITH GRANT OPTION;  
 cd /var/www/stalker/deploy  
 sudo phing install  
 vim /etc/php5/apache2/php.ini  
 short_open_tag = On  
 a2enmod rewrite  
 in your virtualhost config set  
 Options -Indexes -MultiViews  
 AllowOverride All  

Optimalisasi Desktop Linux


Cukup satu Window Manager
kebanyakan pemula biasanya akan senang sekali mengutak-atik system linux-nya dengan meng-install berbagai macam window manager, seperti Gnome, Mate, KDE, Trinity dan lain-lain. padahal window manager yang sebenarnya dipakai pasti hanya satu. untuk itu pastikan kita hanya menggunakan satu window manager saja. tidak perlu terlalu banyak window manager. selain boros Harddisk juga menghabis kan memory karena terkadang service window manager tersebut di-load walaupun tidak sedang dipakai.

Pastikan Aplikasi yang digunakan Hanya untuk Window Manager yang anda pakai.
setelah hanya satu window manager yang dipakai, saatnya untuk memastikan bahwa aplikasi yang anda pergunakan memang khusus untuk berjalan di window manager tersebut. misalnya kita pakai gnome, maka pergunakanlah aplikasi yang dependent ke gnome, sepeti gcompris dll. seandainya kita menggunakan aplikasi dengan berbeda window manager maka linux akan menginstall pula core window manager tersebut, dan ini membuat system melakukan load 2 core window manager sekaligus. untuk sekedar tips memilih aplikasi misalnya anda memakai Gnome, carilah aplikasi yang berawalan huruf G, misalnya GCompris, Gnumeric dan lain-lain, itu adalah aplikasi yang dependent ke gnome (walaupun tidak semua aplikasi berawalan G adalah untuk Gnome), untuk aplikasi yang dependent ke KDE silakan cari yang berawalan huruf K, misalnya Koffice, Kanagram, KPDF dan lain-lain.

Buang semua aplikasi yang ganda

berapa browser yang ter-isntall di PC anda, berapa aplikasi office yang ada di PC anda, dan berapa music atau video player yang ada di PC anda. jika jawabanya lebih dari 1, maka silakan anda tentukan pilihan mana yang ingin anda pakai selamanya. secara default linux menyertakan firefox sebagai bawaan, jika anda leih menyukai chrome atai browser lain, silakan uninstall terlebih dahulu, begitu juga dengan office, biasanya Libre office sekarang sudah menjadi standard paket office baik gnome maupun kde. jadi hemat saya kita tidak perlu meng-install dua aplikasi yang berbeda hanya untuk fungsi yang sama, tentukanlah pilihan anda ke salah satu aplikasi.

Gunakan Linux Minimalis

gunakan Linux minimal Footprint, kalau hardware anda adalah hardware versi lama, silakan gunakan linux yang ringan, seperti puppy linux atau DSL. banyak distro-distro linux yang memang di sediakan untuk hardware-hardware lama. jika anda tertarik silakan baca ditulisan saya 10 linux ringan dan minimalis alternatif.

Susun Ulang DIrectory
booting menggunakan system live CD atau USB flash drive. Kemudian masuk ke terminal. Application >Accessories > Terminal
Kemudian login sebagai root dengan perintah sudo bash
Lihat partisi yang ingin di optimalkan dengan perintah df h atau fdisk l
misalnya kita ingin mengoptimasi susunan direktori pada partisi /dev/sda1. Maka jalankan perintah e2fsck fD /dev/sda1.
-D berarti mengoptimalisasi susunan direktori atau folder dalam filesystem. E2fsck mengoptimasi dengan cara mengindeks ulang direktori, atau mengurutkan dan mengkompress untuk direktori yang lebih kecil. Dengan mengindeks ulang susunan filesystem anda, maka filesystem lebih terasa responsif.

noatime dan writeback untuk Optimasi (khusus ext3 dan reiserfs)
Untuk mengaktifkan noatime dan writeback kita harus meng-edit fstab. Perintahnya #sudo nano /etc/fstab
Contoh pada baris fstab berikut ini tambahkan opsi noatime dan writeback UUID=3eb414ba51984c1f9e3de91675329f83 / ext3 defaults,data=writeback,noatime,errors=remountro 0 0
selanjutnya edit file konfigurasi grub, dengan #sudo nano /boot/grub/menu.lst
tambahkan baris rootflags=data=writeback
kemudian jalankan perintah sudo updategrub
Apabila filesystem memakai ext3, gunakan perintah #sudo tune2fs o journal_data_writeback /dev/sda1
Selanjutnya reboot komputer anda. Jika benar maka akses audio, gambar, dan video akan terasa lebih cepat, NB saya dapat tips ini dari blog sebelah, saya belum pernah coba yang ini soalnya saya pakai Ext4.

Atur Swap
Cache memory digunakan oleh system Linux untuk aplikasi yang sewaktu-waktu digunakan kembali, maka memori cache akan digunakan oleh aplikasi tersebut. Sistem Linux menggunakan memori yang tidak terpakai pada RAM sebagai cache aplikasi. silakan edit pada file sysctl.conf, perintahnya #sudo gedit /etc/sysctl.conf Apabila komputer anda memiliki memori yang pas-pasan, dan tidak ingin menggunakan cache swap, tambahkan baris vm.swappiness=0 Sebaliknya, apabila anda memiliki memori besar, dan ingin mengoptimalkan penggunaan cache tambahkan baris vm.swappiness=100. karena kasus saya memori saya 4GB dan ini merupakan memori yang cukup besar, maka saya masukan vm.swappiness=100 supaya memori tidak nganggur.

Mempercepat Booting
Optimasi Processor Dual Core Untuk Concurrent booting
Apabila anda memiliki komputer dengan processor dual core, anda bisa memanfaatkannya untuk memproses booting agar lebih cepat. Buka terminal anda, kemudian edit file rc dengan perintah #sudo nano /etc/init.d/rc Pada baris CONCURRENCY=none ganti menjadi CONCURRENCY=shell Concurrency sendiri artinya melakukan bersama-sama, dalam hal ini proses booting akan dilakukan bersamaan oleh dua processor tersebut sehingga bisa lebih cepat.

Menggunakan paket preload
preload merupakan paket yang digunakan untuk mengoptimalkan proses booting dan startup aplikasi. Untuk menginstall preload jalankan perintah #sudo apt-get install preload Setelah diinstall preload akan berjalan sendiri, anda tidak perlu melakukan konfigurasi apapun, karena developernya telah mengoptimasikan preload tersebut. Atau apabila anda ingin mengetahui buka file konfigurasinya di /etc/preload.conf

OPTION DEFAULT
CONTROL
Cache model (system) settings
model.cycle 20
[seconds] Bagaimana Preload akan mengumpulkan data dari system anda dan mengupdate databasenya yang berisi program dan library anda
model.halflife 168
[hours] tenggang waktu maksimal preload akan menghapus data lama.
model.minsize 2000000
[bytes] minimal memory yang akan dipakai untuk System Calls yang akan dipakai oleh preload. semakin kecil berarti semkain kecil pula cache aplikasi untuk preload.
Memory settings
rumus untuk menemukan memory maksimum yang tersedia dari preload adalah :
(Total RAM x model.memtotal) + (RAM tersedia saat start x model.memfree) + (Cached memory x model.memcached)
model.memtotal -10%
model.memfree 100%
model.memcached 30%


Untuk memonitor aktivitas preload anda dapat melihat log-nya. Pada terminal gunakan perintah #sudo tail f/var/log/preload.log
Menggunakan preload dapat mengoptimalkan waktu startup system anda. Karena kebanyakan komputer saat ini memiliki RAM yang besar, preload memanfaatkan RAM ini untuk digunakan secara optimal.

Menggunakan Opsi profile pada Grub
Anda juga dapat membuat profile boot anda, sehingga kedepannya booting akan membaca file profile yang disimpan. Untuk membuat profile pada layar boot grub, tekan e pada baris

/boot/vmlinuz2.6.2416generic root=UUID=3eb414ba51984c1f9e3de91675329f83 ro splash=verbose vga=794

pada akhir baris tambahkan profile. Kemudian tekan b untuk membooting sistem anda. Ketika proses booting, system akan mempelajari booting apa saja yang dilakukan kemudian akan membacanya kembali untuk proses booting selanjutnya.Menonaktifkan Ipv6
Secara defaut Ubuntu mengaktifkan protokol Ipv6, anda harus membuat sebuah file untuk memblok protokol ini. Ketik perintah sudo gedit /etc/modprobe.d/bad_list kemudian tambahkan baris alias netpf10 off
Kemudian save

Menggunakan Paket prelink
install paket prelink dengan perintah #sudo apt-get install prelink
kemudian buka file konfigurasi prelink dengan perintah #sudo nano /etc/default/prelink
Ubah baris PRELINKING=unknown menjadi PRELINKING=yes
Untuk menjalankan prelink jalankan perintah #sudo /etc/cron.daily/prelink
Selanjutnya prelink akan menjalankan quick prelink setiap hari, biasanya dimalam hari (kurang dari 1 menit), sedangkan setiap 14 hari full prelink akan berjalan. Anda dapat mengganti waktu prelink tersebut pada crontab Menggunakan Paket pessulus dan Ubuntutweak Selain optimasi manual, anda juga dapat menggunakan paket Optimasi Ubuntu, aplikasi yang sering digunakan adalah Ubuntutweak.


Untuk menjaga tampilan panel pada desktop agar tidak berubah-ubah, anda dapat menggunakan paket pessulus. Install dengan perintah #sudo apt-get install pessulus.


Menonaktifkan Ipv6 (jika tidak digunakan)
defaut Ubuntu dan turunanya mengaktifkan protokol Ipv6, anda harus membuat sebuah file untuk memblok protokol ini. Ketik perintah ini di terminal untuk menon-aktifkan fitur ini.#sudo nano /etc/modprobe.d/bad_list kemudian tambahkan baris alias netpf10 off Kemudian keluar dengan me-SAVE-nya, caranya tekan Ctrl + X kemudian tekan huruf Y dan diikuti enter.

Bikin Boot Profile
Ubuntu atau Linux pada umumnya, ketika pertama kali booting, biasanya akan melakukan pencarian driver untuk dilakukan load ke system. yang dilakukan oleh grub adalah mencari driver mana yang terpakai kemudian di load. waktu pencarian inilah yang ingin kita optimalkan, bayangkan saja jika linux memiliki banyak driver, bisa memakan waktu lebih lama. caranya adalah dengan meminta supaya grub membuat profile atau semacam list driver – driver tertentu yang akan di load. kalo biasanya grub nyari satu-satu untuk menemukan yang mana yang akan di load, sekarang grub cukup membaca dari sebuah list yang mana itu adalah driver yang akan di load semua. silakan buka file etc/default/grub dan lalukan editing pada file tersebut seperti baisa saya #sudo nano /etc/default/grub, silakan cari baris GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” menjadi GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash profile” selesai di edit silakan ketikan perintah untuk melakukan update pada grub2, #sudo update-grub2.

Hapus Splash Screen boot di Linux
pada saat linux sedang booting biasanya akan muncul tulisan boot atau apa gitu lah. fungsinya adalah untuk memberikan gambar animasi yang mengatakan bahwa linux sedang boot, namun untuk PC yang lemot, ada baiknya fitur splash screen ini dimatikan saja, caranya adalah dengan mengedit grub, trik ini mirip dengan trik sebelumnya. buka file /etc/default/grub dengan mengetikan #sudo nano /etc/default/grub kemudian cari baris GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash profile” (ini mirip dengan trik bikin boot profile) kemudian hapus kata-kata splash disana sehingga berubah menjadi GRUB_CMDLINE_LINUX_DEFAULT=”quiet profile”. nah dengan cara ini maka splash screen tidak akan ditampilkan. satu lagi pastikan anda tidak meng-install plymouth-theme-ubuntu-text. jika terlanjur terinstall maka silakan di uninstall, kenapa karena kalau ter-install paket tersebut maka splash screen akan diganti dengan plymouth ubuntu text.
Ganti apt-get dengan apt-fast
saya sendiri baru tahu kalau ada apt-fast, sepertinya ini adalah program bikinan siapa gitu untuk mempercepat download aplikasi dari repository. saya tidak tahu juga bagaimana caranya berkerja yang pasti ketika saya pakai jadi cepat aja. untuk menggunakan apt-fast kita harus menambahkan dahulu repository apt-fast.
#sudo add-apt-repository ppa:tldm217/tahutek.net
#sudo apt-get update
#sudo apt-get install apt-fast
setelah itu anda tinggal menggunakan apt-fast untuk men-download aplikasi dari repository , misalnya apt-get install ubuntu-tweak silakan diganti apt-fast ubuntu-tweak.

Optimalisasi Konfigurasi Nginx

Selain sebagai load balancer, Nginx juga memiliki performansi yang sangat baik response time atau request per second saat melayani request assets files seperti css, javascript, html, pdf, image atau static files lain.

Saya sendiri pernah membandingkan response time Nginx dengan yang lain saat mengirimkan request untuk image dan hasilnya adalah Nginx memiliki response time 2 - 3 kali lebih baik. Padahal ukuran filenya lebih besar.

Berikut ini adalah optimasi Nginx untuk static assets files. Nginx yang digunakan adalah versi 1.4.4. Pada Debian 6, file konfigurasi Nginx terdapat pada direktori /etc/nginx/nginx.conf.

?
1
2
3
4
5
6
7
8
9
10
11
# asumsi, seluruh assets file seperti js, css, image berada pada directory assets
location ~ ^/assets/ {
  gzip_static on;
  expires max;
  add_header Cache-Control public;
 
  # unset ETag. Tidak disarankan menggunakan ETag
  # saat ada Last-Modified yang di set melalui "expires".
  add_header ETag "";
  break;
}

Konfigurasi secara keseluruhan. 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Nginx default configuration
user  nginx;
worker_processes  1;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
    include /etc/nginx/conf.d/*.conf;
 
    server {
     listen 80;
     server_name example.com www.example.com;
     root /home/example/html/public;
 
     # mulai dari ini :)
     location ~ ^/assets/ {
       gzip_static on;
       expires max;
       add_header Cache-Control public;
       add_header ETag "";
       break;
     }
   }
}

Pidgin WhatsApp Messanger in Linux

WhatsApp Messanger in Linux


Siapa yang tidak kenal WhatsApp? Ya hampir semua orang dipastikan pernah mendengarnya. WhatsApp Messanger adalah aplikasi pesan yang mirip seperti Blackberry Messanger, bedanya pada WhatsApp nomer ponsel kitalah yang akan menjadi PIN. Tentu saja kita dapat mengirim pesan kepada teman sesama pengguna WhatsApp secara gratis karena menggunakan internet.

Berdasarkan situs resminya, WhatsApp hanya mendukung sistem operasi berplatform mobile saja seperti Android, iPhone, Blackberry, Symbian dan Windows Phone. Walaupun begitu, tutorial kali ini akan membahas cara menggunakan WhatsApp pada Linux yang berplatform desktop.


1. Install Pidgin

Untuk distro Linux apa saja, install terlebih dahulu aplikasi yang bernama "Pidgin".

Untuk Fedora
sudo yum install pidgin

Untuk openSUSE
sudo zypper install pidgin

Untuk Ubuntu dan Debian
sudo apt-get install pidgin

Atau sesuaikan dengan distro linux masing-masing.

Setelah terinstall, sekarang coba jalankan aplikasi pidgin tersebut.


2. Pasang plugin WhatsApp Purple pada pidgin

Plugin inilah yang memungkinkan kita dapat menggunakan WhatsApp pada distro Linux walaupun belum didukung pengembang WhatsApp sekalipun.

Unduh plugin WhatsApp Purple tersebut dari: http://web.davidgf.net/nightly/whatsapp-purple/.

Perhatian: Sesuaikan dengan arsitektur distro linux yang kamu gunakan, misalnya:
Jika disro linux yang kamu gunakan versi 32bit = unduh dari folder 386.
Jika disto linux kamu versi 64bit = unduh pada folder x64.

Salin plugin yang berekstensi .so tersebut ke folder:
~/.purple/plugins/

Setelah kamu menyalin ke folder tersebut, coba jalankan ulang aplikasi pidgin. Maka muncul protokol baru yaitu WhatsApp. Tetapi sampai disini WhatsApp belum bisa kita gunakan karena kita memerlukan password.

WhatsApp in Pidgin



3. Dapatkan Password WhatsApp dengan Yowsup

Yowsup inilah yang akan kita gunakan untuk mendapatkan password WhatsApp. Berikut keterangan lengkapnya dari situs resminya:
Yowsup is a python library that allows you to do all the previous in your own app. Yowsup allows you to login and use the Whatsapp service and provides you with all capabilities of an official Whatsapp client, allowing you to create a full-fledged custom Whatsapp client.
Cara mendapatkan password WhatsApp dengan Yowsup:

Konfigurasi Yousup

Unduh Yowsup:
wget https://github.com/tgalal/yowsup/archive/master.zip
Extract Yowsup:
unzip master.zip
Masuk ke direktori Yowsup:
cd yowsup-master/src
Ubah nama konfigurasi Yowsup:
cp config.example yowsup-cli.config
Ubah konfigurasi Yowsup:
nano yowsup-cli.config
Ubah pada bagian berikut:
cc=62
phone=6281234567890
id=
password=
cc= diisi kode nomer negara, untuk indonesia 62
phone= di isi nomer ponsel kita.
Konfigurasi yang lain, di biarin aja :D.
Lalu, ubah hak akses berkas seperti berikut:
chmod +x yowsup-cli
Meminta kode verifikasi
Setelah melakukan konfigurasi diatas, kita akan meminta kode ke server WhatsApp, buka alamat dibawah ini dan masukkan nomer kamu disana.
Kemudian tunggu sms dari WhatsApp. Setelah mendapat kode verifikasi dari WhatsApp, kita akan meminta password dari WhatsApp. Perhatian: Jangan pernah membalas sms dari WhatsApp.
Meminta password
Jalankan Yowsup.
Caranya:
./yowsup-cli --register 123-456 --config yowsup-cli.config
123-456 itu kode yang kita dapat dari sms WhatsApp tadi. Setelah di jalankan akan keluar tulisan seperti berikut:
status: ok
kind: free
pw: cKVYJV/RzDLMJl1cTj8TSC2QZBQ=
price: Rp9500
price_expiration: 1381774835
currency: IDR
cost: 9500.00
expiration: 1410681978
login: 6281234567890
type: new
Berdasarkan contoh diatas kita salin dan simpan kode password dibelakang "pw" : cKVYJV/RzDLMJl1cTj8TSC2QZBQ= . Password ini akan berbeda-beda pastinya. Sampai pada langkah ini kamu telah mendapatkan password WhatsApp, langkah selanjutnya tinggal menggunakannya pidgin sebagai WhatsApp.

Update:
Jika kamu mendapatkan pesan error setelah menjalankan perintah diatas seperti berikut:
ImportError: No module named dateutil.relativedelta
Install paket yang bernama python-dateutil menggunakan package manager dan ulangi langkah diatas.

4. Menggunakan WhatsApss dengan pidgin
- Buka aplikasi Pidgin dari menu
- Pilih menu Accounts --> Manage Accounts
- Pilih Add
- Pada Login Option, Ubah Protokol menjadi WhatsApp
- Isikan Username dan Password. Username diisi dengan nomer ponsel kamu, dan password diisi dengan password yang kamu dapatkan seperti diatas.
- Alias adalah nama lokal yang hanya muncul di pidgin saja, boleh isi apa saja. Misalnya: Arif atau nama panggilan kamu. Bebas!
Catatan

Jika kamu memiliki smartphone dengan aplikasi WhatsApp Messanger yang sedang berjalan, tutup dulu aplikasi itu sebelum menggunakan WhatsApp di komputer Linux. Ini karena WhatsApp hanya bisa berjalan disatu perangkat dalam satu waktu. Atau, kamu bisa menggunakan nomer yang berbeda untuk menghindari konflik.

Dapat kita simpulkan bahwa tidak harus memiliki smartphone dengan OS: android, blackberry, ataupun symbian untuk dapat menggunakan WhatsApp. Bahkan jika kamu hanya memiliki ponsel jadul sekalipun (seperti saya), kita bisa memiliki akun WhatsApp dan dengan menggunakan komputer kita berkirim pesan kepada sesama pengguna WhatsApp lain. Yaah walaupun tidak sepraktis pada smartphone yang bisa dibawa-bawa. 

Referensi:

https://github.com/davidgfnet/whatsapp-purple
https://github.com/tgalal/yowsup/
 
Copyright © 2011. COMASTNET - All Rights Reserved