• Tidak ada hasil yang ditemukan

IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI PADA MYSQL 5.0

N/A
N/A
Protected

Academic year: 2019

Membagikan "IMPLEMENTASI METODE REPLIKASI DATABASE TERDISTRIBUSI PADA MYSQL 5.0"

Copied!
137
0
0

Teks penuh

(1)

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

(2)

(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

(3)
(4)
(5)
(6)
(7)
(8)

viii

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

(9)

ix

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

(10)
(11)

x

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

(12)

xi

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

(13)

xii

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

(14)

xiii

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

(15)

xiv

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

(16)

xv

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

(17)

xvi

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

(18)

xvii

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

(19)

xviii

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

(20)

xix

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

(21)

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

(22)

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

(23)

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.

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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.

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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.

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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_tipeON {*.* | * | db_name.* | table_name} TO 'user_name'@'host_name' IDENTIFIED

(43)

Query untuk menghapus privelege untuk sebuah user account:

REVOKE priv_tipeON {*.* | * | 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_tipeON {*.* | * | 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;

(44)

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

(45)

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 masterBinlog 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’);

(46)

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

(47)

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.

(48)

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

(49)

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 instantservlet.

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

(50)

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=”nilai2”

…%>

b. Elemen skripting

Elemen skripting terdiri atas tiga macam yaitu :

• Skriplet

Tag <% ... %> digunakan untuk deklarasi, ekspresi dan

kode lain. Contoh :

<%

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

{

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

}

(51)

• 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 …/>

(52)

Pada bagian ini bisa diisi dengan JSP action yang lain

*/

</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 layerdriver 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

(53)

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.

(54)

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

(55)

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

(56)

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

(57)

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

(58)

c) Diagram Berjenjang

(59)

d) Overview Diagram

DFD Level 0

!

! ! ! "

!

#

# $

% "

& # "

# ' #

( )

* " +

,

(60)

DFD Level 1 Proses 1

Gambar 3.5 DFD Level 1 Proses 1

DFD Level 1 Proses 2

(61)

DFD Level 1 Proses 3

!

.

# $

. ) $

% "

Gambar 3.7 DFD Level 1 Proses 3

DFD Level 1 Proses 4

(62)

DFD Level 1 Proses 5

Gambar 3.9 DFD Level 1 Proses 5

DFD Level 1 Proses 6

(63)

DFD Level 1 Proses 7

(64)

3.1.6.2. E-R Diagram

(65)

3.1.7. Desain Sistem

1) Relasi antar tabel

(66)

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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

(72)

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

(73)

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

(74)

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

(75)

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

(76)

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

(77)
(78)

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’,

(79)

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

(80)

1. Halaman Login

Gambar 3.15 Form Login

2. Menu Anggota

(81)

3. Tabungan

Gambar 3.17 Form Tabungan

4. Penarikan

(82)

5. Pinjaman

Gambar 3.19 Form Pinjaman

6. Angsuran

(83)

7. Akun Utama

Gambar 3.21 Form Akun Utama

8. Preferensi

(84)

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

(85)

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

(86)

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

(87)

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

(88)

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

maupun tabel yang tidak direplikasi.

! " # $ %

% & '

# $ ( ! $ ( ! $ ) ' *" * & # + ! $ ! " # $ % % & '

# $ ( ! $ ( ! $ ) ' *" * & # + ! $ # #

, - - ./- 0 , - - ./-1

# ) 2$ # % *" ) 2$ % *"

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

(89)

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 'Nasabah',

`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

(90)

`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 'January'

)

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_penarikan` double default '0',

`lokasi` int(11) default NULL

PRIMARY KEY (`kode_penarikan`) )

5.

Tabel pinjaman

CREATE TABLE `pinjaman` (

`kode_pinjaman` varchar(20) NOT NULL,

(91)

`tgl_pinjaman` date default '20

Gambar

Gambar 2.1 Topologi Jaringan Ring
Gambar 3.1 Use Case Diagram
Table 3.1 Input Output Sistem
Gambar 3.2 Context Diagram
+7

Referensi

Dokumen terkait

Memperhatikan pernyataan dan pandangan dari ulama-ulama kenamaan dari masing-masing mazhab empat tersebut di atas, kiranya hampir semua ulama melarang dan menyatakan

Rata-rata waktu propagasi pengiriman informasi tersesat dari server menuju handphone ketua kloter, ketua regu dan petugas sektor dibutuhkan waktu sebesar 9,1

Keragaan TBM yang kurang jagur umumnya terdapat pada: (i) areal dengan Mucuna bracteata belum menutup dengan penuh, (ii) kastrasi belum tepat, (iii) pengendalian gulma yang

'arapan kami, buku ini apat memberikan  pengetahuan tentang Komite Keperawatan, peranan Sub Komite Keperawatan ia(am membantu mewu)ukan *isi an misi RSU AN-NISAA

oleh tamu yang sudah pernah bermalam dan memberi nilai ulasan tentang fasilitas – fasilitas yang ada, mulai dari kinerja lift, kinerja perabotan yang ada di

Pada saat proses sintesis, alumina dan silika akan berikatan dengan oksigen membentuk struktur zeolit sodalit yang memiliki pori yang lebih baik daripada batu

?bat agonis adlaha obat yang mempunyai aktivitas intrinsik dan dapat ?bat agonis adlaha obat yang mempunyai aktivitas intrinsik dan dapat mengubah struktur

Mata diklat ini membekali peserta dengan kemampuan untuk melakukan kewajiban USBJJ yang terdiri dari pelaksanaan penyelenggaraan proses pembelajaran jarak jauh, penyediaan