pengembangan antarmuka pengguna berbasis … · sebagai jembatan penghubung antara pengguna dan...

31
PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS WEB UNTUK SISTEM KOMPUTER CLUSTER MELKI HASALI DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013

Upload: lethu

Post on 09-Mar-2019

240 views

Category:

Documents


0 download

TRANSCRIPT

PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS WEB

UNTUK SISTEM KOMPUTER CLUSTER

MELKI HASALI

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 berjudul Pengembangan

Antarmuka Pengguna Berbasis Web Untuk Sistem Komputer 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

Melki Hasali

NIM G64080041

ABSTRAK

MELKI HASALI. PENGEMBANGAN ANTARMUKA PENGGUNA

BERBASIS WEB UNTUK SISTEM KOMPUTER CLUSTER. Dibimbing oleh

HENDRA RAHMAWAN.

Proses penyelesaian algoritme dapat diselesaikan dengan berbagai cara,

salah satunya menggunakan komputer cluster. Dalam proses pengeksekusian

program, digunakan shell command sebagai jembatan penghubung antara

pengguna dan sistem serta MPI (Message Passing Interface) sebagai standar

library pemrograman paralel. Penelitian ini mengembangkan suatu sistem untuk

mempermudah pengguna dalam proses eksekusi program paralel pada komputer

cluster dengan menggunakan aplikasi berbasis web yang diimplementasikan

menggunakan library PHPseclib (PHP secure communication library) yang

berfungsi menghubungkan komunikasi antar komputer sehingga dapat melakukan

eksekusi pada banyak komputer secara paralel. Pengujian sistem menunjukkan

bahwa sistem ini dapat diakses secara multiuser pada registered user dan premium

user. Akan tetapi pada free user proses eksekusinya dilakukan secara bergiliran

dengan urutan first in first out (FIFO).

Kata kunci: PHPseclib, komputer cluster, pemrograman paralel.

ABSTRACT

MELKI HASALI. THE DEVELOPMENT OF WEB BASED USER INTERFACE

FOR CLUSTER COMPUTER SYSTEM. Supervised by HENDRA RAHMAWAN.

The process of solving algorithms can be resolved in many ways, one of

them is using a computer cluster. In the process of program execution, the shell

command is used as the bridge connector between user and system as well as the

MPI (Message Passing Interface) as the standard library for parallel

programming. This research developed a system to facilitate users in the process

of parallel program execution on a computer cluster using a web-based

application that was implemented using PHPseclib (the PHP secure

communications library). It served to connect the communication between

computers so it could conduct an execution on many computers in parallel way.

The testing of system showed that the system was accessible for multiuser in

registered user and premium. But the execution process was done in turns by the

order of first in first out (FIFO) for free user.

Keyword : MPI, computer cluster, paralel programing

Skripsi

sebagai salah satu syarat untuk memperoleh gelar

Sarjana Ilmu Komputer

pada

Departemen Ilmu Komputer

PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS WEB

UNTUK SISTEM KOMPUTER CLUSTER

MELKI HASALI

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

BOGOR

2013

Judul Skripsi : Pengembangan Antarmuka Pengguna Berbasis Web untuk Sistem

Komputer Cluster

Nama : Melki Hasali

NIM : G64080041

Disetujui oleh

Hendra Rahmawan, SKom, MT

Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi., MKom

Ketua Departemen

Tanggal Lulus:

Judul Skrips i: Pengcmbangan An tarmu ka Pengguna Berbas is Web untuk Sistcm Kornputer Cluster

Nama : Melki Hasa li NIM : G64080041

Disetujui oleh

/ Hendra Rahmawan, SKorn, MT

Pembimbing

Diketahui oleh

Tanggal Lulus: 0 6 FEB 2014

PRAKATA

Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas

segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang

dipilih dalam penelitian yang dilaksanakan sejak bulan Juni 2011 ini ialah dengan

judul Pengembangan Antarmuka Pengguna Berbasis Web Untuk Sistem

Komputer Cluster. Penyelesaian penelitian ini tidak luput dari dukungan dan

bantuan berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih

sebesar-besarnya kepada:

1. Kedua orang tua tercinta Ayahanda Y. Hasali dan Ibunda Ermi Rahayu,

kakak penulis Fredi Hasali, dan adik penulis Eunike Hasali dan segenap

keluarga besar penulis atas do’a, dukungan dan semangat yang tidak

pernah berhenti diberikan selama ini sehingga penulis dapat

menyelesaikan studi di Departemen Ilmu Komputer IPB.

2. Bapak Hendra Rahmawan S.Kom, M.T selaku dosen pembimbing. Bapak

Dr. Eng. Heru Sukoco, S.Si, M.T dan Ibu Ir. Sri Wahjuni, M.T selaku

dosen penguji, atas waktu, ilmu, saran, nasihat, dan masukan yang

diberikan.

3. Catur Purbo Yuwono dan Asrori Hudri Hariri atas segala bantuan dan ilmu

yang diberikan kepada penulis.

4. Irvan Ahadi, Bambang Wijonarko, dan Hanif Amal Robbani sebagai

