PENGEMBANGAN SISTEM PENGUKUR INDEKS BEBAN PADA KOMPUTER PARALEL CLUSTER
IRVAN AHADI
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi Pengembangan Sistem Pengukur Indeks Beban pada Komputer Paralel Cluster adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, April 2013 Irvan Ahadi NIM G64080095
ABSTRAK IRVAN AHADI. Pengembangan Sistem Pengukur Indeks Beban pada Komputer Paralel Cluster. Dibimbing oleh HENDRA RAHMAWAN. Kinerja sebuah sistem paralel dapat ditingkatkan dengan berbagai cara, salah satunya dengan load balancing. Untuk melakukan tugas penyeimbangan beban, beberapa algoritme load balancing membutuhkan informasi mengenai indeks beban tiap komputer pemroses. Penelitian ini mengembangkan suatu sistem untuk membaca indeks beban di komputer pemroses pada komputer cluster yang dapat mengukur, mengirimkan, dan mengelola informasi nilai load dari setiap komputer pemroses. Aplikasi diimplementasikan menggunakan library Hyperic SIGAR (System Information Gatherer And Reporter) dengan CPU, memori, dan I/O sebagai indeks load. Analisis pengujian kinerja sistem menunjukkan bahwa nilai throughput sebanding dengan jumlah komputer pemroses dan berbanding terbalik dengan jeda pengiriman (delay). Sementara itu, analisis validitas menunjukkan bahwa nilai load berbanding terbalik dengan delay pengiriman dan jumlah komputer pemroses. Namun, pada penelitian ini terdapat anomali pada analisis delta karena beberapa faktor yang terjadi selama pengujian seperti jaringan yang tidak terisolasi. Kata kunci: Hyperic SIGAR, indeks beban, load balancing
ABSTRACT IRVAN AHADI. Develompent of Load Index Measurement System in Parallel Cluster Computer. Supervised by HENDRA RAHMAWAN. The performance of a parallel system can be improved in various ways; one of them is load balancing. To perform load balancing task, some load balancing algorithms require the information of load index on each slave computer. This research developed a system to read the load index on each slave computer of a computer cluster that can measure, send, and manage information of load value. The application was implemented using Hyperic SIGAR (System Information Gatherer And Reporter) with CPU, memory, and I/O as the load indices. Analysis of the system performance testing showed that throughput values are proportional to the number of slave computers and inversely proportional to delay. Meanwhile, analysis of load value validity showed that load value is inversely proportional to the delivery delay and the number of slave computer. However, there were several anomalies in the delta analysis due to several factors, such as the unisolated network during the testing period. Keyword : Hyperic SIGAR, load balancing, load indices
PENGEMBANGAN SISTEM PENGUKUR INDEKS BEBAN PADA KOMPUTER PARALEL CLUSTER
IRVAN AHADI
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
Judul Skripsi : Pengembangan Sistem Pengukur Indeks Beban untuk Sistem Penyeimbang Beban pada Komputer Paralel Cluster Nama : Irvan Ahadi NIM : G64080095
Disetujui oleh
Hendra Rahmawan, S.Kom, M.T NIP. 19820501 200912 1 004
Diketahui oleh
Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19660702 199302 1 001
Tanggal Lulus:
PRAKATA Segala puji serta syukur ke hadirat Allah subhanahu wata’ala yang telah melimpahkan rahmat dan karunia-Nya. Salawat beserta salam tercurahkan kepada Nabi Muhammad shallallahu ‘alaihi wa sallam dengan petunjuk dan bimbinganNya, penelitian yang berjudul Pegembangan Sistem Pengukur Indeks Beban pada Komputer Paralel Cluster berhasil diselesaikan. Atas terselesainya penelitian ini penulis ingin mengucapkan terima kasih yang tulus kepada: 1 Orang tua tercinta, Ayahanda Jahroni dan Ibunda Nur’aini serta adikku, Chusnul Nabila yang selalu memberikan kasih sayang, doa, dan dukungan yang tiada henti. 2 Bapak Hendra Rahmawan, S.Kom, M.T selaku pembimbing, yang selalu memberikan nasihat, petunjuk, bimbingan hingga penelitian ini selesai. 3 Bapak Dr. Heru Sukoco, S.Si, M.T dan Ibu Ir. Sri Wahjuni, M.T sebagai dosen penguji atas segala masukan yang diberikan. 4 Seluruh dosen pengajar dan staf Departemen Ilmu Komputer FMIPA IPB untuk semua yang telah mereka berikan selama mengikuti proses perkuliahan. 5 Tiara Aprillinda Dewi yang selalu memberikan semangat dan motivasi dalam menyelesaikan penelitian ini. 6 Teman-teman seperjuangan Asrori, Catur, Halim, Melki, Dipo, Putra, Ryan, Panji, Dani, Dayat, Yansen, Pradit, Jaka, Momi, Firman, Elbie, Williardi, dan teman-teman Ilmu Komputer IPB angkatan 45, atas segala kebersamaan, bantuan, dukungan, serta kenangan bagi penulis selama menjalani masa studi. Semoga kita bisa berjumpa kembali kelak sebagai orang-orang sukses. 7 Rekan-rekan satu bimbingan Bambang, Hanif, Melki, dan Zulfikar yang telah berjuang bersama-sama dalam melakukan penelitian. Penulis juga mengucapkan terima kasih kepada semua pihak yang telah membantu selama pengerjaan penyelesaian tugas akhir ini yang tidak dapat disebutkan satu per satu. Semoga penelitian ini bermanfaat.
Bogor, April 2013
Irvan Ahadi
DAFTAR ISI DAFTAR TABEL
vi
DAFTAR GAMBAR
vi
DAFTAR LAMPIRAN
vi
PENDAHULUAN
1
Latar Belakang
1
Tujuan Penelitian
1
Manfaat Penelitian
1
Ruang Lingkup Penelitian
1
TINJAUAN PUSTAKA
2
Sistem Paralel dan Komputer Cluster
2
Penyeimbang Beban Statis (Static Load Balancing)
2
Socket Programming
3
METODE
4
Analisis
4
Implementasi
4
Pengujian Sistem
5
Analisis Hasil Pengujian
6
HASIL DAN PEMBAHASAN Analisis
7 7
Implementasi
12
Pengujian Sistem
14
Analisis Hasil Pengujian
17
SIMPULAN DAN SARAN
22
Simpulan
22
Saran
22
DAFTAR PUSTAKA
22
LAMPIRAN
23
RIWAYAT HIDUP
25
DAFTAR TABEL 1 2 3 4
Parameter pengujian kinerja sistem. Variasi skenario pengujian kinerja Hasil pengujian fungsional sistem pada komputer master Hasil pengujian fungsional pada komputer pemroses
6 15 16 17
DAFTAR GAMBAR 1 2 3 4 5 6 7 8
9 10 11 12 13
14 15 16 17 18 19
Contoh Arsitektur Sistem Paralel Ilustrasi TCP/IP socket programming Metode penelitian Ilustrasi perubahan load pada sistem Alur kerja sistem Alur kerja Master Label-label indeks beban dalam suatu berkas XML Alur kerja Client Topologi jaringan laboratorium pengujian Antarmuka aplikasi pada komputer pemroses Antarmuka aplikasi pada komputer master Grafik nilai delta status no-app. Grafik nilai delta status app-run. Paket-paket protokol luar selain TCP Throughput pengujian sistem status no-app Throughput pengujian sistem status app-run Validitas CPU Validitas memori Validitas I/O harddisk
2 4 5 7 8 9 10 11 16 16 17 18 18 19 19 20 20 21 21
DAFTAR LAMPIRAN 1 2
Class diagram Master Class diagram Client
24 25
PENDAHULUAN Latar Belakang Kinerja sebuah sistem paralel yang baik dapat ditentukan oleh kecepatan waktu eksekusi suatu pekerjaan dan sebaran kerja setiap pekerjaan kepada komputer pemroses dalam sistem tersebut. Ada banyak pendekatan untuk memperbaiki kinerja sebuah sistem paralel salah satunya melalui load balancing. Dua metode yang dikenal dalam load balancing adalah statis (static load balancing) dan dinamis (dynamic load balancing). Terdapat beberapa variasi algoritme dari kedua metode ini yang memerlukan informasi beban dari komputer-komputer pemroses. Dengan demikian, informasi beban dari komputerkomputer pemroses menjadi hal yang penting dalam algoritme tersebut. Load dari setiap komputer pemroses dapat diketahui dengan pengiriman informasi load langsung oleh komputer pemroses kepada komputer master atau penyeimbang beban dalam jaringan sistem paralel itu sendiri. Dalam penelitian ini akan dikembangkan sebuah perangkat lunak yang dapat mengukur dan mengirimkan informasi load dari setiap komputer pemroses kepada setiap komputer master atau penyeimbang beban. Perangkat lunak yang dikembangkan diharapkan mampu meningkatkan kinerja algoritme load balancing pada sebuah sistem paralel.
Tujuan Penelitian Penelitian ini bertujuan mengembangkan sebuah perangkat lunak yang mengukur beban komputer pemroses pada sistem paralel komputer cluster dan juga menganalisis kinerja perangkat lunak tersebut berdasarkan nilai delay, throughput, dan validitas nilai beban yang dibaca.
Manfaat Penelitian Hasil dari penelitian ini diharapkan dapat diimplementasikan dengan baik di berbagai lingkungan cluster komputer. Selain itu, dengan adanya perangkat lunak ini, kinerja algoritme load balancing pada sistem paralel yang dilengkapi dengan sistem ini diharapkan akan meningkat.
Ruang Lingkup Penelitian Terdapat beberapa jenis indeks beban yang mempengaruhi secara signifikan proses eksekusi pekerjaan setelah proses load balancing antara lain beban pada CPU, I/O harddisk, memori dan jaringan (Branco dan Ordonez 2006). Jenis indeks beban (load) yang digunakan pada penelitian ini adalah beban pada CPU, I/O harddisk, dan memori.
2
TINJAUAN PUSTAKA Komputer Paralel dan Komputer Cluster Komputer paralel adalah kumpulan dari elemen pemroses yang berkomunikasi dan bekerja sama untuk menyelesaikan masalah secara efisien. Komputer paralel terbagi dalam dua arsitektur yang fundamental: (1) Single Instruction Multiple Data (SIMD) dengan Multiple Instruction Multiple Data (MIMD), dan (2) shared memory dengan distributed memory (Xu dan Lau 1997). Sebagai ilustrasi, komputer paralel bisa juga digambarkan sebagai sistem yang terdiri atas komputer penyeimbang beban, dan N buah komputer pemroses yang dihubungkan oleh suatu jaringan (Rahmawan dan Gondokaryono 2009). Ilustrasi suatu arsitektur sistem paralel dapat dilihat pada Gambar 1. Komputer cluster merupakan suatu tipe dari sistem pemrosesan paralel yang terdiri dari sekumpulan komputer-komputer yang saling terhubung (interconnected) yang bekerja sama sebagai sebuah sumberdaya komputasi yang saling terintegrasi (Buyya 1999). Sebuah cluster secara umum terdiri atas dua atau lebih komputer (node) yang saling terhubung dan biasanya terhubung dalam sebuah LAN.
Penyeimbang Beban Statis (Static Load Balancing) Metode penyeimbang beban statis menentukan prosesor yang akan Komputer Penyeimbang Beban Program Paralel j1
j1
...
jn
Komputer Pemroses 1 j1
Komputer Pemroses 2 j2
...
Komputer Pemroses N jn
Sebaran kerja Jaringan
Gambar 1 Contoh arsitektur sistem paralel
3 melakukan suatu pekerjaan di awal waktu eksekusi yang dilakukan oleh prosesor utama. Prosesor pekerja mengalkulasi pekerjaan yang dialokasikan ke mereka dan mengirim hasilnya ke prosesor utama. Metode ini bersifat non-preemptive atau dengan kata lain setiap pekerjaan selalu dieksekusi di prosesor tempat ia ditugaskan hingga selesai. Tujuan utama dari penyeimbang beban statis ini adalah mengurangi waktu eksekusi secara umum dari sebuah program dengan meminimalkan proses komunikasi. Kelemahan dari metode ini adalah pemilihan prosesor dari tiap pekerjaan ditentukan di awal saat proses dibuat dan tidak bisa ditukar selama proses eksekusi berlangsung. Beberapa algoritme yang digunakan dalam metode ini antara lain adalah algoritme Round Robin, algoritme Randomized, dan algoritme Central Manager (Minimal) (Sharma et al. 2008).
Socket Programming Socket merupakan titik akhir dari komunikasi antara dua program yang berjalan pada suatu jaringan. Sebuah socket diidentifikasi melalui sebuah IP address yang digabungkan dengan sebuah nomor port. Pada umumnya socket menggunakan arsitektur client-server (Silberchartz et al. 2005). Dalam pengoperasiannya, suatu server yang berjalan pada suatu komputer dan memiliki sebuah socket menunggu suatu client pada suatu port. Kedua entitas ini kemudian akan saling terhubung apabila sebuah request dari client datang dan server menyetujuinya. Socket programming merupakan istilah yang digunakan dalam pengembangan salah satu aplikasi pada jaringan yang menggunakan socket. Socket programming dapat dilakukan melalui beberapa bahasa pemrograman, salah satunya adalah Java. Java menyediakan sebuah package java.net yang menyediakan kelas-kelas dan interface yang mendukung pengembangan aplikasi jaringan. Kelas-kelas yang sering digunakan dalam pengembangan client-server TCP/IP adalah ServerSocket dan Socket, sedangkan untuk UDP digunakan kelas-kelas seperti DatagramPacket dan DatagramSocket (Buyya et al. 2009). Socket programming menggunakan protokol TCP/IP pada Java yang secara umum dapat dilakukan melalui beberapa langkah sederhana di bawah ini 1 Membuka socket server: ServerSocket server = new ServerSocket (PORT); 2 Menunggu request dari client: Socket client = server.accept(); 3 Membuat aliran I/O untuk berkomunikasi dengan client: DataInputStream is = new DataInputStream(client.getInputStream()); DataOutputStream os = new DataOutputStream(client.getOutputStream()); 4 Melakukan komunikasi dengan client String line = is.readLine(); os.writeBytes (“Hello\n”); 5 Menutup socket: client.close();
4 Ilustrasi dari proses pengembangan client-server menggunakan socket dapat dilihat pada Gambar 2.
METODE Penelitian ini dilakukan dalam beberapa tahapan seperti yang terlihat pada Gambar 3.
Analisis Kebutuhan Sistem Pada tahapan ini dijelaskan mengenai kerja sistem secara umum pada lingkungannya. Pada tahapan ini juga dijelaskan fitur-fitur yang akan dilengkapi pada sistem dan penempatan sistem pada lingkungan komputer cluster itu sendiri. Analisis kebutuhan sistem juga menjelaskan cara output dari sistem akan dimanfaatkan untuk kebutuhan load balancing pada lingkungan komputer cluster. Perancangan Sistem Fase ini merupakan tahapan penentuan fungsi-fungsi yang disertakan pada aplikasi yang akan dikembangkan. Selain penentuan fungsi-fungsi tersebut, pada fase ini juga dijelaskan cara kerja dari fungsi yang telah dirancang. Pada fase ini, alur kerja sistem saat sistem dijalankan juga dirancang.
Implementasi Pada tahapan ini dilakukan pengodean model yang telah dirancang dalam tahapan analisis dan perancangan alur kerja sistem menjadi sebuah sistem. Selain itu, beberapa hal penting dalam pengembangan sebuah perangkat lunak seperti lingkungan pengembangan sistem, bahasa pemrograman, dan beberapa hal terkait, seperti library yang akan digunakan, ditentukan pada tahapan ini.
Gambar 2 Ilustrasi TCP/IP socket programming (Buyya et al. 2009)
5
Analisis
Implementasi
Pengujian Sistem
Analisis Hasil Pengujian
Gambar 3 Metode penelitian Pengujian Sistem Tahapan pengujian sistem dilakukan untuk melihat apakah sistem telah berjalan sesuai dengan fungsinya. Untuk melakukan pengujian, ditentukan beberapa skenario pengujian berdasarkan parameter-parameter sistem. Tahapan pengujian sistem dibagi menjadi dua yaitu pengujian fungsional dan pengujian kinerja sistem. Pengujian Fungsional Sistem Pengujian fungsional bertujuan menguji apakah sistem telah berjalan sesuai dengan spesifikasi fungsi yang telah ditentukan di awal tahapan pengembangan. Pengujian fungsional terbagi menjadi dua buah pengujian yaitu pengujian fungsional sistem pada komputer master dan pengujian fungsional sistem pada komputer pemroses. Pengujian Kinerja Sistem Pengujian kinerja sistem dilakukan untuk menjalankan sistem dengan berbagai variasi skenario dengan parameter-parameter yang ada. Secara umum sistem paralel memiki dua buah komponen utama, yaitu komputer master dan komputer pemroses yang terhubung dalam suatu jaringan untuk berkomunikasi. Parameter komunikasi jaringan seperti jumlah komputer, delay pengiriman informasi dan status kerja komputer pemroses dijadikan acuan dalam pengujian kinerja sistem ini. Parameter jumlah komputer pemroses dilambangkan dengan n. Delay yang merupakan parameter selang waktu yang digunakan oleh komputer pemroses dalam mengirimkan setiap satu informasi indeks beban dilambangkan dengan d. Parameter status yang menunjukkan keadaan sistem operasi saat sistem pengukur beban ini sedang dijalankan dilambangkan dengan s. Terdapat dua buah nilai dari parameter ini yaitu app-run dan no-app. app-run adalah nilai parameter yang menunjukkan ada proses tambahan yang sedang berjalan saat perangkat
6 lunak ini dijalankan (foreground), sedangkan no-app merupakan nilai parameter yang merepresentasikan sistem operasi berada dalam keadaan background. Parameter beserta variasi yang digunakan pada pengujian kinerja sistem dapat dilihat pada Tabel 1.
Analisis Hasil Pengujian Setelah mendapatkan hasil berupa data dari tahapan pengujian sistem, dilakukan analisis terhadap data hasil pengujian. Analisis pada pengujian fungsional sistem dilakukan dengan melihat apakah fungsi-fungsi yang ada pada sistem berhasil dijalankan pada saat pengujian sistem berlangsung. Sementara itu, analisis pengujian kinerja sistem membahas bagaimana pengaruh sistem terhadap beberapa hal seperti nilai delta, throughput, dan validitas. Delta Delta merupakan rataan dari selisih waktu pengiriman setiap paket dari komputer pemroses ke komputer master. Nilai delta merepresentasikan aktualitas data yang diterima oleh komputer master dari komputer pemroses. Perhitungan nilai delta dapat dilihat pada persamaan berikut.
Ti merupakan waktu dari paket ke-i yang diterima oleh komputer master, sedangkan n adalah banyaknya paket informasi load dari setiap komputer pemroses yang diterima komputer master dalam satu kali pengiriman. Throughput Throughput adalah ukuran data yang diterima oleh komputer pemroses setiap satuan waktu. Nilai troughput dapat merepresentasikan kondisi lalu-lintas jaringan komputer cluster saat itu dan dapat diukur menggunakan beberapa aplikasi analisator paket pada jaringan. Validitas Validitas merupakan pengujian kinerja sistem yang menunjukkan aktualitas informasi dengan melihat perbandingan informasi load yang diterima komputer Tabel 1 Parameter pengujian kinerja sistem. Parameter
Nilai
Keterangan
n
5, 10, 15
Jumlah komputer yang digunakan
d
1,5,10
Delay pengiriman informasi (detik)
s
app-run
Aplikasi bersifat foreground dijalankan
no-app
Aplikasi bersifat foreground tidak dijalankan
7 master dengan perubahan informasi load pada komputer pemroses. Validitas berhubungan langsung dengan parameter delay pada pengujian kinerja sistem. Tingkat validitas sistem diukur dengan cara mengurangi nilai load yang diterima komputer master dengan rataan load yang diukur dalam rentang waktu sebesar delay. Semakin kecil perbedaan nilai yang telah diukur, semakin baik tingkat validitasnya. Hal tersebut memperlihatkan bahwa perubahan nilai load pada komputer pemroses tidak berbeda jauh dengan nilai load yang diterima pada komputer master. Ilustrasi perubahan load yang diterima komputer master dan load yang berubah pada komputer pemroses ditunjukkan pada Gambar 4.
HASIL DAN PEMBAHASAN Analisis Kebutuhan Sistem Sistem pengukur beban ini akan diterapkan pada sebuah sistem komputer cluster yang terhubung dalam sebuah jaringan yang terdiri atas komputer utama pengatur penugasan yang disebut komputer master dan komputer-komputer yang menjalankan pekerjaan yang disebut komputer pemroses. Untuk mendapatkan informasi load dari setiap komputer pemroses, sistem ini harus disertakan di setiap komputer pemroses itu sendiri. Selain itu, sistem pada komputer pemroses juga harus dapat melakukan beberapa hal sebagai berikut 1 Berkomunikasi dengan komputer master. 2 Mengukur load dan mengirimkan informasi ini kepada komputer master. Waktu
Komputer Pemroses
ti
loadi
ti+1
loadi+1
ti+2
loadi+2
ti+3
Loadi+3
ti+4
loadi+4
ti+5
loadi+5
Komputer Master
delay pengiriman
delay = 3 detik loadi
delay pengiriman
Loadi+3
Gambar 4 Ilustrasi perubahan load pada sistem
8 Sistem juga disertakan pada komputer master untuk mengatur informasi load yang datang dari setiap komputer master. Berikut adalah beberapa tugas utama sistem yang terdapat pada komputer master: 1 Mengelola komunikasi-komunikasi yang berasal dari komputer pemroses. 2 Memberi penugasan kepada setiap komputer pemroses untuk mengukur bebannya. 3 Menerima dan mengelola informasi beban setiap komputer pemroses. Pengelolaan informasi beban ini berupa penyimpanan ke dalam suatu berkas dan implementasi sebuah API untuk mengekstrak informasi load dalam berkas tersebut sesuai dengan kebutuhan. Perancangan Arsitektur Sistem Kedua sistem yang masing-masing terdapat pada komputer master dan komputer pemroses saling berkomunikasi pada saat sistem dijalankan. Oleh karena itu, diperlukan sebuah alur kerja yang menghubungkan kedua sistem agar dapat bekerja dengan baik dan juga rancangan kedua sistem ini. Berikut adalah alur kerja pada saat kedua sistem dijalankan dengan ilustrasi pada Gambar 5. Mulai
Komputer master membuka koneksi
Komputer master menunggu koneksi komputer pemroses Tidak
Komputer pemroses terhubung?
Ya Permintaan informasi load ke komputer pemroses
Komputer pemroses mengirim informasi ke komputer master setiap D detik
Ya
Komputer master menerima informasi & menyimpan ke dalam sebuah berkas
Komputer pemroses mengukur load
Komputer master aktif?
Tidak Selesai
Gambar 5 Alur kerja sistem
9 1
Komputer master membuka koneksi dan menunggu setiap komputer pemroses terhubung. 2 Sejumlah komputer pemroses melakukan koneksi ke komputer master. 3 Setelah komputer pemroses terhubung ke komputer master, komputer master menugaskan kepada komputer pemroses untuk mengirimkan nilai indeks beban (CPU, memori atau I/O) dengan selang waktu (delay) tertentu. 4 Komputer pemroses menerima penugasan dan mengirimkan nilai indeks beban ke komputer master. 5 Komputer master menerima informasi indeks beban dari setiap komputer pemroses dan menyimpannya ke dalam sebuah berkas. Selain rancangan alur kerja keseluruhan dari kedua sistem, pada tahapan ini juga dilakukan rancangan kerja terhadap masing-masing sistem, yaitu sistem pada komputer master dan komputer pemroses. Sistem pada komputer master disebut dengan Master, sedangkan sistem yang terdapat pada komputer pemroses disebut Mulai
Membuka Koneksi di suatu port
Menunggu sambungan Client Tidak
Client terhubung?
Ya Mengirimkan pesan permintaan informasi load
Menerima informasi load & membangkitkan berkas xml
Ya
Lanjutkan membaca informasi load
Selesai
Tidak
Gambar 6 Alur kerja Master
10 dengan Client. Master Master merupakan sistem yang lebih dahulu dijalankan sebelum sistem Client karena Master bertanggung jawab terhadap semua Client yang terhubung kepadanya. Berikut adalah rancangan langkah-langkah kerja yang dijalankan oleh Master dalam pengoperasiannya beserta penjelasan fungsi-fungsi di dalamnya. Alur kerja Master dapat dilihat pada Gambar 6. 1 Membuka sambungan Master membuka sambungan agar setiap Client dapat terhubung kepadanya. Master melakukannya dengan cara menginisialisasikan nomor port. Nomor port ini nantinya akan dijadikan alamat tujuan Client untuk tersambung kepada Master. Selanjutnya Master akan menunggu semua Client terhubung sebelum melakukan langkah selanjutnya. 2 Memberi penugasan Setelah Client terhubung kepada Master, Master akan melakukan penugasan dengan mengirimkan pesan kepada Client. Pesan penugasan ini berisikan informasi load yang akan diukur oleh Client dan delay pengiriman informasi load oleh setiap Client. Pesan penugasan informasi load direpresentasikan lewat kombinasi 3 buah angka. Angka 1 untuk informasi CPU, 2 untuk informasi memori, dan 3 untuk informasi I/O hard disk, sedangkan pesan delay pengiriman sendiri direpresentasikan lewat angka yang diterjemahkan dalam satuan detik oleh Client. 3 Menerima dan mengelola informasi load Setelah berhasil mengirimkan pesan penugasan kepada setiap Client, Master akan menerima pesan informasi load dari setiap Client dan mengelolanya dengan cara menyimpan informasi-informasi ini ke dalam berkas-berkas XML. Nama berkas XML yang diterima oleh komputer master disesuaikan dengan alamat IP masing-masing komputer pemroses dan waktu pengukuran load pada komputer pemroses dilakukan. Misalnya untuk komputer pemroses dengan IP 172.18.78.54 dan melakukan pengukuran pada 24 Oktober 2012 pukul 09:51:10, maka berkas akan diberi nama 172.18.78.54 2012-10-24 09.51.10.xml. Label-label yang terdapat pada berkas XML tersebut antara lain adalah CPU, MEMORY, IOREADS, dan IO_WRITES. Label
berisikan informasi tentang persentase CPU pada komputer pemroses yang masih tersisa. Sementara itu, label <MEMORY> berisikan persentase jumlah memori yang digunakaan saat
Gambar 7 Label-label indeks beban dalam suatu berkas XML
11 pengukuran load berlangsung. Label menampilkan nilai pembacaan pada disk dalam satuan Kilobytes sedangkan label menampilkan nilai penulisan aktual pada disk dalam satuan Kilobytes. Contoh label-label yang terdapat dalam sebuah berkas XML dapat dilihat pada Gambar 7. Client Client merupakan bagian sistem yang hanya dapat dijalankan setelah Master berhasil dijalankan. Berikut adalah langkah-langkah kerja dari Client yang juga diilustrasikan pada Gambar 8. 1 Melakukan sambungan ke Master Pada saat akan dijalankan, Client menyertakan alamat IP dari Master dan port yang sudah diinisialisasikan oleh Master. Setelah itu, Client akan menunggu beberapa saat hingga semua Client dari komputer pemroses yang lain berhasil terhubung. 2 Menerima pesan penugasan dan mengukur load Mulai
Menyambung ke Master lewat suatu port
Menunggu pesan penugasan Tidak Menerima pesan penugasan? Ya Mengirim pesan informasi load
Delay / jeda selama D detik
Ya
Master masih aktif? Tidak Selesai
Gambar 8 Alur kerja Client
12 Setelah semua Client lainnya terhubung dengan Master, setiap Client akan menerima pesan penugasan berupa informasi load yang akan diukur dan delay pengiriman informasi ini. Setelah berhasil menerima pesan penugasan, Client akan mengukur load dari komputer pemrosesnya dan mengirimkannya ke Master setiap rentang waktu sebesar delay. Application Programming Interface Application Programming Interface (API) juga akan dilengkapi pada bagian komputer master. Pengembangan API ini bertujuan memudahkan penggunaan informasi load dalam berkas XML pada algoritme penyeimbangan beban. API yang dikembangkan berupa pembaca nilai dari setiap label yang terdapat dalam berkas XML seperti CPU, memori dan I/O.
Implementasi Lingkungan Implementasi Lingkungan implementasi yang digunakan adalah sebuah komputer dengan spesifikasi: - Sistem operasi: Windows 7 Professional 32-bit - Perangkat keras: Intel® Core™ 2 Duo (2.1 GHz), memori 4 GB, dan hard drive 320 GB. Pengembangan Sistem Perangkat lunak ini dikembangkan menggunakan Java sebagai bahasa pemograman. Dalam pengembangannya dipilih sebuah library untuk membantu mendapatkan nilai indeks beban yaitu Hyperic SIGAR1 (System Information Gatherer And Reporter). Hyperic SIGAR sendiri merupakan cross-platform API yang memiliki kemampuan untuk memonitor beberapa informasi penting di dalam sebuah sistem operasi seperti swap, memori sistem, CPU, deteksi antarmuka jaringan dan juga network route table. Struktur Kelas Impelementasi menggunakan Java menghasilkan struktur kelas yang terdiri dari dua bagian utama yaitu Master dan Client. Bagian Master terdiri atas empat kelas utama antara lain: - newServerSide - ServerOne - ClientWorker - XmlGenerator Kelas newServerSide pada bagian Master merupakan kelas utama yang dieksekusi pada saat Master dijalankan. Kelas ini membangkitkan sebuah objek dari kelas ServerOne saat dijalankan dan menampilkan pesan utama pada antarmuka sistem Master. Kelas newServerSide juga menentukan banyak Client yang akan dikelola saat sistem berjalan dengan cara menambahkan argumen jumlah Client saat akan menjalankan sistem. 1
http://www.hyperic.com/products/sigar
13 Kelas ServerOne merupakan kelas yang mengontrol socket pada komputer master yang memiliki dua buah constructor dan beberapa method. Constructor pada kelas ini memiliki fungsi membangkitkan socket server pada port yang telah ditentukan pada awal eksekusi program. Setelah socket server berhasil dibangkitkan, pengoperasian socket ini dilakukan melalui beberapa method seperti method listenSocket(), broadcastMsg(), dan finalize(). Method listenSocket() memiliki fungsi menerima dan mengelola koneksi yang datang dari Client. Setiap koneksi dari Client akan direprentasikan dalam bentuk thread sebanyak jumlah Client yang terhubung. Setelah semua thread berhasil dibangkitkan, method listenSocket() akan memanggil method broadcastMsg(). Method broadcastMsg() bertugas mengirimkan pesan penugasan load yang akan diukur kepada setiap thread Client. Method terakhir yang terdapat pada kelas ServerOne adalah finalize() yang berfungsi untuk menutup socket server yang telah dijalankan. Kelas ClientWorker merupakan implementasi dari kelas Runnable yang terdapat pada Java. Kelas ini merepresentasikan koneksi yang terhubung pada socket server. Kelas ClientWorker merupakan kelas yang sebelumnya dibentuk menjadi thread pada kelas ServerOne. Di dalam kelas ini, terdapat beberapa method yang berfungsi untuk berkomunikasi dengan socket yang terdapat pada Client. Komunikasi yang terjadi berupa pengiriman penugasan load yaitu sendCommand() dan penerimaan data dari setiap Client. Setiap data yang diterima dari Client selanjutnya akan dibangkitkan dalam sebuah berkas XML dengan memanggil kelas XmlGenerator dan menjalankan method generate(). Kelas yang terakhir yang terdapat pada Master adalah kelas XmlGenerator. Kelas ini terdiri atas constructor dan method generate(). Method generate() berisi fungsi-fungsi yang dijalankan dalam membangkitkan sebuah berkas XML mulai dari membuat berkas XML itu sendiri hingga membangkitkan label-label dan mengisi nilai dari setiap label itu sendiri. Struktur kelas dari Master dapat dilihat pada Lampiran 1. Bagian sistem Client terdiri atas kelas NewClient dan kelas Client. Kelas NewClient merupakan kelas utama yang dieksekusi di awal pada saat program dijalankan. Selain constructor, kelas NewClient terdiri atas beberapa method seperti main method dan method clientProcess(). Main method berfungsi membangkitkan objek dari kelas Client dan mengatur argumen alamat IP dan port Master tujuan dari Client. Setelah berhasil dibangkitkan, main method dari kelas ini menjalankan method clientProcess(). Method clientProcess() berfungsi mengirimkan dan mengatur jeda pengiriman informasi load ke Master. Kelas kedua dari Client adalah kelas Client yang berperan dalam mengukur load. Ada constructor dan beberapa method di dalam kelas ini antara lain: - commandMode() - commandExec() - disconnect() - getCommandObject() - getMemoryLoad() - getCPULoad() - getIOUsage() - getDate() - sendData()
14 Method commandMode() dan commandExec() merupakan method yang berfungsi mengatur nilai load yang akan diukur sesuai dengan penugasan dari Master. Method ini kemudian menyimpan nilai-nilai load terserbut ke dalam sebuah array string. Method ini mengeksekusi method lain dalam kelas Client seperti getMemoryLoad(), get CPULoad(), getIOUsage(), dan getDate(). Method utama di dalam kelas Client adalah method-method yang bertugas mengukur load dari Client. Method ini mendapatkan nilai-nilai load menggunakan objek dari kelas Sigar yang telah dibangkitkan di awal eksekusi program. Methodmethod ini antara lain getCPULoad(), getIOUsage(), dan getMemory(). Method getCPULoad() bertugas mendapatkan nilai load dari CPU dengan cara mengeksekusi method getCPUPerc() dari objek kelas Sigar. Method getIOUsage() bertugas mendapatkan nilai IO hard disk dengan menjalankan method getDiskUsage() dari objek kelas Sigar dan method getMemoryLoad() untuk mendapatkan load memori yang digunakan lewat method getMem() milik kelas Sigar. Method lainnya seperti method disconnect() berfungsi untuk menutup socket Client yang telah dibuat pada awal Client dijalankan. Sedangkan method getTime() dan sendData() masing-masing berfungsi untuk mendapatkan waktu pengukuran load dan mengirimkan nilai-nilai load yang telah didapatkan melalui socket dalam bentuk array string. Class Diagram dari kelas Client dapat dilihat pada Lampiran 2. Bagian lain dari sistem yang telah dikembangkan pada penelitian ini adalah API pembaca nilai load dari berkas XML. Terdapat beberapa method dari kelas API yang telah dikembangkan antara lain - parseDOC() - getCPULoad() - getMEMORYLoad() - getIORead() - getIOWrite() - getTime() - getAllLoad() parseDOC() merupakan method utama yang berfungsi sebagai parser dari berkas yang akan dibaca. Pengguna hanya bisa mendapatkan nilai load dari berkas ini apabila telah menjalankan method parseDOC(). Method-method selanjutnya yang dilengkapi dalam API ini antara lain adalah getCPULoad() untuk membaca nilai load CPU, getMEMORYLoad() untuk membaca nilai load memori, dan getIORead() serta getIOWrite() untuk mendapatkan nilai load I/O. Method getTime() berfungsi untuk mendapatkan waktu pengukuran nilai-nilai load sedangkan method getAllLoad() berfungsi untuk mendapatkan keseluruhan nilai label yang terdapat dalam berkas ini. Keluaran dari setiap method ini selain parseDoc() merupakan array atau string tunggal.
Pengujian Sistem Perancangan Pengujian Dari tahapan ini, didapatkan dua buah rancangan pengujian sistem yaitu pengujian fungsional dan pengujian kinerja sistem. Di tahapan ini, juga ditentukan
15 variasi skenario yang dilakukan pada pengujian sistem. Variasi skenario dapat dilihat pada Tabel 2. Pengujian Sistem Pengujian sistem dibagi menjadi dua bagian yaitu pengujian fungsional dan pengujian kinerja sistem. Kedua pengujian ini dilakukan pada komputer master dan komputer pemroses dengan spesifikasi yang sama. Berikut adalah spesifikasi dari komputer yang digunakan - Sistem operasi : Windows XP Profession al 32-bit - Perangkat keras : Intel(R) Core(TM) i5 (4 cpu @2.1 GHz), memori 3128 MB, dan hard drive 320 GB. Pengujian sistem dilakukan di laboratorium komputer Departemen Ilmu Komputer, Institut Pertanian Bogor yang dilengkapi dengan jaringan. Gambar 9 memperlihatkan topologi jaringan yang digunakan dalam pengujian sistem. Pengujian Fungsional Pengujian fungsional sistem dilakukan dengan menjalankan sistem sesuai dengan alur kerja yang telah ditentukan. Fungsi-fungsi yang diujikan kinerjanya diambil dari fungsi yang terdapat pada rancangan arsitektur sistem. Untuk bisa berjalan dengan baik, aplikasi untuk kedua sistem ini membutuhkan Java Runtime Environment (JRE) dengan minimal versi 1.6. Tampilan keseluruhan proses yang telah dijalankan pada komputer master dapat dilihat pada Gambar 10. Sementara hasil pengujian pada komputer master dapat dilihat pada Tabel 3. Tahapan pada komputer pemroses dalam menjalankan sistem disajikan pada Gambar 11 Tabel 2 Variasi skenario pengujian kinerja No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
N (buah) 5 5 5 5 5 5 10 10 10 10 10 10 15 15 15 15 15 15
delay (detik) 1 5 10 1 5 10 1 5 10 1 5 10 1 5 10 1 5 10
status
no-app
app-run
no-app
app-run
no-app
app-run
16
Jaringan IPB
Switch
Komp. Master
Komp. Pemroses 1
Komp. Pemroses 2
...
Komp. Pemroses n
Gambar 9 Topologi jaringan pengujian Tabel 3 Hasil pengujian fungsional sistem pada komputer master No. 1 2 3
4
Fungsi Membuka port dan sambungan pada socket
Status Berhasil
Mengelola komputer pemroses yang sudah terhubung Menugaskan komputer pemroses untuk mengirimkan informasi load
Berhasil
Menerima informasi load dari setiap komputer dan menyimpan ke dalam berkas xml
Berhasil
Berhasil
Gambar 10 Antarmuka aplikasi pada komputer pemroses sedangkan hasil pengujian pada komputer pemroses dapat dilihat pada Tabel 4. Pengujian Kinerja Setiap kombinasi dilakukan dalam lima kali perulangan dengan waktu lima menit untuk setiap perulangannya. Untuk mendapatkan paket data dari
17
Gambar 11 Antarmuka aplikasi pada komputer master Tabel 4 Hasil pengujian fungsional pada komputer pemroses No. 1 2 3
Fungsi Melakukan koneksi ke komputer pemroses Menunggu dan menjalankan instruksi dari komputer master Menampilkan dan mengirim nilai indeks beban ke komputer pemroses
Status Berhasil Berhasil Berhasil
komunikasi antara komputer master dan komputer pemroses, dilakukan perekaman data menggunakan perangkat lunak Wireshark2 versi 1.8.2. Perekaman paket data menggunakan Wireshark ini sendiri dilakukan pada sisi komputer master. Hal ini dilakukan untuk melihat beban lalu lintas yang terhubung pada komputer master.
Analisis Hasil Pengujian Pengujian Kinerja Pengujian kinerja sistem dilakukan dengan berbagai kombinasi dari tiga parameter utama yaitu N atau banyaknya komputer pemroses yang terlibat, delay yang merupakan selang waktu pengiriman informasi yang dilakukan komputer pemroses dan status sebagai kondisi actual dari komputer pemroses. Data yang didapatkan dari hasil perekaman lalu lintas jaringan pada komputer master menggunakan Wireshark ini kemudian disaring untuk mendapatkan data yang yang lebih spesifik. Data spesifik yang dimaksud adalah data-data yang melewati port dan menuju ke alamat IP dari komputer master itu sendiri. Berikut adalah contoh filter yang digunakan pada Wireshark dalam penyaringan data. tcp.port == 4444 AND ip.dst == 172.18.78.92 2
http://www.wireshark.org/
18 Setelah penyaringan, dilakukan pengolahan untuk mendapatkan beberapa nilai seperti delta, throughput, dan validitas dari tiap rangkaian pengujian. Delta Hasil pengujian kinerja sistem dengan status no-app menghasilkan perbedaan nilai delta yang signifikan dengan jumlah komputer pemroses (n) sebanyak 5 buah dan delay (d) pengiriman load sebesar 1 dan 10 detik. Masingmasing nilai delta yang didapatkan pada kedua kondisi ini sebesar 0.17 detik dan 0.36 detik. Kedua nilai ini cukup jauh berbeda dibandingkan dengan hasil pengujian lainnya yang bernilai antara 0 dan 0.05 detik. Grafik pengujian kinerja sistem dengan status no-app dapat dilihat pada Gambar 12. Pengujian sistem kinerja sistem dengan status app-run menghasilkan pola data yang dapat dilihat pada Gambar 13. Pada skenario ini, status app-run, dihasilkan nilai delta yang meningkat seiring dengan peningkatan parameter delay dan jumlah komputer pemroses yang terlibat. Pada nilai delta sebesar 1 detik, nilai delta berkisar antara 0.06 hingga 0.17 detik. Pada delay sebesar 5 detik, nilai delta meningkat pada kisaran 0.08 hingga 0.24 detik untuk setiap kombinasi komputer pemroses sedangkan pada delay sebesar 10 detik, nilai delta juga meningkat menjadi 0.25 hingga 0.1 untuk masing-masing kombinasi jumlah komputer pemroses. Anomali yang ditunjukkan oleh nilai delta disebabkan oleh adanya paketpaket dari aplikasi lain yang masuk ke dalam jaringan pada saat pengujian sistem
Gambar 12 Grafik nilai delta status no-app
Gambar 13 Grafik nilai delta status app-run
19 berlangsung. Paket-paket itu antara lain berasal dari aplikasi lain NBNS dan LLMNR. NBNS merupakan protokol yang menyediakan layanan registrasi dengan nama unik bagi setiap komputer yang terhubung dalam sebuah jaringan dan menggunakan metode broadcast dalam pengoperasiannya . LLMNR adalah sebuah protokol dengan format paket berbasis DNS yang mengizinkan host IPv4 dan IPv6 melakukan penerjemahan nama untuk host-host dalam suatu link lokal. Paket yang masuk ini menyebabkan pengiriman data dari komputer pemroses ke komputer master mengalami penundaan dan mengakibatkan nilai delta menjadi besar. Contoh paket dari protokol lain ini dapat dilihat pada Gambar 14. Throughput Nilai throughput pada penelitian ini didapatkan menggunakan Wireshark dengan filter yang sama pada saat praproses data. Pada kombinasi delay pengiriman satu detik dengan status no-app, nilai throughput sekitar 300 bytes/detik untuk jumlah komputer pemroses sebanyak 5 buah dan nilai throughput sekitar 600 bytes/detik dan 900 bytes/detik untuk jumlah komputer pemroses sebanyak 10 dan 15 buah. Seiring dengan peningkatan parameter d, nilai throughput menurun sebesar d kali dari nilai throughput awal. Grafik nilai throughput dengan status no-app dapat dilihat pada Gambar 15. Nilai throughput dengan status app-run dan kombinasi parameter d dan n tidak jauh berbeda dengan status no-app dengan kombinasi parameter d dan n yang sama. Nilai throughput pada komputer pemroses (n) sebanyak 5, 10, dan 15 dengan delay pengiriman sebesar 1 detik masing-masing adalah sekitar 290 bytes/detik, 560 bytes/detik, dan 790 bytes/detik. Nilai throughput turun menjadi 60 bytes/detik, 120 bytes/detik, dan 190 bytes/detik pada jumlah komputer pemroses yang sama dengan delay sebesar 5 detik. Selanjutnya untuk delay
Gambar 14 Paket-paket protokol luar selain TCP
Gambar 15 Throughput pengujian sistem status no-app
20 sebesar 10 detik, nilai throughput turun menjadi sekitar 30 bytes/detik, 70 bytes/detik, dan 100 bytes/detik untuk masing- masing komputer pemroses n sebanyak 5, 10, dan 15 buah. Grafik nilai throughput dengan status app-run dapat dilihat pada Gambar 16. Dari hasil pengolahan data tersebut dapat dilihat bahwa nilai throughput menurun seiring dengan pertambahan delay pengiriman informasi load dan berkurang nya variabel jumlah komputer n walaupun dengan status yang berbeda. Validitas Parameter indeks beban atau load yang diukur pada validitas adalah persentase CPU, persentase memori yang digunakan, juga nilai I/O Read dan Write dalam satuan Kilobytes. Analisis nilai validitas ini dilakukan pada status noapp dan app-run dan nilai delay sebesar 5, 10 dan 15 detik. Hasil analisis validitas CPU ditampilkan pada Gambar 17. Dari hasil analisis pengujian, secara umum didapatkan peningkatan nilai validitas CPU seiring dengan kenaikan nilai parameter delay. Rentang nilai validitas CPU untuk status no-app adalah sekitar 0.8% hingga 1% dari load CPU sendiri sedangkan pada status app-run, nilai validitas CPU berkisar antara 2.5% dan 2.9%. Tetapi terdapat anomali penurunan nilai validitas CPU pada status app-run dengan delay sebesar 15 detik bila dibandingkan dengan pola nilai validitas pada status dan delay berbeda yang cenderung meningkat. Nilai validitas memori menunjukkan pola yang juga meningkat seiring
Gambar 16 Throughput pengujian sistem status app-run
Gambar 17 Validitas CPU
21 dengan meningkatnya rentang nilai pada parameter delay dari 5 detik hingga 15 detik. Pada status no-app, nilai validitas memori meningkat dari rentang 0.01% hingga 0.03% dari nilai load memori yang didapatkan pada pengujian, sedangkan pada status app-run, terjadi anomali penurunan nilai validitas memori pada parameter delay 15 detik yaitu 0.047% yang menurun dari 0.054% pada parameter delay 10 detik. Validitas memori dapat dilihat pada Gambar 18. Nilai validitas lainnya yang dianalisis adalah I/O harddisk yang meliputi read dan write dengan satuan kilobytes. Dari hasil analisis, didapatkan pola nilai validitas I/O harddisk yang meningkat untuk setiap peningkatan parameter delay. Nilai validitas I/O read harddisk untuk status no-app meningkat dari 0 kilobytes hingga 0.054 Kilobytes. Nilai validitas I/O read dengan status app-run sendiri merupakan nilai validitas yang paling kecil bila dibandingkan dengan validitas I/O read dan write dengan variasi status lainnya yaitu 0 Kilobytes. Sementara itu, nilai validitas I/O write pada status no-app meningkat dari 0.0 hingga 0.01 Kilobyte pada setiap kenaikan nilai parameter delay sedangkan pada status app-run, nilai validitas berkisar antara 0.02 hingga 0.06 Kilobyte. Gambar 19 menunjukkan grafik nilai validitas I/O read dan write pada hard disk. Hasil analisis validitas sangat bergantung pada spesifikasi komputer dimana sistem dijalankan. Selain itu, jenis-jenis aplikasi yang dijalankan pada saat pengujian juga mempengaruhi tingkat validitas informasi load yang diterima komputer master. Dari hasil pengujian dapat disimpulkan bahwa peningkatan nilai delay akan menurunkan validitas informasi sebuah load yang diterima komputer
Gambar 18 Validitas memori
Gambar 19 Validitas I/O harddisk
22 master dengan load yang berubah pada komputer pemroses.
SIMPULAN DAN SARAN Simpulan Simpulan dari penelitian ini antara lain: 1 Semakin banyak komputer pemroses yang terlibat dan semakin kecil delay pengiriman, semakin sibuk lingkungan jaringan sistem cluster itu. Hal ini ditunjukkan dengan nilai throughput yang didapatkan. 2 Sistem yang tidak terisolasi pada saat pengambilan data mengakibatkan nilai delta pada pengujian kinerja sistem belum bisa digunakan untuk pemilihan waktu pengiriman (delay) yang baik pada sistem yang sebenarnya. 3 Hasil pengujian validitas menunjukkan semakin besar nilai delay yang digunakan dalam mengirimkan informasi load akan menghasilkan tingkat validitas yang kecil, sehingga pemilihan waktu atau delay yang relatif kecil akan meningkatkan keakuratan informasi yang diterima komputer master.
Saran Saran untuk penelitian selanjutnya adalah: 1 Dilakukan pengembangan sistem yang dapat mengirimkan load berdasarkan perubahan nilai load yang signifikan sesuai dengan nilai threshold yang ditentukan. 2 Pengujian sistem dilakukan pada jaringan yang terisolasi sehingga dapat ditentukan pengiriman informasi load yang baik sesuai dengan banyaknya komputer pemroses yang ada pada sistem.
DAFTAR PUSTAKA Branco KRLJC, Ordonez EDM. 2006. Load indices – past, present and future. Di dalam: Marcin SS, Daniel H, Dominik S, Haeng-kon K, Tai-hoon K, Il-seok K, Geuk L, Peter MAS, editor. International Conference on Hybrid Information Technology; 2006 Nov 9-11; Cheju Island, Korea. Los Alamitos (US): IEEE. 2:206-214. Buyya R. 1999. High Performance Cluster Computing: Architectures and Systems. New Jersey (US): Prentice Hall. Buyya R, Thamarai S, Xingchen C. 2009. Object-Oriented Programming with Java: Essentials and Applications. New Delhi (IN): McGraw Hill. Rahmawan H, Gondokaryono YS. 2009. Simulasi Algoritma-algoritma penyeimbang beban statis [tesis]. Bandung (ID): Institut Teknologi Bandung.
23 Sharma S, Singh S, Sharma M. 2008. Performance analysis of load balancing algorithms. WASET. 14:269-272. Silberschatz A, Galvin PB, Gagne G. 2005. Operating System Concepts Ed ke-7. New Jersey (US): J Wiley. Xu C, Lau FCM. 1997. Load Balancing in Parallel Computers Theory and Practice. Massachusetts (US): Kluwer Academic Publishers.
24
Lampiran 1 Class Diagram Master
25
Lampiran 2 Class diagram Client
26
RIWAYAT HIDUP Penulis dilahirkan di Dumai pada tanggal 25 November 1990, anak pertama dari dua bersaudara dari pasangan Jahroni dan Nur’aini. Penulis lulus dari Sekolah Menengah Atas Negeri 1 Dumai tahun 2008 dan diterima di Departemen Ilmu Komputer Institut Pertanian Bogor melalui jalur Seleksi Nasional Masuk Perguruan Tinggi Negeri. Selama aktif sebagai mahasiswa, penulis juga aktif mengikuti organisasi Himpunan Mahasiswa Ilmu Komputer sebagai pengurus Divisi Komunitas Robotic dan sebagai ketua Unit Kegiatan Mahasiswa Bulutangkis IPB 2010. Penulis juga aktif di beberapa kegiatan kepanitian antara lain MPD Ilmu Komputer 2010, OR UKM Bulutangkis 2009-2011. Pada tahun 2011, penulis melaksanakan kegiatan praktik kerja lapang di Centre for Climate Risk and Opportunity Management in South East Asia and Pasific (CCROM SEAP) IPB.