BAB IV PENGUJIAN APLIKASI
4.1 Pengujian Aplikasi Simple Messenger Aplikasi ini diuji pada sebuah jaringan kecil yang terdiri dari tiga komputer. Komputer pertama akan dijadikan sebagai server yang bertugas untuk melayani permintaan dari komputer client. Komputer kedua dan ketiga akan dijadikan sebagai client. Diasumsikan ketiga komputer tersebut berada dalam satu domain. Spesifikasi yang dibutuhkan untuk komputer server tidaklah berat, hanya dengan memori atau RAM sebesar 16 MB Erlang dapat berjalan dengan baik. Ukuran mesin virtual Erlang pun hanyalah 2 MB. Dengan ukuran 2 MB ini sudah terdiri dari mesin virtual (beam emulator), dan hampir sebagian besar pustaka yang dibutuhkan oleh Erlang Untuk menjalankan program server kita menggunakan perintah
werl –name nm@nm_domain
Dalam kasus ini kita menggunakan domain www.supernova.org jadi perintah yang digunakan menjadi
werl –name
[email protected]
nama “server” di sini merupakan nama node Erlang yang dijadikan server. Selanjutnya jalankan proses server dengan perintah
53
54
server:start().
akan tampil seperti berikut ini : (
[email protected])4> server:start(). ################################################ ################################################ ########### SIMPLE ERLANG MESSENGER ######## ########### [ SEM ] 1.0 2006 ############ ################################################ ################################################ - note :'server:start().' <- menjalankan server 'server:stop().' <- menghentikan server -> Dimulai pukul 20:49:24 -> server status
[ running ]
-> Daftar User yang logon pukul 20:49:24 [] true -> Daftar User yang logon pukul 20:49:36 [{<6879.52.0>,ryan}] (
[email protected])5> Pada client kita menggunakan command yang sama pada server, sebagai contoh ; werl –name
[email protected] Di dalam shell Erlang jalankan proses client dengan perintah client:logon(nma) akan muncul tampilan berikut : (
[email protected])4> client:logon(ryan).
55 true "<< Logon sukses -- ketik client:help(). untuk melihat daftar perintah >>" (
[email protected])5> Perintah tersebut berlaku juga untuk komputer 2 dan 3. Ketika proses client dijalankan, proses server akan menerima pesan dari proses client berupa alamat proses client tersebut(berupa PID) dan nama yang digunakan. Lalu server akan mereply atau membalas pesan tersebut dengan konfirmasi bahwa proses client tersebut telah terkoneksi dengan proses server. Pada saat terjadinya pengiriman antar proses tersebut maka terjadilah proses konkurensi di mana proses server dan client berjalan bersamaan dan saling berkomunikasi. Demikian juga antara proses client dengan proses client yang lainnya. Komunikasi antar proses tersebut mudah sekali dilakukan dengan Erlang, karena hanya dengan kode “!”(send) suatu proses akan bisa saling berkomunikasi tanpa harus tahu IP address-nya dan dengan kode “link(nm_proses)” kita dapat membuat proses yang dapat memberitahukan pesan error apabila proses terhenti secara tidak normal ke proses yang lainnya walaupun proses-proses tersebut berbeda komputer. Proses dalam Erlang hanya membutuhkan memori yang sedikit, oleh karena itu mekanisme
konkurensi
di
dalam
Erlang
dapat
dikategorikan
light-weight
processing(proses yang ringan) sehingga tidak memberatkan memori komputer. Selain itu program pada Erlang dapat diubah atau diupdate tanpa harus menghentikan program yang sedang berjalan karena itu Erlang cocok untuk membuat program yang harus dijalankan secara terus-menerus seperti aplikasi server simple messenger yang harus siap melayani permintaan client setiap saat. Sebagai contoh kita
56 akan mengganti kata konfirmasi <<-------- Server sedang berjalan -------->>” pada aplikasi server menjadi “server udah jalan tuh” tanpa menghentikan program server tersebut. Pada file server.erl ubah kode : _ -> io:format("~n~n<<-------- Server sedang berjalan -------->>~n~n",[]) .
Menjadi _ -> io:format("~n~n<<-------- Server udah jalan tuh -------->>~n~n",[]). Kemudian kompile ulang file server.erl tersebut dan jalankan fungsi server:start() kembali maka konfirmasi yang ditampilkan akan berubah dengan yang baru.
(
[email protected])5> server:start().
<<-------- Server sedang berjalan -------->>
ok (
[email protected])6>
Menjadi
(
[email protected])5> server:start().
57 <<-------- Server udah jalan tuh -------->>
ok (
[email protected])6> Pengubahan file server.erl tersebut dilakukan tanpa menghentikan proses server.