teman satu bimbingan yang selalu memberikan motivasi kepada penulis.

5. Teman-teman Kementrian Pendidikan Halim, Muti, Wiggo, Eva, Fatkur,

Dewi, Laras, Ari, Sigit, Lala, Amal, Panji, Mbak Ratih, Kak Rico, serta

teman-teman penulis di BEM KM IPB.

6. Teman-teman seperjuangan Catur, Nanda, Dipo, Halim, Irvan, Asrori,

Putra, Fulsi, Ryan, Jaka, Elbie, Yansen, Panji, Dani, Dayat, Firman, dan

teman-teman penulis di Departemen Ilmu Komputer khususnya angkatan

45, serta teman-teman lain yang tidak dapat penulis sebutkan satu per satu

atas bantuan, motivasi, serta semangat kepada penulis.

7. Departemen Ilmu Komputer, Bapak/Ibu Dosen dan Tenaga Kependidikan

yang telah begitu banyak membantu baik selama pelaksanaan penelitian

ini maupun sebelumnya.

Kepada semua pihak lainnya yang telah memberikan kontribusi yang besar selama

pengerjaan penelitian ini yang tidak dapat disebutkan satu-persatu, penulis

ucapkan terima kasih banyak. Segala kesempurnaan hanya milik Allah Subhanahu

wata’ala. Semoga hasil penelitian ini dapat bermanfaat, Amin.

Bogor, Desember 2013

Melki Hasali

DAFTAR ISI

DAFTAR TABEL vi

DAFTAR GAMBAR vi

PENDAHULUAN 1

Latar Belakang 1

Tujuan Penelitian 1

Manfaat Penelitian 1

Ruang Lingkup Penelitian 2

TINJAUAN PUSTAKA 2

MPI (Message Passing Interface) 2

Network File System (NFS) – Server & Client 3

Komputer Paralel dan Komputer Cluster 3

METODE 5

Analisis 5

Perancangan 5

Implementasi 5

Pengujian Sistem 6

HASIL DAN PEMBAHASAN 6

Analisis 6

Perancangan 6

Implementasi 9

Pengujian Sistem 11

SIMPULAN DAN SARAN 14

Simpulan 14

Saran 14

DAFTAR PUSTAKA 15

LAMPIRAN 16

RIWAYAT HIDUP 18

DAFTAR TABEL

1 Tabel fungsional sistem ................................................................................... 6 2 Tabel pengujian sistem .................................................................................. 13

DAFTAR GAMBAR

Gambar 1 Contoh arsitektur komputer cluster (Kaminsky 2007) ...................... 4 Gambar 2 Metode penelitian ............................................................................... 5 Gambar 3 Contoh arsitektur sistem .................................................................... 7 Gambar 4 Contoh arsitektur sistem .................................................................... 7 Gambar 5 Alur kerja sistem antarmuka komputer cluster registered user ......... 8

Gambar 6 Alur kerja sistem antarmuka komputer cluster free user ................... 8 Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user ........... 9 Gambar 8 Use Case komputer cluster .............................................................. 10 Gambar 9 Use Case komputer cluster ............................................................... 10 Gambar 10 Antarmuka aplikasi pada free user ................................................ 12 Gambar 11 Antarmuka aplikasi pada premium user ........................................ 12 Gambar 12 Antarmuka aplikasi pada admin ..................................................... 13

DAFTAR LAMPIRAN

1 Program menghitung pendekatan nilai (pi) ................................................ 16 2 Program memanggil kata ”hello world” ........................................................ 17

PENDAHULUAN

Latar Belakang

Pada era ini, semakin banyak algoritme yang membutuhkan sumberdaya

ekstra dalam proses eksekusinya. Proses penyelesaian algoritme seperti ini dapat

diselesaikan dengan menggunakan sebuah komputer super, yaitu sebuah komputer

yang memiliki kemampuan berkali lipat dari komputer biasa tetapi memiliki

harga yang mahal. Sebagai alternatif dari super komputer, dapat dibangun

komputer berkinerja tinggi dengan biaya rendah yang disebut komputer cluster.

Komputer cluster adalah teknik mengelompokkan beberapa komputer (yang

banyak ditemui di pasaran) dalam sebuah jaringan, sehingga diperoleh sebuah

kesatuan sistem komputer yang memiliki kinerja yang lebih baik (Gropp 2003).

Salah satu standar pemrograman yang biasanya digunakan pada sistem

cluster adalah MPI. Sayangnya, penggunaan implementasi MPI dalam

pengoperasian komputer cluster kebanyakan masih menggunakan command line

interface. Dengan antarmuka tersebut, pengguna umum biasanya kesulitan dalam

menjalankan program paralel karena biasanya terdapat beberapa parameter yang

harus ditentukan. Parameter-parameter seperti jumlah proses, daftar nama

komputer dan nama program yang akan dijalankan harus dituliskan pada

command line. Untuk memudahkan pengguna, maka dalam penelitian ini akan

dikembangkan sebuah antarmuka pengguna berbasis web yang dapat membantu

pengguna dalam mengatur pengoperasian sistem paralel pada sebuah komputer

