Implementasi replikasi di MySQL 5.1 pada sistem informasi asuransi personal accident : studi kasus PT. Asuransi Umum Sarana Lindung Upaya - USD Repository
IMPLEMENTASI REPLIKASI DI MYSQL 5.1 PADA SISTEM
( Studi Kasus PT. Asuransi Umum Sarana Lindung Upaya ) SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
IMPLEMENTATION OF REPLICATION ON MYSQL 5.1
INFORMATION SYSTEM (A Study At Case PT. Asuransi Umum Sarana Lindung Upaya ) A Thesis Presented as Partial Fulfillment of the Requirements To Obtain the Engineering Bachelor Degree In Informatics Engineering
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 17 Maret 2007 Penulis
Astrisia Ratih Kusuma
HALAMAN MOTTO
DO THE RI GHT
AND DO THE BEST
THEN GOD W I LL DO THE REST
HALAMAN PERSEMBAHAN
Untuk Mama dan Babe tercinta Untuk Ema, Tatha, dan Wiwinku tersayang
INTISARI
Seiring dengan berkembangnya suatu perusahaan, beberapa kantor cabang mulai dibangun di beberapa daerah. Hal tersebut menyebabkan dibutuhkan waktu yang lama untuk memenuhi ketersediaan data kantor pusat, karena kantor cabang masih harus mengirimkan data-data tersebut melalui jasa pos.
Tugas akhir ini mengembangkan sistem database terdistribusi, yang dibatasi pada replikasi untuk meningkatkan ketersediaan data dan partisi untuk meningkatkan pengelolaan data. Replikasi akan diimplementasikan pada database kantor cabang, yaitu jakarta, dengan menggunakan jenis replikasi master-slave. Sedangkan partisi akan diimplementasikan pada tabel klaim dan tabel polis, dengan partition by range sebagai jenis partisinya. Dan dengan menggunakan kasus yang ada pada asuransi, khususnya asuransi personal accident.
Hasil akhir yang diperoleh adalah efisiensi dalam mengelola data yang ada dan dalam menyediakan data dari kantor cabang ke kantor pusat. Sistem ini dibuat dengan menggunakan bahasa pemrograman Java dan MySQL 5.1.19 sebagai database .
ABSTRACT
Along with the development of a company, a few branch office start to build in some places. It will cause a long time to fulfill distribution data for the main office, because the branch office still sending the data through the mail.
This final project is developing the distributed database system that limited on replication to obtain the distribution data and partitioning to obtain the management data. Replication will implement on branch office’s database, which is Jakarta, using master-slave replication. Partitioning will implement on table klaim and polis, using partition by range. The implementation is using a case in insurance, especially personal accident insurance.
The result of this implementation is the efficiency in maintaining and distributing data from branch office to main office. This system is created by using Java as programming language and MySQL 5.1.19 as database.
KATA PENGANTAR
Puji dan syukur saya haturkan kepada Tuhan Yesus Kristus, karena atas ijin dan kehendak-Nya saya dapat menyelesaikan tugas akhir ini.
Dalam proses penulisan tugas akhir ini saya menyadari bahwa ada begitu banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya masing-masing sehingga tugas akhir ini dapat selesai. Oleh karena itu saya ingin mengucapkan terima kasih antara lain kepada :
1. Bapak Ir. Gregorius Heliarko, S.J., S.S., B.S.T., M.A., M.Sc. selaku Dekan Fakultas Sains dan Teknologi, Universitas Sanata Dharma.
2. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing Tugas Akhir dan Dosen Pembimbing Akademik, yang telah banyak memberikan
6. Seluruh staff Sekretariat Teknik, yang banyak membantu saya dalam urusan administrasi akademik terutama menjelang ujian tugas akhir.
7. Seluruh karyawan PT. Asuransi Umum Sarana Lindung Upaya Cabang Jakarta, yang telah memberikan bantuan dalam menyelesaikan tugas akhir.
8. Mama dan Babe tercinta. Terima kasih atas semua yang telah dilakukan untukku, doa, semangat, dukungan, perhatian dan cintanya sehingga saya bisa menyelesaikan studi dengan lancar.
9. My beloved sisters , Tatha dan Ema. Terima kasih atas dukungan, doa, semangat dan keceriaan yang telah diberikan.
10. Andreas Agus Winarno, terima kasih atas segala cinta, sayang, perhatian, kesetiaan, kesabaran, ilmu, waktu dan semua yang telah kamu berikan padaku.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini sangat saya harapkan. Akhir kata, semoga tugas akhir ini bermanfaat bagi semua pihak. Terima kasih.
Yogyakarta, 17 Maret 2008 Penulis
DAFTAR ISI
HALAMAN JUDUL ................................................................................................. i HALAMAN PERSETUJUAN .................................................................................. iii HALAMAN PENGESAHAN ................................................................................... iv PERNYATAAN KEASLIAN KARYA ................................................................... v LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI..................................... vi HALAMAN MOTTO ............................................................................................... vii HALAMAN PERSEMBAHAN ............................................................................... viii
INTISARI................................................................................................................... ix ABSTRACT .............................................................................................................. x KATA PENGANTAR .............................................................................................. xi
BAB II. LANDASAN TEORI 2.1 Database.......................................................................................................
7 2.2 Distributed Database Management System (DDBMS)...............................
8
2.3 Sistem Database Terdistribusi 2.3.1 Pengertian Sistem Database Terdistribusi….....................................
8 2.3.2 Transparansi pada Sistem Terdistribusi…........................................
9 2.3.3 Tujuan Sistem Database Terdistribusi..............................................
12
2.4 Replikasi di MySQL………………………………………………………
12
2.5 Partisi di MySQL 5.1 2.5.1 Jenis – Jenis Partisi di MySQL 5.1...................................................
14 2.5.2 Aturan dan Batasan Partisi di MySQL 5.1........................................
15
Data.......................................................................
23
3.1.6.1.2 Use Case Diagram Admin Sub Proses Pembuatan Polis.......................................................................
24
3.1.6.1.3 Use Case Diagram Admin Sub Proses Pengajuan Klaim.....................................................................
25 3.1.6.2 Use Case Diagram Karyawan Bagian Teknik......................
26 3.1.6.3 Use Case Diagram Karyawan Bagian Klaim........................
27
3.1.6.4 Use Case Diagram Kepala Bagian 3.1.6.4.1 Use Case Diagram Kepala Bagian Teknik……….
28 3.1.6.4.2 Use Case Diagram Kepala Bagian Klaim……......
29 3.1.6.5 Use Case Diagram Kepala Cabang……...............................
30 3.1.6.6 Use Case Diagram Kepala Divisi..……...............................
31
3.2.3.8 Tabel Kantor….....................................................................
44 3.2.3.9 Tabel Reasuransi...................................................................
44 3.2.3.10 Tabel Kondisi Polis.........................................................
45 3.2.3.11 Tabel Kondisi Klaim.......................................................
45 3.2.3.12 Tabel Jabatan……………...............................................
46 3.2.3.13 Tabel User.......................................................................
46 3.2.4 Pemilihan Jenis Partisi......................................................................
47
3.2.5 Desain User Interface
3.2.5.1 Desain Input 3.2.5.1.1 Form Login............................................................
48 3.2.5.1.2 Form Setting Koneksi............................................
48 3.2.5.1.3 Form Menu Utama.................................................
49
3.2.5.1.15 Form Setting Kondisi........................................
55 3.2.5.1.16 Form Setting Premi...........................................
55 3.2.5.1.17 Form Setting Reasuransi...................................
56 3.2.5.1.18 Form Setting User.............................................
56 3.2.5.1.19 Form Proses List................................................
57
3.2.5.2 Desain Output 3.2.5.2.1 Laporan Agenda Klaim..........................................
57 3.2.5.2.2 Laporan Agenda Polis............................................
58 BAB IV. IMPLEMENTASI SISTEM 4.1 Implemetasi Replikasi .................................................................................
59 4.1.1 Membuat Database Jakarta dan Semarang........................................
60
4.1.3.9 Tabel Polis............................................................................
64 4.1.3.10 Tabel Premi.....................................................................
64 4.1.3.11 Tabel Reasuransi.............................................................
65 4.1.3.12 Tabel User.......................................................................
65 4.1.4 Mengatur Konfigurasi Untuk Database Server Master.....................
66 4.1.5 Mengatur Konfigurasi Untuk Database Server Slave........................
66 4.1.6 Menjalankan Replikasi.......................................................................
68 4.2 Koneksi Ke Database MySQL....................................................................
68
4.3 Implementasi User Interface 4.3.1 Form Login.........................................................................................
69 4.3.2 Form Setting Koneksi.........................................................................
69 4.3.3 Form Menu Utama.............................................................................
70
4.3.15 Form Setting Kondisi.....................................................................
82
96
92
87
86
85
84
83
5.2.2 Kekurangan Sistem ............................................................................
4.3.16 Form Setting Premi........................................................................
5.2 Kelebihan dan Kekurangan Sistem 5.2.1 Kelebihan Sistem ................................... ...........................................
5.1.2 Replikasi..............................................................................................
5.1 Analisis Teknologi 5.1.1 Partisi..................................................................................................
BAB V. ANALISIS HASIL
4.3.19 Form Proses List............................................................................
4.3.18 Form Setting User..........................................................................
4.3.17 Form Setting Reasuransi................................................................
97
DAFTAR GAMBAR
Gambar Keterangan Halaman
3.7 Use Case Diagram Karyawan Bagian Klaim
3.12 Class Diagram
31
3.11 Use Case Diagram Kepala Divisi
30
3.10 Use Case Diagram Kepala Cabang
29
3.9 Use Case Diagram Kepala Bagian Klaim
28
3.8 Use Case Diagram Kepala Bagian Teknik
27
26
3.1 Desain Arsitektur Replikasi dan Partisi
3.6 Use Case Diagram Karyawan Bagian Teknik
25
3.5 Use Case Diagram Admin Sub Proses Pengajuan Klaim
24
3.4 Use Case Diagram Admin Sub Proses Pembuatan Polis
23
3.3 Use Case Diagram Admin Sub Proses Pengaturan Data
22
3.2 Use Case Diagram Admin
20
38
3.27 Form Setting Bank 54
3.28 Form Setting Kondisi 55
3.29 Form Setting Premi 55
3.30 Form Setting Reasuransi 56
3.31 Form Setting User 56
3.32 Form Proses List 57
3.33 Laporan Agenda Klaim
57
3.34 Laporan Agenda Polis
58
4.1 Form Login 69
4.2 Form Setting Koneksi 70
4.3 Form Menu Utama 71
4.4 Form Agenda Polis
72
4.5 Form Menambah Agenda Polis
73
4.6 Form Mengupdate Agenda Polis
74
4.7 Form Agenda Klaim 75
4.8 Form Menambah Agenda Klaim
76
5.2 Contoh Hasil Menampilkan Data Agenda Klaim Menggunakan Database jakarta2
89
5.3 Contoh Menampilkan Data Agenda Polis Menggunakan Replikasi
93
5.4 Contoh Menampilkan Data Agenda Polis Dengan Mengakses Langsung ke Database Master
94
DAFTAR TABEL
Tabel Keterangan Halaman
3.1 Tabel Karyawan
41
3.2 Tabel Perusahaan 41
3.3 Tabel Bank 42
3.4 Tabel Polis 42
3.5 Tabel Klaim 43
3.6 Tabel Premi 44
3.7 Tabel Kantor 44
3.8 Tabel Reasuransi 45
3.9 Tabel Kondisi_polis
45
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah
Seiring perkembangan teknologi informasi saat ini, banyak bidang usaha yang membutuhkan teknologi informasi untuk mengatasi masalah-masalah yang dihadapi. Salah satu masalah yang ada adalah ketika suatu perusahaan mulai berkembang dan mulai membangun beberapa kantor cabang yang terpisah secara geografis. Hal tersebut menjadi masalah ketika kantor cabang harus dapat menyediakan data yang cukup banyak untuk menghasilkan informasi yang dibutuhkan oleh kantor pusat untuk menjalankan sistem kerjanya.
2 PT.Asuransi Sarana Lindung Upaya sebagai salah satu perusahaan yang bergerak dalam bidang asuransi yang memiliki beberapa cabang yang terpisah secara geografis. Setiap kali kantor cabang memproduksi sebuah polis ataupun klaim, maka data-data tersebut harus dikirimkan melalui pos ke kantor pusat.
Biasanya pengiriman data-data tersebut membutuhkan waktu satu malam untuk sampai ke kantor pusat. Pada perusahaan ini seluruh data yang ada masih disimpan dalam bentuk berkas. Hal tersebut akan menyulitkan dalam pencarian data, karena data – data yang ada cukup banyak. Sehingga diharapkan dengan dibangun sebuah sistem dengan database terdistribusi yang mengimplementasikan replikasi dan partisi dapat memudahkan dalam memproses data yang ada dan mengirimkan data ke kantor pusat.
3
1.3. Batasan Masalah
Untuk memusatkan penelitian pada pokok masalah, maka pembahasan masalah pada tulisan ini akan dibatasi pada hal-hal berikut:
1. Hanya menitikberatkan pada replikasi di MySQL 5.1
2. Sistem database terdistibusi dibatasi pada penggunaan teknologi replikasi single-master .
3. Jenis replikasi yang digunakan adalah replikasi master-slave, dimana
database pada kantor cabang Jakarta sebagai slave dan database pada kantor pusat Semarang sebagai master.
4. Sistem tidak menangani pembayaran premi.
1.4. Tujuan dan Manfaat Penelitian
4
1.5. Metodologi Penelitian
Metodologi penelitian yang digunakan adalah :
1. Studi literatur Mengumpulkan dan mempelajari data atau informasi melalui buku, laporan, makalah, dan media informasi lainnya yang sesuai dengan sistem yang dibuat.
2. Identifikasi masalah Menggunakan teknik antara lain :
a. Mengambil data-data asuransi personal accident di PT. Asuransi Umum Sarana Lindung Upaya cabang Jakarta.
b. Pengamatan (observasi) : melakukan pengamatan langsung di PT.
Asuransi Umum Sarana Lindung Upaya cabang Jakarta.
5
1.6. Sistematika Penulisan
BAB I PENDAHULUAN Bab ini membahas latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, metodologi penelitian, dan sistematika penulisan. BAB II LANDASAN TEORI Bab ini membahas mengenai landasan teori yang menjelaskan tentang database, Distributed Database Management System (DDBMS), database terdistribusi, replikasi di MySQL, dan partisi di MySQL 5.1. BAB III ANALISIS DAN PERANCANGAN SISTEM Bab ini membahas analisis sistem yang lama dan yang akan dibangun serta
6
BAB VI KESIMPULAN DAN SARAN Bab ini membahas kesimpulan yang didapat dari keseluruhan proses pembuatan tugas akhir ini, serta beberapa saran untuk pengembangan sistem lebih lanjut.
BAB II LANDASAN TEORI
2.1. Database
Database merupakan sekumpulan tabel data yang berisikan informasi
yang saling berhubungan satu sama lain (secara logika), biasanya disusun dalam urutan tertentu untuk melayani satu atau lebih aplikasi secara optimal. Suatu
database dapat terdiri dari satu tabel saja.
Database dirancang atas dasar pendekatan aplikatif maupun pendekatan
sistem. Pendekatan aplikatif merupakan cara tradisional, dimana database dirancang hanya untuk memenuhi satu aplikasi tertentu sehingga terdapat
8
2.2. 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 ke dalam sejumlah partisi. Tiap partisi 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.
2.3. Sistem Database Terdistribusi
9 Sedangkan Sistem Database Terdistribusi adalah kumpulan lokasi yang masing-masing mengoperasikan sistem database lokal dan juga dapat mengakses data global. Tiap lokasi memiliki databasenya sendiri-sendiri sehingga pengguna pada lokasi A dapat mengakses (dan mungkin memperbarui) data pada lokasi B
2.3.2. Transparansi pada Sistem Terdistribusi
Sistem database terdistribusi menyediakan beberapa tipe transparansi dalam Distributed DBMS antara lain :
a. Transparansi Distribusi (Distribution Transparency)
User tidak perlu tahu bahwa data didistribusi, user merasakan databasenya sebagai database tunggal
10 diberikan dapat dibagi-bagi menjadi potongan-potongan data (fragment) untuk keperluan penyimpanan fisik.
3. Transparansi replikasi (replication tranparency) artinya user tidak
perlu tahu replikasi terhadap fragment-fragment, objek logikal yang diberikan dapat ditampilkan pada level fisik dengan beberapa salinan (replika) yang berbeda dari objek tersimpan yang sama, pada beberapa sisi yang berbeda. Meskipun demikian mungkin sebuah sistem tidak memiliki location 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.
11
b. Transparansi Tranksaksi (Transaction Transparency)
Semua transaksi terdistribusi tetap menjaga konsistensi dan integritas
database terdistribusi, selain itu DDBMS juga harus memastikan
sinkronisasi subtransaksi-subtransaksi dengan transaksi lokal tetapi juga subtransaksi-subtransaksi dengan transaksi global
1. Transparansi Concurrency (Concurrency Transparency)
Semua transaksi yang dilaksanakan bersamaan (baik terdistribusi maupun tidak terdistribusi) sama seperti jika transaksi tersebut dieksekusi pada satu waktu dalam urutan serial.
2. Transparansi Kegagalan (Failure Transparency)
Menjamin atomicity dari global transactions yang berarti memastikan bahwa subtransaksi global transaction apakah semua commit atau
12
2.3.3 Tujuan Sistem Database Terdistribusi
Tujuan utama dari distribusi database adalah untuk memberikan kemudahan akses data untuk para user di berbagai tempat. Dalam perkembangannya sistem terdistribusi telah mengalami perubahan-perubahan untuk memenuhi tujuan dan sasaran dari sistem terdistribusi antara lain :
1. Mendukung perkembangan dari aplikasi dalam jaringan komputer.
2. Konsistensi pelayanan dalam jaringan.
3. Perbaikan pelayanan dalam hal respon time dan availability.
2.4. Replikasi di MySQL
Dalam replikasi single-master, server master akan menulis update ke binary log filenya dan menjaga index dari file tersebut untuk tetap berada pada
13 pengaturan yang dilakukan, replikasi dapat dilakukan pada semua database, beberapa database yang dipilih, atau bahkan beberapa tabel yang dipilih dalam sebuah database.
Replikasi multiple-master mungkin untuk dilakukan di MySQL, tetapi akan menimbulkan banyak masalah, tidak seperti penggunaan replikasi single-
master .
Target penggunaan replikasi di MySQL diantaranya adalah:
- Solusi berskala besar
Menyebarkan data melalui beberapa slave untuk meningkatkan unjuk kerja. Dalam hal ini, semua write dan update berada pada master server.
- Keamanan data
Karena data direplikasi pada slave, dan slave dapat memberhentikan
14
2.5. Partisi di MySQL 5.1
2.5.1. Jenis – Jenis Partisi di MySQL 5.1
- Range Partitioning Pada tabel yang dipartisi menggunakan range partitioning, akan berisi baris dimana nilai expression sesuai dengan nilai range yang diberikan. Range harus saling berurutan, tetapi tidak overlapping.
- List Partitioning Dalam list partitioning setiap partisi didefinisikan dan dipilih berdasarkan keanggotaan dari sebuah kolom dari suatu daftar.
- Hash Partitioning Dalam hash partitioning yang harus dilakukan hanyalah menspesifikasikan expression yang akan dipartisi dan jumlah partisinya.
15
2.5.2. Aturan dan Batasan Partisi di MySQL 5.1
Adapun beberpa aturan dan batasan dalam penggunaan partisi di MySQL 5.1 adalah sebagai berikut :
- Jika membuat tabel dengan jumlah partisi yang besar, maka akan
Error code 24: Too many open
muncul pesan kesalahan seperti
files
- Tabel yang dipartisi tidak mendukung foreign key
FULLTEXT
- Tabel yang dipartisi tidak mendukung indexes
GEOMETRY
- Tabel yang dipartisi tidak mendukung columns
- Pada MySQL 5.1.8, tabel temporari tidak dapat dipartisi
MERGE • Tabel yang menggunakan storage engine tidak dapat dipartisi.
- Semua tabel yang dipartisi dan di subpartisi harus menggunakan storage
BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.1.1. Gambaran Umum Sistem Lama
Sistem informasi personal accident yang digunakan di PT. Asuransi Umum Sarana Lindung Upaya merupakan suatu sistem yang menangani proses yang berkaitan dengan asuransi personal accident antara lain pembuatan polis, pengajuan klaim, pembuatan agenda polis, pembuatan agenda klaim.
Adapun prosedur pengajuan polis asuransi personal accident yang
17
3. PT. Asuransi Umum Sarana Lindung Upaya kantor cabang Jakarta membuatkan polis asuransi personal accident
4. Dari polis-polis yang masuk dapat dibuatkan agenda polis (daftar peserta asuransi).
Jika pihak tertanggung mengalami PHK atau meninggal dunia karena sakit atau karena kecelakaan, maka dapat mengajukan klaim dengan prosedur yang dilakukan di kantor cabang Jakarta adalah sebagai berikut : 1. Pihak bank melaporkan klaim yang diajukan oleh pihak tertanggung.
2. PT. Asuransi Umum Sarana Lindung Upaya kantor cabang Jakarta membuatkan agenda klaim.
3. Kemudian membuat laporan klaim sementara atau Preliminary Loss
Advice (PLA) yang selanjutnya dikirimkan ke Reasuransi yang telah
18
3.1.2. Orang Yang Terlibat Dalam Sistem
Dalam sistem informasi asuransi personal accident melibatkan enam orang aktor, yaitu:
1. Admin Orang yang bertanggung jawab penuh untuk mengelola sistem ini, termasuk memberikan akses bagi aktor lain.
2. Karyawan Bagian Teknik Orang yang menangani data-data pembuatan polis.
3. Karyawan Bagian Klaim Orang yang menangani data-data yang berhubungan dengan klaim.
4. Kepala Bagian Orang yang bertanggung jawab terhadap data-data polis dan klaim
19
3.1.3. Analisis Masalah
Permasalahan yang timbul adalah ketika kantor cabang Jakarta harus mengirimkan berkas-berkas polis dan klaim ke kantor pusat Semarang. Pada PT. Asuransi Umum Sarana Lindung Upaya seluruh pengiriman berkas- berkas cabang ke kantor pusat, masih menggunakan jasa pos.
3.1.4. Gambaran Umum Sistem Baru
Untuk menangani permasalahan di atas, maka akan dibuat sebuah sistem baru yang menerapkan teknologi database terdistribusi dengan menggunakan teknologi replikasi dan partisi.
Penggunaan teknologi replikasi akan mendistribusikan data polis dan klaim yang baru ke server kantor pusat Semarang dari kantor cabang Jakarta.
20 Gambar arsitektur desain replikasi dan partisi data polis antara server kantor pusat Semarang dan cabang Jakarta terlihat pada Gambar 3.1.
21 dengan pembuatan polis dan klaim yang akan terdapat dalam database sesuai dengan nama kantor. Pada gambar di atas dapat dilihat pada slave terdapat sebuah database, yaitu jakarta. Nantinya akan pada master akan terdapat dua buah database, yaitu database semarang dan jakarta. Database semarang akan berisi data – data pembuatan polis dan klaim pada kantor pusat semarang. Sedangkan database jakarta merupakan data-data hasil replikasi dari kantor cabang jakarta.
22
3.1.6. Use Case Diagram
3.1.6.1. Use Case Diagram Admin
23
3.1.6.1.1. Use Case Diagram Admin Sub Proses Pengaturan Data
24
3.1.6.1.2. Use Case Diagram Admin Sub Proses Pembuatan Polis
25
3.1.6.1.3. Use Case Diagram Admin Sub Proses Pengajuan Klaim
26
3.1.6.2. Use Case Diagram Karyawan Bagian Teknik
27
3.1.6.3. Use Case Diagram Karyawan Bagian Klaim
28
3.1.6.4. Use Case Diagram Kepala Bagian
3.1.6.4.1. Use Case Diagram Kepala Bagian Teknik
29
3.1.6.4.2. Use Case Diagram Kepala Bagian Klaim
30
3.1.6.5. Use Case Diagram Kepala Cabang
31
3.1.6.6. Use Case Diagram Kepala Divisi
32
3.2. Desain Sistem
3.2.1. Sequence Diagram Proses Memasukkan Data Bank
: form tambah bank : Admin : l ayar bank : bank kontrol : bank tam bah_bank() tam bah_bank()
jalankan form tambah bank
tam pilkan form tambah bank mas ukkan data bank barulakukan tambah data bank
s im pan data bankProses Mengedit Data Bank
33
Proses Menambah Data Reasuransi : Admin : layar reasuransi : reasuransi kontrol : reasuransi : form tambah reasuransi tambah_reasuransi() tambah_reasuransi() jalankan form tambah reasuransi tampilkan form tambah reasuransi masukkan data reasuransi baru lakukan tambah data reasuransi simpan data reasuransi
Proses Mengedit Data Reasuransi
34
Proses Menambah Data Polis : polis : Karyawan Bagian T eknik : l ayar poli s : polis kontrol : karyawan : form pembuatan polis tambah_pembuatan_polis() tambah_pembuatan_polis() jalankan form pembuatan polis tampilkan form pembuatan polis masukkan data pembuatan polis baru tam bah_karyawan() simpan data karyawan tambah_pembuatan_polis() simpan data pembuatan polis
Proses Mengedit Data Polis
35 : Karyawan Bagian : l ayar klaim : klaim kontrol : klaim : form tambah klaim Proses Menambah Data Klaim
Klaim tambah_klaim() tambah_klaim() tampilkan form tambah klaim jalankan form tambah klaim masukkan data klaim baru lakukan tambah data klaim sim pan data klaim
Proses Mengedit Data Klaim
36
Proses Tampil Agenda Polis : Kepal a Cabang : l ayar agenda poli s : polis control : karyawan tampil_agenda_polis() tampil_agenda_polis() : polis ambil data karyawan ambil data polis tampil agenda polis
Proses Login : Kepal a Bagi an : l ayar l ogi n : l ogin control : user : menu utama
37
Konfirmasi Persetujuan Klaim : Kepal a Divisi : l ayar klaim : klaim kontrol : form persetuj uan klaim konfi rmasi persetujuan klai m : klaim konfi rmasi persetujuan klai m jalankan form persetujan klaim tampilkan form persetujuan klaim masukkan persetujuan set status klaim menjadi disetujui
Klaim disetujui simpan data kl ai m
38 Diagram
Class
39
3.2.3. Desain Database
Tabel-tabel yang terdapat dalam database pada tiap-tiap server adalah tabel bank, tabel jabatan, tabel kantor, tabel karyawan, tabel klaim, tabel kokndisi_klaim, tabel kondisi_polis, tabel perusahaan, tabel polis, tabel premi, tabel reasuransi, dan tabel user.
3.2.3.1. Entity Relationship Diagram ER diagram dari sistem yang akan dibangun terlihat pada gambar 3.13.
40 Entity Relationship Diagram
41
3.2.3.2. Tabel Karyawan
Tabel karyawan digunakan untuk menyimpan data-data karyawan pemegang polis, dengan format seperti terlihat pada Tabel 3.1.
Tabel 3.1 Tabel KaryawanNama Field Tipe Data Ukuran id_karyawan int -
id_polis int - nama_karyawan varchar 100 tanggal_lahir date - perusahaan int - pertanggungan double - tgl_mulai date - tgl_selesai date - premi decimal 10,2 jml_phk int -
42
3.2.3.4. Tabel Bank
Tabel bank digunakan untuk menyimpan data-data bank, dengan format seperti terlihat pada Tabel 3.3.
Tabel 3.3 Tabel BankNama Field Tipe Data Ukuran
id_bank int -
nama_bank varchar
50 alamat_bank varchar 100
3.2.3.5. Tabel Polis
Tabel polis digunakan untuk menyimpan data-data polis, dengan format seperti terlihat pada Tabel 3.4.
43
3.2.3.6. Tabel Klaim
Tabel klaim digunakan untuk menyimpan data-data klaim, dengan format seperti terlihat pada Tabel 3.5.
Tabel 3.5 Tabel KlaimNama Field Tipe Data Ukuran
no_klaim int tgl_produksi_klaim date -
- tertanggung int tgl_kejadian date tempat_kejadian varchar 200 sebab_kejadian int -
- jml_klaim int no_pla varchar
30 remark_pla varchar 100 tgl_produksi_pla date -
44
3.2.3.7. Tabel Premi
Tabel premi digunakan untuk menyimpan data premi, dengan format seperti terlihat pada Tabel 3.6.
Tabel 3.6 Tabel PremiNama Field Tipe Data Ukuran
umur int -
premi double - phk double -
3.2.3.8. Tabel Kantor
Tabel kantor digunakan untuk menyimpan data mengenai kantor pusat dan cabang, dengan format seperti terlihat pada Tabel 3.7.
45
Tabel 3.8 Tabel ReasuransiNama Field Tipe Data Ukuran
id_reasuransi int -
nama_reasuransi varchar 20 inisial varchar
3
3.2.3.10. Tabel Kondisi Polis
Tabel kondisi_polis digunakan untuk menyimpan data-data kondisi suatu polis, dengan format seperti terlihat pada Tabel 3.9.
Tabel 3.9 Tabel Kondisi_polisNama Field Tipe Data Ukuran
id_kondisi int
kondisi varchar
45
46
3.2.3.12. Tabel Jabatan
Tabel jabatan digunakan untuk menyimpan data-data jabatan yang selanjutnya akan diguanakan sebagai hak akses untuk setiap pengguna, dengan format seperti terlihat pada Tabel 3.11.
Tabel 3.11 Tabel JabatanNama Field Tipe Data Ukuran
id_jabatan int
jabatan varchar
50
3.2.3.13. Tabel User
Tabel User digunakan untuk menyimpan data-data user yang dapat mengakses sistem ini, dengan format seperti terlihat pada Tabel 3.12.
47
3.2.4. Pemilihan Jenis Partisi
Penggunaan teknologi partisi akan dilakukan pada dua buah tabel, yaitu pada tabel polis dan tabel klaim pada semua database. Tabel polis akan dipartisi menggunakan jenis partisi range partitioning berdasarkan pada tahun dari tanggal pembuatan polis. Sedangkan pada tabel klaim juga akan dipartisi menggunakan jenis partisi range partitioning berdasarkan pada tahun dari tanggal pembuatan klaim.
Pemilihan penggunaan range partitioning dikarenakan, dalam range
partitioning dapat menangani data yang memiliki nilai expression yang tidak
sesuai dengan nilai expression yang telah ditentukan. Hal tersebut dikarenakan penggunaan operator kurang dari (less then (<)) serta penggunaan maxvalue. Penggunaan operator kurang dari (less then (<)) dapat
48
3.2.5. Desain User Interface
3.2.5.1. Desain Input
3.2.5.1.1. Form Login
Gambar 3.14 Form Login3.2.5.1.2. Form Setting Koneksi
49
3.2.5.1.3. Form Menu Utama
Gambar 3.16 Form Menu Utama50
Gambar 3.17. Form Agenda Polis3.2.5.1.5. Form Menambah Agenda Polis
Gambar 3.18. Form Menambah Agenda Polis51
Gambar 3.19. Form Mengupdate Agenda Polis3.2.5.1.7. Form Agenda Klaim
Gambar 3.20. Form Agenda Klaim52
Gambar 3.21. Form Menambah Agenda Klaim3.2.5.1.9. Form Mengupdate Agenda Klaim
Gambar 3.22. Form Mengupdate Agenda Klaim53
Gambar 3.23. Form PLA3.2.5.1.11. Form DLA
Gambar 3.24. Form DLA54
Gambar 3.25. Form Persetujuan Klaim3.2.5.1.13. Form Outstanding Klaim
Gambar 3.26. Form Outstanding Klaim55
Gambar 3.27. Form Setting Bank3.2.5.1.15. Form Setting Kondisi
56
Gambar 3.29. Form Setting Premi3.2.5.1.17. Form Setting Reasuransi
57
Gambar 3.31. Form Setting User3.2.5.1.19. Form Proses List
58
Gambar 3.33. Laporan Agenda Klaim3.2.5.2.2. Laporan Agenda Polis
59
Gambar 3.34. Laporan Agenda PolisBAB IV IMPLEMENTASI SISTEM Pada bab ini akan dibahas bagaimana mengimplementasikan sistem dari
tahap analisis dan desain ke dalam bahasa pemrograman. Sistem ini dibuat dengan spesifikasi perangkat lunak sebagai berikut.
1. Sistem Operasi Microsoft Windows XP Professional SP 2.
2. IDE NetBeans 5.5.
3. Database MySQL 5.1.19 4. Bahasa Pemrograman J2SE.
5. iReport 2.0.0
60 klaim, tabel kondisi_klaim, tabel kondisi_polis, tabel perusahaan, tabel polis, tabel premi, tabel reasuransi, dan tabel user. Dimana pada tabel polis dan klaim akan dibangun dengan menggunakan teknologi partisi.
4. Mengatur konfigurasi untuk database server master.
5. Mengatur konfigurasi untuk database server slave.
6. Menjalankan replikasi.
4.1.1. Membuat Database Jakarta dan Semarang
Pada database server jakarta dibuat database jakarta dengan menggunakan sintaks SQL sebagai berikut:
create database ‘jakarta’
61 Agar dapat mengakses database sistem dan melakukan replikasi, maka user slu diberikan privileges dengan menggunakan sintaks SQL sebagai berikut:
grant all privileges on *.* to 'slu'@'%' identified by 'slu';
4.1.3. Membuat Tabel – Tabel yang Dibutuhkan Untuk Membangun Sistem
4.1.3.1. Tabel Bank
Tabel bank digunakan untuk menyimpan data bank. Tabel bank dibuat dengan menggunakan sintaks SQL sebagai berikut:
CREATE TABLE `bank` ( `id_bank` int(11) NOT NULL, `nama_bank` varchar(45) NOT NULL, `alamat_bank` varchar(150) NOT NULL DEFAULT '-' ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
62
CREATE TABLE `kantor` ( `id_kantor` int(11) NOT NULL, `nama_kantor` varchar(25) NOT NULL, `alamat_kantor` varchar(100) NOT NULL DEFAULT '-', PRIMARY KEY (`id_kantor`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4.1.3.4. Tabel Karyawan
Tabel karyawan digunakan untuk menyimpan data karyawan pemegang polis. Tabel karyawan dibuat dengan menggunakan sintaks SQL sebagai berikut:
CREATE TABLE `karyawan` ( `id_karyawan` int(11) NOT NULL, `id_polis` int(11) NOT NULL, `nama_karyawan` varchar(100) NOT NULL, `tgl_lahir` date NOT NULL, `perusahaan` int(11) NOT NULL, `pertanggungan` int(11) NOT NULL, `tgl_mulai` date NOT NULL DEFAULT '1000-01-01', `tgl_selesai` date NOT NULL DEFAULT '1000-01-01', `premi` decimal(10,2) NOT NULL, `jml_phk` int(11) NOT NULL DEFAULT '0'
63
`jml_dibayarkan` int(11) NOT NULL DEFAULT '0', `tgl_dibayarkan` date NOT NULL DEFAULT '1000-01-01' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY RANGE (year(tgl_produksi_klaim)) ( PARTITION p2005 VALUES LESS THAN (2005), PARTITION p2006 VALUES LESS THAN (2006), PARTITION p2007 VALUES LESS THAN (2007), PARTITION p2008 VALUES LESS THAN (2008), PARTITION p2009 VALUES LESS THAN (2009), PARTITION p2010 VALUES LESS THAN (2010), PARTITION p2011 VALUES LESS THAN MAXVALUE );
4.1.3.6. Tabel Kondisi Klaim
Tabel kondisi klaim digunakan untuk menyimpan data penyebab terjadinya klaim. Tabel kondisi klaim dibuat dengan menggunakan sintaks SQL sebagai berikut:
CREATE TABLE `kondisi_klaim` ( `id_kondisi` int(11) NOT NULL AUTO_INCREMENT, `kondisi` varchar(50) NOT NULL, PRIMARY KEY (`id_kondisi`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
64
4.1.3.8. Tabel Perusahaan
Tabel perusahaan digunakan untuk menyimpan data perusahaan tempat karyawan pemegang polis bekerja. Tabel perusahaan dibuat dengan menggunakan sintaks SQL sebagai berikut:
CREATE TABLE `perusahaan` ( `id_perusahaan` int(11) NOT NULL AUTO_INCREMENT, `nama_perusahaan` varchar(25) NOT NULL, PRIMARY KEY (`id_perusahaan`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4.1.3.9. Tabel Polis
Tabel polis digunakan untuk menyimpan data polis. Tabel polis dibuat dengan menggunakan sintaks SQL sebagai berikut:
CREATE TABLE `polis` ( `id_polis` int(11) NOT NULL, `id_bank` int(11) NOT NULL, `no_polis` int(11) NOT NULL,
65
CREATE TABLE `premi` ( `umur` int(11) NOT NULL, `jangka_waktu` int(11) NOT NULL, `premi` decimal(10,2) NOT NULL, `phk` decimal(10,2) NOT NULL, PRIMARY KEY (`umur`,`jangka_waktu`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4.1.3.11. Tabel Reasuransi Tabel reasuaransi digunakan untuk menyimpan data reasuransi.
Tabel reasuransi dibuat dengan menggunakan sintaks SQL sebagai berikut:
CREATE TABLE `reasuransi` ( `id_reasuransi` int(11) NOT NULL, `nama_reasuransi` varchar(25) NOT NULL, `inisial` varchar(3) NOT NULL DEFAULT '-', PRIMARY KEY (`id_reas`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
66
4.1.4. Mengatur Konfigurasi Untuk Database Server Master
Agar replikasi dapat berjalan, maka master harus memiliki binary
log yang berfungsi untuk pertukaran data antara master dan slave. Pada
setiap server yang termasuk dalam sebuah grup replikasi juga harus memiliki server-id yang merupakan bilangan integer positif unik yang dapat dipilih dan ditentukan sendiri. Setiap server-id digunakan untuk mengidentifikasi setiap server yang terdapat pada sebuah grup replikasi.
Untuk menambahkan binary log dan server-id pada master
my.ini my.cnf
dilakukan dengan mengubah file konfigurasi atau server
[mysqld] master pada bagian . Pada sistem ini master menggunakan
jakarta-bin untuk nama dari binary log dan server-id diberi nilai 1, sehingga ditambahkan sintaks sebagai berikut:
67 server slave dengan diikuti “-relay-bin.index”. Pada file konfigurasi
my.ini
atau
my.cnf
server slave juga dapat ditambahkan database yang akan direplikasi atau tabel-tabel yang akan direplikasi.
Pada sistem ini, slave memberi nilai 2 untuk server-id. Sedangkan nama konputer yang digunakan untuk server slave adalah “latih03”, sehingga nama untuk relay log index-nya adalah “latih03-relay-bin.index”. Karena hanya akan mereplikasi satu database, yaitu database jakarta, maka ditambahkan sintaks sebagai berikut:
[mysqld] server-id=2 relay-log-index=latih03-relay-bin.index replicate-do-db=jakarta
Setelah melakukan pengaturan konfigurasi replikasi untuk master dan slave, maka parameter yang digunakan server slave untuk
68 yang terdapat pada master. Hal itu dapat ditemukan dengan menjalankan sintaks berikut pada master:
show master status;
4.1.6. Menjalankan Replikasi
Setelah mengatur konfigurasi pada server master dan slave, maka replikasi dapat dijalankan dengan menjalankan sintaks berikut pada slave:
start slave;
Untuk mengetahui status dari slave, maka dijalankan sintaks berikut pada slave:
show slave status;