implementasi metode replikasi database terdistribusi...

137
IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Informatika Disusun Oleh: Rachel Kurniawati 035314066 TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2008

Upload: others

Post on 18-Oct-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

IMPLEMENTASI METODE REPLIKASI

DATABASE TERDISTRIBUSI PADA MYSQL 5.0

(Koperasi Simpan Pinjam)

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

Program Studi Informatika

Disusun Oleh:

Rachel Kurniawati

035314066

TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

2008

Page 2: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

IMPLEMENTATION OF REPLICATION METHOD

OF DISTRIBUTED DATABASE ON

MYSQL 5.0

(Savings And Credit Cooperation)

A Thesis

Presented as Partial Fulfillment of the Requirements

To Obtain the Engineering Bachelor Degree

In Informatics Engineering

By:

Rachel Kurniawati

035314066

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2008

Page 3: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan
Page 4: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan
Page 5: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan
Page 6: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

vi

HALAMAN MOTTO

“ aku melupakan apa yang telah dibelakang ku “

” mengarahkan diri pada apa yang dihadapanku ”

” dan ”

” berlari pada tujuan ”

(Filipi 3: 13 – 14)

Page 7: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

vii

HALAMAN PERSEMBAHAN

Teruntuk:

Mama dan Papa

Yusup Budi Pamungkas

Page 8: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

viii

INTISARI

Koperasi simpan pinjam merupakan penyedia jasa keuangan bagi masyarakat

menengah ke bawah. Suatu koperasi membuat cabang untuk menjangkau masyarakat

pedesaan, namun ketersediaan data menjadi masalah karena koperasi pusat dan

cabang membutuhkan data bersama.

Replikasi master-master database dapat menyelesaikan masalah ketersediaan

data. Dengan replikasi master-master maka koperasi pusat maupun cabang dapat

melakukan perubahan data dan perubahan data tersebut akan dikirimkan ke cabang

lain dimana data tersebut direplikasi. Keuntungan lain dari replikasi adalah

meningkatnya unjuk kerja karena sistem akan mengakses database terdekat.

Untuk mengimplementasikan metode replikasi master-master pada MySQL

5.0 dan meggunakan JSP sebagai antarmuka.

Page 9: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

ix

ABSTRACT

Savings and credit cooperation is a provider of financial honors to people in

lower middle income. Savings and credit cooperation make branchs to serve the rural

people, but the availability become a problem because the central dan branch need the

sharing data.

Master-master replication of database can be one of solution to availability

problem. With master-master replication the central and branch can make a changes

to database and the changes will be send to other branchss where the data is

replicated. The other benefit from replication is high performance because system

access the nearest database.

To implementation master-master replication using server database MySQL

5.0 and JSP as programming language.

Page 10: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan
Page 11: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

x

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yesus Kristus atas berkat, anugerah dan

kemurahan-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul

“IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI PADA

MYSQL 5.0“ sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik (S.T.)

di Fakultas Sains dan Teknologi Universitas Sanata Dharma.

Dalam penelitian ini sampai pada penyusunan skripsi ini, penulis banyak

mendapat bantuan dari berbagai pihak. Pada kesempatan ini, penulis ingin

menyampikan penghargaan dan ucapan terima kasih kepada :

1. Romo Ir. Greg Heliarko, S.J.,S.S.,B.S.T.,M.A,M.Sc., Selaku Dekan Fakultas

Teknik Universitas Sanata Dharma.

2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik

Informatika Universitas Sanata Dharma.

3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing Akademik

sekaligus Tugas Akhir, terimakasih atas ilmu, ide, masukan yang diberikan.

4. Bapak JB. Budi Darmawan, S.T.,M.Sc., selaku Dosen Penguji.

5. Bapak Alb. Agung Hadhiatma, S.T., M.T, selaku Dosen Penguji.

6. Bapak Emanuel Bele Bau, SPd, atas bantuannya saat persiapan ujian.

7. Staff dosen Teknik Informatika atas ilmu yang telah diberikan selama menjalani

study di Universitas Sanata Dharma, terutama yang bersangkutan dengan tugas

akhir ini.

Page 12: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xi

8. Staff Sekretariat Teknik yang telah membantu proses administrasi akademik.

9. Terima kasih yang sebesar-besarnya untuk Pak Daniel dan Bu Rido atas segala

bantuan, dorongan, fasilitas notebooknya. Kiranya Tuhanlah yang dapat

membalas segala kebaikan bapak dan ibu.

10. Untuk mama dan papa, terima kasih atas perhatian, cinta kasih, doa dan usaha

keras kalian. Rachel bisa merasakan bangku kuliah.

11. Buat mas Budi, makasih banget buat cinta, dukungan, semangatnya buat rachel.

Selalu ngingetin buat tugas akhir dan mau nemenin lembur ngerjain TA. Makasih

udah setia dan sabar menunggu sampai Rachel lulus. Jadi.....? ☺

12. Makasih juga buat Ibu di Klaten, yang gak pernah capek dan bosan ngingetin dan

nasehatin rachel setiap ketemu.

13. Makasih buat Sarah yang udah mau berbagi komputer, printer, tinta, kertas. Dah

ngajarin aku buat fungsi, udah memberi semangat walaupun dengan sedikit

memaksa, setia menjadi temen senasib, seperjuangan, sepenanggungan.

SEMANGAT!!!!

14. Buat Dea, dah mau denger semua unek-unek ku, buat masukan, dukungan kamu,

buat pinjeman komputer, printer jaman Pra TA dulu. Hehe.....(Ayo kapan lulus’e?

Kutunggu traktirannya).

15. Gepeng, Jansen, Acit, Dian makasih buat tukar pikiran dan pengalamannya,

semua bermanfaat banget dalam pembuatan tugas akhir ini.

16. Buat Albert (Pak D), Merry, Dea, Acit, Sarah yang udah bantu angkut-angkut

komputer selama persiapan dan setelah ujian.

Page 13: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xii

17. Ucup, Dian, Acit, Jun, Pak D, Merry, Gepeng, Dea, Sarah yang udah nungguin

proses ujian.

18. Terima kasih buat temen-temen lamaku (Christin, Elyta, X-Ray, K’ Hermina, K’

Yelly, Ika, Nova, Rini dan Yanti) yang masih kontak sampe sekarang, buat

dukungan dan semangat kalian. Jarak tak memisahkan persahabatan kita.

19. Buat Nang uda Ester dan keluarga, makasih udah menganggap Rachel seperti

anak sendiri, buat bantuan, doa dan semangatnya.

20. Buat temen-temen TI angkatan 2003, makasih dukungannya.

21. Keluarga besar GPdI Calvary Chapel Surodadi, buat doa dan semangatnya.

22. Semua pihak yang tidak bisa disebutkan satu persatu.

Penulis menyadari bahwa masih banyak kekurangan dalam penyusunan

skripsi ini, penulis memohon kritik dan saran yang sifatnya membangun. Penulis

memiliki harapan yang sangat besar, semoga skripsi ini dapat bermanfaat bagi

pembaca dan perkembangan ilmu pengetahuan.

Yogyakarta, Juni 2008

Penulis

Rachel Kurniawati

Page 14: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xiii

DAFTAR ISI

HALAMAN JUDUL ................................................................................... i

HALAMAN PERSETUJUAN...................................................................... iii

HALAMAN PENGESAHAN....................................................................... iv

HALAMAN KEASLIAN KARYA............................................................... v

HALAMAN MOTTO................................................................................... vi

HALAMAN PERSEMBAHAN.................................................................... vii

INTISARI..................................................................................................... viii

ABSTRACT................................................................................................. ix

KATA PENGANTAR .................................................................................. x

DAFTAR ISI ................................................................................................ xiii

DAFTAR GAMBAR.................................................................................... xvi

DAFTAR TABEL ........................................................................................ vii

BAB I PENDAHULUAN ........................................................................... 1

1.1. Latar Belakang Masalah................................................................... 1

1.2. Rumusan Masalah............................................................................ 2

1.3. Batasan Masalah .............................................................................. 3

1.4. Tujuan Penelitian ............................................................................. 4

1.5. Metodologi Penelitian ...................................................................... 4

1.6. Sistematika Penulisan ...................................................................... 6

BAB II LANDASAN TEORI ..................................................................... 8

2.1. Database .......................................................................................... 8

2.2. Sistem Database Terdistribusi .......................................................... 9

2.3. Distributed Database Management System (DDBMS) ..................... 12

2.4. Replikasi Database........................................................................... 15

2.4.1. Update dalam Replikasi ......................................................... 16

2.4.2. Kepemilikan data................................................................... 19

Page 15: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xiv

2.4.3. Keuntungan ........................................................................... 20

2.4.4. Kerugian................................................................................ 22

2.5. MySQL 5.0 ..................................................................................... 22

2.5.1. Privelege .............................................................................. 22

2.5.2. Membuat User ...................................................................... 23

2.5.3. Replikasi pada MySQL ........................................................ 24

2.5.4. Replikasi Master to Master .................................................... 25

2.6. Web ................................................................................................. 27

2.7. JSP................................................................................................... 28

2.7.1. Arsitektur JSP........................................................................ 28

2.7.2. Elemen-elemen JSP ............................................................... 29

2.8. JDBC............................................................................................... 32

BAB III ANALISIS DAN PERANCANGAN ............................................ 33

3.1. Analisis Sistem ................................................................................ 33

3.1.1. Gambaran Umum Sistem ...................................................... 33

3.1.2. Analisis Masalah ................................................................... 33

3.1.3. Orang yang terlibat dalam sistem........................................... 34

3.1.4. Gambaran Umum Sistem Baru .............................................. 34

3.1.5. Requirement Analysis............................................................ 35

3.1.6. Logical Desain....................................................................... 36

3.1.6.1. Proses Modeling ............................................................. 36

3.1.6.2. E-R Diagram................................................................... 44

3.1.7. Desain Sistem........................................................................ 45

3.2. Desain Teknologi Replikasi ............................................................. 55

3.3. Desain User Interface....................................................................... 59

BAB IV IMPLEMENTASI ....................................................................... 67

4.1. Arsitektur Replikasi........................................................................ 67

4.2. Implementasi Replikasi ................................................................. 68

4.2.1. Membuat Database Koperasi ........................................... 69

Page 16: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xv

4.2.2. Mengkonfigurasi My.ini ................................................. 75

4.2.3. Membuat user replikasi ................................................... 77

4.2.4. Menghubungkan master dengan slave ............................. 78

4.2.5. Menjalankan Slave .......................................................... 80

4.3. Implementasi Sistem ..................................................................... 83

4.3.1. Login User ...................................................................... 83

4.3.2. Keanggotaan ................................................................... 85

4.3.3. Tabungan ........................................................................ 88

4.3.4. Penarikan ........................................................................ 91

4.3.5. Pinjaman ......................................................................... 93

4.3.6. Angsuran ........................................................................ 95

4.3.7. Akun Utama ................................................................... 97

4.3.8. Preferensi......................................................................... 97

4.3.9. Organisasi ....................................................................... 98

4.3.10. Laporan ........................................................................... 98

BAB V ANALISIS HASIL ........................................................................ 105

5.1. Skenario ..................................................................................... 105

5.2. Analisis Teknologi .................................................................... 113

5.3. Kelebihan dan Kekurangan ......................................................... 114

5.3.1. Kelebihan ............................................................................. 114

5.3.2. Kekurangan .......................................................................... 115

BAB VI KESIMPULAN DAN SARAN ..................................................... 116

6.1. Kesimpulan ................................................................................ 116

6.2. Saran .......................................................................................... 116

DAFTAR PUSTAKA.................................................................................. 117

Page 17: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xvi

DAFTAR GAMBAR

Gambar 2.1 Topologi Jaringan Ring................................................................... 9

Gambar 2.2 Proses Replikasi Synchronous ........................................................ 17

Gambar 2.3 Proses Replikasi Asinkron .............................................................. 18

Gambar 2.4 Arsitektur Aplikasi Web ................................................................. 28

Gambar 3.1 Use Case Diagram........................................................................... 35

Gambar 3.2 Context Diagram ............................................................................. 37

Gambar 3.3 Diagram Berjenjang ........................................................................ 38

Gambar 3.4 DFD Level 0.................................................................................... 39

Gambar 3.5 DFD Level 1 Proses 1 ..................................................................... 40

Gambar 3.6 DFD Level 1 Proses 2 ..................................................................... 40

Gambar 3.7 DFD Level 1 Proses 3 ..................................................................... 41

Gambar 3.8 DFD Level 1 Proses 4 ..................................................................... 41

Gambar 3.9 DFD Level 1 Proses 5 ..................................................................... 42

Gambar 3.10 DFD Level 1 Proses 6 ..................................................................... 42

Gambar 3.11 DFD Level 1 Proses 7 ..................................................................... 43

Gambar 3.12 E-R Diagram ................................................................................... 44

Gambar 3.13 Relasi antar tabel ............................................................................. 45

Gambar 3.14 Arsitektur jaringan dan replikasi data............................................. 56

Gambar 3.15 Form Login...................................................................................... 60

Gambar 3.16 Form Anggota ................................................................................. 60

Gambar 3.17 Form Tabungan ............................................................................... 61

Gambar 3.18 Form Penarikan .............................................................................. 61

Gambar 3.19 Form Pinjaman ................................................................................ 62

Gambar 3.20 Form Angsuran................................................................................ 62

Gambar 3.21 Form Akun Utama........................................................................... 63

Gambar 3.22 Form Preferensi ............................................................................... 63

Gambar 3.23 Form Organisasi .............................................................................. 64

Page 18: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xvii

Gambar 4.1 Arsitektur Replikasi ........................................................................ 68

Gambar 4.2 Form Login...................................................................................... 83

Gambar 4.3 Form Tabungan ................................................................................. 88

Gambar 4.4 Form Penarikan ................................................................................ 93

Gambar 4.5 Form Pinjaman .................................................................................. 94

Gambar 4.6 Form Angsuran.................................................................................. 95

Gambar 4.7 Form Akun Utama............................................................................. 97

Gambar 4.8 Form Preferensi ................................................................................. 97

Gambar 4.9 Form Organisasi ............................................................................... 98

Gambar 4.10 Laporan Kredit Umum ................................................................... 99

Gambar 4.11 Laporan Kredit Umum format Excel ............................................. 99

Gambar 4.12 Laporan Tabungan Wajib ............................................................... 100

Gambar 4.13 Laporan Tabungan Wajib format Excel ......................................... 100