cluster. Sistem yang berbasiskan web akan lebih mudah diakses dari manapun dan

dari platform apapun. Hasil dari penelitian ini diharapkan dapat

diimplementasikan dengan baik di berbagai lingkungan cluster komputer. Selain

itu, dengan adanya sistem ini diharapkan penggunaan sistem cluster oleh umum

dapat lebih efisien.

Tujuan Penelitian

Tujuan dari penelitian ini adalah membangun aplikasi antarmuka pengguna

komputer paralel cluster yang dapat mengatur kebutuhan sistem berbasis web dan

meningkatkan kapasistas pengguna dalam menjalankan program.

Manfaat Penelitian

Manfaat dari penelitian ini diharapkan dapat mempermudah pengguna

dalam mengatur proses eksekusi algoritme paralel. Selain itu, dengan adanya

sistem antarmuka ini diharapkan dapat meningkatkan kapasistas pengguna dalam

melakukan pengeksekusian algoritme paralel.

2

Ruang Lingkup Penelitian

Ruang lingkup dari penelitian ini adalah :

1. Komputer yang digunakan sebagai host adalah komputer pribadi dengan

spesifikasi:

a. Processor AMD A6-3400M APU (4CPUs), ~1.4GHz

b. RAM 4 GB

c. Sistem Operasi Linux Ubuntu 12.04 i386

d. Hard drive 750GB

2. Komputer yang digunakan sebagai client sebanyak dua buah

menggunakan mesin virtual dengan aplikasi berupa Virtual Box dengan

memory sebesar 512 MB dan hard drive 8 GB dengan menggunakan

sistem operasi Linux Ubuntu 12.04.

3. Tiap komputer (node) terinstallasi dengan MPICH2-1.4.1 sebagai standar

library pengenalan dasar pemrograman sistem paralel dan menggunakan

NFS-Server sebagai layanan berbagi file antar node.

4. Proses kompilasi berkas menggunakan MPI dan GCC, dan sistem tidak

dapat menerima perintah std.in.

TINJAUAN PUSTAKA

MPI (Message Passing Interface)

MPI adalah sebuah standar library pengenalan dasar pemrograman sistem

paralel (Gropp 2003). MPI dapat digunakan dengan berbagai bahasa

pemrograman seperti bahasa C dan Fortran. Operasi utama yang dilakukan oleh

standar MPI adalah:

1. Point-to-point communication

MPI Point-to-point Communication adalah komunikasi antar dua proses, yaitu

proses yang bertugas mengirim data atau operasi, dan proses lainnya yang

bertugas menerima data atau operasi tersebut.

2. Collective Communication

MPI Collective Communication melakukan komunikasi yang dipanggil oleh

semua proses dalam communicator dan melibatkan seluruh proses tersebut

(Quinn 2004)

MPI memiliki beberapa implementasi yang sering digunakan. Salah satunya

adalah MPICH (Message Passing Interface Chameleon). MPICH merupakan salah

satu library yang mengimplementasi MPI, yang merupakan standar message-

passing untuk aplikasi yang membutuhkan distributed-memory pada komputasi

paralel. MPICH berguna untuk manajemen sistem komunikasi pada komputer

paralel. MPICH dapat digunakan pada beberapa platform sistem operasi, seperti

Linux, Mac OS X, dan Microsoft Windows. Selain MPICH, juga terdapat

beberapa implementasi MPI seperti OpenMPI, LAM-MPI, MPI-MS, dan

sebagainya.

3

Network File System (NFS) – Server & Client

Network File System (NFS) adalah salah satu layanan (service) yang dapat

memungkinkan suatu komputer untuk melakukan proses mount suatu direktori

pada komputer lain. Dengan menggunakan NFS, suatu komputer dapat berbagi

file, bahkan program antar sesama client yang terhubung dalam server utama. NFS

juga memungkinkan suatu komputer untuk melakukan pengaktifan/penggunaan

(mounting) peralatan pada komputer lain yang terhubung ke jaringan.

Terdapat dua versi NFS yaitu NFS versi 2 (NFSv2) dan NFS versi 3

(NFSv3). Pada NFSv2 menggunakan protokol UDP untuk melakukan koneksi

antar server dan client, sedangkan NFSv3 menggunakan protokol UDP dan TCP

sekaligus. NFS menggunakan Remote Procedure Call (RPC) untuk mengarahkan

koneksi antara client dengan server. Pada sistem operasi Linux, RPC adalah

layanan yang dikendalikan oleh suatu program yang disebut portmap. Untuk

melakukan proses sharing dan mount pada NFS (Steven 2007).

Komputer Paralel dan Komputer Cluster

Komputer paralel adalah kumpulan dari elemen pemroses yang

berkomunikasi dan bekerjasama untuk menyelesaikan masalah secara efisien

(Flynn 1972). Arsitektur paralel dibagi berdasarkan taksonomi Flynn. Taksonomi

Flynn adalah sebuah klasifikasi arsitektur komputer yang dibuat berdasarkan

jumlah instruksi yang berjalan simultan dan konkruen, serta aliran data yang

diprosesnya. Dalam taksonomi Flynn, arsitektur komputer dibagi menjadi empat

