PERBAIKAN KEHANDALAN DATA PADA
SISTEM TERDISTRIBUSI DENGAN ALGORITMA ORDER
(On-Demand Real-Time Decentralized Replication)
TUGAS AKHIR
Diajukan guna memenuhi sebagian persyaratan
Dalam rangka menyelesaikan pendidikan sarjana strata satu (S1) Jurusan Teknik Elektro
I WAYAN ADI SUKENDRA NIM. 0504405063
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS UDAYANA JIMBARAN – BALI
ii
PERNYATAAN
Saya yang bertanda tangan dibawah ini menyatakan bahwa dalam Tugas Akhir ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu perguruan tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Denpasar, 19 Juli 2012
I Wayan Adi Sukendra NIM. 0504405063
iii
LEMBAR PENGESAHAN TUGAS AKHIR
JUDUL : PERBAIKAN KEHANDALAN DATA PADA
SISTEM TERDISTRIBUSI DENGAN ALGORITMA ORDER
NAMA : I WAYAN ADI SUKENDRA
NIM : 0504405063
BIDANG STUDI : SISTEM KOMPUTER DAN INFORMATIKA
JURUSAN : TEKNIK ELEKTRO
FAKULTAS : TEKNIK
DIUJI TANGGAL : 11 JULI 2012
Menyetujui,
Pembimbing I Pembimbing II
I Made Sukarsa, ST., MT. A. A. K. Oka Sudana, SKom., MT. NIP. 19751024 200312 1 010 NIP 19750612 199903 1 002
Mengetahui,
Ketua Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana
Ir. I Nyoman Setiawan, MT. NIP. 19631229 199103 1 001
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS UDAYANA
iv
ABSTRAK
Aktifitas pada suatu perusahaan atau organisasi sangat ditentukan oleh ketersediaan informasi. Suatu perusahaan yang sedang berkembang tidak lepas dari kebutuhan data dan informasi yang akurat, tepat waktu dan relevan, namun saat ini informasi tersebut masih belum bisa diperoleh dengan cepat dan akurat karena sistem basis datanya belum dikembangkan secara maksimal. Terdapat beberapa cara untuk meningkatkan kualitas basis data dari suatu Sistem Informasi, salah satunya adalah dengan replikasi database. Replikasi merupakan suatu teknik untuk melakukan peng-copy-an dan pendistribusian data. Fungsi dari replikasi adalah sebagai pelaksana sinkronisasi sehingga konsistensi antar database dapat terjamin. Site yang menjadi sumber database disebut “master site” dan site yang menerima replikasi database disebut “slave site”. Replikasi umumnya terjadi dari
site master ke site slave, namun seiring perkembangan ilmu pengetahuan dan
teknologi kini replikasi bisa terjadi dari site master ke site master maupun dari
site slave ke site master.
Dewasa ini berbagai algoritma replikasi database kian bermunculan. Algoritma ORDER (On-demand Real-Time Decentralized Replication)
merupakan salah satunya. Algoritma ini cukup handal dibandingkan dengan algoritma bawaan MySQL dalam menangani masalah availabilitas data di sistem
database terdistribusi. Algoritma ini bekerja dengan melakukan update berbasis
frekuensi dan periode terhadap replika secara dinamis. Sistem replikator ini dirancang agar dapat menjaga kehandalan data pada sistem transaksi terdistribusi dengan cara mereplikakan suatu objek data ke suatu site tertentu berdasarkan besarnya frekuensi akses data pada site tersebut. Proses replikasi pada site tersebut dilakukan melalui beberapa tahapan, mulai dari pengkonfigurasian sistem, pendaftaran site dan proses replikasi, penanganan transaksi, lock dan unlock data, dan proses ORDER data.
Pengujian sistem dilakukan dengan melakukan penanganan ORDER data terhadap transaksi dengan frekuensi yang bervariasi. Mulai dari transaksi dengan data yang sedikit hingga data yang banyak, yang kemudian dianalisa kelebihan dan kekurangannya. Berdasarkan hasil analisa diperoleh bahwa Waktu yang dibutuhkan untuk melakukan ORDER pada suatu dataID berbanding lurus dengan banyaknya data transaksi yang digunakan sebagai batas ORDER, dan salah satu kelebihan sistem replikator dengan algoritma ORDER ini adalah pengefiseiensian jumlah data dan penempatan data berdasarkan tingkat kebutuhan akan data tersebut.
Kata kunci : replikasi database, algoritma ORDER, sistem terdistribusi,
v
ABSTRACT
Activity on a company or organization is largely determined by the availability of information. In such situations, emerging companies cannot be separated from the needs of data and information that is accurate, timely and relevant. But apparently, this information still cannot be obtained quickly and accurately because the database system is not developed to its full potential. There are several ways to improve the quality of the database of an Information System, one of them is a database replication. Replication is a technique for copying and distributing data. The objective of replication is implementing synchronization between the databases so that data consistency can be guaranteed. Site of the source database called "master site" and receiving site database replication is called "slave site". The development of this technique usually occurs from master to slave, but in its development, replication can last from slave to master.
These days there’s so many popping up database replication algorithms. Algorithm ORDER (On-demand Real-Time Decentralized Replication) is one of them. This algorithm is quite reliable compared to the default MySQL algorithm in dealing with problems of data availability in distributed database systems. The algorithm works by performing updates based on the frequency and period the replicas dynamically. Replicator system is designed in order to maintain the reliability of data in a distributed transaction system by copying a data object to a particular site based on the magnitude of the frequency of data access on the site. Replication process on the site is done through several stages, ranging from configuring the system, site registration and the process of replication, transaction handling, lock and unlock data, and the data ORDER process.
System testing is done by handling the data to the transaction ORDER with varying frequency. The process was carried out by starting from a transaction with a bit of data into a transaction with a lot of data, which then being analyzed to see its advantages and drawbacks. Based on the analysis results obtained that the required time to perform an ORDER on dataID are directly proportional to the amount of transaction data that used as ORDER boundary, and one of the advantages of this technique is able to increase the efficiency of the deployment and placement of data based on the need for such data.
Keyword : database replication, ORDER algorithm, distributed system, data reliability
vi
KATA PENGANTAR
Puji syukur penulis panjatkan kehadapan Ida Sang Hyang Widhi Wasa/ Tuhan Yang Maha Esa karena atas rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Tugas Akhir ini. Tugas Akhir yang berjudaul “PERBAIKAN KEHANDALAN DATA PADA SISTEM TERDISTRIBUSI DENGAN ALGORITMA ORDER” ini disusun sebagai syarat untuk memenuhi sebagian persyaratan menyelesaikan Program Sarjana S-1 pada Program Studi Sistem Komputer dan Informatika Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana.
Dalam penyusunan Tugas Akhir ini penulis mendapatkan petunjuk dan bimbingan dari berbagai pihak. Sehubungan dengan hal tersebut pada kesempatan ini penulis menyampaikan ucapan terima kasih kepada :
1. Bapak Prof. Ir. I Wayan Redana, MA.Sc., PhD. sebagai Dekan Fakultas Teknik Universitas Udayana.
2. Bapak Ir. I Nyoman Setiawan, MT. sebagai sebagai Ketua Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana.
3. Bapak I Made Sukarsa, ST., MT. sebagai Dosen Pembimbing I yang telah banyak memberikan petunjuk, bimbingan, perhatian dan dorongan kepada penulis selama penyusunan Tugas Akhir ini.
4. Bapak A.A. Kompiang Oka Sudana, SKom., MT. sebagai Dosen Pembimbing II yang telah banyak memberikan petunjuk, bimbingan dan masukan kepada penulis selama penyusunan Tugas Akhir ini.
5. Alm. Bapak Ir. Susiono, MT. sebagai Dosen Pembimbing Akademik yang telah memberikan bimbingan, perhatian dan dorongan selama menempuh kuliah di Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana. 6. Bapak dan Ibu Dosen serta segenap Civitas Akademika Fakultas Teknik
Universitas Udayana yang tidak bisa disebutkan satu persatu yang telah memberikan banyak ilmu dan bantuan kepada penulis selama menempuh kuliah dan penyusunan Tugas Akhir ini.
vii
7. Bapak, Ibu, Adik, Kakak dan keluarga yang telah memberikan dukungan moril, material dan doa kepada penulis selama menempuh kuliah dan penyusunan Tugas Akhir ini.
8. Teman-teman seperjuangan (Dodok, Adis, Bayu, Arya, Ngakan, Arik), teman-teman urremote (Ayu, Dana, Ade), Team CS (Kaboom, Bumblebee, MayorZen) dan khususnya teman angkatan 2005, 2006 serta teman-teman lainnya yang tidak bisa disebutkan satu persatu yang telah memberikan dukungan dan motivasi kepada penulis selama menempuh kuliah dan menyusun Tugas Akhir ini.
Akhir kata, penulis berharap semoga Tugas Akhir ini bermanfaat bagi kita semua dan semoga Ida Sang Hyang Widhi Wasa / Tuhan Yang Maha Esa melimpahkan rahmat-Nya atas segala bantuan dan dukungan yang telah diberikan kepada penulis.
Denpasar, Juli 2012 Penulis
viii
DAFTAR ISI
HALAMAN JUDUL ... i
PERNYATAAN ... ii
LEMBAR PENGESAHAN TUGAS AKHIR ... iii
ABSTRAK ... iv
ABSTRACT ... v
KATA PENGANTAR ... vi
DAFTAR ISI ... viii
DAFTAR GAMBAR ... xii
DAFTAR TABEL ... xv
DAFTAR KODE PROGRAM ... xvii
BAB I PENDAHULUAN ...1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan Penelitian ... 3
1.4 Manfaat Penelitian ... 3
1.5 Ruang Lingkup dan Batasan Masalah ... 3
1.6 Sistematika Penulisan ... 3
BAB II TINJAUAN PUSTAKA ... 5
2.1 Definisi Database dan DBMS ... 5
2.2 Sistem Database Terdistribusi ... 5
2.2.1 Keuntungan dan Kerugian Basis Data Terdistribusi ... 6
2.3 Fragmentasi ... 6
2.3.1 Fragmentasi Horizontal ... 7
2.3.2 Fragmentasi Vertikal ... 8
2.4 Replikasi ... 10
2.4.1 Jenis Jenis Replikasi ... 10
ix
2.5 MySQL ... 13
2.5.1 Keunggulan MySQL ... 14
2.5.2 Tipe Data MySQL ... 15
2.5.3 Management User MySQL ... 17
2.6 Mekanisme Replikasi MySQL ... 21
2.7 Structured Query Language ( SQL ) ... 22
2.7.1 Struktur dasar SQL ... 24
2.7.2 Fungsi Agregasi... 24
2.8 Algoritma ORDER ... 25
2.8.1 Input Algoritma ORDER ... 25
2.8.2 Deskripsi Algoritma ... 29
2.9 Web server Apache ... 31
2.10 HTML (Hypertext Markup Language) ... 31
2.10.1 Sintak Dasar HTML ... 32 2.10.2 Fasilitas HTML ... 32 2.11 PHP (Hypertext Preprocessor) ... 35 2.11.1 Konsep Kerja PHP ... 35 2.11.2 Kelebihan PHP ... 36 2.11.3 Sintak PHP ... 37 2.11.4 Tipe data PHP... 37 2.11.5 Kompatibilitas Variabel ... 38 2.11.6 Flow Kontrol ... 38 2.11.7 Fungsi ... 41 2.12 GNU Wget ... 42
2.13 Perangkat Pemodelan Sistem ... 42
2.13.1 Flowchart ... 42
BAB III METODE DAN PERANCANGAN SISTEM ...44
3.1 Tempat dan Waktu Penelitian ...44
3.2 Data ... 44
x
3.2.2 Metode Pengumpulan Data...44
3.3 Analisa Data ...45
3.4 Bahasa Pemrograman ...45
3.5 Perangkat Pemodelan Sistem ...45
3.5.1 Statement of Purpose (STP) ...46
3.5.2 Daftar Kejadian ...46
3.5.3 Gambaran Umum Sistem ...47
3.5.4 Diagram Konteks ...50
3.5.5 Skema Kerja Sistem ...51
3.5.6 Alur Proses Sistem ...52
3.5.7 Data Flow Diagram (DFD) ...57
3.5.8 Desain Basis Data ...63
3.6 Alur Analisis ...73
3.7 Kebutuhan Hardware dan Software Pembuatan Sistem ...75
3.7.1 Hardware ...75
3.7.2 Software ...75
3.8 Jadwal Kegiatan ...75
BAB IV PENGUJIAN DAN ANALISIS HASIL ...76
4.1 Rancangan Arsitektur Sistem ...76
4.2 Skenario Menjamin Kehandalan Sistem ...87
4.2.1 Pembuatan Replika dari suatu data objek ...87
4.2.2 Proses Lock dan Unlock data objek ...96
4.3 Pengujian Sistem ...99
4.3.1 Uji Coba Instalasi Sistem ...99
4.3.2 Uji Coba Pendaftaran Site Replikasi ...108
4.3.3 Uji Coba Pendaftaran Proses Replikasi ...109
4.3.4 Uji coba reporting data ...110
4.3.5 Uji Coba Pemasangan Sistem ...111
4.3.6 Uji Coba Penanganan Transaksi Klien ...114
xi
4.4 Implemantasi Algoritma ORDER dalam Sistem ...119
4.4.1 Penanganan Transaksi Sistem ...119
4.4.2 Proses Lock dan Unlock data ...121
4.4.3 Proses ORDER Data ...121
4.5 Kelebihan dan Kelemahan Sistem...121
4.5.1 Kelebihan Sistem ...121 4.5.2 Kekurangan Sistem ...122 BAB V PENUTUP ...123 5.1 Simpulan...123 5.2 Saran ... 123 DAFTAR PUSTAKA
xii
DAFTAR GAMBAR
Gambar 2.1 Tingkat availabilitas suatu data ... 12
Gambar 2.2 Replikasi server dan resource database... 13
Gambar 2.3 Isi database MySQL ... 17
Gambar 2.4 Tampilan hasil create user MySQL ... 18
Gambar 2.5 Tampilan hasil delete user MySQL ... 18
Gambar 2.6 Tampilan hasil pemberian hak kepada user MySQL ... 19
Gambar 2.7 Tampilan hasil penggantian password user MySQL ... 21
Gambar 2.8 Data server master direplikasikan ke server slave. ... 21
Gambar 2.9 Gambaran replikasi berantai... 22
Gambar 2.10 Input algoritma ORDER... 26
Gambar 2.11 Ilustrasi ExeTime,TD, dan SF ... 26
Gambar 2.12 Transaksi antar site dengan algoritma ORDER ... 28
Gambar 2.13 Transaksi lokal dengan algoritma ORDER ... 28
Gambar 2.14 Alur pembentukan replika ... 30
Gambar 2.15 Skema HTML ... 32
Gambar 2.16 Interface antara PHP dan HTML ... 35
Gambar 3.1 Gambaran umum Sistem Replikator ... 47
Gambar 3.2 Contoh pelawatan parameter ke fungsi sistem ... 49
Gambar 3.3 Diagram konteks Sistem Replikator ... 50
Gambar 3.4 Gambaran alur penyiapan basis data sistem ... 54
Gambar 3.5 Gambar alur Pendaftaran Site ... 55
Gambar 3.6 Gambaran alur pembuatan Proses Replikasi ... 57
Gambar 3.7 Diagram Berjenjang Sistem Replikator ... 58
Gambar 3.8 Gambar DFD Level 0 Sistem Replikator ... 59
Gambar 3.9 DFD Level 1 Proses Replikasi ... 60
Gambar 3.10 DFD Level 1 Proses Replikasi Modul Register Site ... 61
Gambar 3.11 DFD Level 1 Proses Replikasi Modul Pembuatan Proses ... 61
Gambar 3.12 DFD Level 1 Proses Replikasi Modul Penanganan Transaksi ... 62
xiii
Gambar 3.14 Hubungan antar tabel dalam Sistem Replikator ... 73
Gambar 3.15 Diagram alur penelitian ... 74
Gambar 4.1 Bagan arsitektur sistem ... 77
Gambar 4.2 Alur pengguanaan sistem ... 80
Gambar 4.3 Alur konfigurasi data site replikasi ... 82
Gambar 4.4 Alur pembuatan Proses Replikasi ... 84
Gambar 4.5 Alur pembuatan Report Transaksi ... 87
Gambar 4.6 Alur script ORDER data ... 95
Gambar 4.7 Alur script Lock dan Unlock data ... 98
Gambar 4.8 Gambar direktori admin_replikator ... 100
Gambar 4.9 Gambar tampilan awal instalasi program ... 100
Gambar 4.10 Gambar install konfigurasi master ... 101
Gambar 4.11 Gambar tampilan tes koneksi berhasil dilakukan ... 102
Gambar 4.12 Tampilan file conf_master_site.php yang berhasil dibuat. ... 102
Gambar 4.13 Tampilan db_master_replikasi1 ... 104
Gambar 4.14 Gambar instalasi data login sistem ... 104
Gambar 4.15 Gambaran instalasi pogram telah behasil ... 105
Gambar 4.16 Menu login pada sistem replikator ... 106
Gambar 4.17 Tampilan home aplikasi replikator ... 106
Gambar 4.18 Tampilan menu aplikasi replikator ... 107
Gambar 4.19 Menu account dan logout ... 107
Gambar 4.20 Tampilan menu site replikasi ... 108
Gambar 4.21 Tampilan data pada menu site replikasi ... 108
Gambar 4.22 Tampilan menu proses replikasi ... 109
Gambar 4.23 Tampilan menu detail proses replikasi ... 110
Gambar 4.24 Tampilan menu report ... 110
Gambar 4.25 Tampilan hasil report data ... 111
Gambar 4.26 Tampilan direktory adm_rep ... 112
Gambar 4.27 Tampilan pemasangan sistem pada kode program klien ... 113
Gambar 4.28 Tampilan nomer rekening pada cabang A ... 114
xiv
Gambar 4.30 Tampilan transaksi berhasil ... 115
Gambar 4.31 Tampilan data transaksi pada cabang A ... 116
Gambar 4.32 Tampilan list transaksi pada cabang A ... 116
Gambar 4.33 Tampilan data transaksi cabang A pada database ... 117
Gambar 4.34 Tampilan data proses order transaksi ... 117
Gambar 4.35 Tampilan running GNU wget pada task scheduller windows ... 118
Gambar 4.36 Tampilan data log replikasi pada tabel tb_log_proses_replikasi . 118 Gambar 4.37 Tampilan data yang di ORDERkan pada site B ... 118
Gambar 4.38 Tampilan riwayat order pada menu riwayat ... 119
xv
DAFTAR TABEL
Tabel 2.1 Tabel nasabah ... 7
Tabel 2.2 Tabel nasabah1 ... 8
Tabel 2.3 Tabel nasabah2 ... 8
Tabel 2.4 Tabel fragmentasi vertikal nasabah1 ... 9
Tabel 2.5 Tabel fragmentasi vertikal nasabah2 ... 9
Tabel 2.6 Tabel fragmentasi vertikal nasabah3 ... 9
Tabel 2.7 Tipe data numerik ... 15
Tabel 2.8 Tipe data string ... 16
Tabel 2.9 Tipe data waktu ... 16
Tabel 2.10 Privileges user MySQL ... 19
Tabel 2.11 Pernyataan-pernyataan dasar SQL ... 23
Tabel 2.12 Simbol pada Ekspresi Aritmatika ... 23
Tabel 2.13 Fungsi agregasi ... 24
Tabel 3.1 Alur penyiapan basis data sistem ... 53
Tabel 3.2 Alur Pendaftaran Site ... 55
Tabel 3.3 Alur pembuatan Proses Replikasi ... 56
Tabel 3.4 Tabel tb_backup_saldo ... 66
Tabel 3.5 Contoh data tb_backup_saldo ... 66
Tabel 3.6 Tabel tb_detail_proses_replikasi ... 66
Tabel 3.7 Contoh data tb_detail_proses_replikasi ... 66
Tabel 3.8 Tabel tb_log_proses_replikasi ... 67
Tabel 3.9 Contoh data tb_log_proses_replikasi ... 67
Tabel 3.10 Tabel tb_proses_replikasi ... 68
Tabel 3.11 Contoh data tb_proses_replikasi ... 68
Tabel 3.12 Tabel tb_riwayat_order ... 69
Tabel 3.13 Contoh data tb_riwayat_replikasi ... 69
Tabel 3.14 Tabel tb_site_replikasi ... 70
Tabel 3.15 Contoh data tb_site_replikasi ... 70
xvi
Tabel 3.17 Contoh data tb_status_proses ... 71
Tabel 3.18 Tabel tb_status_user ... 71
Tabel 3.19 Contoh data tb_status_user ... 71
Tabel 3.20 Tabel tb_user ... 71
Tabel 3.21 Contoh data tabel tb_user ... 71
Tabel 3.22 Tabel tb_backup_val_proses ... 72
Tabel 3.23 Contoh data tabel tb_backup_val_proses ... 72
Tabel 3.24 Jadwal kegiatan penelitian ... 75
Tabel 4.1 Isi Tabel tb_site_replikasi ... 81
Tabel 4.2 Contoh data pada Tabel tb_proses_replikasi ... 85
Tabel 4.3 Contoh data pada Tabel tb_detail_proses_replikasi ... 85
xvii
DAFTAR KODE PROGRAM
Kode Program 2.1 Sintaks HTML ... 32
Kode Program 2.2 Sintaks warna di HTML ... 33
Kode Program 2.3 Sintaks form di HTML ... 33
Kode Program 2.4 Sintaks form di HTML ... 33
Kode Program 2.5 Contoh sintaks form di HTML ... 34
Kode Program 2.6 Sintaks link di HTML ... 34
Kode Program 2.7 Penulisan sintaks PHP ... 37
Kode Program 2.8 Sintaks if pada PHP ... 38
Kode Program 2.9 Sintaks if-else pada PHP ... 39
Kode Program 2.10 Sintaks for pada PHP ... 40
Kode Program 2.11 Sintaks foreach pada PHP ... 40
Kode Program 2.12 Sintaks while pada PHP ... 40
Kode Program 2.13 Sintaks do-while pada PHP ... 41
Kode Program 2.14 Kode program function pada PHP ... 41
Kode Program 4.1 Preparation Proses dan Run Proses pada transaksi ... 86
Kode Program 4.2 Script ORDER data ... 94
Kode Program 4.3 Tampilan kode program untuk Lock Data ... 97
Kode Program 4.4 Tampilan kode program untuk Unlock Data ... 97