Gambar 4.14 Laporan Tabungan Sukarela ........................................................... 101

Gambar 4.15 Laporan Tabungan Sukarela format Excel...................................... 101

Gambar 4.16 Laporan Penarikan Tabungan.......................................................... 102

Gambar 4.17 Laporan Penarikan Tabungan format Excel.................................... 102

Gambar 4.18 Laporan Pinjaman ........................................................................... 103

Gambar 4.19 Laporan Pinjaman format Excel...................................................... 103

Gambar 4.20 Laporan Angsuran........................................................................... 104

Gambar 4.21 Laporan Angsuran format Excel .................................................... 104

Gambar 5.1 Form keanggotaan. .......................................................................... 107

Gambar 5.2 List Anggota ................................................................................... 107

Gambar 5.3 Form Simpanan ............................................................................... 108

Gambar 5.4 Lihat Simpanan Wajib .................................................................... 108

Gambar 5.5 Form Simpanan Sukarela ............................................................... 109

Page 19: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xviii

Gambar 5.6 Lihat Simpanan Wajib..................................................................... 110

Gambar 5.7 Form Penarikan ............................................................................... 110

Gambar 5.8 Form Penarikan ............................................................................... 111

Gambar 5.9 Form Peminjaman ........................................................................... 112

Gambar 5.10 Form Angsuran................................................................................ 112

Gambar 5.11 Form Peminjaman ........................................................................... 113

Gambar 5.12 File binary ...................................................................................... 115

Page 20: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

xix

DAFTAR TABEL

Tabel 3.1 Input Output Sistem ........................................................................... 36

Tabel 3.2 Tabel Anggota .................................................................................... 46

Tabel 3.3 Tabel Koperasi ................................................................................... 47

Tabel 3.4 Tabel AkunUtama .............................................................................. 47

Tabel 3.5 Tabel Preferensi .................................................................................. 48

Tabel 3.6 Tabel Kebijakan_koperasi................................................................... 49

Tabel 3.7 Tabel Tabungan................................................................................... 50

Tabel 3.8 Tabel Tabungan_detil ......................................................................... 50

Tabel 3.9 Tabel Penarikan................................................................................... 51

Tabel 3.10 Tabel Pinjaman ................................................................................... 51

Tabel 3.11 Tabel Tagihan ..................................................................................... 52

Tabel 3.12 Tabel Angusran ................................................................................... 53

Tabel 3.13 Tabel Angusran_ detail ....................................................................... 54

Tabel 3.14 Tabel Jurnal......................................................................................... 58

Tabel 3.15 Desain Tabel Laporan Kredit Limit .................................................... 65

Tabel 3.16 Desain Tabel Laporan Tabungan Wajib ............................................. 65

Tabel 3.17 Desain Tabel Laporan Tabungan Sukarela ......................................... 65

Tabel 3.18 Desain Tabel Laporan Penarikan Tabungan....................................... 65

Tabel 3.19 Desain Tabel Laporan Peminjaman ................................................... 66

Tabel 3.20 Desain Tabel Laporan Angsuran......................................................... 66

Tabel 5.1 Daftar anggota dan nasabah KPD .......................................................... 105

Tabel 5.2 Daftar anggota dan nasabahKBJ............................................................ 105

Page 21: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Kumpulan item data yang saling berhubungan sering dikenal dengan istilah

database. Database merupakan hal yang sangat penting bagi aspek kehidupan

manusia, perusahaan, industri, organisasi, negara, rumah sakit bahkan pendidikan

karena merupakan dasar bagi tersedianya informasi. Database yang relevan, akurat

dan tepat pada waktunya akan sangat menentukan kualitas suatu informasi.

Di Indonesia banyak terdapat koperasi simpan pinjam yang bergerak di

bidang jasa untuk masyarakat terutama yang ada di golongan menengah ke bawah.

Dari sekian banyaknya koperasi tersebut tentunya ada koperasi yang masih dalam

satu yayasan atau dengan kata lain satu koperasi memiliki satu atau lebih cabang yang

letaknya terpisah secara geografis. Namun sangat jarang koperasi pusat dan cabang

tersebut menggunakan data secara bersama. Apabila data di pusat dan cabang dapat

digunakan bersama akan sangat menguntungkan bagi pihak koperasi maupun pihak

anggota yang terdaftar. Data koperasi yang berada di pusat dapat diakses di cabang

maupun sebaliknya, sehingga transaksi-transaksi seperti penyimpanan, penarikan,

peminjaman, pembayaran angsuran dapat dilakukan dengan mudah. Meskipun

1

Page 22: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

2

anggota terdaftar di pusat tidak hanya dapat melakukan transaksi di koperasi pusat

namun dapat juga melakukan transaksi di koperasi cabang. Bahkan memungkinkan

fasilitas baru yaitu transfer atau mengirim uang. Dalam penggunaan data secara

bersama diperlukan suatu metode untuk mendistribusikan data. Salah satu cara

pendistribusian database adalah menggunakan replikasi. Data yang digunakan

bersama-sama akan diduplikasi (direplika) dan diletakkan di setiap kantor cabang.

Apabila terjadi perubahan data, maka semua data replika juga akan di-update.

Sehingga dengan metode replikasi ini, maka antara data di pusat dan di setiap cabang

akan selalu sama. Keuntungan lain dari metode ini adalah ketersediaan data dapat

dipenuhi. Kantor pusat dapat mengakses data yang ada di cabang maupun sebaliknya,

dan apabila terjadi kerusakan atau kehilangan data maka masih ada data replika di

cabang lain.

Studi kasus pada tugas akhir ini adalah di koperasi dimana sistem yang akan

dibangun menerapkan replikasi database untuk meningkatkan ketersediaan data.

1.2. Rumusan Masalah

Rumusan masalah dalam penelitian tugas akhir ini adalah Bagaimana

menerapkan database terdistribusi dengan metode replikasi untuk koperasi simpan

pinjam berbasis web.

Page 23: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

3

1.3. Batasan Masalah

Dengan segala keterbatasan yang dimiliki maka batasan-batasan tugas akhir

ini adalah:

1. Mengimplementasikan metode replikasi database terdistribusi pada MySQL 5.0.

2. Metode replikasi yang digunakan adalah Replikasi Master to Master.

3. Sistem hanya menangani pemasukan dan perubahan data anggota, pemasukan

data simpanan, pemasukan data pengambilan simpanan, pemasukan data

pinjaman, angsuran, dan laporan.

4. Data pinjaman yang diinputkan oleh pegawai atau karyawan sudah mendapat

persetujuan dari manager.

5. Sistem ini belum mencakup penghitungan bunga tabungan.

Page 24: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

4

1.4. Tujuan dan Manfaat Penelitian

Adapun yang menjadi tujuan dalam penulisan ini adalah untuk

mengimplementasikan metode replikasi MySQL 5.0 pada sistem berbasis web

koperasi simpan pinjam.

Manfaat bagi pihak koperasi adalah dapat dengan mudah mengakses data

cabang, dan kemudahan pembutan laporan.

1.5. Metodologi Penelitian

Metodologi yang digunakan dalam penelitian ini adalah dengan Sistem

Development Life Cycle (SDLC), yang terdiri dari tiga tahapan utama yaitu :

1. Analisis

Tujuan dalam tahap ini adalah untuk memahami sistem yang sedang

berjalan saat ini, mengidentifikasi masalah dan mencari solusinya. Kegiatan yang

dilakukan dalam tahap analisis ini adalah :

a. Problem detection untuk mendeteksi sistem, dan menghasilkan permasalahan

yang terjadi dalam sistem.

b. Initial investigation: melakukan penelitian untuk memeriksa sistem yang

digunakan saat ini.

Page 25: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

5

c. Requirement analysis untuk mendapatkan kebutuhan pemakai sistem informasi.

2. Desain

Tujuan dalam tahap perancangan untuk mendesain sistem baru yang dapat

menyelesaikan masalah-masalah. Kegiatan yang dilakukan dalam tahap perancangan

ini adalah :

a. Desain output untuk memberikan bentuk-bentuk laporan sistem dan dokumennya.

b. Desain input untuk memberikan bentuk-bentuk masukan ke sistem informasi.

c. Desain interface untuk memberikan bentuk rancang bangun (tampilan) dari

percakapan antara komputer dengan pemakai.

3. Implementasi

Pada tahap ini akan dibuat sistem yang baru dan dapat berjalan secara

optimal. Kegiatan yang dilakukan adalah koding, testing kemudian dilakukan analisis

hasil.

Page 26: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

6

1.6. Sistematika Penulisan

Sistematika penulisan dalam laporan ini adalah sebagai berikut :

BAB I. PENDAHULUAN

Untuk memberikan gambaran secara umum tentang keseluruhan

sistem yang meliputi latar belakang, rumusan masalah, batasan

masalah, tujuan dan manfaat penulisan, metode penulisan serta

sistematika penulisan

BAB II LANDASAN TEORI

Pada bab ini akan dijelaskan teori-teori mengenai database, sistem

terdistribusi, replikasi MySQL internet dan JSP secara singkat.

BAB III ANALISIS DAN DESAIN SISTEM

Untuk menjelaskan secara rinci tentang analisa dan desain sistem yang

akan dibangun.

BAB IV IMPLEMENTASI

Akan dijelaskan mengenai proses pembuatan atau

pengimplementasian sistem sesuai dengan desain yang telah dibuat.

Page 27: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

7

BAB V ANALISIS HASIL

Di sini akan memuat analisa terhadap sistem yang telah dibuat, apa

yang menjadi kelemahan-kelemahan sistem.

BAB VI KESIMPULAN DAN SARAN

Akan memuat kesimpulan dan saran untuk pengembangan sistem lebih

lanjut berdasarkan pada analisa hasil yang diperoleh.

Page 28: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

BAB II

LANDASAN TEORI

2.1. Database

Database merupakan sekumpulan data yang saling berhubungan yang

disimpan bersama-sama untuk melayani satu atau lebih aplikasi secara optimal

atau dengan kata lain suatu database merupakan serangkaian file yang secara logik

berhubungan sedemikian rupa hingga jangkauan data diperbaiki dan berkelebihan

dikurangi.

Konsep database dibuat operasional oleh suatu sistem perangkat lunak

yang mengerjakan fungsi penciptaan dan peremajaan file, mencari data dan

menghasilkan laporan. Semua data dalam rangkaian file dapat dijangkau oleh

program apapun yang bisa menggunakan database.

Database dirancang atas dasar pendekatan aplikatif maupun pendekatan

sistem. Pendekatan aplikatif merupakan cara yang tradisional, dimana database

dirancang hanya untuk memenuhi satu aplikasi tertentu, sehingga terdapat

kemungkinan satu data disiapkan dalam beberapa file berbeda untuk memenuhi

aplikasi-aplikasi yang berbeda. Sedangkan database yang dirancang dengan

pendekatan sistem, memberikan suatu database yang dapat dipergunakan untuk

lebih dari satu aplikasi, dengan mengurangi terjadinya kerangkapan data.

8

Page 29: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

9

2.2. Sistem Database Terdistribusi

Database terdistribusi (Conoly, 2002) adalah suatu kumpulan data bersama

yang saling berelasi secara logis, yang secara fisik tersebar/terdistribusi di seluruh

jaringan kumputer.

Dalam sebuah database terdistribusi, database disimpan pada beberapa

komputer yang terhubung melalui jaringan komunikasi atau jaringan komputer.

Dengan tujuan agar terjadi pertukaran informasi antar komputer dan kerjasama

antara komputer yang satu dengan komputer yang lain untuk mencapai suatu

fungsi. Salah satu topologi untuk menghubungkan komputer dalan jaringan adalah

dengan Ring (LAN). Berikut gambar topologi jaringan LAN:

Gambar 2.1 Topologi Jaringan Ring

Sebuah sistem database terdistribusi berisikan sekumpulan site, di mana

tiap-tiap site dapat mengakses database lokal (database pada site itu sendiri)

maupun database global (database yang terletak pada site yang berbeda).

Page 30: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

10

Sistem database tersistribusi mempunyai kelebihan dan kekurangan.

Berikut merupakan kelebihan useran sistem database terdistribusi:

1. Otonomi lokal : karena data didistribusikan, user dapat mengakses dan

bekerja dengan data tersebut sehingga memiliki kontrol lokal.

2. Meningkatkan kinerja : karena setiap site menangani hanya bagian dari

DB, CPU dan I/O tidak seberat seperti DB pusat. Data yang dipakai untuk

transaksi disimpan dalam beberapa site, sehingga eksekusi transaksi dapat

dilakukan secara paralel.

3. Meningkatkan reliability/ availability : jika satu site mengalami crash,

dapat membuat beberapa site tidak dapat diakses. Jika data direplikasi ke

banyak site, kerusakan hubungan komunikasi tidak menjadikan sistem

total tidak dapat dioperasikan.

4. Ekonomis : dari biaya komunikasi, baik membagi aplikasi dan memproses

secara lokal di setiap site. Dari biaya komunikasi data, akan lebih murah

untuk memelihara sistem komputer dalam satu site dan menyimpan data

secara lokal.

5. Expandibility : akan lebih mudah mengakomodasikan ukuran DB yang

semakin besar. Ekspansi dapat dilakukan dengan menambah proses dan

kekuatan penyimpanan ke jaringan.

Page 31: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

11

6. Shareability : jika sistem informasi tidak terdistribusi, akan sulit untuk

berbagi data dan sumber daya. Sistem DB terdistribusi memungkinkan hal

ini.

Sedangkan kerugian/kelemahan dari useran sistem database terdistribusi adalah

sebagai berikut :

1. Kompleksitas : Masalah DDBS lebih kompleks dibandingkan dengan

manajemen database terpusat.

2. Biaya : sistem terdistribusi membutuhkan tambahan hardware (untuk

mekanisme komunikasi) sehingga biaya hardware meningkat terutama jika

dilakukan replikasi. Jika fasilitas komputer dibuat di banyak site, akan

memerlukan banyak orang yang memelihara fasilitas tersebut

3. Kontrol distribusi : distribusi menyebabkan masalah sinkronisasi dan

koordinasi.

4. Keamanan : akan mudah mengontrol database yang terpusat karena dalam

sistem database terdistribusi, jaringan membutuhkan keamanan tersendiri.

5. Perubahan yang sulit : tidak ada tool atau metodologi untuk membantu

user mengubah database terpusat ke database terdistribusi.

Ada beberapa alternatif dasar untuk menyimpan atau menempatkan data,

yaitu partisi dan replikasi. Dalam skema partisi, database dibagi ke dalam