kelas diantaranya:

1. Single Instruction Single Data Stream (SISD)

Pada arsitektur ini, komputer tidak melakukan paralelisasi terhadap

instruksi atau data. Contoh dari kelas ini adalah uniprocessor

2. Multiple Instruction Single Data Stream (MISD)

Pada arsitektur ini, sebuah komputer dapat melakukan banyak instruksi

pada satu aliran data. Kelas ini tidak memiliki contoh karena hanya

berupa purwarupa (prototype) dan tidak pernah dirilis secara massal.

3. Single Instruction Multiple Data Stream (SIMD)

Komputer pada arsitektur ini memproses banyak aliran data dalam satu

instruksi, sehingga operasi yang dilakukan adalah operasi paralel.

Contoh dari kelas ini adalah array processor dan vector processor.

4. Multiple Instruction Multiple Data Stream (MIMD)

Komputer yang memiliki beberapa prosesor yang bersifat autonomous

yang mampui melakukan instruksi yang berbeda pada data yang berbeda.

Contoh dari kelas ini adalah shared memory dan distributed memory.

Pada taksonomi arsitektur komputer di atas, pendekatan hardware yang

digunakan untuk komputer paralel terdapat pada arsitektur keempat yaitu MIMD.

Arsitektur ini dibagi menjadi dua jenis yaitu shared memory dan distributed

memory. Pada arsitektur shared memory, beberapa CPU menggunakan satu

resource memori secara bersama-sama. Sedangkan pada arsitektur distributed

memory, masing-masing CPU memiliki memori yang tersebar dan terintegrasi

dalam satu jaringan komputer.

4

Komputer cluster adalah kumpulan beberapa komputer yang berada dalam

sebuah jaringan, sehingga diperoleh sebuah kesatuan sistem komputer yang

memiliki kinerja lebih baik dalam memberikan suatu fungsi layanan tertentu atau

menjalankan algoritme paralel (Gropp 2003). Sesuai dengan definisinya,

komputer cluster berguna untuk memberikan layanan seperti manajemen server,

layanan web, email, serta untuk menjalankan algoritme paralel seperti melakukan

perhitungan ilmiah, simulasi, dan lainnya. Kaminsky, 2007 menggambarkan

contoh arsitektur komputer cluster yang dapat dilihat pada Gambar 1.

Clustering dirancang untuk meningkatkan kemampuan kinerja dari

komputer-komputer yang berada dalam satu jaringan untuk dapat meningkatkan

hal-hal berikut:

1. Toleransi Kesalahan (Fault Tolerance)

Hal ini dapat menyebabkan node lain akan mengambil alih kerja node

utama ketika node tersebut mengalami kegagalan. Client tidak akan

melihat pergantian peran ini sehingga downtime dapat dikurangi secara

drastis.

2. Penyerataan Beban (Load Balancing)

Mendistribusikan beban satu node ke semua node anggota cluster.

Sehingga kinerja dan skalabilitas node utama menjadi lebih baik.

Jenis-jenis Cluster

Karakteristik utama dari clustering adalah bagaimana suatu task ditangani

secara bersama-sama. Inilah yang membedakan cluster dengan mekanisme

jaringan komputer biasa yang menjalankan program client-server. Komputer

cluster difokuskan pada mekanisme sistem operasi dan hardware untuk

menyatukan sumber daya setiap node (Armbrust 2010). Komputer cluster dibagi

menjadi dua jenis yaitu:

1. High Performance Computing (HPC)

Secara umum, jenis cluster HPC ditujukan pada bagaimana suatu proses

komputasi dapat diakselerasi. Dengan demikian proses penyelesaian task

dapat diselesaikan lebih cepat.

2. High Availability (HA)

Secara umum jenis cluster ini ditujukan agar program yang dijalankan di

atasnya bisa terus menjalankan, sekalipun salah satu node hang atau down.

Contohnya adalah web server Apache yang diset dengan suatu redirector,

sehingga jika salah satu server down, server lain bisa mengambil alih.

Gambar 1 Contoh arsitektur komputer cluster (Kaminsky 2007)

5

METODE

Penelitian ini dilakukan dengan beberapa tahapan proses, yaitu analisis,

perancangan, implementasi, dan pengujian. Proses tersebut dapat dilihat pada

Gambar 2.

Analisis

Tahap analisis merupakan tahap awal dilakukannya penelitian yaitu tahapan

untuk mengetahui kebutuhan dari sistem yang akan dibuat. Tahap ini dilakukan

untuk merumuskan spesifikasi kebutuhan perangkat lunak, di antaranya adalah

spesifikasi pengguna, kebutuhan data dan kebutuhan fungsional sistem. Aktivitas

yang dilakukan pada tahap ini adalah menganalisis kebutuhan-kebutuhan yang

akan diimplementasikan pada sistem sehingga menghasilkan tabel fungsional

sistem.

Perancangan

Pada tahap perancangan, terdiri atas perancangan perancangan database dan

perancangan alur kerja sistem sistem, yang bertujuan mengidentifikasi dan

mendeskripsikan data yang dibutuhkan oleh pengguna dalam sistem. Selain itu,

