• Tidak ada hasil yang ditemukan

Pengembangan Sistem Pengukur Indeks Beban untuk Sistem Penyeimbang Beban pada Komputer Paralel Cluster

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengembangan Sistem Pengukur Indeks Beban untuk Sistem Penyeimbang Beban pada Komputer Paralel Cluster"

Copied!
36
0
0

Teks penuh

(1)

PENGEMBANGAN SISTEM PENGUKUR INDEKS BEBAN

PADA KOMPUTER PARALEL CLUSTER

IRVAN AHADI

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

(2)
(3)

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.

(4)

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.

(5)

Skripsi

sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada

Departemen Ilmu Komputer

PENGEMBANGAN SISTEM PENGUKUR INDEKS BEBAN

PADA KOMPUTER PARALEL CLUSTER

IRVAN AHADI

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

(6)
(7)

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

(8)

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 bimbingan-Nya, 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

(9)

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 7

Analisis 7

Implementasi 12

Pengujian Sistem 14

Analisis Hasil Pengujian 17

SIMPULAN DAN SARAN 22

Simpulan 22

Saran 22

DAFTAR PUSTAKA 22

LAMPIRAN 23

(10)

DAFTAR TABEL

1 Parameter pengujian kinerja sistem. 6

2 Variasi skenario pengujian kinerja 15

3 Hasil pengujian fungsional sistem pada komputer master 16 4 Hasil pengujian fungsional pada komputer pemroses 17

DAFTAR GAMBAR

1 Contoh Arsitektur Sistem Paralel 2

2 Ilustrasi TCP/IP socket programming 4

3 Metode penelitian 5

4 Ilustrasi perubahan load pada sistem 7

5 Alur kerja sistem 8

6 Alur kerja Master 9

7 Label-label indeks beban dalam suatu berkas XML 10

8 Alur kerja Client 11

9 Topologi jaringan laboratorium pengujian 16

10 Antarmuka aplikasi pada komputer pemroses 16

11 Antarmuka aplikasi pada komputer master 17

12 Grafik nilai delta status no-app. 18

13 Grafik nilai delta status app-run. 18

14 Paket-paket protokol luar selain TCP 19

15 Throughput pengujian sistem status no-app 19 16 Throughput pengujian sistem status app-run 20

17 Validitas CPU 20

18 Validitas memori 21

19 Validitas I/O harddisk 21

DAFTAR LAMPIRAN

1 Class diagram Master 24

(11)

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 pemroses. Dengan demikian, informasi beban dari komputer-komputer 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

(12)

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 Pemroses 1

j1

...

Komputer Penyeimbang Beban

Program Paralel

j1 j1 ... jn

Komputer Pemroses N

jn

Komputer Pemroses 2

j2

Sebaran kerja Jaringan

(13)

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:

(14)

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.

(15)

5

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

Analisis

Pengujian Sistem

Analisis Hasil Pengujian Implementasi

(16)

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

(17)

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.

loadi

(18)

8

Gambar 5 Alur kerja sistem

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

(19)

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

(20)

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, IO-READS, dan IO_WRITES. Label <CPU> berisikan informasi tentang persentase CPU pada komputer pemroses yang masih tersisa. Sementara itu, label <MEMORY> berisikan persentase jumlah memori yang digunakaan saat

(21)

11 pengukuran load berlangsung. Label <IO_READS> menampilkan nilai pembacaan pada disk dalam satuan Kilobytes sedangkan label <IO_WRITES> 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

(22)

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

(23)

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:

(24)

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. Method-method 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()

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

(25)

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

(26)

16

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

Tabel 3 Hasil pengujian fungsional sistem pada komputer master

No. Fungsi Status

1 Membuka port dan sambungan pada socket Berhasil 2 Mengelola komputer pemroses yang sudah

terhubung

Berhasil 3 Menugaskan komputer pemroses untuk

mengirimkan informasi load

Berhasil

4 Menerima informasi load dari setiap komputer dan menyimpan ke dalam berkas xml

Berhasil

Gambar 10 Antarmuka aplikasi pada komputer pemroses Jaringan IPB

Komp. Master Komp. Pemroses 1 Komp. Pemroses 2 ... Switch

Komp. Pemroses n

(27)

17

Tabel 4 Hasil pengujian fungsional pada komputer pemroses

No. Fungsi Status

1 Melakukan koneksi ke komputer pemroses

Berhasil 2 Menunggu dan menjalankan instruksi

dari komputer master

Berhasil 3 Menampilkan dan mengirim nilai

indeks beban ke komputer pemroses

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.

2

http://www.wireshark.org/

(28)

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. Masing-masing 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 paket-paket dari aplikasi lain yang masuk ke dalam jaringan pada saat pengujian sistem

Gambar 12 Grafik nilai delta status no-app

(29)

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

(30)

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 no-app dan no-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

(31)

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

(32)

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.

(33)

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.

(34)

24

(35)

25

(36)

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.

Gambar

Grafik nilai delta status no-app.
Gambar 1  Contoh arsitektur sistem paralel
Gambar 3  Metode penelitian
Gambar 4  Ilustrasi perubahan load pada sistem
+7

Referensi

Dokumen terkait

Dari uraian pembahasan dapat disimpulkan bahwa : (1) perbaikan mutu pakan dan suplementasi Zn-asetat dapat meningkatkan pH cairan rumen dari 7 sampai 8 (bersifat alkalis) dengan

Berbagai variabel yang berhubungan secara bermak- na dengan baduta yang mengalami berat badan tidak naik adalah ASI ekslusif, lama pemberian MP-ASI ke- menterian kesehatan,

Hal ini akan berdampak pada penurunan kualitas pelayanan yang diberikan perawat.Penelitian lain yang dilakukan oleh Kiekkas (2010) menunjukkan hasil bahwa burnout

Berdasarkan penelitian yang dilakukan di Markaz Tahfiz Balita mengenai pelaksanaan Markaz Tahfiz Balita Kota Padang, maka dapat disimpulkan sebagai berikut: 1) Pelaksanaan

Aktor yang menjadi opinion leader dalam klik adalah yang paling banyak dihubungi oleh anggota lain yang memiliki peran sebagai opinion leader adalah dalam

a) Partisipasi penganggaran yang diukur menggunakan enam pertanyaan yang dikembangkan dalam penelitian Kartika (2010) yang dapat menjelaskan adanya partisipasi dalam

Dengan menggunakan analisa, mereka mencoba menjelaskan permasalahan bahasa secara detail, tanpa harus mengawang pada permasalahan yang bersifat idealisme, serta

Formulasi untuk permasalahan ukuran sampel yang lebih general, berdasarkan rancangan studi tertentu, dan statistik uji tertentu yang lebih lengkap akan dibahas dalam