sejumlah partisi disjoin yang masing-masing ditempatkan di site yang berbeda.

Page 32: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

12

Perancangan replikasi dibedakan atas complete replicated dimana sebuah replika

database ditempatkan di masing-masing site, atau partially replicated yaitu

sebuah replika dari database disimpan di lebih dari satu site tetapi tidak di semua

site.

2.3. Distributed Database Management System (DDBMS)

DBMS terditribusi adalah (Connoly, 2002) sistem perangkat lunak yang

mengijinkan pengolahan database terdistribusi dan membuat transparan terhadap

pemakainya. Sebuah DDBMS terdiri atas sebuah logical database yang dibagi

kedalam sejumlah fragments. Tiap fragments disimpan pada satu komputer atau

lebih di bawah kontrol sebuah DBMS yang terpisah, dimana komputer-komputer

tersebut terhubung oleh suatu jaringan komunikasi. Tiap site (tempat) mampu

secara mandiri memproses permintaan user yang membutuhkan akses ke data

lokal dan mampu memproses data yang tersimpan di komputer-komputer lain

dalam jaringan tersebut.

Transparansi pada Sistem Terdistribusi

Merupakan pemisahan dari semantic level tingkat tinggi dari implementasi

level rendah. Atau sistem transparansi menyembunyikan rincian implementasi

dari user. Sistem database terdistribusi menyediakan beberapa tipe transparansi

dalam Distributed DBMS antara lain :

Page 33: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

13

a. Transparansi Distribusi (Distribution Transparency)

User tidak perlu tahu bahwa data didistribusi, user merasakan databsenya

sebagai basis data tunggal.

1. Transparansi lokasi (location transparency), merupakan transparansi

terhadap perintah yang bebas digunakan pada lokasi data maupun pada

sistem dimana operasi berjalan, artinya user tidak perlu tahu pada lokasi

mana potongan data tersimpan, akan tetapi user harus tahu bagaimana data

di fragmentasi.

2. Transparansi fragmentasi (fragmentation transparency) artinya user

dapat melakukan semua akses seakan-akan relasi tidak terfragmentasi

(data merupakan satu kesatuan utuh kembali) dengan kata lain user tidak

perlu tahu bahwa data di fragmentasi dan user tidak perlu

menspesifikasikan nama-nama fragment dan lokasi-lokasi datanya.

Fragmentasi data mempunyai pengertian bahwa objek logikal yang

diberikan dapat dibagi-bagi menjadi potongan-potongan data (fragment)

untuk keperluan penyimpanan fisik.

3. Transparansi replikasi (replication tranparency) artinya user tidak perlu

tahu replikasi terhadap fragment-fragment, objek logikal yang diberikan

dapat ditampilkan pada level fisik dengan beberapa salinan (replika) yang

berbeda dari objek tersimpan yang sama, pada beberapa sisi yang berbeda.

Meskipun demikian mungkin sebuah sistem tidak memiliki location

Page 34: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

14

tranparency tetapi memiliki replication tranparency. Sehingga dapat

dicatat bahwa transparansi lokasi, fragmentasi dan replikasi secara

bersamaan menyebabkan sistem terdistribusi seakan-akan merupakan

sistem terpusat dalam pandangan user.

4. Transparansi Pemetaan Lokal (Local Mapping Transparency), user

harus menspesifikasikan baik nama-nama fragment maupun lokasi item-

item data.

5. Transparansi Penamaan (Naming Transparency), seperti objek database

terpusat ataupun database harus memiliki nama unik. Dengan memberikan

identifier sebagai bagian dari nama objek.

b. Transparansi Tranksaksi (Transaction Transparency)

Semua transaksi terdistribusi tetap menjaga konsistensi dan integritas database

terdistribusi, selain itu DDBMS juga harus memastikan sinkronisasi

subtransaksi-subtransaksi dengan transaksi lokal tetapi juga subtransaksi-

subtransaksi dengan transaksi global

1. Transparansi Concurrency (Concurrency Transparency)

Semua transaksi yang dilaksanakan bersamaan (baik terdistribusi maupun

tidak terdistribusi) sama seperti jika transaksi tersebut dieksekusi pada satu

waktu dalam urutan serial.

Page 35: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

15

2. Transparansi Kegagalan (Failure Transparency)

Menjamin atomicity dari global transactions yang berarti memastikan

bahwa subtransaksi global transaction apakah semua commit atau semua

abort.

c. Transparansi Unjuk Kerja (Performance Transparency)

Sebuah DDBMS harus memiliki unjuk kerja seperti DBMS terpusat,

diharapkan sistem tidak mengalamai degradasi/unjuk kerja yang menurun

karena sistem memiliki artitektur terdistribusi.

d. Transparansi DBMS (DBMS Transparency)

Menyembunyikan knowledge bahwa lokal DDBMS dapat saja berbeda.

2.4. Replikasi Data

Replikasi (Connoly, 2002) adalah proses menghasilkan dan memproduksi

banyak salinan/copy data pada satu atau lebih tempat (site).

Replikasi merupakan mekanisme yang penting dalam mendistribusikan

data karena dapat diatur untuk meyediakan akses data bagi user kapanpun dan

dimanapun dibutuhkan. data replicator mengijinkan pencipta memperbanyak

tabel atau subset tabel dalam hubungan penyebaran yang luas.

Page 36: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

16

Fungsi utama dari data replicator adalah untuk memelihara keseragaman

diantara hasil duplikat secara umum, yang satu salinan utama dan berbagai salinan

sekunder dan pembaharuan disebarkan dari salinan utama ke salinan sekunder

dengan cara yang sesuai yaitu tanpa menggunakan perintah dua antar muka.

Penyebaran bisa meningkat, ketika berdasarkan useran variasi (data dikirim dari

salinan utama ke salinan sekunder). Alternatif lain seluruh salinan sekunder secara

periodik diciptakan kembali dari seluruh salinan utama. Data replicator

melakukan ini secara transparan, tanpa mengubah aplikasi yang mengoperasikan

salinan utama.

2.4.1. Update dalam Replikasi

Dalam sistem terdistribusi, replikasi dari suatu database dapat disimpan

pada tempat yang berbeda dalam jaringan. Sebelum terhubung, data replicator

akan membuat salinan database yang akan digunakan. Hal tersebut agar

mengurangi waktu dalam pengaksesan data. Kejadian tersebut dapat memperbaiki

ketersediaan data dalam kasus kegagalan, jika terjadi tubrukan replika, suatu

database masih dapat diakses melalui replika yang lain.

Dalam mengimplementasikan replikasi, transaksi individu menyadari

bahwa ada replikasi pada database. Sistem mengetahui data mana yang direplikasi

dan dimana replikasi itu disimpan. Dengan algoritma replikasi read-one/write-all,

ketika transaksi meminta untuk membaca sebuah data, sistem mengambil sebuah

data dari replika terdekat, ketika transaksi meminta untuk mengubah data, sistem

Page 37: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

17

mengubah semua data pada semua replika. Bagian sistem bertanggung jawab

untuk menerapkan algoritma replikasi yang disebut kendali replika (replica

control).

Sistem read-one/write-all mempunyai dua macam sifat update yaitu :

1. Replikasi Synchronous

Pada mekanisme replikasi synchronous menggunakan protokol 2PC (2-phase

commit). Salinan data di slave diupdate dengan segera ketika data sumber

diupdate. Proses replikasi synchronous dijelaskan pada gambar dibawah ini:

Gambar 2.2 Proses Replikasi Synchronous

Pada gambar di atas, query dieksekusi di master dan slave, dan dicommit

dikeduanya sebelum client medapatkan status.

Page 38: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

18

2. Replikasi Asynchronous

Dengan mekanisme ini, database target (salinan data) diupdate setelah

database sumber diupdate sehingga terjadi delay beberapa menit atau bahkan

beberapa jam untuk mendapatkan konsistensi data. Besarnya delay yang

diperlukan bergantung pada beberapa faktor, yaitu seberapa sering replikasi

memproses pengambilan update, berapa banyak data yang harus ditransfer ke

sistem replikasi, dan berapa cepat jaringan dapat melewatkan data untuk

dipindahkan.

Gambar 2.3 Proses Replikasi Asinkron

Gambar di atas mengilustrasikan bagaimana sistem replikasi asinkron

memproses query pada server master dan mengembalikan status ke client

sebelum query direplikasi pada slave.

Page 39: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

19

2.4.2. Kepemilikan data (data ownership)

Data terdistribusi tidak lepas dari kepemilikan data itu sendiri, yaitu sites

mana yang memiliki hak untuk mengupdate data. Tipe utama dari kepemilikan

adalah master/slave, workflow dan update-anywhere.

1. Master/slave

Pada tipe ini, data direplikasi secara asynchronous pada sebuah site

yang disebut site utama (master-site) dan hanya dapat diperbarui/di-update

oleh site tersebut. Pendistribusian data dilakukan dengan menggunakan suatu

cara yaitu publish-and-subscribe dimana site utama (sebagai publisher)

membuat data tersedia (available) dan Site-site lain (slave) melakukan

subscribe terhadap data yang dimiliki oleh site utama tersebut, yang berarti

bahwa site-site lain tersebut hanya menerima read-only copies pada sistem

lokal mereka. Tiap site dapat menjadi master site bagi sekumpulan data (data

sets) yang tak overlapping tetapi hanya diperbolehkan satu site saja yang dapat

memperbarui master copy dari suatu data sets, sehingga konflik dapat

dihindari.

2. Workflow

Pada dasarnya tipe ini hampir sama seperti master-salve ownership,

metode ini juga menghindari konflik update data yang terjadi pada waktu yang

bersamaan, yaitu dengan cara yang lebih dinamis. Pada tipe Workflow ini,

sistem mengijinkan hak untuk memperbarui replikasi data berpindah dari satu

Page 40: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

20

site ke site lain. Meskipun demikian pada satu waktu tertentu, hanya boleh

satu site saja yang melakukan update data.

3. Update-anywhere

Pada kedua tipe sebelumnya, pada satu waktu yang sama hanya sebuah

site saja yang boleh memperbarui data. Seluruh site yang lain hanya memiliki

akses read-only pada replikasinya. Tetapi pada tipe ini proses update bisa

dilakukan di beberapa site, metode ini menciptakan lingkungan yang peer-to-

peer dimana banyak site mempunyai hak yang sama untuk memperbarui

replikasi data. Pada metode ini juga mengijinkan site-site lokal memiliki

fungsi otonomi bahkan ketika site lain tidak dapat diakses.

2.4.3. Keuntungan replikasi:

1. Performa

Kecepatan akses menjadi lebih baik dibanding dengan database terpusat

karena data diletakan dekat dengan user dan paralel DDBMS juga

dimungkinkan. Unjuk kerja juga akan meningkat karena tiap site hanya

menangani sebagian dari seluruh database, maka tidak mungkin CPU dan alat

I/O memroses data yang sama.

Page 41: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

21

2. Perbedaan Geografis

Replikasi dapat menjadi sebuah solusi untuk menyediakan data ke site-site

yang terpisah secara geografis.

3. Redudansi dan Backup

Menggunakan replikasi berarti membackup data secara konstan, dan jika

database utama mengalami kegagalan maka masih ada copy dari database

yang siap direstore.

4. Mesin Penyimpan dan Optimasi Index

Index akan sangat bermanfaat untuk mengakses data yang memerlukan

multipel index pada sebuah tabel tunggal. Menyebarkan index melalui dua

database yang berbeda dan mengirimkan query ke mesin penyedia dapat

mengurangi ukuran index dan meningkatkan unjuk kerja.

5. Pertumbuhan secara modular.

Dalam lingkungan database terditribusi, lebih mudah menangani

perluasan/ekspansi. Site baru dapat ditambahkan ke jaringan tanpa

mengganggu operasional dari site-site lain.

Page 42: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

22

2.4.4. Kelemahan

Replikasi dapat bermanfaat dan dibutuhkan dalam beberapa situasi, namun

juga tidak dapat menyelesaikan banyak masalah. Sebagai contoh :

1. Menggunakan replikasi sebagai backup untuk mengembalikan data update dan

delete tidak bekerja. Karena sebuah server replikasi mengeksekusi beberapa

query dari master ke slave dengan delay, sehingga slave mencari record

update atau delete pada master ternyata tidak berhasil.

2. Replikasi Asyncronous, tidak bermanfaat jika data yang dibutuhkan slave

adalah real time.

2.5. MySQL 5.0

2.5.1. Privelege

Adalah hak untuk melakukan operasi tertentu terhadap server. Previlege

merupakan cara pengamanan yang mengacu pada kewenangan user dalam

database. Ini berarti pemberian privelege harus disesuaikan dengan pekerjaan

user.

Query untuk membuat privelege.

GRANT priv_tipe ON {*.* | * | db_name.* | table_name} TO 'user_name'@'host_name' IDENTIFIED

by ‘password_repl’;

Page 43: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

23

Query untuk menghapus privelege untuk sebuah user account:

REVOKE priv_tipe ON {*.* | * | db_name.* | table_name} FROM 'user_name'@'host_name';

Query untuk melihat priveleges yang dimiliki user:

SHOW GRANTS FOR 'user_name'@'host_name';

Query untuk melihat tabel privelege user secara langsung:

SELECT * FROM mysql.user WHERE User = ''user_name' AND Host = 'host_name' \G

2.5.2. Membuat User

Perintah yang digunakan untuk menambah user menggunakan GRANT

atau CREATE USER. GRANT untuk membuat user sekaligus dengan previlage,

sedangkan CREATE USER untuk membuat user tanpa previlege (username dan

host) user disimpan pada tabel mysql.user.

GRANT priv_tipe ON {*.* | * | db_name.* | table_name} TO username IDENTIFIED BY

'my_password';

Atau :

CREATE USER 'user_name'@'host_name' IDENTIFIED BY 'your_password';

Menghapus user account:

DROP USER command;

DROP USER 'some_user'@'%';

Page 44: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

24

DELETE FROM mysql.user WHERE user='some_user' AND Host='%';

Untuk memastikan perubahan yang dilakukan menggunakan perintah Flush:

FLUSH PRIVILEGES;

Membuat database

CREATE DATABASE <database_name>;

2.5.3. Replikasi pada MySQL

Mekanisme replikasi yang didukung oleh MySQL adalah satu arah, yaitu

replikasi asyncronous (asingkron). Sedangkan replikasi sinkron pada MySQL

dikenal dengan clustering.