juga dibuat use case diagram pengguna serta model data konseptual yang akan

mendukung perbedaan kebutuhan informasi dari beberapa jenis pengguna dalam

sistem. Pada tahapan ini, sistem dibagi menjadi beberapa jenis pengguna, yang

bertujuan untuk mengatur pengalokasian komputer yang dapat digunakan oleh

aplikasi tersebut.

Implementasi

Secara umum, tahapan ini merupakan pembuatan sistem yang telah

dirancang dalam tahapan perancangan alur kerja sistem menjadi sebuah sistem.

Selain itu, beberapa hal penting dalam mengembangkan sistem seperti lingkungan

pengembangan sistem, bahasa pemrograman, dan beberapa hal terkait library

yang akan digunakan pada tahapan ini.

Gambar 2 Metode penelitian

6

Pengujian Sistem

Tahapan pengujian sistem bertujuan untuk melihat apakah sistem dapat

berjalan sesuai fungsinya melalui berbagai parameter dan skenario pengujian.

Tahap ini merupakan tahap akhir setelah sistem selesai diimplementasikan. Tahap

pengujian sistem bertujuan untuk menguji sistem dapat berjalan sesuai dengan

fungsi yang telah dirancang diawal tahap pengembangan. Skenario pengujian

sistem ini diambil dari tabel fungsional sistem.

HASIL DAN PEMBAHASAN

Analisis

Sistem aplikasi web komputer cluster ini akan diterapkan pada head node

komputer cluster yang terhubung dalam sebuah jaringan dengan dua buah node

pembantu. Sistem memiliki tiga tipe pengguna diantaranya free user, registered

user, dan premium user. Setiap pengguna memiliki jumlah akses komputer dan

fungsionalitas pengguna yang berbeda-beda. Pada free user, pengguna hanya

dapat mengakses satu buah komputer, registered user dapat mengakses dua buah

komputer, sedangkan premium user dapat mengakses seluruh komputer. Selain itu,

terdapat administrator yang bertugas untuk mengatur manajemen sistem. Pada

tahap ini dibuat sebuah tabel fungsional sistem yang dapat dilihat pada Tabel 1.

Perancangan

Tahapan ini meliputi perancangan database, alur kerja, dan use case

diagram sistem yang berguna untuk menyimpan data pengguna yang dibutuhkan

oleh sistem dan perancangan alur kerja sistem. Perancangan database pada

tahapan ini bertujuan untuk mengidentifikasi dan mendeskripsikan data yang

dibutuhkan berupa jenis dan informasi dari pengguna sistem. Ilustrasi rancangan

database dapat dilihat pada Gambar 3.

Tabel 1

No. Kode Fungsi

1 CLTR-01 Melakukan login pada sistem

2 CLTR-02 Memasukkan berkas yang akan diproses ke dalam

komputer cluster

3 CLTR-03 Memilih jumlah komputer pemroses pada user

tertentu

4 CLTR-04 Melakukan proses eksekusi program

5 CLTR-05 Mengedit tipe pengguna

6 CLTR-06 Mengedit info pengguna

Tabel 1 Tabel Fungsional Sistem

7

Secara umum, alur kerja sistem antarmuka ini, terdiri dari beberapa langkah

sebagai berikut.

1. Pengguna mengakses halaman web lalu mengunggah berkas program ke

dalam sistem.

2. Komputer utama menerima berkas program yang dimasukkan lalu

menyalurkannya ke setiap komputer pembantu (client).

3. Pengguna memilih jumlah komputer yang akan digunakan dalam

pengeksekusian program.

4. Komputer cluster mengeksekusi program sesuai dengan input yang

dimasukkan oleh user.

5. Komputer cluster selesai mengeksekusi program dan mengirim hasil

eksekusi program ke web.

6. User memperoleh hasil eksekusi program.

Gambar 4 Contoh arsitektur sistem

Gambar 4 Contoh arsitektur sistem

Gambar 3 Rancangan database sistem

Gambar 3 Contoh arsitektur sistem

8

Sistem ini dibangun dengan arsitektur menggunakan tiga buah komputer

dengan nama node 1, node 2, dan node 3 yang saling terhubung satu sama lain

menggunakan nfs-server yang dapat dilihat pada Gambar 4. Sistem ini terbagi

menjadi tiga jenis pengguna yaitu free user, registered user dan premium user.

Free user dapat langsung melakukan proses eksekusi tanpa harus melakukan login.

Sedangkan registered user dan premium user harus melakukan login terlebih

dahulu sebelum menggunakan sistem. Langkah kerja dari sistem antarmuka

komputer cluster free user, registered, dan premium user diilustrasikan pada

Gambar 5, Gambar 6, dan Gambar 7.

Registered user adalah anggota yang terdaftar ke dalam sistem secara gratis

(free), sedangkan premium user adalah anggota yang memberikan donasi pada

pemilik sistem agar sistem ini dapat dikembangkan dikemudian hari. Pembeda

antar jenis pengguna dan jenis member adalah pengaturan jumlah penggunaan

komputer dalam pengeksekusian program. Pada free user, pengguna hanya dapat

