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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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;
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
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’);
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
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.
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
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
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”);
}
• 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 …/>
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
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.
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
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
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
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
c) Diagram Berjenjang
d) Overview Diagram
DFD Level 0
!
! ! ! "
!
#
# $
% "
& # "
# ' #
( )
* " +
,
DFD Level 1 Proses 1
Gambar 3.5 DFD Level 1 Proses 1
DFD Level 1 Proses 2
DFD Level 1 Proses 3
!
.
# $
. ) $
% "
Gambar 3.7 DFD Level 1 Proses 3
DFD Level 1 Proses 4
DFD Level 1 Proses 5
Gambar 3.9 DFD Level 1 Proses 5
DFD Level 1 Proses 6
DFD Level 1 Proses 7
3.1.6.2. E-R Diagram
3.1.7. Desain Sistem
1) Relasi antar tabel
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_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
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
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
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
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
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
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
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
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
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
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_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
1. Halaman Login
Gambar 3.15 Form Login
2. Menu Anggota
3. Tabungan
Gambar 3.17 Form Tabungan
4. Penarikan
5. Pinjaman
Gambar 3.19 Form Pinjaman
6. Angsuran
7. Akun Utama
Gambar 3.21 Form Akun Utama
8. Preferensi
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
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
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
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
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
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
`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,
`tgl_pinjaman` date default '20