Sebuah mesin bertindak sebagai master server dan satu atau lebih mesin

bertindak sebagai slave server. Master menyimpan setiap perubahan yang terjadi

ke dalam databes dengan file binary log. File binary log merekam semua

perubahan (UPDATE, DELETE, INSERT...) yang dilakukan oleh database master

sejak pertama kali replikasi dikonfigurasi dan dimulai. Master juga membuat dan

memaintain sebuah indek file untuk menjaga track dari rotasi binary log yang

dibuat. Slave server membaca binary log dan melakukan perubahan terhadap

data.

Replikasi pada MySQL menggunakan tiga thread. Thread satu di dalam

master dan dua thread di slave. Ketika START SLAVE dijalankan pada master

Page 45: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

25

slave, slave membuat sebuah thread yang disebut I/O thread untuk

menghubungkan dengan master dan meminta master untuk mengirimkan record

yang diupdate dalam binary log. Sedangkan master membuat sebuah thread

untuk mengirimkan binary log ke slave. Thread ini dapat diidentifikasikan sebagai

Binlog Dump yang dapat dilihat dari SHOW PROCESSTLIST pada master.

Thread I/O pada slave membaca update yang master Binlog Dump kirimkan dan

mengkopi ke lokal file yang diketahui sebagai relay logs di dalam direktori

slave/data. Thread ke tiga adalah SQl thread yang dibuat slave untuk membaca

relay logs dan melakukan update.

2.5.4. Replikasi Master to Master

Ketika sebuah multi-master replikasi dibangun, untuk mencegah tubrukan

primary key digunakan AUTO_INCREMENT untuk insert rows. Variabel yang

digunakan oleh kolom ini adalah auto_increment_increment sebagai nilai dari

auto_increment dan auto_increment_offset sebagai start point untuk kolom

auto_increment.

Misalkan pada database A diset Auto_increment_increment = 2 dan Auto_increment_offset

= 1, sedangkan pada database B Auto_increment_increment = 2 dan Auto_increment_offset =

2. jika dilakukan Insert tabel x yang berada pada database A:

Insert into x values (‘null’, ‘aaa’), (‘null’, ‘bbb’), (‘null’, ‘ccc’);

Select * from x;

Page 46: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

26

Hasil dari query diatas adalah :

ID Nama

1 aaa

3 bbb

5 ccc

Dan tambah tabel x pada database B sebagai berikut :

Insert into x values (‘null’, ‘xxx’), (‘null’, ‘yyy’), (‘null’, ‘zzz’);

Select * from x;

Hasil dari query diatas adalah :

ID Nama

2 xxx

4 yyy

6 zzz

Page 47: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

27

2.6. Web

World Wide Web (WWW) merupakan Web yang saling terhubung pada

jaringan. Web menggunakan bahasa HTML (HyperText Markup Language) dan

menggunakan protokol HTTP (HyperText Transfer Protokol). Dan saat ini sudah

banyak berkembang skrip untuk mendukung bahasa HTML, seperti PHP, JSP,

ASP dan juga applet (Java).

Arsitektur aplikasi web ditunjukkan pada gambar 1.1, sebuah web server

menerima permintaan dari client terhadap halaman web, kemudian menyampaikan

permintaan tersebut ke middleware yang dapat menerjemahkan kode tertentu,

menjalankan kode tersebut dan berinteraksi dengan basidata. Hasil dari

middleware dikembalikan ke browser client. Contoh web server : Apache, IIS,

Xitami. Contoh middleware : PHP, JSP, ASP, Perl. Sedangkan yang termasuk

web browser adalah Mozila, IE, Netscape, Opera.

Gambar 2.4 Arsitektur Aplikasi Web

Page 48: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

28

2.7. JSP

JSP adalah suatu teknologi web berbasis bahasa pemrograman java dan

berjalan di platform java, serta merupakan bagian teknologi J2EE (Java 2

Enterprise Edition). JSP sangat sesuai dan tangguh untuk menangani presentasi di

web. Sedangkan J2EE merupakan platform java untuk pengembangan sistem

aplikasi enterprise dengan dukungan API (Aplication Programing Interface) yang

lengkap dan portabilitas serta memberikan sarana untuk membuat suatu aplikasi

yang memisahkan antara bussines logic (sistem), presentasi dan data. JSP

memerlukan JVM (Java Virtual Machine) supaya dapat berjalan, yang berarti

mengisyaratkan harus menginstal java di server dimana jsp dapat dijalankan.

Selain JVM, JSP juga memerlukan server yang disebut Web Container.

Jika dilihat dari asal-usulnya, JSP merupakan pengembangan dari Servlet.

Servlet adalah teknologi java yang memungkinkan pembuatan halaman web yang

bersifat dinamis dan diproses pada sisi server. Pada saat diproses di sisi server,

file JSP sebenarnya dikompilasi menjadi servlet yang merupakan program java

yang berjalan di server. Perlu diketahui bahwa servlet merupakan teknologi java

untuk web sebelum JSP dan merupakan basis pengembangan JSP.

2.7.1 Arsitektur JSP

User yang ingin mengakses halaman web mula-mula mengirimkan

permintaan halaman web melalui protokol HTTP dalam bentuk JSP (file

berekstensi .jsp) permintaan ini akan disampaikan ke web server. Kemudian web

server mengambil dokumen JSP dan mengirimkan ke JSP Servlet Engine. Bagian

Page 49: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

29

inilah yang melakukan pemrosesan kode-kode JSP (termasuk didalamnya

melakukan kompilasi) dan membentuk kode HTML. Selanjutnya kode HTML

disampaikan oleh web server ke client yang memintanya. Kode HTML ini

selanjutnya diproses oleh browser sehingga user bisa memperoleh informasi dari

halaman web yang dikehendaki. Perlu diketahui bahwa pengompilasian kode JSP

hanya dilakukan sekali saja, yaitu pada pemanggilan dokumen pertama kali. Oleh

karena itu user yang memanggil dokumen yang baru saja dibuat atau diperbarui

akan merasakan bahwa tanggapan terhadap permintaan halaman web cukup lama.

Untuk menghindari keadaan seperti ini, pengembang dapat memanggil terlebih

dahulu dokumen tersebut setelah dilakukan perubahan. Detail pemrosesan JSP

servlet engine adalah sebagai berikut :

1. Melakukan pemilahan (parsing) kode JSP

2. Membangkitkan kode sumber servlet

3. Mengompilasi kode sumber servlet menjadi sebuah kelas.

4. Membuat instant servlet.

Memberikan keluaran servlet ke web server.

2.7.2 Elemen-elemen JSP

JSP merupakan bahasa pemrograman yang bersifat embedded pada kode

HTML maupun WML, namun juga dapat berdiri sendiri dimana sintaks JSP diatur

sesuai dengan spesifikasi JSP yang dapat di dowload dari www.jcp.org . JSP

memiliki bermacam-macam elemen yang dapat digunakan dalam suatu halaman

JSP. Dalam JSP terdapat tiga komponen utama yaitu :

Page 50: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

30

a. Direktif

Direktif adalah media yang digunakan JSP untuk mengirimkan pesan ke

JSP container. Direktif berguna untuk melakukan setting nilai global

seperti deklarasi class atau method. Setting yang dilakukan oleh direktif

berlaku pada seluruh halaman (hanya halaman itu saja). Sebagai

gambaran, pada source code java sering kita lihat baris berikut :

import java.io.*;

import java.sql.*;

Pada JSP programer masih bisa melakukan hal tersebut tetapi tentu saja

dengan cara yang berbeda. Cara tersebut adalah dengan menggunakan

direktif.

Secara umum sintaks direktif adalah :

<%@ nama_direktif atribut1=”nilai1” atribut2=”nilai 2”

…%>

b. Elemen skripting

Elemen skripting terdiri atas tiga macam yaitu :

• Skriplet

Tag <% ... %> digunakan untuk deklarasi, ekspresi d an

kode lain. Contoh :

<%

For(int i=0;i<10;i++)

{

Out.println(“ini adalah skrip untuk loop”);

}

%>

Page 51: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

31

• Deklarasi

Tag <%! … %> digunakan untuk mendeklarasikan variabel atau

method, contoh :

<%! int x=10; double y=2.0; %>

• Ekspresi

Tag <%= … %> digunakan untuk ekspresi dalam java dan

menampilkannya sebagai string pada browser, contoh :

<%= new.java.util.date() %>

Kode di atas akan menampilkan tanggal dan waktu saat ini pada

layar browser.

c. Action

Adalah tag yang berfungsi untuk menjalankan suatu operasi yang spesifik,

seperti :

• Mem-forward dari suatu halaman JSP ke halaman JSP yang lain.

• Menyisipkan suatu halaman/operasi pada halaman JSP dari

halaman JSP yang lain.

• Penanganan Java Applet dan Java bean pada suatu halaman JSP

Standar action dari penulisannya mirip dengan penulisan pada XML.

Sintaks dari standar action ini adalah :

<jsp:nama_aksi atribut1 atribut2 …/>

Atau

<jsp:nama_aksi atribut1 atribut2 …/>

/*

Page 52: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

32

Pada bagian ini bisa diisi dengan JSP action yang l ain

*/

</jsp:nama_aksi>

2.8. JDBC (Java DataBase Conectivity)

Adalah standar industri yang didasarkan pada X/Open SQL Command

Level Interface (CLI). JDBC memberikan antarmuka pemrograman aplikasi

database untuk berbagai jenis database. Jadi konsep JDBC hampir dengan ODBC

dimana memungkinkan untuk beralih database tanpa harus mengubah kode

program, asalkan database yang baru mendukung JDBC.

Secara umum terdapat dua layer utama yang harus diapahami jika hendak

menggunakan JDBC yaitu layer driver dan layer aplikasi. Layer driver bertugas

menjalankan seluruh aspek komunikasi dengan database tertentu. Setiap vendor

database (termasuk Oracle) berkewajiban menyediakan driver JDBC yang

memungkinkan programer untuk mengakses database tersebut. Layer aplikasi

adalah bagian dari JDBC yang mesti digunakan oleh programer. Layer aplikasi

diterapkan sebagai class java.sql.* dalam JDK (Java Developer’s Kit). Dengan

memanggil class java.sql.* memungkinkan program-program java untuk

berinteraksi dengan database menggunakan SQL.

Page 53: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

BAB III

ANALISIS DAN DESAIN SISTEM

3.1 Analisis Sistem

3.1.1 Gambaran Umum Sistem

Transaksi yang dilakukan di koperasi cabang dan pusat masih terpisah satu

sama lain. Anggota koperasi hanya dapat melakukan transaksi dimana angota

tersebut mendaftar. Sistem pendistribusian data dengan metode replikasi master-

master dapat membantu memberi kemudahan dalam melakukan transaksi, yaitu

memungkinkan anggota yang terdaftar disuatu koperasi dapat melakukan

transaksi di koperasi lain. Perubahan data yang digunakan adalah Asynchronous

.

3.1.2. Analisis Masalah

Beberapa masalah yang memicu pembuatan sistem pendistribusian

data dengan replikasi adalah:

a. Transaksi tidak dapat dilakukan di mana saja atau hanya dilakukan di

mana anggota tersebut terdaftar.

b. Koperasi pusat dan cabang masih menggunakan data yang terpisah.

33

Page 54: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

34

3.1.3. Orang yang terlibat dalam sistem.

Sistem yang akan dibuat melibatkan :

a. Karyawan Koperasi

Pihak yang memasukkan data anggota, data-data transaksi seperti

transaksi penyimpanan, penarikan, peminjaman dan angsuran.

b. Manager

Pihak yang memasukkan kebijakan koperasi dan akun akun yang

digunakan.

3.1.4. Gambaran Umum Sistem Baru

Agar data yang ada di pusat dapat diakses di cabang atau sebaliknya,

sistem yang akan dikembangkan dengan menerapkan teknologi basisdata

terdistribusi khususnya metode replikasi master-master. Sebagai user interface

bagi para pengguna sistem, akan dibuat dengan JSP.

Pendistribusian tabel yang dibutuhkan untuk koperasi menggunakan

replikasi master to master. Pemilihan jenis replikasi ini antara lain:

a. Pada Replikasi bagian master database dapat ditulis dan dibaca.

b. Masing-masing cabang dapat mengupdate data.

Tabel yang akan direplikasi antara lain tabel anggota, tabungan, tabungan

detail, peminjaman, tagihan dan angsuran, angsuran detail, akun utama.

Page 55: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

35

Sedangkan tabel pemakai dan tabel jurnal tidak akan direplikasi karena

dalam pembuatan laporan setiap cabang tidak memerlukan data dari cabang lain.

3.1.5. Requirement Analysis

Gambar 3.1 Use Case Diagram

Page 56: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

36

3.1.6. Logical Design

3.1.6.1. Proses Modeling, yang meliputi:

a) Input dan output sistem

Table 3.1 Input Output Sistem

Eksternal

Sistem Input Output

Kode_anggota, nama, alamat,

no_telpon, jenis_kelamin,

pekerjaan, status_keanggotaa,

simpnan pokok, tanggal daftar

profil anggota

Kode_anggota, besar simpanan

wajib, besar simpanan sukarela Data simpanan

Kode_anggota, besar pinjaman,

jumlah angsuran, pembayaran

biaya administrasi

Data pinjaman, data

tagihan

Anggota KSP

Kode_anggota, besar angsuran Data tagihan, data

angsuran

Manager Kode akun, nama akun, saldo Data Akun, preferensi

Page 57: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

37

Besar tabungan pokok,

Tabungan wajib. biaya provisi,

administrasi, bunga pinjaman,

meterai, kartu anggota,

biaya_notaris

Kebijakan

Kode_anggota, tangggal,

kode_akun, bulan Laporan

b) Context Diagram

Gambar 3.2 Context Diagram

Page 58: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

38

c) Diagram Berjenjang

Gambar 3.3 Diagram Berjenjang

Page 59: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

39

d) Overview Diagram

DFD Level 0

Karyawan

KSP

5

Angsuran

4

Pinjaman

3

Penarikan

2

Simpanan

1

Keanggotaan

Kode anggota, besar angsuran

Kode anggota, Besar pinjaman

Kode anggota,

saldo tab sukarela, besar penarikan

Kode anggota, besar tabungan

Data tagian

Data tagian

Kode pinjaman,

besar angsuran

Data Pinjaman

Data Penarikan

Data Angsuran

Data Simpanan

Data Anggota

Formulir Penarikan

Formulir Pinjaman

Formulir Simpanan

Formulir Pendaftaran