menggunakan satu unit komputer dengan jumlah proses maksimal sebanyak

jumlah core pada CPU. Registered member dapat melakukan proses eksekusi

Gambar 5 Alur kerja sistem antarmuka komputer cluster free user

Gambar 6 Alur kerja sistem antarmuka komputer cluster registered user

Gambar 6 Alur kerja sistem antarmuka komputer cluster free user

Gambar 5 Alur kerja sistem antarmuka komputer cluster registered user

9

dengan menggunakan dua buah komputer dengan jumlah core keseluruhan proses

pada tiap komputer. Sedangkan premium member diperbolehkan menggunakan

seluruh komputer dengan jumlah maksimal proses pada sistem. Selain pengguna

di atas, juga terdapat administrator pada sistem ini yang berguna untuk mengatur

manajemen sistem ini agar dapat berjalan dengan baik. Administrator dapat

melakukan hak penuh terhadap masing-masing pengguna dan jenis pengguna. Di

samping itu, admin juga dapat melakukan proses eksekusi program dengan

menggunakan keseluruhan node. Use case diagram sistem ini dapat dilihat pada

Gambar 8.

Implementasi

Perangkat lunak ini dikembangkan menggunakan PHP sebagai bahasa

pemrograman. Selain itu sistem ini menggunakan MPICH2 versi 1.4.1 sebagai

standar library pengenalan pemrograman paralel pada komputer cluster yang

berfungsi untuk mengeksekusi program dengan menggunakan bahasa C, C++, dan

fortran. Sistem melakukan compile program melalui PHP dengan menggunakan

shell command berupa perintah exec.

Pada implementasi komputer cluster, didefinisikan seluruh hostnames dan

IP address dalam direktori /etc/hosts yaitu

127.0.0.1 localhost

127.0.0.1 node0

192.168.1.1 node0

192.168.1.2 node1

192.168.1.3 node2

Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user

10

Pendefinisian hostnames berguna untuk mempermudah sistem dalam proses

pemanggilan komputer yang akan digunakan untuk melakukan eksekusi program

sehingga tidak perlu dimasukkan lagi IP address nya. Pada komputer cluster

dibutuhkan nfs-server dan nfs-client yang bertujuan untuk mempermudah dalam

proses berbagi berkas yang tersimpan pada komputer utama sehingga dapat

diakses oleh komputer pemroses lainnya tanpa harus melakukan penyalinan

berkas ke seluruh node dengan cara memasukkan perintah dalam terminal seperti

Pada tiap komputer pembantu dilakukan mounting direktori mirror pada komputer

utama dengan menambahkan perintah pada berkas /etc/fstab berupa

Gambar 8 Use Case komputer cluster

melki@node0:~$ sudo mkdir /mirror

melki@node0:~$ echo “/mirror &(rw,sync)” |

sudo tee –a /etc/hosts

melki@node0:~$ sudo service nfs-kernel-server restart

node0:/mirror /mirror nfs

Gambar 8 Use Case komputer cluster

11

Selain penggunaan nfs-server, digunakan juga SSH Server berupa OpenSSH

yang bertujuan agar keseluruhan node dapat melakukan kerja sama dengan cara

memasukkan kunci public sehingga tidak perlu melakukan melakukan login antar

komputer. Sistem ini bekerja dengan menggunakan MPICH sebagai standard

library pemrosesan parallel. MPICH ini memiliki binding standar berupa C++ dan

fortran 77 serta fortran 90, sehingga mendukung banyak jenis environment

termasuk klaster-klaster Symmetric Multi Processing (SMP) dan komputer

parallel.

Pada sistem antarmuka komputer cluster digunakan PHP: Hypertext

Preprocessor sebagai bahasa pemrogramannya. Selain itu dipilih sebuah library

untuk dapat memperoleh akses kunci publik tanpa harus melakukan login antar

node melalui PHP yaitu phpseclib (PHP Secure Communication Library).

Phpseclib sendiri merupakan salah satu library yang memiliki kemampuan untuk

melakukan berbagai komunikasi melalui SSH, SFTP, aritmatika presisi dan

berbagai macam kriptografi.

Phpseclib berfungsi untuk mengecek ketersediaan komputer pemroses serta

menghubungkan koneksi antar komputer melalui apache server, sehingga proses

kerja komputer paralel dapat bekerja sama. Pada sistem ini juga dibuat sebuah

machinefile secara otomatis, sesuai dengan parameter yang dimasukkan oleh

pengguna sistem. Machinefile berfungsi untuk mengatur jumlah proses yang

diterima atau pembagian beban yang diterima oleh setiap komputer. Pada

umumnya machinefile berisikan perintah berupa nama komputer dan jumlah

proses yang diterima oleh komputer tersebut. Nama komputer diambil dari

direktori /etc/hosts yang berisikan IP address dan nama dari tiap komputer.

Contoh isi dari machinefile dapat dilihat sebagai berikut

Pada sistem ini dibuat informasi tiap pengguna secara terpisah dan

machinefile yang dipetakan ke masing-masing pengguna. Hal ini dilakukan agar

sistem dapat melakukan proses eksekusi secara multi tasking.