Formulir Angsuran

Anggota

Tabungan

Tagihan

Data Simpanan

Data PenarikanData Angsuran

Data Pinjaman

Data Anggota

Jurnal Kode anggota, tanggal daftar, kode akun,

keterangan, besar simpanan pokok

Kode tabungan, tanggal simpan,

keterangan,simpanan wajib,

kode akun, simpanan sukarela

Kode penarikan,

tanggal ambil, kode akun,

keterangan,besar penarikan

Kode pinjaman, tanggal pinjam,

kode akun, keterangan, besar pinjaman

Kode angsuran, tanggal angsur,

kode akun, keterangan, besar angsuran,

denda

Manager

Angsuran

Pinjaman

Kode Anggota, Tanggal, Preferensi

kebijakanData kebijakan

Kode akun

Kebijakan

Penarikan

Denda

Bunga,

Biaya2

pinjaman

Tab Wajib

Tab Pokok

Kode akun

8

Laporan

9

Preferensi

7

Kebijakan

6

Akun Utama

Data Akun Data Akun Akun Utama

Kode akun

Gambar 3.4 DFD Level 0

Page 60: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

40

DFD Level 1 Proses 1

Gambar 3.5 DFD Level 1 Proses 1

DFD Level 1 Proses 2

Gambar 3.6 DFD Level 1 Proses 2

Page 61: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

41

DFD Level 1 Proses 3

Karyawan KSP

Data anggota

Formulir Penarikan

Anggota

Penarikan

3.1P

Tambah

Penarikan

3.2P

Lihat

Penarikan

Data Penarikan

Kode anggota,

Data penarikan Data anggota

Data Penarikan

Jurnal

Kode penarikan,

tanggal ambil, kode akun,

keterangan,besar penarikan

Kode akun

Preferensi

Gambar 3.7 DFD Level 1 Proses 3

DFD Level 1 Proses 4

Gambar 3.8 DFD Level 1 Proses 4

Page 62: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

42

DFD Level 1 Proses 5

Gambar 3.9 DFD Level 1 Proses 5

DFD Level 1 Proses 6

Gambar 3.10 DFD Level 1 Proses 6

Page 63: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

43

DFD Level 1 Proses 7

Gambar 3.11 DFD Level 1 Proses 7

Page 64: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

44

3.1.6.2. E-R Diagram

Gambar 3.12 E-R Diagram

Page 65: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

45

3.1.7. Desain Sistem

1) Relasi antar tabel

Gambar 3.13 Relasi antar tabel

Page 66: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

46

2) Desain Database

a. Tabel Anggota, merupakan tabel yang akan digunakan untuk

menyimpan data anggota dan nasabah.

Table 3.2 Tabel Anggota

Nama atribut Tipe data ukuran Null?

PK Kode_anggota Varchar 5 Tidak

Nama_anggota Varchar 50 Tidak

Jenis_kelamin Varchar 15 Tidak

Kode_cabang Int - Tidak

Tanggal_daftar date - Tidak

No_telpon Varchar 13 Tidak

Alamat Varchar 100 Tidak

Status_keanggotaan Varchar 15 Tidak

Pekerjaan Varchar 20 Tidak

simpanan_pokok Double - Ya

simpanan_wajib Double - Ya

Page 67: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

47

Simpanan_sukarela Double - Ya

pinjaman Double - Ya

b. Tabel Koperasi, merupakan tabel untuk menyimpan data-data

cabang.

Table 3.3 Tabel Koperasi

Nama atribut Tipe data ukuran Null?

PK Kode_cabang Int - Tidak

Nama_koperasi Varchar 5 Tidak

Alamat varchar 100 Ya

No_telpon Varchar 15 Ya

Alias Varchar 5 Tidak

c. Tabel AkunUtama, digunakan untuk menyimpan data akun.

Table 3.4 Tabel AkunUtama

Nama atribut Tipe data ukuran Null?

PK Kode_akun Varchar 10 Tidak

Nama_akun Varchar 50 Tidak

Page 68: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

48

Saldo Double - Ya

d. Tabel Preferensi, untuk menyimpan data akun yang sering

digunakan pada saat transaksi.

Table 3.5 Tabel Preferensi

Nama atribut Tipe data ukuran Null?

kas Varchar 10 Tidak

piutang Varchar 10 Tidak

sukarela Varchar 10 Tidak

pokok Varchar 10 Tidak

wajib Varchar 10 Tidak

administrasi Varchar 10 Tidak

bunga Varchar 10 Tidak

denda Varchar 10 Tidak

biaya Varchar 10 Tidak

Page 69: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

49

e. Tabel Kebijakan_koperasi, untuk menyimpan data kebijakan

koperasi.

Table 3.6 Tabel Kebijakan_koperasi

Nama atribut Tipe data ukuran Null?

tab_pokok Double - Tidak

tab_wajib Double - Tidak

provisi_pinjaman Double - Tidak

biaya_administrasi Double - Tidak

bunga_pinjaman Double - Tidak

biaya_meterai Double - Tidak

kartu_anggota Double - Tidak

biaya_notaris Double - Tidak

denda Double - Tidak

Bunga_tabunagan Double - Tidak

Page 70: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

50

f. Tabel Tabungan, untuk merekam transaksi tabungan anggota.

Table 3.7 Tabel Tabungan

Nama atribut Tipe data ukuran Null?

PK kode_tabungan Varchar 15 Tidak

kode_anggota Varchar 15 Tidak

tgl_simpan Date - Tidak

Besar_tabungan Double - Tidak

lokasi Int - Tidak

g. Tabel Tabungan_detil, merupakan data lengkap dari tabungan

yang mencakup tabungan sukarela dan tabungan wajib.

Table 3.8 Tabel Tabungan_detil

Nama atribut Tipe data ukuran Null?

kode_tabungan Varchar 15 Tidak

tab_wajib Double - Ya

tab_sukarela Double - Ya

bulan_tabwajib Double - Ya

Page 71: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

51

h. Tabel Penarikan, merupakan tabel untuk menyimpan data

penarikan tabungan.

Table 3.9 Tabel Penarikan

Nama atribut Tipe data ukuran Null?

PK kode_penarikan Varchar 15 Tidak

FK kode_anggota Varchar 15 Tidak

tgl_penarikan Date - Tidak

Besar_penarikan Double - Tidak

lokasi Int - Tidak

i. Tabel Pinjaman. Tabel pinjaman ini berisi data peminjaman

anggota dan pembayaran administrasi peminjaman.

Table 3.10 Tabel Pinjaman

Nama atribut Tipe data ukuran Null?

PK kode_pinjaman Varchar 15 Tidak

FK Kode_anggota Varchar 15 Tidak

Page 72: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

52

tgl_pinjaman Date 5 Tidak

besar_pinjaman Double - Tidak

bunga Double - Tidak

jumlah_angsuran Int 2 Tidak

provisi Double - Tidak

biaya_adm Double - Tidak

biaya_kartu_anggota Double - Tidak

biaya_materai Double - Tidak

biaya_notaris Double - Tidak

pembayaran_adm Double - Tidak

lokasi Int - Tidak

j. Tabel Tagihan. Tabel ini dibutuhkan untuk transaksi angsuran

pinjaman. Dimana tabel ini merupakan data detail dari

peminjaman.

Table 3.11 Tabel Tagihan

Nama atribut Tipe data ukuran Null?

Page 73: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

53

PK kode_tagihan Varchar 15 Tidak

FK kode_pinjaman Varchar 15 Tidak

tgl_tempo Date - Tidak

pokok Double - Tidak

bayar Double - Tidak

kurang Double - Tidak

bunga Double - Tidak

k. Tabel Angusran. Tabel ini berfungsi sebagai penyimpan data untuk

transaksi angsuran pinjaman.

Table 3.12 Tabel Angusran

Nama atribut Tipe data ukuran Null?

PK kode_angsuran Varchar 15 Tidak

FK kode_angggota Varchar 15 Tidak

bayar_angsuran Double - Tidak

tgl_angsuran Date - Tidak

lokasi Int - Tidak

Page 74: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

54

l. Tabel Angsuran_detail. Tabel ini merupakan data detail dari tabel

angsuran.

Table 3.13 Tabel Angusran_ detail

Nama atribut Tipe data ukuran Null?

FK kode_ angsuran Varchar 15 Tidak

FK kode_tagihan Varchar 15 Tidak

Denda Double - Ya

angsuran Double - Tidak

m. Tabel Jurnal. Tabel ini digunakan untuk menyimpan semua

transaksi yang terjadi. Mulai dari pendaftaran anggota, transaksi

penyimpanan (tabungan), penarikan, peminjaman dan angsuran

pinjaman.

Table 3.14 Tabel Jurnal

Nama atribut Tipe data ukuran Null?

kode_transaksi Varchar 15 Tidak

tgl_transaksi Date - Tidak

kode_akun Varchar 10 Tidak

Page 75: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

55

keterangan Varchar 50 Tidak

debet Double - Tidak

kredit Double - Tidak

3.2. Desain Teknologi Replikasi

Gambar 3.14 menggambarkan arsitektur jaringan dan replikasi data.

Tabel yang akan direplikasi meliputi tebel anggota, tabungan, tabungan_detail,

penarikan, pinjaman, tagihan, angsuran, angsuran_detail, kebijakan dan koperasi.

Tabel-tabel tersebut direplikasi karena setiap cabang akan memakai data tersebut

untuk ditambah, diupdate atau hanya dibaca saja. Sedangkan tabel user dan jurnal

tidak direplikasi karena data tersebut hanya akan dipakai oleh koperasi cabang itu

sendiri.

Page 76: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

56

Gambar 3.14 Arsitektur jaringan dan replikasi data

Tahap-tahap perancangan replikasi pada sistem Koperasi Simpan Pinjam

adalah :

1. Membuat database beserta tabel yang dibutuhkan.

2. Membuat konfigurasi untuk masing-masing server dengan mengedit

file my.ini. Konfigurasi untuk master 1 adalah sebagai berikut:

[mysqld]

log-bin=PL-12-bin

binlog-do-db=ksp

log_bin_trust_function_creators=1

auto_increment-increment=2

auto_increment_offset=2

Page 77: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

57

server-id=2

relay-log-index=PL-12-relay-bin

replicate-do-table=ksp.anggota

replicate-do-table=ksp.cabang

replicate-do-table=ksp.akun_utama

replicate-do-table=ksp.angsuran

replicate-do-table=ksp.kebijakan

replicate-do-table=ksp.penarikan

replicate-do-table=ksp.pinjaman

replicate-do-table=ksp.tabungan

replicate-do-table=ksp.tagihan

Konfigurasi master2:

[mysqld]

log-bin=PL-12-bin

binlog-do-db=ksp

log_bin_trust_function_creators=1

auto_increment-increment=2

auto_increment_offset=2

server-id=2

relay-log-index=PL-12-relay-bin

replicate-do-table=ksp.anggota

replicate-do-table=ksp.cabang

replicate-do-table=ksp.akun_utama

replicate-do-table=ksp.angsuran

replicate-do-table=ksp.kebijakan

Page 78: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

58

replicate-do-table=ksp.penarikan

replicate-do-table=ksp.pinjaman

replicate-do-table=ksp.tabungan

replicate-do-table=ksp.tagihan

3. Membuat account replikasi pada masing-masing server. Cara mebuat

account replikasi pada master 1 :

GRANT SELECT, RELOAD, SUPER, REPLICATION SLAVE ON *.* TO

‘KSP’@’172.21.205.28’ IDENTIFIED by ’KSP’

Cara membuat account relpikasi pada master 2:

GRANT SELECT, RELOAD, SUPER, REPLICATION SLAVE ON *.* TO

‘KSP’@’172.21.205.31’ IDENTIFIED by ’KSP’

Mengecek binary-log sudah terbentuk. Untuk melakukan pengecekan

ini gunakan perintah SHOW MASTER STATUS.

4. Mengkomunikasikan master dengan slave, hal ini ditujukan agar

master dapat melakukan perubahan jika master lain melakukan

update data.

n. dari master 1 ke master 2

CHANEG MASTER TO

master_host=’172.21.205.31’,

Master_port=3300,

Page 79: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

59

Master_user=’ksp’,

Master_password=’ksp’,

Master_log_file=’PL-12-bin.000001’,

Master_log_pos=98;

o. dari master 2 ke master 1

CHANEG MASTER TO

master_host=’172.21.205.31’,

Master_port=3300,

Master_user=’ksp’,

Master_password=’ksp’,

Master_log_file=’PL-12-bin.000001’,

Master_log_pos=98;

5. Selanjurnya jalankan slave dengan perintah START SLAVE dan SHOW

SLAVE STATUS untuk mengecek master juga berfungsi sebagai slave.

Status pada Slave_I/O_Running, Slave_SQL_Running harus YES.

3.3. Desain User Interface

Interface sistem yang akan dibuat, kurang lebihnya sebagai berikut :

Page 80: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

60

1. Halaman Login

Gambar 3.15 Form Login

2. Menu Anggota

Gambar 3.16 Form Anggota

Page 81: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

61

3. Tabungan

Gambar 3.17 Form Tabungan

4. Penarikan

Gambar 3.18 Form Penarikan

Page 82: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

62

5. Pinjaman

Gambar 3.19 Form Pinjaman

6. Angsuran

Gambar 3.20 Form Angsuran

Page 83: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

63

7. Akun Utama

Gambar 3.21 Form Akun Utama

8. Preferensi

Gambar 3.22 Form Preferensi

Page 84: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

64

9. Organisasi

Gambar 3.23 Form Organisasi

10. Laporan

Laporan akan dicetak dengan format excel. Berikut ini merupakan

perancangan tabel untuk laporan-laporan yang akan dicetak:

10.1. Laporan Kredit Limit

Merupakan laporan untuk menunjukkan tigihan pokok dan bunga

pinjaman, angsuran pokok dan bunga pinjaman beserta sisa pokok dan bunga

pinjaman. Input untuk laporan ini berupa bulan. Sehingga dari laporan ini dapat

Page 85: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

65

diketahui pada bulan yang diinginkan anggota yang sudah mengangsur atau

belum.

Table 3.15 Desain Tabel Laporan Kredit Limit

Tagihan Pinjaman Angsuran Sisa No Tgl

Kode Anggota Nama Pokok Bunga Pokok Bunga Pokok Bunga

10.2. Laporan Tabungan Wajib

Merupakan laporan penerimaan tabungan wajib dengan periode tanggal.

Table 3.16 Desain Tabel Laporan Tabungan Wajib

No Kode Tabungan Tgl Simpan Kode Anggota Nama Anggota Tab Wajib

10.3. Laporan Tabungan Sukarela

Merupakan laporan penerimaan tabungan sukarela dengan periode tanggal.

Table 3.17 Desain Tabel Laporan Tabungan Sukarela

No Kode Tabungan Tgl Simpan Kode Anggota Nama Tab Sukarela

10.4. Laporan Penarikan Tabungan

Merupakan laporan penarikan tabungan dengan periode tanggal.

Table 3.18 Desain Tabel Laporan Penarikan Tabungan

No Kode Penarikan Tgl Kode Anggota Nama Jumlah

Page 86: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

66

10.5. Laporan Peminjaman

Merupakan laporan peminjaman anggota dengan periode tanggal.

Table 3.19 Desain Tabel Laporan Peminjaman

No Kode pinjaman Tgl Kode Anggota Nama Pinjaman Jml Angsuran

10.6. Laporan Angsuran Pinjaman

Merupakan laporan anguran pinjaman dengan periode tanggal.

Table 3.20 Desain Tabel Laporan Angsuran

No Kode Angsuran Tgl Kode Anggota Nama Angsuran Bulan

Page 87: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

BAB IV

IMPLEMENTASI

Pada bab ini membahas tentang implementasi sistem berdasarkan pada analisa

dan perancangan yang telah dibuat pada bab sebelumnya. Perangkat lunak yang

digunakan untuk sistem koperasi ini antara lain :

1. Sistem Operasi Windows XP

2. Database MySQL 5.0

3. Apache Tomcat 5.0

4. J2SDK 1.6

Spesifikasi hardware yang digunakan:

1. Prosesor : Intel Core 2 Duo

2. Memori : Kingston 1 GB

3. Hardisk : Seagate 80 G

4.1. Arsitektur Replikasi

MySQL server pada cabang 1 akan menjadi Master 1 – Slave 2 dan MySql

server pada cabang 2 akan menjadi Master 2 – Slave 1. Master 2 akan menjadi Slave

1 ketika Master 1 melakukan perubahan dan sebaliknya Master 1 akan menjadi Slave

2 bagi Master 2. Untuk memahami arsitektur tersebut lihat gambar 4.1. dari gambar

67

Page 88: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

68

tersebut juga dapat dilihat konfigurasi IP dan tabel-tabel yang akan direplikasi

maupun tabel yang tidak direplikasi.

Cabang 1Cabang 2

MySQL Server

(Master 1 – Slave 2)

Server-id=1

inc=2

Offs=1

MySQL Server

(Master 2 - Slave 1)

Server-id=2

inc=2

Offs=2

Replikasi Replikasi

Anggota

Tabungan

Penarikan

Pinjaman

Tabungan_detail

Angsuran_detail

AkunUtama

KoperasiKebijakan

TagihanAngsuran

Anggota

Tabungan

Penarikan

Pinjaman

Tabungan_detail

Angsuran_detail

AkunUtama

KoperasiKebijakan

TagihanAngsuran

Tabel

Tabel

172.21.205.28 172.21.205.31

Tabel

User

Jurnal

Tabel

Preferensi

Koperasi

User

Jurnal

Preferensi

Koperasi

Gambar 4.1 Arsitektur Replikasi

4.2. Implementasi Replikasi

Langkah-langkah implementasi replikasi database adalah sebagai berikut:

1. Membuat database beserta table-tabel yang dibutuhkan.

2. Membuat konfigurasi My.ini di setiap cabang.

3. Membuat user replikasi

4. Menghubungkan Master dengan Slave agar dapat berkomunikasi

5. Menjalankan Slave.

Page 89: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

69

4.2.1. Membuat database koperasi

Membuat database di setiap cabang dengan struktur tabel yang sama. Query

untuk membuat database :

CREATE DATABASE Koperasi;

Berikut table yang dibutuhkan dan query untuk membuat table:

1. Tabel anggota

CREATE TABLE `anggota` (

`kode_anggota` varchar(20) NOT NULL,

`nama` varchar(50) default NULL,

`no_telp` varchar(12) default NULL,

`jenis_kelamin` varchar(9) default NULL,

`pekerjaan` varchar(20) default NULL,

`alamat` varchar(100) default NULL,

`simpanan_pokok` double default '0',

`status_keanggotaan` varchar(10) default 'Nasab ah',

`Saldo` double default '0',

`tgl_daftar` date default '2007-01-01',

`pinjaman` double default '0',

`modal` double default '0',

`bunga_tab` double default '0',

PRIMARY KEY (`kode_anggota`)

)

2. Tabel tabungan

CREATE TABLE `tabungan` (

Page 90: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

70

`kode_tabungan` varchar(16) default NULL,

`kode_anggota` varchar(18) default NULL,

`tgl_simpan` date default '2007-01-01',

`total_tabungan` double default '0',

`lokasi` int(3) default NULL

)

3. Tabel tabungan_detail

CREATE TABLE `tabungan_detail` (

`kode_tabungan` varchar(16) default NULL,

`tab_wajib` double default '0',

`tab_sukarela` double default '0',

`bulan_tabwajib` varchar(20) default 'Januar y'

)

4. Tabel penarikan

CREATE TABLE `penarikan` (

`kode_penarikan` varchar(20) NOT NULL,

`kode_anggota` varchar(20) default NULL,

`tgl_penarikan` date default '2008-01- 01',

`Besar_p enarikan` double default '0',

`lokasi` int(11) default NULL

PRIMARY KEY (`kode_penarikan`) )

5. Tabel pinjaman

CREATE TABLE `pinjaman` (

`kode_pinjaman` varchar(20) NOT NULL,

`kode_anggota` varchar(20) NOT NULL,

Page 91: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

71

`tgl_pinjaman` date default '2007-01-01',

`besar_pinjaman` double default '0',

`bunga` double default '0',

`jumlah_angsuran` double default '0',

`provisi` double NOT NULL default '0',

`biaya_adm` double default '0',

`biaya_kartu_anggota` double default '0',

`biaya_materai` double default '0',

`biaya_notaris` double default '0',

`pelunasan` char(1) default 'N',

`pembayaran_adm` double default '0',

`lokasi` int(11) default NULL,

PRIMARY KEY (`kode_pinjaman`)

)

6. Tabel tagihan

CREATE TABLE `tagihan` (

`kode_tagihan` varchar(15) default NULL,

`kode_pinjaman` varchar(15) default NULL,

`bulan` varchar(20) default NULL,

`pokok` double default '0',

`bunga` double default '0',

`tgl_tempo` date default '2008-01-01',

`bayar` double default '0',

`angsurperbulan` double default '0',

`tahun` varchar(4) default NULL

)

7. Tabel angsuran

CREATE TABLE `angsuran` (

`kode_angsuran` varchar(20) NOT NULL,

Page 92: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

72

`tgl_angsuran` date default '2007-01-01',

`bayar_angsuran` double default '0',

`lokasi` int(11) default NULL,

`kode_anggota` varchar(20) default NULL,

PRIMARY KEY (`kode_angsuran`)

)

8. Tabel Angsuran_detail

CREATE TABLE `angsuran_detail`

`kode_angsuran` varchar(20) NOT NULL defaul t '',

`kode_tagihan` varchar(20) NOT NULL default '',

`denda` double default '0',

`bayar_angsuran` double default

)

9. Tabel jurnal

CREATE TABLE `jurnal` (

`kode_transaksi` varchar(20) default NULL,

`tgl_transaksi` date default '2007-01-01',

`keterangan` varchar(100) default NULL,

`debet` double default '0',

`kredit` double default '0',

`kode_anggota` varchar(20) default NULL,

`id` int(20) NOT NULL auto_increment,

PRIMARY KEY (`id`)

)

10. Tabel akun_utama

CREATE TABLE `akun_utama` (

`kode_akun` varchar(12) NOT NULL,

`nama_akun` varchar(50) default NULL,

Page 93: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

73

`saldo` double default '0',

PRIMARY KEY (`kode_akun`)

)

11. Tabel koperasi

CREATE TABLE ` koperasi ` (

`kode` int(11) NOT NULL,

`kodeOrg` varchar(5) default NULL,

`nama` varchar(50) default NULL,

`alamat` varchar(100) default NULL,

`noTelp` varchar(20) default NULL,

PRIMARY KEY (`kode`)

)

12. Tabel kebijakan

CREATE TABLE `kebijakan` (

`tab_pokok` double default '0',

`tab_wajib` double default '0',

`provisi_pinjaman` double default '0',

`biaya_administrasi` double default '0',

`bunga_pinjaman` double default '0',

`biaya_meterai` double default '0',

`kartu_anggota` double default '0',

`biaya_notaris` double default '0',

`denda` double default '0',

`bunga_diberikan` double default '0'

)

4.2.2. Mengkonfigurasi My.ini

Page 94: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

74

Setelah database siap disetiap cabang, langkah berikutnya adalah

mengkonfigurasi My.ini agar replikasi dapat berjalan. Konfigurasi ini ditambahkan

pada session [mysqld].

a. Konfigurasi My.ini pada Master 1 – Slave 2.

[mysqld]

# Konfigurasi Master 1

log-bin=PL-9-bin

binlog-do-db=ksp

log_bin_trust_function_creators=1

auto_increment-increment=2

auto_increment_offset=1

server-id=1

#Konfigurasi Slave 2

relay-log-index=PL-9-relay-bin

replicate-do-table=ksp.anggota

replicate-do-table=ksp.cabang

replicate-do-table=ksp.akun_utama

replicate-do-table=ksp.angsuran

replicate-do-table=ksp.kebijakan

replicate-do-table=ksp.penarikan

replicate-do-table=ksp.pinjaman

replicate-do-table=ksp.tabungan

replicate-do-table=ksp.tagihan

b. Konfigurasi My.ini pada Master 2 – Slave 1.

Page 95: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

75

[mysqld]

# Konfigurasi Master 2

log-bin=PL-12-bin

binlog-do-db=ksp

log_bin_trust_function_creators=1

auto_increment-increment=2

auto_increment_offset=2

server-id=2

# Konfigurasi Slave 1

relay-log-index=PL-12-relay-bin

replicate-do-table=ksp.anggota

replicate-do-table=ksp.cabang

replicate-do-table=ksp.akun_utama

replicate-do-table=ksp.angsuran

replicate-do-table=ksp.kebijakan

replicate-do-table=ksp.penarikan

replicate-do-table=ksp.pinjaman

replicate-do-table=ksp.tabungan

replicate-do-table=ksp.tagihan

Dari konfigurasi My.ini tersebut, akan membuat server MySQL sebagai

Master sekaligus sebagai Slave. seharusnya akan membentuk file binary dan file

relay-log sesuai dengan nama yang didefinisikan pada My.ini diikuti index yang

dimaintain oleh MySQL. Berdasarkan konfigurasi Master 1 – Slave 2:

Page 96: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

76

log-bin=PL-9-bin

relay-log-index=PL-9-relay-bin

dan konfigurasi Master 2 – Slave 1:

log-bin=PL-12-bin

relay-log-index=PL-12-relay-bin

apabila Master 1 melakukan perubahan data maka binary log akan disimpan pada file

PL-9-bin.00001 dan dikirimkan ke Slave 1. Slave 1 mengkopy binary log tersebut ke

file PL-12-relay-bin.00001. Dengan membaca relay-log tersebutlah slave

mengupdate data. Karena pada sistem yang dikembangkan menggunakan prosedur

dan fungsi maka perlu variable log_bin_trust_function_creators=1 agar store procedure

dan fungsi juga dapat direplikasi. Variable auto_increment-increment dan

auto_increment_offset digunakan agar data yang direplikasi tidak tabrakan. Row yang

ditambahkan dari master 1 akan bernilai ganjil mulai dari 1 dan selanjutnya ditambah

1, sedangkan row yang ditambahkan dari master 2 akan bernilai genap mulai dari 2

dan selanjutnya ditambah 1. Pada tabel variable increment digunakan sebagai kode

cabang.

Untuk mengetahui binary log sudah terbentuk menggunakan perintah:

mysql> show master status;

Dan hasil dari perintah tersebut adalah:

+---------------------+----------+--------------------+-----------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------------+----------+--------------------+-----------------------+

| PL-9-bin.000001 | 98 | ksp | |

Page 97: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

77

+---------------------+----------+--------------------+-----------------------+

File binary dan Position akan digunakan ketika menghubungkan Master dengan Slave

agar dapat berkomunikasi.

4.2.3. Membuat user replikasi

Jika file binary sudah terbentuk maka langkah selanjutnya adalah membuat

user replikasi.

1. Dari master 1, buat user ksp yang dapat diakses dari ip address 172.21.205.31

dengan password ksp.

mysql> grant select, reload, super, replication slave on *.* to

ksp'@172.21.205.31 identified by 'ksp';

mysql> flush privileges;

mysql> flush tables with read lock;

mysql> unlock tables;

mysql> reset master;

2. Dari master 2, buat user ksp yang dapat diakses dari ip address 172.21.205.28

dengan password ksp.

mysql> grant select, reload, super, replication slave on *.* to

'ksp'@172.21.205.28 identified by 'ksp';

mysql> flush privileges;

mysql> flush tables with read lock;

Page 98: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

78

mysql> unlock tables;

mysql> reset master;

4.2.4. Menghubungkan Master dengan Slave agar dapat berkomunikasi

Master dan Slave dikomunikasikan dengan peritah CHANGE MASTER dan

akan disimpan pada file master.info.

a. Master 1 – Slave 2

mysql> change master to

-> master_host='172.21.205.31',

-> master_port=3300,

-> master_user='ksp',

-> master_password='ksp',

-> master_log_file='PL-12-bin.000001',

-> master_log_pos=98;

b. Master 1 – Slave 2

mysql> change master to

-> master_host='172.21.205.28',

-> master_port=3306,

-> master_user='ksp',

-> master_password='ksp',

-> master_log_file='PL-9-bin.000001',

-> master_log_pos=98;

Page 99: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

79

Master_host, master_port, master_user, master_password berdasarkan pada

user replikasi yang dibentuk. Sedangkan master_log_file dan master_log_pos

berdasarkan pada informasi yang diperoleh saat melakukan SHOW MASTER STATUS.

Page 100: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

80

4.2.5. Menjalankan Slave

Setelah melakukan CHANGE MASTER, lakukan perintah START slave,

untuk melihat status dari slave yaitu menggunakan perintah SHOW SLAVE