Pengujian Sistem

Pengujian Fungsional

Pengujian fungsional sistem dilakukan dengan menjalankan sistem sesuai

dengan alur kerja yang ditentukan. Fungsi-fungsi yang diujikan diambil dari

rancangan arsitektur sistem komputer cluster. Tampilan keseluruhan antarmuka

sistem yang telah dijalankan pada premium user dapat dilihat pada Gambar 9.

Pada registered user tampilan antarmuka sistem dapat dilihat pada Gambar 10.

Sedangkan pada free user tampilan antarmuka sistem dapat dilihat pada Gambar

11.

node0:4 #jumlah proses pada node 0 sebanyak 4 proses

node1:3 #jumlah proses pada node 1 sebanyak 3 proses

node2 #jumlah proses pada node 2 sebanyak 1 proses

12

Selain berbagai user, juga terdapat admin dalam sistem antarmuka komputer

cluster. Admin berfungsi sebagai pengatur user dan dapat mengakses sistem ini

dengan akses penuh pada keseluruhan node komputer. Tampilan antarmuka dari

admin dapat dilihat pada Gambar 12. Hasil pengujian sistem dapat dilihat pada

Tabel 2.

Pengujian Kinerja Sistem

Pada pengujian kinerja sistem dilakukan beraneka kombinasi pengujian

untuk mengecek kestabilan dan validitas sistem yang digunakan agar tidak terjadi

crash system ketika digunakan oleh banyak pengguna. Pengujian sistem dilakukan

dengan menggunakan dua buah laptop yang mengakses sistem secara bersamaan

untuk mengetahui hasil urutan proses yang dilakukan agar hasil dari proses sistem

tidak tertukar dan terputus antar pengguna. Pada komputer pertama dimasukkan

Gambar 9 Antarmuka aplikasi pada premium user

Gambar 10 Antarmuka aplikasi pada registered user

Gambar 11 Antarmuka aplikasi pada free user

Gambar 11 Antarmuka aplikasi pada premium user

Gambar 10 Antarmuka aplikasi pada free user

13

sebuah program C yang berisikan syntax menghitung pendekatan nilai (pi) yang

terlampir pada Lampiran 1.

Pada komputer kedua, dimasukkan sebuah program C++ berisikan syntax

memanggil kata “Hello World” sebanyak jumlah proses yang dimasukkan yang

terlampir pada Lampiran 2.

Data yang dimasukkan ke dalam sistem secara bersamaan oleh dua user

kemudian diolah oleh sistem. Hasil output dari sistem dapat berjalan secara

simultan pada user yang terdaftar pada sistem. Hal ini dapat dilakukan karena

setiap user memiliki user log masing-masing yang berisikan berkas history

pemrosesan dan machinefile tiap pengguna. Pada free user, proses dijalankan

berdasarkan alur first in first out (FIFO) yang disebabkan karena pengguna tidak

memiliki informasi yang terdaftar dalam sistem. Dalam sistem ini semua jumlah

proses eksekusi paralel tiap node diatur oleh machinefile dengan proses maksimal

sejumlah banyaknya core pada CPU komputer. Pada sistem ini terdapat tiga buah

node dengan masing-masing node memiliki empat buah, satu buah, dan satu buah

core CPU, sehingga menghasilkan jumlah proses keseluruhan node sebesar 6

proses. Akan tetapi apabila user memasukkan jumlah proses eksekusi melebihi

batas proses maksimal, maka machinefile akan mengalihkan sisa prosesnya

kembali ke komputer utama sesuai dari isi machinefile tersebut.

Gambar 12 Antarmuka aplikasi pada admin

Tabel 2 Tabel pengujian sistem

No. Kode Fungsi Status

1 CLTR-01 Melakukan login pada sistem Berhasil

2 CLTR-02 Memasukkan berkas yang akan diproses ke dalam

komputer cluster

Berhasil

3 CLTR-03 Memilih jumlah komputer pemroses pada user

tertentu

Berhasil

4 CLTR-04 Melakukan proses eksekusi program Berhasil

5 CLTR-05 Mengedit tipe pengguna Berhasil

6 CLTR-06 Mengedit info pengguna Berhasil

Gambar 12 Antarmuka aplikasi pada admin

14

SIMPULAN DAN SARAN

Simpulan

Sistem ini dapat membantu pengguna dalam memudahkan proses eksekusi

program sistem paralel menggunakan komputer cluster, tanpa harus melakukan

pengaturan pada command line sehingga lebih mempercepat proses eksekusi.

Sistem ini dapat melakukan eksekusi program dengan bahasa C (.c), C++ (.cpp)

dan fortran (.f) , serta memiliki tiga tingkatan pengguna yaitu free user, registered

user, dan premium user. Pada registered dan premium user, pengguna memiliki

akun dalam sistem yang menyimpan informasi dan log aktivitas pengguna,

sehingga sistem dapat menyimpan hasil eksekusi program ke dalam log aktivitas

ketika pengguna sedang offline, serta sistem juga mengirimkan hasil eksekusi ke

email pengguna. Sistem ini melakukan proses eksekusi secara bersamaan (multi

user) antar pengguna pada registered user dan premium user, namun pada free