STATUS\G. Pastikan Slave_IO_Running dan Slave_SQL_Running memiliki status

Yes

mysql> start slave;

mysql> show slave status\G

Hasil yang diperoleh dari SHOW SLAVE STATUS\G dari Master 1 – Slave 2

*************************** 1. row ***************************

Slave_IO_State : Waiting for master to send event

Master_Host : 172.21.205.31

Master_User : ksp

Master_Port : 3300

Connect_Retry : 60

Master_Log_File : PL-12-bin.000001

Read_Master_Log_Pos : 98

Relay_Log_File : pl-12-relay-bin.000002

Relay_Log_Pos : 235

Relay_Master_Log_File : PL-12-bin.000001

Slave_IO_Running : Yes

Slave_SQL_Running : Yes

Replicate_Do_Table : ksp.anggota, ksp.angsuran, ksp.tagihan,

ksp.akun_utama, ksp.tabungan, ksp.kebijakan, ksp.cabang, ksp.pinjaman,

ksp.penarikan

Page 101: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

81

Replicate_Ignore_Table :

Replicate_Wild_Do_Table :

Replicate_Wild_Ignore_Table:

Last_Errno : 0

Last_Error :

Skip_Counter : 0

Exec_Master_Log_Pos : 98

Relay_Log_Space : 235

Until_Condition : None

Until_Log_File :

Until_Log_Pos : 0

Master_SSL_Allowed : No

Master_SSL_CA_File :

Master_SSL_CA_Path :

Master_SSL_Cert :

Master_SSL_Cipher :

Master_SSL_Key :

Seconds_Behind_Master : 0

Sedangkan untuk mengetahu proses yang sedang berjalan baik proses master maupun

slave menggunakan perintah berikut :

mysql> show processlist\G

hasil yang ditampilkan pada layar :

*************************** 1. row ***************************

Id : 2

User : root

Page 102: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

82

Host: localhost :1078

Db : NULL

Command : Query

Time : 0

State : NULL

Info : show processlist

*************************** 2. row ***************************

Id : 3

User : ksp

Host : PL-12:1050

Db : NULL

Command : Binlog Dump

Time : 420

State : Has sent all binlog to slave; waiting for binlog to be updated

Info : NULL

*************************** 3. row ***************************

Id : 4

User : system user

Host :

Db : NULL

Command : Connect

Time : 59

State : Waiting for master to send event

Info : NULL

*************************** 4. row ***************************

Id : 5

Page 103: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

83

User : system user

Host :

Db : NULL

Command : Connect

Time : 59

State : Has read all relay log; waiting for the slave I/O thread to update it

Info : NULL

4.3. Implementasi Sistem

Sistem ini digunakan untuk mengecek apakah replikasi dapat berjalan.

4.3.1. Login User

Form ini digunakan untuk login ke sistem. User yang login sebagai petugas

maka menu yang dapat ditampilkan adalah menu keanggotaan, tabungan, penarikan,

pinjaman, angsuran. Jika user login sebagai manager maka manager dapat mengakses

menu pelaporan, akun utama, preferensi dan organisasi.

Gambar 4.2 Form Login

Page 104: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

84

Untuk login ke Sistem Koperasi Simpan Pinjam menggunakan potongan script

berikut:

<%!

public boolean otentikasi(String pemakai, String password,

String level) {

if (pemakai == null || password == null)

return(false);

if (pemakai.equals("") || password.equals("") )

return(false);

boolean ada_kesalahan = false;

boolean password_cocok = false;

try {

String data_password = "";

Class.forName("org.gjt.mm.mysql.Driver");

Connection koneksi = DriverManager.getC onnection(

NAMA_DB,

NAMA_USER, PASSWORD);

Statement stm = koneksi.createStatem ent();

ResultSet hasilQuery = stm.executeQ uery(

"SELECT pass FROM user_koperasi " +

"WHERE username = '"+pemakai+"' a nd level =

'"+level+"' ");

if (hasilQuery.next())

data_password =

hasilQuery.getString("pass");

if (!ada_kesalahan)

Page 105: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

85

if (password.equals(data_password ))

password_cocok = true;

}

catch (Exception ex) {

ada_kesalahan = true;

}

return(password_cocok);

}

%>

4.3.2. Keanggotaan

User tidak memasukkan kode anggota, untuk membuat kode anggota pada

sistem digunakan potongan program berikut :

try {

Class.forName("org.gjt.mm.mysql.Driver");

Connection koneksi = DriverManager.getConnectio n(

NAMA_DB,

NAMA_USER, PASSWORD);

Statement stm = koneksi.createStatement();

ResultSet hasilQuery = stm.executeQuery(

"select buat_kode_anggota(1,1),DATE_FORMAT(cur date(),'%d-%m-

%Y') tgl from anggota, organisasi");

if (hasilQuery.next())

kode = hasilQuery.getString(1);

tgl_daftar = hasilQuery.getString(2);

Page 106: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

86

nama= gantiKosong(request.getParameter( "nama"));

}

catch (Exception ex) {

out.print(ex +" buat kode2");

}

}

Perintah tersebut akan memanggil fungsi dari MySQL berikut:

DELIMITER $$

DROP FUNCTION IF EXISTS `rachel`.`buat_kode_anggota `$$

CREATE FUNCTION `buat_kode_anggota`(increment int, off_set int)

RETURNS varchar(18)

BEGIN

declare kode_lama varchar(5);

declare kode_baru varchar(18);

declare kode varchar(18);

select right(kode_anggota,4) into kode_lama from

anggota,organisasi where kode_anggota like

concat(kodeOrg,'%') order by kode_anggota desc limi t 0,1;

if (kode_lama is not null) then -- kode pertama

-- klo udah ada kode (not null)

if length(kode_lama + off_set) = 1 then

select

concat(kodeOrg,substring(curdate(),3,2),substring(c urdate(),6,2),

substring(curdate(),9,2),'000',(kode_ lama + off_set))

into kode_baru

from organisasi;

elseif length(kode_lama + off_set)= 2 then

Page 107: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

87

select

concat(kodeOrg,substring(curdate(),3,2),substring(c urdate(),6,2),

substring(curdate(),9,2),'00',(kode_l ama + off_set))

into kode_baru

from organisasi;

elseif lengtorganisasih(kode_lama + off_set)=3 then

select

concat(kodeOrg,substring(curdate(),3,2),substring(c urdate(),6,2),

substring(curdate(),9,2),'0',(kode_la ma + off_set))

into kode_baru from organisasi;

else

select

concat(kodeOrg,substring(curdate(),3,2),substring(c urdate(),6,2),

substring(curdate(),9,2),(kode_lama + off_set)) into

kode_baru from organisasi;

end if;

else

select

concat(kodeOrg,substring(curdate(),3,2),substring(c urdate(),6,2),

substring(curdate(),9,2),'000',increment) into kode_baru

from organisasi;

end if;

return kode_baru;

END$$

DELIMITER ;

4.3.3. Tabungan

Page 108: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

88

Form ini digunakan untuk memasukkan data tabungan wajib dan sukarela.

Form ini dapat dilihat pada gambar 4.3.

Gambar 4.3 Form Tabungan

Berikut potongan program ketika tombol add ditekan :

String strQuery =

"call insert_tabungan1('" + request.getParameter("k ode_tabungan") +

"', '" + request.getParameter("kode") + "',"

'" + tgl_simpan + "'," + request.getParameter("tab_ wajib") + "," +

""+request.getParameter("tab_sukarela")+","+request .getParameter("j

ml_bayar")+")";

hasil_penyisipan = stm.executeUpdate(st rQuery);

}

Dimana store procedur dari insert_tabungan1 adalah sebagai berikut :

Page 109: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

89

DELIMITER $$

DROP PROCEDURE IF EXISTS `rachel`.`insert_tabungan1 `$$

CREATE PROCEDURE `insert_tabungan1`(tabungan_kode v archar(20),

anggota_kode varchar(20),

ptgl varchar(10),v_wajib DOUBLE, v_sukarela DOUBLE, jml_tab int)

BEGIN

declare v_bulan varchar(20);

declare v_tgl date;

select ptgl;