user sistem melakukan eksekusi secara first in first out (FIFO) .

Saran

Saran untuk penelitian selanjutnya adalah:

1. Dilakukan pengembangan sistem yang bisa melakukan penambahan

client secara otomatis, sehingga tidak perlu mengubah/menambahkan

source code pada sistem.

2. Dilakukan pengembangan sistem agar dapat mendukung beberapa

platform seperti OpenMP, CUDA,dan lainnya.

3. Dilakukan pengembangan sistem agar bisa melakukan checkpointing

sehingga sistem dapat melanjutkan eksekusi program apabila terjadi

server-down.

15

DAFTAR PUSTAKA

Armbrust, Michael. 2010. A View of Cloud Computing. Communication of the

ACM 53(4), 50-58

Beekhof, Andrew. 2010. Pacemaker 1.1 Cluster from Scratch. Melbourne:

University of Melbourne

Dunnweber, Jan & Bennoit Anne. 2005. Integrating MPI-Skeleton with Web

Services for Grid Programming. Munster: University of Munster

Flynn, Michael J. 1972. Some Computer Organizations and Their Effectivenes.

Computers, IEEE transactions on, 100(9), 948-960

French, Steven M. 2007. A Network File System is Born: Comparison of SMB2,

CIFS, and NFS. In Linux Symposium.

Gropp, William. 2003. Beowulf Cluster Computing with Linux. Cambridge: The

MIT Press

Kaminsky, Alan. 2007. Parallel Java Library. New York: Rochester Institute of

Technology

Sloan, Joseph. 2004. High Performance Linux Cluster with OSCAR, Rocks,

OpenMosix, and MPI. California: O’Reilly Media Inc

Quinn, Michael. 2004. Parallel Programming in C With MPI and Openmp. New

York: McGraw-Hill Inc

16

LAMPIRAN

Lampiran 1 Program menghitung pendekatan nilai (pi)

#include "mpi.h"

#include <stdio.h>

#include <math.h>

double f( double );

double f( double a)

{

return (4.0 / (1.0 + a*a));

}

int main( int argc, char *argv[] )

{

int done = 0, n, myid, numprocs, i;

double PI25DT = 3.141592653589793238462643;

double mypi, pi, h, sum, x;

double startwtime=0.0, endwtime;

int namelen;

char processor_name[MPI_MAX_PROCESSOR_NAME];

MPI_Init(&argc,&argv);

MPI_Comm_size(MPI_COMM_WORLD,&numprocs);

MPI_Comm_rank(MPI_COMM_WORLD,&myid);

MPI_Get_processor_name(processor_name,&namelen);

fprintf(stderr,"Process %d on %s\n",

myid, processor_name);

n = 0;

while (!done)

{

if (myid == 0)

{

if (n==0) n=100; else n=0;

startwtime = MPI_Wtime();

}

MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);

if (n == 0)

done = 1;

else

{

h = 1.0 / (double) n;

sum = 0.0;

for (i = myid + 1; i <= n; i += numprocs)

{

x = h * ((double)i - 0.5);

sum += f(x);

}

mypi = h * sum;

17

Lampiran 2 Program memanggil kata ”hello world”

MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE,

MPI_SUM, 0, MPI_COMM_WORLD);

if (myid == 0)

{

printf("pi is approximately %.16f,

Error is %.16f\n",

pi, fabs(pi - PI25DT));

endwtime = MPI_Wtime();

printf("wall clock time = %f\n",

endwtime-startwtime);

}

}

}

MPI_Finalize();

return 0;

}

#include <iostream>

using namespace std;

int main ()

{

cout << "Hello World!";

return 0;

}

18

RIWAYAT HIDUP

Penulis dilahirkan di Jakarta pada tanggan 20 Juni 1991, anak kedua dari

tiga bersaudara dari pasangan Y. Hasali dan Ermi Rahayu. Penulis lulus dari

Sekolah Menengah Atas Negeri 1 Tanjungpandan Belitung pada tahun 2008 dan

diterima di Departemen Ilmu Komputer Institut Pertanian Bogor melalui jalur

Undangan Seleksi Masuk IPB.

Selama menjadi mahasiswa, penulis aktif mengikuti organisasi Badan

Eksekutif Mahasiswa dalam Kementrian Pendidikan. Penulis juga aktif dalam

beberapa kegiatan kepanitiaan dalam kampus maupun luar kampus seperti Masa

Pengenalan Departemen Ilmu Komputer 2010, IT Today 2010, IPB Deducation

for Education 2010, 2011 dan 2012, International Scholarship Education Expo

2010, 2011, dan 2012, dan Anggota pameran inovatif Pekan Ilmiah Mahasiswa

Nasional (PIMNAS) XXV di Universitas Muhammadiyah Yogyakarta pada tahun

2012 dan Pekan Ilmiah Mahasiswa Nasional (PIMNAS) XXVI di Universitas

Mataram tahun 2013. Penulis melaksanakan kegiatan praktik kerja lapang di PT.

Pertamina Persero dengan judul Sistem Administrasi Pelayanan Oil Clinic.