select concat(substring(ptgl,7,4),'-',substring(ptg l,4,2),'-

',substring(ptgl,1,2)) into v_tgl;

delete from tabungan_temp where kode_tabungan = 'nu ll' ;

delete from tabungan_temp where kode_tabungan = tab ungan_kode and

kode_anggota != anggota_kode;

if(v_wajib > 0) then

while jml_tab > 0 do

if exists (select kode_anggota from anggota where k ode_anggota =

anggota_kode) then

if exists(select kode_anggota from tabungan_temp w here

kode_anggota = anggota_kode and bulan_tabwajib !='' ) then

select MONTHNAME(DATE_ADD(tgl_simpan, INTERVAL

period_diff(concat(year(current_date()),indek),date _format(v_tgl,'%

Y%m'))+1 MONTH))

into v_bulan

from tabungan_temp, bulan where kode_anggota =

anggota_kode

and bulan.namabulan = tabungan_temp.bulan_tabwaji b

order by indek desc limit 1;

elseif exists(select tabungan_detail.kode_tabungan from

tabungan_detail,tabungan

where tabungan.kode_tabungan=tabungan_detail.kode_t abungan

and tabungan.kode_anggota = anggota_kode

and bulan_tabwajib != '') then

select MONTHNAME(DATE_ADD(tgl_simpan, INTERVAL

period_diff(concat(year(current_date()),indek),date _format(v_tgl,'%

Y%m'))+1 MONTH))

into v_bulan

from tabungan_detail, bulan,tabungan where kode_a nggota

= anggota_kode

Page 110: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

90

and tabungan.kode_tabungan=tabungan_detail.kode_t abungan

and bulan.namabulan = tabungan_detail.bulan_tabwa jib

order by indek desc limit 1;

else

select MONTHNAME(DATE_ADD(tgl_daftar, INTERVAL 1 MONTH))

into v_bulan from anggota

where kode_anggota = anggota_kode;

end if;

insert into tabungan_temp

(kode_tabungan,kode_anggota,tgl_simpan,tab_wajib,ta b_sukarela,bulan

_tabwajib,tahun)

values

(tabungan_kode,anggota_kode,v_tgl,v_wajib,0,v_bulan ,

year(v_tgl));

end if;

set jml_tab=jml_tab-1;

end while;

end if;

if(v_sukarela>0) then

insert into tabungan_temp

(kode_tabungan,kode_anggota,tgl_simpan,tab_wajib,ta b_sukarela,bulan

_tabwajib,tahun)

values

(tabungan_kode,anggota_kode,v_tgl,0,v_sukarela,'',

year(v_tgl));

end if;

END$$

DELIMITER ;

4.3.4. Penarikan

Form ini digunakan untuk memasukkan data penarikan. Penarikan tabungan

disini minimal meninggalkan saldo Rp 50.000,-. Form penarikan dapat dilihat pada

gambar 4.4. Peminjaman dapat dilakukan oleh anggota lebih dari 1 kali namun

Page 111: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

91

pinjaman sebelumnya harus sudah lunas atau dengan kata lain anggota tidak sedang

memiliki pinjaman. Untuk menampilkan list anggota yang tidak peminjaman

pinjaman menggunakan potongan program berikut:

St = Conn.prepareStatement("SELECT * FROM viewpenar ikan");

ResultSet hasil_query = St.executeQuery();

boolean data_kosong = !hasil_query.next();

boolean data_ada = !data_kosong;

int urut = offset;

while ((data_ada)&&(Repeat1__numRows-- != 0)) {

urut++;

out.println("<tr><td>"+ urut +"</td><td>"+

hasil_query.getObject("kode_penarikan") +

"</td><td>"+ hasil_query.getObject("tgl_penarikan") +"</td><td>"+

hasil_query.getObject("kode_anggota") +

"</td><td>"+ hasil_query.getObject("nama") +"</td>" +

"<td align=right>"+ hasil_query.getObject("jumlah_p enarikan")

+"</td><td>"+

"</td><tr>");

Repeat1__index++;

data_ada = hasil_query.next();

}

Query akan mengambil data dari tabel view viewpenarikan. Perintah untuk membuat

view tersebut adalah :

DELIMITER $$

Page 112: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

92

DROP VIEW IF EXISTS `rachel`.`viewpenarikan`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhos t` SQL SECURITY DEFINER VIEW `viewpenarikan` AS select sql_no_cache `penarikan`.`kode_penarikan` AS `kode_penarikan`, `penarikan`.`kode_anggota` AS `kode_anggota`,`anggo ta`.`nama` AS `nama`, date_format(`penarikan`.`tgl_penarikan`,_latin1'%d/ %m/%Y') AS `tgl_penarikan`, `penarikan`.`Besar_penarikan` AS `Jumlah_penarikan` , `penarikan`.`lokasi` AS `lokasi`,`penarikan`.`tgl_p enarikan` AS `tgl` from ((`penarikan` join `anggota`) join `organisasi `) where (`penarikan`.`kode_anggota` = `anggota`.`kode _anggota`) order by date_format(`penarikan`.`tgl_penarikan`,_l atin1'%d/%m/%Y') desc$$ DELIMITER ;

Gambar 4.4 Form Penarikan

4.3.5. Pinjaman

Page 113: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

93

Form ini digunakan untuk memasukkan data peminjaman dan dapat dilihat

pada gambar 4.5 Untuk mengambil detail peminjaman dan biaya administrasi

menggunakan potongan program berikut :

hasilQuery = stm.executeQuery(

"select if(right(round(besar_pinjaman/jumlah_angsur an,0),2)>50," +

"round(besar_pinjaman/jumlah_angsuran,0)+(100-

right(round(besar_pinjaman/jumlah_angsuran,0),2))," +

"round(besar_pinjaman/jumlah_angsuran,0)-

right(round(besar_pinjaman/jumlah_angsuran,0),2))

perBln,bunga,provisi,biaya_adm,biaya_kartu_anggota, biaya_materai,bi

aya_notaris,"+

"provisi+biaya_adm+biaya_kartu_anggota+biaya_matera i+biaya_notaris

from pinjaman_temp where kode_pinjaman = '"+kode_pi njaman+"' and

kode_anggota = '"+kode+"'");

while (hasilQuery.next()) {

perbln = hasilQuery.getString(1);

bunga_p = hasilQuery.getString(2);

provisi = hasilQuery.getString(3);

biaya_adm = hasilQuery.getString(4);

biaya_kartu = hasilQuery.getString(5);

biaya_materai = hasilQuery.getString(6) ;

biaya_notaris = hasilQuery.getString(7) ;

total = hasilQuery.getString(8);

}

Page 114: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

94

Gambar 4.5 Form Pinjaman

4.3.6. Angsuran

Merupakan form yang digunakan untuk memasukkan data angsuran, dapat

dilihat pada gambar 4.6.

Page 115: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

95

Gambar 4.6 Form Angsuran

Anggota yang melakukan peminjaman akan mengasur pokok dan bunga

pinjaman sesuai dengan perjanjian pinjaman dan membayar denda apabila jatuh

tempo. Besar Potongan program untuk menampilkan detail tagihan beserta dendanya

dalam bentuk list adalah :

hasilQuery = stm.executeQuery(

"SELECT

angsuran_temp.kode_tagihan,pokok,bunga,denda,pokok+ bunga+denda,baya

r_angsuran,bulan FROM angsuran_temp,tagihan where

tagihan.kode_tagihan=angsuran_temp.kode_tagihan and kode_angsuran

like '"+kode_angsuran+"'");

total_bayar = 0.0;

Page 116: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

96

while (hasilQuery.next()) {

double total =

Double.parseDouble(hasilQuery.getString("bayar_angs uran"));

total_bayar += total;

out.println("<tr><td>" +

"<input TYPE=checkbox name=kode_tagihan VA LUE="+

hasilQuery.getString("kode_tagihan")+">"

+hasilQuery.getString("kode_tagihan"));

out.println("</td><td>"+ hasilQuery.getString("bula n"));

out.println("</td><td

align=right>"+hasilQuery.getString("pokok"));

out.println("</td><td

align=right>"+hasilQuery.getString("bunga"));

out.println("</td><td

align=right>"+hasilQuery.getString("denda"));

out.println("</td><td align=right>"+hasilQuery.get String(5));

out.println("</td><td

align=right>"+hasilQuery.getString("bayar_angsuran" ));

out.println("</td></tr>");

}

4.3.7. Akun Utama

Page 117: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

97

Gambar 4.7 Form Akun Utama

4.3.8. Preferensi

Gambar 4.8 Form Preferensi

4.3.9. Organisasi

Page 118: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

98

Gambar 4.9 Form Organisasi

4.3.10. Laporan

Laporan dikelompokkan berdasarkan kode cabang dan dapat ditampilkan

maupun disimpan dalam format Excel. Laporan-laporan tersebut meliputi :

a. Laporan Kredit Umum

Merupakan laporan untuk menunjukkan tagihan pokok dan bunga pinjaman,

angsuran pokok dan bunga pinjaman beserta sisa pokok dan bunga pinjaman. Input

untuk laporan ini berupa bulan. Sehingga dari laporan ini dapat diketahui pada bulan

yang diinginkan anggota yang sudah mengangsur atau belum.

Page 119: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

99

Gambar 4.10 Laporan Kredit Umum

Gambar 4.11 Laporan Kredit Umum format Excel

Page 120: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

100

b. Laporan Tabungan Wajib

Merupakan laporan penerimaan tabungan wajib dengan periode tanggal.

Gambar 4.12 Laporan Tabungan Wajib

Gambar 4.13 Laporan Tabungan Wajib format Excel

Page 121: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

101

c. Laporan Tabungan Sukarela

Merupakan laporan penerimaan tabungan sukarela dengan periode tanggal.

Gambar 4.14 Laporan Tabungan Sukarela

Gambar 4.15 Laporan Tabungan Sukarela format Excel

d. Laporan Penarikan Tabungan

Merupakan laporan penarikan tabungan dengan periode tanggal.

Page 122: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

102

Gambar 4.16 Laporan Penarikan Tabungan

Gambar 4.17 Laporan Penarikan Tabungan format Excel

Page 123: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

103

e. Laporan Peminjaman

Merupakan laporan peminjaman anggota dengan periode tanggal.

Gambar 4.18 Laporan Pinjaman

Gambar 4.19 Laporan Pinjaman format Excel

Page 124: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

104

f. Laporan Angsuran Pinjaman

Merupakan laporan anguran pinjaman dengan periode tanggal.

Gambar 4.20 Laporan Angsuran

Gambar 4.21 Laporan Angsuran format Excel

Page 125: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

BAB V

ANALISIS HASIL

5.1. Skenario

Skenario ini digunakan untuk menganalisa apakah replikasi master to master

yang sudah diimplementasikan pada bab sebelumnya dapat berjalan, untuk

membuktikan transaksi yang dilakukan disetiap koperasi cabang menghasilkan data

yang relevan dan akurat.

KBJ dan KPD merupakan koperasi yang masih satu yayasan. Pada skenario

ini setiap anggota yang terdaftar di koperasi tersebut dapat melakukan transaksi di

kedua koperasi. Dengan replikasi yang diterapkan maka apabila ada anggota yang

mendaftar di salah satu koperasi tersebut maka data tersebut juga akan direplikasi ke

cabang lain. Daftar anggota koperasi KPD dan KBJ dapat dilihat pada tabel 5.1 dan

tabel 5.2:

Tabel 5.1 Daftar anggota dan nasabah KPD

kode_anggota nama status_keanggotaan kodeOrg

KPD0804120005 Bambang S anggota KPD

KPD0804120007 Ezra Gunawan Nasabah KPD

KPD0804120006 Kristina Verawati Nasabah KPD

KPD0804120009 Naomi anggota KPD

KPD0804120003 Natanael anggota KPD

KPD0804100001 Patricia anggota KPD

KPD0804120008 Ribka anggota KPD

105

Page 126: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

106

KPD0804120002 Ruth Dewi A anggota KPD

KPD0804120004 Yonatan Eko S anggota KPD

Tabel 5.2 Daftar anggota dan nasabahKBJ

kode_anggota Nama status_keanggotaan kodeOrg

KBJ0801310005 Anita anggota KBJ

KBJ0802090006 Miansari anggota KBJ

KBJ0801220003 Monica Dwi A anggota KBJ

KBJ0803010007 Ningrum nasabah KBJ

KBJ0803110011 Novita nasabah KBJ

KBJ0801150002 Rachel Kurniawati nasabah KBJ

KBJ0802140007 Romi anggota KBJ

KBJ0804050012 Sintia Dewi anggota KBJ

KBJ0803030009 Surya Istanti anggota KBJ

KBJ0803030008 Tanti nasabah KBJ

KBJ0803030010 Untung anggota KBJ

KBJ0803030007 Yohana Lestari nasabah KBJ

KBJ0801270004 Yovita Dwi Arini nasabah KBJ

KBJ0801150001 Yusup Budi Pamungkas nasabah KBJ

Transaksi 1 : Pada tanggal 12 April 2008, KPD menerima anggota baru. Anggota

tersebut bernama Naomi bertempat tinggal di Solo no telepon 2355151,

memiliki pekerjaan sebagai guru disalah satu SD swasta.

Page 127: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

107

Gambar 5.1 Form keanggotaan.

Data anggota akan direplikasi ke KBJ. Dapat dilihat dari gambar 5.2 yang

merupakan hasil melihat data anggota pada sistem yang dipasang di KBJ dan

KPD. Terbukti menghasilkan tampilan yang sama.

Gambar 5.2 List Anggota

Page 128: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

108

Transaksi 2 : Tanggal 12 April 2008 kode anggota KBJ0803030010 (Romi)

merupakan anggota KBJ. Namun beliau menabung di KPD sebesar

Rp 150.000,- dimana uang tersebut digunakan untuk membayar

tabungan wajib bulan maret.

Gambar 5.3 Form Simpanan

Hasil penyimpanan data simpanan jika dilihat gambar 5.4 dan 5.5 dari sitem yang

dipasang di KPD:

Gambar 5.4 Lihat Simpanan Wajib

Page 129: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

109

Gambar 5.5 Form Simpanan Sukarela

Data simpanan yang diinputkan juga akan direplikasi ke kantor KBJ namun

apabila petugas KBJ melihat transaksi simpanan dari menu Lihat Simpanan maka

data tidak ditampilkan karena transaksi tersebut tidak boleh diketahui oleh

petugas. Data simpanan hanya dapat dilihat oleh manager dari menu Laporan

penerimaan tabungan wajib dan sukarela. Gambar 5.6 adalag gambar yang

diambil dari sistem yang dipasang di KBJ.

Page 130: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

110

Gambar 5.6 Lihat Simpanan Wajib

dari gambar 5.6 tampak bahwa data yang dimasukkan di KPD tidak dapat dilihat

oleh petugas KBJ.

Transaksi 3 : Tanggal 12 April 2008 KBJ0801270004 (Yovita Dwi Arini)

melakukan transaksi di KPD untuk mengambil tabungan sebesar Rp

100.000,-

Gambar 5.7 Form Penarikan

Page 131: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

111

Sama halnya dengan tabungan. Data penarikan ini juga akan direplikasi ke cabang

KBJ. Gambar 5.8 menunjukkan saldo tabungan Yovita tinggal Rp 50.000,-.

Gambar 5.8 Form Penarikan

Transaksi 4 : Karena Koperasi KPD tidak beroperasi pada tanggal 14 April 2008

maka anggota KPD0804120003 (Natanael) yang terdaftar di KPD

meminjam uang di KBJ sebesar Rp 10.000.000,- dan diangsur

sebanyak 10 kali.

Page 132: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

112

Gambar 5.9 Form Peminjaman

Data pinjaman akan direplikasi ke cabang. Dengan tujuan agar anggota tersebut dapat

mengangsur pinjaman dari cabang lain.

Transaksi 5 : pada bulan Mei Natanael mengangsur pinjaman di KPD untul pinjaman

yang dilakukan di KBJ.

Gambar 5.10 Form Angsuran

Page 133: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

113

Data Angsuran akan direplikasi ke cabang. Dan jika dilihat dari sistem yang

dipasang di KBJ maka data tagihan bulan mei untuk Natanael sudah tidak ada. Lihat

gambar 5.11.

Gambar 5.11 Form Peminjaman

5.2. Analisis Teknologi

Setelah mengimplemantasikan Sistem Koperasi Simpan Pinjam dengan

pendistribusian database replikasi, terbukti sistem tersebut memiliki kelebihan

maupun kekurangan.

Dari sistem tersebut dapat memudahkan cabang dalam pembuatan laporan dan

tidak memperkecil pengeluaran karena laporan setiap cabang dapat di akses oleh

manager dari kantor pusat. Anggota juga dapat melakukan transaksi di setiap koperasi

cabang.

Pilihan replikasi master-master sebagai tipe pendistribusian data pada kasus

koperasi simpan pinjam ini sangatlah cocok karena setiap cabang mempunyai hak

Page 134: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

114

yang sama untuk insert, update atau delete data. Selain itu replikasi MySQL juga

mengijinkan fungsi dan store procedure untuk direplikasi meskipun user replikasi

tidak memiliki priveleges create.

5.3. Kelebihan dan Kekurangan

5.3.1. Kelebihan

Berdasarkan pada penelitian yang dilakukan dan dari scenario tentang

Replikasi Master-Master MySQL 5.0 (Sistem Koprasi Simpan Pinjam) dapat diambil

beberapa kelebihan:

1. Ketersediaan data meningkat karena data dapat diakses melalui setiap cabang,

sehingga memudahankan transaksi maupun pembuatan laporan. Hal ini

terbukti : anggota dapat melakukan transaksi di setiap koperasi cabang karena

data sudah tersedia disetiap koperasi cabang.

2. unjuk kerja sistem meningkat karena setiap cabang koperasi mengakses data

local.

3. Meskipun jika salah satu cabang sedang mengalami gangguan, cabang lain

masih dapat melakukan aktivitas karena setiap cabang menggunakan data

lokal.

4. Menggunakan replikasi berarti membackup data secara konstan. Data

koperasi cabang memiliki data backup di koperasi cabang lain. Apabila data

rusak maka data dapat diperbaiki dari data yang ada di cabang lain.

Page 135: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

115

5.3.2. Kekurangan

Dari hasil penelitian tentang Replikasi Master-Master MySQL 5.0 (Sistem

Koprasi Simpan Pinjam) dapat diambil beberapa kekurangan:

1. Replikasi master-master membutuhkan resources yang tinggi. File binary log

akan bertambah dengan berjalannya waktu. Setiap perubahan data akan

disimpan ke file binary. Contoh File binary lihat gambar 5.12.

Gambar 5.12 File binary

2. Data belum akurat jika sebuah transaksi melakukan update terhadap data yang

sama pada saat yang bersamaan. Hal ini terjadi karena perubahan data

replikasinya masih Asynchronous atau belum menggunakan protokol 2PC.

Page 136: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

BAB VI

KESIMPULAN DAN SARAN

6.1. Kesimpulan

Kesimpulan yang dapat diambil setelah mengimplementasikan sistem

terdistribusi dangan replikasi master to master adalah sebagai berikut :

1. Dengan teknologi replikasi maka ketersediaan data dan kinerja sistem

meningkat karena data anggota, data simpanan, penarikan, angsuran dapat

diakses dari setiap cabang.

2. Replikasi master-master memiliki kelebihan dan kekurangan, sehingga untuk

menggunakan teknologi ini perlu disesuaikan dengan kebutuhan

pengembangan sistem.

6.2. Saran

Saran dari penulis apabila ada pembaca yang mau mengembangkan penelitian

ini adalah :

1. Menggunakan replikasi synchronous atau pada MySQL dikenal dengan

Cluster.

2. Mencoba mereplikasi database yang berbeda ke sebuah slave.

3. Merancang web yang lebih baik, dengan fasilitas yang lebih lengkap.

116

Page 137: IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI …repository.usd.ac.id/32312/2/035314066_Full.pdf · DATABASE TERDISTRIBUSI PADA MYSQL 5.0 (Koperasi Simpan Pinjam) Skripsi Diajukan

117

DAFTAR PUSTAKA

Connoly, Thomas dan Carolyn Begg, Database System : A Practical Aproach to

Design, Implementation and Management, 3nd Edition, Pearson Education

Limited 2002, England

Kadir, Abdul, Dasar Pemrograman JSP (Java Server Pages), Penerbit Andi,

2004, Yogyakarta

Priyanto, Rahmat, Belajar Sendiri Menguasai MySQL 5, PT Elex Media

Komputindo, 2007, Jakarta

Polina, Maria agnes dan Jong Jek Siang, Kiat Jitu Menyusun Skripsi Jurusan

Teknik Informatika/Komputer, Penerbit Andi, 2005, Yogyakarta

http://lecture.ukdw.ac.id/willysr/sister-it/replication.pdf

http://www.mysql.com