Anda di halaman 1dari 154

IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI PADA

PERPUSTAKAAN UNIVERSITAS SANATA DHARMA YOGYAKARTA

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat


Memperoleh Gelar Sarjana Sains
Program Studi Ilmu Komputer

Oleh :

Andreas Wahyu Utama

NIM : 033124038

PROGRAM STUDI ILMU KOMPUTER

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2008
IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI PADA

PERPUSTAKAAN UNIVERSITAS SANATA DHARMA YOGYAKARTA

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat


Memperoleh Gelar Sarjana Sains
Program Studi Ilmu Komputer

Oleh :

Andreas Wahyu Utama

NIM : 033124038

PROGRAM STUDI ILMU

KOMPUTER JURUSAN

MATEMATIKA FAKULTAS SAINS

DAN TEKNOLOGI UNIVERSITAS

SANATA DHARMA YOGYAKARTA

2008

i
IMPLEMENTATION OF DISTRIBUTED DATABASE SYSTEM

AT SANATA DHARMA UNIVERSITY’S LIBRARY

THESIS

Presented As Partial Fulfillment Of The Requirements To Obtain The Sarjana

Sains Degree In Computer Sciences

By :

Andreas Wahyu Utama

NIM : 033124038

STUDY PROGRAM OF COMPUTER SCIENCES

DEPARTMENT OF MATHEMATICS

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2008

ii
IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI PADA

rrn usTAKAAN UNI VE ItSITAS SANATA DHARMA YOrYAKARTA

.Oleh :

“ And reas Wahyu Utama

l'einbiinbing

A. Rita W idiarti, S.Si., M.Koin.


Tanggal, 8 Oktobcr 200g

iii
SKRIPSI

IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI PADA

PERPUSTAKAAN UNIYERSITAS SANATA DHARMA

YOGYAKARTA

Dipersiapkan dan ditulis oleh

: NIM 33124038

Te Penguj1

w

Sekretaris Sao ari Pannadi .Si.,M.Kom.

Anggota ri Wijono, S. ., M.Kom.


bx2W8
Fakultas Sains dan Teknologi

niversitas Sanata Dhanna

JIr€ireg Heliar o S.J.,S.S.,M.Sc.,M.A.)


PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tidak memuat karya/bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 9 Oktober 2008

Penulis

Andreas Wahyu Utama

v
HALAMAN PERSEMBAHAN

Kehidupan bukanlah sebuah persoalan untuk diselesaikan,

Namun sebuah misteri untuk dijalani.

(M. Scott Peck)

Hanya orang-orang dengan tekad yang kuat yang

mampu membuka tirai kehebatan.

(Comte de Mirabeau)

Saya memang seorang yang melangkah dengan lambat,

Tetapi saya tidak akan pernah berjalan mundur ke belakang.

(Abraham Lincoln)

Ide-ide lebih kuat daripada senapan.

Kami tidak akan membiarkan musuh kami memiliki senapan,

Mengapa kami harus membiarkan mereka memiliki ide-ide?

(Joseph Stalin)

Skripsi ini aku persembahkan untuk kedua orang tuaku

Bapak (alm) H. Sumarlan dan ibu E.M. Wartinem

vi
ABSTRAKSI

Data buku pada perpustakaan adalah salah satu contoh permasalahan yang
memerlukan penyimpanan data yang besar. Data buku yang besar diakses oleh
dua aplikasi yaitu perpustakaan Mrican dan Paingan yang lokasinya terpisah jarak
yang jauh. Hal ini dapat mempengaruhi kinerja komputer server dalam
pengelolaan basis data. Untuk itu diperlukan penyimpanan basis data buku di
beberapa lokasi menggunakan sistem basis data terdistribusi. Sistem basis data
terdistribusi merupakan cara untuk mendistribusikan basis data yang berelasi
secara logis pada beberapa lokasi secara terpisah dengan menggunakan jaringan
komputer.
Implementasi sistem basis data terdistribusi pada perpustakaan dengan
metode telaah fragmentasi ini menggunakan 2 strategi yaitu: fragmentasi
horizontal dan fragmentasi vertikal. Fragmentasi horizontal memecah tabel
berdasarkan record sedangkan fragmentasi vertikal memecah tabel berdasarkan
kolom. Berdasarkan penelitian, implementasi sistem basis data pada perpustakaan
menggunakan strategi fragmentasi horizontal lebih cocok digunakan untuk basis
data buku dan dapat meminimalkan total biaya.

vii
ABSTRACT

The book data of a library is an example of problems that needs large


amount of storage. It is accessed by two application that are Mrican and Paingan
library which spread out in some separate locations. This condition influences the
server performance in processing the database. Therefore, book database should
be stored in several storages at some different locations by implementing
distributed database system. The distributed database system is a way to distribute
logically related database in some different locations, using computer network.
The implementation of distributed database system at library with study
method fragmentation uses two strategies that are: horizontal fragmentation and
vertical fragmentation. Horizontal Fragmentation breaks the table based on the
records while vertical Fragmentation break the table based on the columns.
According to research, this implementation of distributed database system at
library uses horizontal fragmentation because this strategy is more compatible for
the books database and can minimize the total cost.

viii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Andreas Wahyu Utama
Nomor Mahasiswa : 033124038

Demi pengembangan ilmu pengetahuan, saya memberikan kapada Perpustakaan

Universitas Sanata Dharma Karya ilmiah saya yang berjudul :

IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI PADA

UNIVERSITAS SANATA DHARMA YOGYAKARTA

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan,
mengalihkan, dalam bentuk media lain, mengelolanya dalam bentuk pangkalan
data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau
media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya
maupun membarikan royalti kepada saya selama tetap mencantumkan nama saya
sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.


Dibuat di Yogyakarta
Pada tanggal : 9 Oktober 2008
Yang menyatakan

(Andreas Wahyu Utama)

ix
PENGANTAR

Terima kasih kepada Tuhan Yang Maha Esa yang telah memberikan

berkat kemampuan dan pengetahuan kepada saya sehingga penyusunan skripsi

dapat terselesaikan. Skripsi ini disusun sebagai salah satu syarat untuk

memperoleh gelar Sarjana Sains di Fakultas Sains dan Teknologi. Penulis

menyadari masih banyak kekurangan dan kesalahan dalam karya tulis ini dan

semoga kekurangan dan kesalahan tersebut tidak mengurangi kemanfaatannya.

Dalam rangka perbaikan karya tulis ini penulis menerima kritik dan saran yang

dapat dikirim melalui :

e-mail : gondreaz@yahoo.com atau melalui

Nomor HP : 085647395146 (Andre).

Yogyakarta, Oktober 2008

Penulis

x
UCAPAN TERIMA KASIH

Banyak pihak yang terlibat dalam penyusunan skripsi ini, dan dengan

proses penyusunan yang tidak sebentar. Namun berkat dukungan dari banyak

pihak, akhirnya skripsi ini dapat terselesaikan. Terima kasih atas semua pihak

yang telah membantu penyusunan skripsi ini, secara khusus Kepada :

1. Romo Greg Heliarko selaku dekan FST atas kesempatan yang masih diberikan

kepada kami.

2. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku Kaprodi Ilmu Komputer FST.

3. Ibu A. Rita Widiarti, S.Si., M.Kom. selaku dosen pembimbing atas saran,

bimbingan, dan waktu yang diberikan.

4. Seluruh dosen Fakultas Sains Dan Teknologi yang telah membagi

pengalaman, pengetahuan, dan membantu selama kuliah, sampai pada saat

hari H pendadaran.

5. Staff sekretariat FST atas bantuannya selama ini.

6. Seluruh staff perpustakaan USD terutama untuk Romo Frans Susilo atas

ijinnya, sehingga penulis dapat melakukan penelitian di perpustakaan USD.

7. Bapak Supriyanto selaku administrator perpustakaan USD atas waktu yang

diberikan kepada penulis untuk melakukan wawancara.

8. Bapak Drs. M. Tarmanta sekeluarga atas dukungan, doa, motivasi yang

diberikan kepada penulis.

xi
9. Bapak H. Sumarlan (Alm) dan Ibu E.M. Wartinem yang selalu mendampingi,

mendukung, dan mendoakan. Terima kasih atas semua yang telah Bapak dan

Ibu berikan selama ini.

10. Pak Tomo dan Bu Muncar yang selalu menanyakan “Kapan Kamu Lulus?”.

11. Teman-teman Kos 132 A paingan : Kenthus (atas motivasinya), Paijho (suwun

komputer + kamarnya), Simbah (atas nasehat-nasehatnya), Yoo (atas bantuan

dan motivasinya).

12. Rina, Iin, Toto, Lia atas bantuan, bimbingan, dan semangat yang telah

diberikan kepada penulis.

13. Bang Teguh untuk saran-saran yang diberikan, pinjaman laptop, dan kamarnya

selama sebulan ini thank’s a lot bro..

14. Seluruh teman-teman IKOM angkatan 2003 terima kasih atas semua

kebersamaan yang telah kita lalui selama ini. (Tetap Kompak)

15. Semua pihak yang tidak bisa disebutkan satu persatu, terima kasih atas

semuanya.

Segala sesuatu tidak ada yang sempurna, demikian juga dengan skripsi ini. Kritik

dan saran menjadi harapan penulis agar skripsi ini menjadi labih baik. Semoga

skripsi ini dapat berguna bagi adik-adik sejurusan dan yang utama, semoga skripsi

ini barguna bagi ilmu pengetahuan.

Yogyakarta, Oktober 2008

Penulis

xii
DAFTAR ISI

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

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

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

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

HALAMAN PERSEMBAHAN................................................................................vi

ABSTRAK.................................................................................................................vii

ABSTRACT...............................................................................................................viii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH

UNTUK KEPENTINGAN AKADEMIS..................................................................ix

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

UCAPAN TERIMA KASIH.....................................................................................xi

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

DAFTAR GAMBAR.................................................................................................xv

DAFTAR TABEL......................................................................................................xxii

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

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

1.2 Rumusan Masalah................................................................................................3

1.3 Batasan Masalah..................................................................................................4

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

1.5 Metodologi...........................................................................................................5

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

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

2.1 Definisi Sistem Basis Data Terdistribusi.............................................................8

2.2 Arsitektur Sistem Basis Data Terdistribusi..........................................................10

2.2.1 Model Arsitektur untuk Sistem Basis Data Terdisribusi............................10

2.2.2 Arsitektur Sistem Manajemen Basis Data Terdistribusi.............................12

2.3 Desain Sistem Basis Data Terdistribusi...............................................................15

2.3.1 Fragmentasi.................................................................................................16

2.3.2 Alokasi........................................................................................................47

2.4 QUERY-PROCESSOR TERDISTRIBUSI..........................................................48

2.4.1 Definisi Query-Processor Terdistribusi......................................................48

2.4.2 Peran Utama Query-Processor Terdistribusi..............................................48

2.4.3 Contoh Kasus Query-Processor Terdistribusi 1.........................................50

2.4.4 Contoh Kasus Query-Processor Terdistribusi 2.........................................51

2.4.5 Optimasi Kueri............................................................................................53

BAB III ANALISA DAN PERANCANGAN SISTEM........................................55

3.1 Analisis Masalah..................................................................................................55

3.2 Analisis Kelayakan..............................................................................................56

3.3 Analisis Kebutuhan..............................................................................................58

3.3.1 Kebutuhan Perpustakaan Paingan...............................................................58

3.3.2 Kebutuhan Perpustakaan Mrican................................................................59

3.4 Gambaran Umum Sistem.....................................................................................60

3.5 Perancangan Proses..............................................................................................61

xiv
3.5.1 Diagram Alir Data.......................................................................................61

3.5.1.1. Diagram Konteks...........................................................................61

3.5.1.2. DAD Level 0 untuk Perpustakaan Mrican.....................................62

3.5.1.3. DAD Level 0 untuk Perpustakaan Paingan...................................63

3.5.2 Kamus Data.................................................................................................64

3.6 Perancangan Basis Data.......................................................................................66

3.6.1 Entity Relational Diagram (ERD)...............................................................66

3.6.2 Relasi Antar Tabel......................................................................................69

3.6.3 Mapping......................................................................................................69

3.6.4 Normalisasi Relasi......................................................................................70

3.6.5 Tabel Awal..................................................................................................70

3.7 Perancangan SBDT Perpustakaan Universitas Sanata Dharma...........................70

3.7.1 Primary Horizontal Fragmentation dari Tabel BUKU................................70

3.7.2 Derived Horizontal Fragmentation Dari Tabel KLASIFIKASI................76

3.7.3. Fragmentasi Vertikal..................................................................................78

3.7.3 Perhitungan Total Biaya.............................................................................102

3.8 Perancangan User Interface.................................................................................108

3.8.1. Form Utama Perpustakaan Mrican............................................................108

3.8.2. Form Penelusuran Buku Perpustakaan Mrican..........................................108

3.8.3. Form Utama Perpustakaan Paingan...........................................................110

3.8.4. Form Penelusuran Buku Perpustakaan Paingan........................................110

BAB IV IMPLEMENTASI.....................................................................................111

4.1 Implementasi Komputer Server...........................................................................111

xv
4.1.1 Pengaturan Komputer Perpustakaan Mrican..............................................111

4.1.2 Pengaturan Komputer Perpustakaan Paingan.............................................112

4.2 Implementasi Komputer Klien.............................................................................115

4.2.1 Implementasi Komputer Klien Perpustakaan Mrican.................................115

4.2.2 Implementasi Komputer Klien Perpustakaan Paingan...............................122

BAB V PENUTUP...................................................................................................128

5.1 Kesimpulan....................................................................................................128

5.2 Saran..............................................................................................................129

DAFTAR PUSTAKA...............................................................................................130

xvi
DAFTAR GAMBAR

Gambar 2.1. Lingkungan Ssitem Basis Data Terdistribusi........................................9

Gambar 2.2. Referensi Arsitektur Client-Server.......................................................13

Gambar 2.3. Matrik Muse..........................................................................................22

Gambar 2.4. Matrik Macc..........................................................................................22

Gambar 2.5. Matrik Affinitas.....................................................................................23

Gambar 2.6a. Matrik CA (a)......................................................................................28

Gambar 2.6b. Matrik CA (b)......................................................................................28

Gambar 2.6c. Matrik CA (c)......................................................................................28

Gambar 2.6d. Matrik CA (d)......................................................................................28

Gambar 2.7. Lokasi Pemisahan ke-1.........................................................................29

Gambar 2.8. Lokasi Pemisahan ke-2.........................................................................29

Gambar 2.9. Lokasi Pemisahan ke-3.........................................................................30

Gambar 2.10. Ekspresi Relasi Antar Tabel Menggunakan Link (Li)........................33

Gambar 2.11. Ekspresi dari Relasi Tabel Owner dan Tabel Member

Menggunakan Link (Li).....................................................................42

Gambar 2.12. Diagram Pemetaan..............................................................................49

Gambar 2.13. Lokasi Fragmen-fragmen ASG dan EMP...........................................51

Gambar 3.1. Blok Diagram Sistem Basis Data Terdistribusi Perpustakaan..............60

Gambar 3.2. Diagram Konteks..................................................................................61

Gambar 3.3. DAD Level 0 untuk Perpustakaan Mrican............................................62

Gambar 3.4. DAD Level 0 untuk Perpustakaan Paingan..........................................63

xvi
Gambar 3.5. Rancangan Basis Data (ERD)...............................................................68

Gambar 3.6. Relasi Antar Tabel................................................................................69

Gambar 3.7. Matriks Muse.........................................................................................82

Gambar 3.8. Matriks Frekuensi.................................................................................82

Gambar 3.9. Matriks Affinitas....................................................................................83

Gambar 3.10. Matriks Cluster...................................................................................85

Gambar 3.11. Matriks Cluster M1.............................................................................86

Gambar 3.12. Matriks Cluster M2.............................................................................87

Gambar 3.13. Matriks Cluster M3.............................................................................87

Gambar 3.14. Matriks Cluster M4.............................................................................87

Gambar 3.15. Matriks Cluster M5.............................................................................88

Gambar 3.16. Matriks Cluster M6.............................................................................88

Gambar 3.17. Matriks Cluster M7.............................................................................88

Gambar 3.18. Matriks Cluster M8.............................................................................89

Gambar 3.19. Matriks Cluster M9.............................................................................89

Gambar 3.20. Matriks Cluster M10...........................................................................89

Gambar 3.21. Matriks Cluster M11...........................................................................90

Gambar 3.22. Matriks Cluster M12...........................................................................90

Gambar 3.23. Matriks Cluster M13...........................................................................90

Gambar 3.24. Matriks Cluster M14...........................................................................91

Gambar 3.25. Matriks Cluster M15...........................................................................91

Gambar 3.26. Matriks Cluster M16...........................................................................91

Gambar 3.27. Matriks Cluster M17...........................................................................92

xvi
Gambar 3.28. Matriks Cluster M18...........................................................................92

Gambar 3.29. Matriks Cluster M19...........................................................................92

Gambar 3.30. Matriks Cluster M20...........................................................................93

Gambar 3.31. Matriks Cluster M21...........................................................................93

Gambar 3.32. Matriks Cluster M22...........................................................................93

Gambar 3.33. Matriks Cluster M23...........................................................................94

Gambar 3.34. Matriks Cluster M24...........................................................................94

Gambar 3.35. Matriks Cluster M25...........................................................................94

Gambar 3.36. Matriks Cluster M26...........................................................................95

Gambar 3.37. Matriks Cluster M27...........................................................................95

Gambar 3.38. Matriks Cluster M28...........................................................................95

Gambar 3.39. Form Utama Perpustakaan Mrican.....................................................108

Gambar 3.40. Form Penelusuran Buku Perpustakaan Mrican...................................109

Gambar 3.41. Form Utama Perpustakaan Paingan....................................................110

Gambar 3.42. Form Penelusuran Buku Perpustakaan Paingan..................................110

Gambar 4.1. Koneksi ke MySQL Server...................................................................113

Gambar 4.2. Membuat Basis Data Baru....................................................................113

Gambar 4.3. Membuat Tabel Baru............................................................................114

Gambar 4.5. Form Utama Perpustakaan Mrican.......................................................116

Gambar 4.6. Form Penelusuran Data Buku Perpustakaan Mrican............................117

Gambar 4.7. Form Tentang Program.........................................................................118

Gambar 4.8. Form Petunjuk Pemakaian Program.....................................................118

Gambar 4.9. Form Profil Pembuat.............................................................................119

xix
Gambar 4.10. Form Penelusuran Data Buku yang Menampilkan Data
dengan Klasifikasi Kesusasteraan......................................................119

Gambar 4.11. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Manajemen..........................................................120

Gambar 4.12. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Ekonomi..............................................................120

Gambar 4.13. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Sejarah.................................................................121

Gambar 4.14. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Bahasa.................................................................121

Gambar 4.15. Form Utama Perpustakaan Paingan....................................................122

Gambar 4.16. Form Penelusuran Data Buku Perpustakaan Paingan.........................123

Gambar 4.17. Form Tentang Program.......................................................................123

Gambar 4.18. Form Profil Pembuat...........................................................................124

Gambar 4.19. Form Petunjuk Penggunaan Program.................................................124

Gambar 4.20. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Komputer............................................................125

Gambar 4.21. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Psikologi..............................................................125

Gambar 4.22. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Matematika..........................................................126

Gambar 4.23. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Fisika...................................................................126

x
Gambar 4.24. Form Penelusuran Data Buku yang Menampilkan Data
dengan Klasifikasi Farmasi................................................................127

Gambar 4.25. Form Penelusuran Data Buku yang Menampilkan Data Buku

dengan Klasifikasi Teknik.................................................................127

x
DAFTAR TABEL

Tabel 2.1. Tabel PROJ...............................................................................................21

Tabel 2.2. Tabel PAY................................................................................................38

Tabel 2.3a. Tabel PAY1.............................................................................................39

Tabel 2.3b. Tabel PAY2............................................................................................39

Tabel 2.4. Tabel Hasil Fragmentasi Horizontal Primer (PHF)..................................40

Tabel 2.5. Tabel Hasil Derived Horizontal Fragmentation (DHF)............................43

Tabel 2.6. Tabel Derived Fragment ASG berdasar PHF PROJ.................................45

Tabel 2.7. Tabel Fragmen ASG berdasar Derived Fragmen EMP............................46

Tabel 2.8. Tabel Total Biaya dari Strategi A.............................................................52

Tabel 2.9. Tabel Total Biaya dari Strategi B.............................................................53

Tabel 2.10. Tabel Kompleksitas Operasi Aljabar Relasional....................................54

Tabel 3.1. Tabel Spesifikasi Proses Pada Perpustakaan Mrican................................62

Tabel 3.2. Tabel Spesifikasi Proses Pada Perpustakaan Paingan..............................63

Tabel 3.3. Tabel Awal (Tabel BUKU).......................................................................70

Tabel 3.4. Tabel Klasifikasi Buku (Dewey, 2003)....................................................72

Tabel 3.5. Tabel BUKU1...........................................................................................75

Tabel 3.6. Tabel BUKU2...........................................................................................75

Tabel 3.7. Tabel KLASIFIKASI1..............................................................................77

Tabel 3.8. Tabel KLASIFIKASI2..............................................................................77

Tabel 3.9. Tabel Rumus untuk Menghitung Angka Bond.........................................84

Tabel 3.9. Tabel Total Biaya dari Strategi A pada SBDT Perpustakaan...................107

Tabel 3.10. Tabel Total Biaya dari Strategi B pada SBDT Perpustakaan.................107

xx
BAB I

PENDAHULUAN

1.1 LATAR BELAKANG

Dewasa ini penggunaan basis data semakin bertambah. Hal ini dapat

mempengaruhi kinerja komputer server dalam pengelolaan basis data.

Permasalahan tersebut makin bertambah jika aplikasi komputer klien

membutuhkan akses data yang semakin besar dan data diakses oleh banyak

komputer klien yang tersebar di beberapa lokasi.

Dalam sebuah perpustakaan, pengelolaan data buku memiliki peranan

yang sangat penting karena dengan pengelolaan data yang baik dapat

meningkatkan efektifitas kinerja dan layanan dari suatu perpustakaan, basis

data semakin bertambah seiring berjalanya waktu. Hal ini dapat

mempengaruhi kinerja komputer server dalam pengelolaan basis data.

Permasalahan tersebut makin bertambah jika aplikasi komputer klien

membutuhkan akses data yang semakin besar dan data diakses oleh banyak

komputer klien yang tersebar di beberapa lokasi.

Dalam sebuah perpustakaan, pengelolaan data buku memiliki peranan

yang sangat penting karena dengan pengelolaan data yang baik dapat

meningkatkan efektifitas kinerja dan layanan dari suatu perpustakaan.

Seiring dengan berjalannya waktu, penyimpanan data pada

perpustakaan semakin besar dan memerlukan proses yang sangat kompleks

bahkan pada beberapa perpustakaan mengunakan sistem jaringan untuk

1
2

pengelolaan basis data perpustakaan karena lokasi yang terpisah. Tingginya

pengaksesan dari masing-masing lokasi mempengaruhi layanan dan kinerja

dari perpustakaan karena hanya memiliki satu server.

Pada perpustakaan USD yang lokasinya terpisah, layanan pada suatu

lokasi tidak selalu menggunakan seluruh data yang ada. Data yang

dibutuhkan oleh perpustakaan Mrican dan Paingan tidaklah sama. Dengan

menggunakan satu server, akses database menjadi lambat karena pada saat

perpustakaan Mrican atau Paingan mengakses basis data, data-data yang

seharusnya tidak perlu diakses oleh salah satu lokasi akan diakses secara

bersamaan. Salah satu alternatif penyelesaian masalah untuk pengaksesan

data yang lambat adalah implementasi Sistem Basis Data Terdistribusi

(SBDT). SBDT merupakan cara untuk mendistribusian basis data yang ber-

relasi secara logis pada beberapa lokasi secara terpisah dengan menggunakan

jaringan komputer.

Perancangan dan pembuatan basis data terdistribusi dapat dilakukan

dengan beberapa cara yaitu replikasi, fragmentasi, dan alokasi. Masing-

masing cara mempunyai proses yang berbeda, akan tetapi tujannya sama,

yaitu mendistribusikan basis data. Menurut (Ramakrishnan dan Gehrke,

2003), replikasi merupakan penduplikasian atau pengkopian basis data pada

beberapa lokasi server basis data yang berbeda. Fragmentasi adalah

pemisahan basis data kedalam fragmen-fragmen pada beberapa lokasi basis

data server. Ada 2 macam fragmentasi horizontal dan vertikal.


3

Sedangkan alokasi adalah peletakan tiap-tiap fragmen pada suatu

lokasi dengan distribusi paling optimal.

Pendistribusian basis data diatur sedemikian rupa agar tidak

menimbulkan masalah baru, seperti meningkatnya biaya pengiriman data dan

overhead yaitu pemunculan pesan kegagalan karena keterbatasan waktu

pencarian yang disebabkan pendistribusian basis data tidak optimal.

Banyak sebab mengapa melakukan pendistribusian basis data,

misalnya dalam kasus data perpustakaan. Perpustakaan Paingan tidak

menginginkan mengakses seluruh data perpustakaan Mrican secara lengkap

dan juga sebaliknya. Oleh karena itu, perpustakaan Mrican atau Paingan

hanya perlu mengelola sebagian data yang dibutuhkan saja untuk

mengoptimalkan pengaksesan basis data. Untuk itu dilakukan suatu basis

data perpustakaan yang terdistribusi dengan menggunakan metode

fragmentasi di setiap perpustakaan supaya ketersediaan data dapat

meningkatkan kinerja dan layanan di perpustakaan. Dalam hal ini pengunaan

metode pendistribusiannya dilakukan berdasarkan kebutuhan dari masing-

masing perpustakaan.

1.2 RUMUSAN MASALAH

Berdasarkan latar belakang di atas, dapat dirumuskan “ Bagaimana

mengimplementasikan Sistem Basis Data Terdistribusi untuk pendistribusian

data pada perpustakaan Universitas Sanata Dharma”.


4

1.3 BATASAN MASALAH

1. Sistem ini hanya membahas tentang fragmentasi pada Perpustakaan

Universitas Sanata Dharma saja.

2. Sistem ini hanya bisa digunakan oleh Perpustakaan Mrican dan Paingan

saja.

3. Karya tulis ini tidak membahas tentang jaringan komputer secara detail.

4. Simulasi menggunakan 2 komputer, dimana komputer berfungsi sebagai

komputer server sekaligus komputer klien.

5. Basis data perpustakaan dianggap statis tidak ada manipulasi data,

manipulasi data dianggap dilakukan oleh server lain.

6. Karya tulis ini tidak membahas transaksi peminjaman maupun

pengembalian buku secara detail

7. Tools yang digunakan :

a. Sistem operasi menggunakan Windows XP Service pack 2

b. Pengelolaan basis data menggunakan MySql server

c. Bahasa pemrograman menggunakan Microsofts Visual Basic .Net 2005

1.4 TUJUAN PENELITIAN

Tujuan dari penelitian ini adalah untuk mengimplementasikan Sistem

basis data terdistribusi untuk pendistribusian data pada perpustakaan

Universitas Sanata Dharma.


5

1.5 METODOLOGI

Metode pengembangan perangkat lunak menggunakan metode

Waterfall (Pressman,1992). Metode tersebut terdiri dari :

1. Tahap Perencanaan

Merupakan tahap untuk menentukan kebutuhan sistem yang

diperlukan untuk membuat sebuah SBDT.

2. Tahap Analisis

Dalam tahapan ini penulis langsung berhubungan dengan pemakai

sistem. Pengumpulan kebutuhan ini dilakukan dengan cara wawancara,

observasi, dan pengumpulan dokumen-dokumen terkait.

a. Wawancara

Metode ini dilakukan dengan cara komunikasi langsung dengan

pengguna sistem untuk memperoleh informasi yang berkaitan dengan

pengembangan sistem.

b. Observasi

Metode ini dilakukan dengan pengamatan langsung ke objek system

yang digunakan selama ini.

c. Mengumpulkan dokumen-dokumen

Metode ini digunakan dengan tujuan menambah kelengkapan data

pada sistem lama dan membantu memudahkan kinerja selanjutnya.


6

3. Tahap Perancangan / Desain

Membuat desain atau rancangan basis data terdistribusi agar

pelaksanaan pembuatan SBDT menjadi lebih mudah. Hal yang nantinya

akan dirancang berupa :

a. Perancangan Proses (DAD)

b. Perancangan Basis Data (Diagram ER)

c. Perancangan Sistem

4. Tahap Implementasi

Tahapan ini penulis menuangkan semua proses yang dirancang ke

dalam pembuatan program.

5. Tahap Pengujian / Testing

Dalam tahapan ini sistem yang telah selesai dibangun, diuji

aplikasinya apakah sudah sesuai dengan rancangan-rancangan

sebelumnya yang diterapkan. Mengadakan pengujian terhadap program

atau sistem basis data terdistribusi yang telah selesai dibuat apakah

sudah layak atau belum.

1.6 SISTEMATIKA PENULISAN

Dalam penulisan Tugas Akhir ini terdiri dari beberapa bagian

diantaranya sebagai berikut :


7

BAB I Pendahuluan

Bab ini berisi tentang latar belakang, rumusan masalah,

batasan masalah, tujuan penelitian, manfaat penelitian,

metodologi, dan sistematika penulisan.

BAB II Dasar Teori

Bab ini berisi tentang teori-teori yang berhubungan dengan

pembuatan Tugas Akhir ini, dimana teori-teori ini sebagai

landasan atau dasar dalam penulisan.

BAB III Analisis dan Perancangan Sistem

Bab ini berisi tentang analisa atas permasalahan yang

dihadapi dan desain yang akan digunakan dalam

membangun sistem.

BAB IV Implementasi

Dalam bab ini penulis menuangkan hasil analisa dan

perancangan ke dalam program.

BAB V Kesimpulan dan Saran

Bab ini berisi tentang kesimpulan dari pembahasan dan

implementasi yang telah dilakukan serta saran-saran

pengembangan sistem.
BAB II

DASAR TEORI

2.1 DEFINISI SISTEM BASIS DATA TERDISTRIBUSI

Basis Data Terdistribusi (BDT) adalah sekumpulan basis data yang

saling terhubung secara logis dan secara fisik terdistribusi pada berbagai

tempat melalui jaringan komputer [McFadden,1994]. Sistem Basis Data

Terdistribusi (SBDT) menggunakan software yang mengelola Basis Data

Terdistribusi dan menyediakan mekanisme agar distribusi tersebut

transparan di hadapan user. Sistem Basis Data Terdistriusi dihubungkan oleh

sebuah jaringan komputer untuk memungkinkan antar lokasi dapat saling

berbagi data dan informasi yang diambil dari data pada satu basis data.

Sistem basis data terdistribusi terdiri dari himpunan basis data yang

datanya disimpan dalam beberapa komputer, di mana masing-masing dapat

mengakses dan mengeksekusi transaksi data dari sebuah lokasi atau beberapa

lokasi. Lokasi-lokasi tersebut harus dapat saling bekerja sama, berbagi data

dan informasi, sehingga seorang pemakai dapat mengakses data dari lokasi di

mana saja seolah-olah semua datanya disimpan pada lokasi pemakai tersebut.

Gambaran SDBT menurut (Ozsu,1999) secara sederhana dapat

dilihat pada gambar 2.1 . Masing-masing lokasi yang berbeda memiliki media

penyimpanan sendiri dan untuk berkomunikasi, dari masing-masing tersebut

terhubung dengan jaringan.

8
9

Gambar 2.1. Lingkungan Sistem Basis Data Terdistribusi

Pendistribusian basis data dimaksudkan untuk meningkatkan kinerja

sistem dengan cara membagi beban secara seimbang pada komputer-komputer

yang digunakan dan mampu menjaga ketersediaan data dengan adanya

duplikasi basis data pada beberapa komputer.

Beberapa ciri yang mendasari SBDT adalah :

2.1.1 Data disimpan pada sejumlah tempat. Setiap tempat secara logik terdiri

dari processor tunggal

2.1.2 Processor pada tempat yang berbeda tersebut dihubungkan dengan

jaringan komputer

2.1.3 SBDT bukan sekumpulan file yang berada pada berbagai tempat tetapi

sebuah basis data pada berbagai tempat.


1

2.1.4 Setiap tempat mempunyai kemampuan untuk secara mandiri memproses

permintaan user yang membutuhkan akses ke data di tempat tersebut,

dan juga mampu untuk memproses data yang tersimpan di tempat lain.

2.2 ARSITEKTUR SISTEM BASIS DATA TERDISTRIBUSI

Definisi arsitektur adalah struktur dari sistem. Arsitektur yang

didefinisikan dalam sistem basis data terdistribusi adalah komponen dari

struktur, Fungsi setiap komponen dalam struktur, hubungan dan interaksi antar

komponen dalam struktur.

2.2.1 Model-model Arsitektur untuk Sistem Manajemen Basis Data

Terdisribusi

Dilihat dari sisi basis data, banyak basis data yang diletakkan bersama-

sama dan digunakan oleh banyak Sistem Manajemen Basis Data

(SMBD) maka digunakan klasifikasi yang memandang sistem dari tiga

hal yaitu : otonomi sistem lokal, distribusi, dan heterogenitas.

a. Otonomi, merujuk pada kontrol distribusi.

Mengindikasikan tingkat individual sistem manajemen basis data

dapat beroperasi, misal kemampuan komponen sistem untuk dapat

bertukar informasi, melakukan transaksi, dan kemampuan

memodifikasi komponen yang lain.

Tiga alternatif sistem yang ditawarkan adalah :


1

a.1 Integrasi ketat

Image tunggal dari keseluruhan basis data tersedia untuk

semua user yang ingin berbagi informasi yang terdapat

pada banyak basis data. User hanya melihat data secara logical

tersimpan pada satu basis data pada satu tempat.

a.2 Semi otonom

Sistem basis data terdistribusi dapat beroperasi secara

independen tetapi akan bekerja secara bersama untuk

membuat lokal dapat dipakai bersama-sama.

a.3 Isolasi

Satu sistem memiliki satu sistem basis data terdistribusi dan

tidak dapat berkomunikasi dengan sistem basis data

terdistribusi yang lain.

b. Distribusi, merupakan kebalikan dari otonomi, distribusi

merujuk pada data. Dua alternatif yang ditawarkan :

b.1 Distribusi client/server

Berkonsentrasi pada tugas server dan client. Server

berkewajiban mengatur data, sedangkan client memusatkan

perhatian pada penyediaan lingkungan aplikasi termasuk

di dalamnya user interface.

b.2 Distribusi peer-to-peer (full distribusi).

Tidak ada perbedaan antara mesin client dan mesin server.

Setiap mesin mempunyai fungsi sistem basis data


1

terdistribusi utuh dan dapat berkomunikasi dengan mesin

yang lain untuk mengeksekusi.

c. Heterogenitas

Heterogen bisa terjadi pada hardware atau pada sebagian

protokol jaringan atau perbedaan pengelola data. Terjadi karena

adanya berbagai form dalam sisterm distribusi, juga

mengakibatkan berbagai variasi manajemen data.

2.2.2 Arsitektur Sistem Manajemen Basis Data Terdistribusi

Tiga pendekatan alternatif yang digunakan untuk memisahkan

fungsionalitas melalui proses yang berkaitan dengan SMDB yang

berbeda, arsitektur SMDB terdistribusi menjadi tiga macam yaitu :

Client Server Sistem, Middleware Sistem, dan Collaborating Sistem.

1. Sistem berbasis client-server memiliki satu atau lebih klien proses

dan satu atau lebih server proses. Klien proses dapat mengirimkan

sebuah kueri ke beberapa server proses. Klien bertanggung

jawab terhadap layanan antar muka dan server bertanggung

jawab untuk mengatur data dan mengeksekusi transaksi

(Ramakhrisnan, R. dan Gehrke, J. 2003), secara sederhana arsitektur

client-server digambarkan dalam gambar 2.2.


1

Gambar 2.2. Referensi Arsitektur Client-Server

Arsitektur berbasis client-server sangat populer karena beberapa

alasan :

a. Sederhana dalam implementasi karena adanya pemisahan fungsi

dan pemusatan server.

b. Mesin server yang mahal menjadi tidak mubazir karena

klien mesin yang murah dapat mengoptimalkan kerja server.

c. User lebih familiar menjalankan antar muka grafis pada

mesin klien, daripada pada mesin server.

Yang masih perlu dipelajari adalah menyimpan sementara (cache)

pada sisi klien untuk mengurangi kepadatan jalur jaringan,

meskipun harus tetap memperhatikan status data.

2. Collaborating System

Arsitektur client-server tidak dapat mengirimkan sebuah

kueri tunggal untuk dikerjakan oleh beberapa server, hal ini

disebabkan klien proses harus dapat memecah sebuah kueri

menjadi beberapa subkueri untuk dieksekusi pada beberapa


1

lokasi dan kemudian menggabungkan potongan jawaban ke

subkueri yang lain. Hal ini mengakibatkan klien proses

mengerjakan pekerjaan yang sangat kompleks sehingga tidak

dapat dibedakan dengan server proses.

Kesulitan di atas diatasi dengan collaborating server

system yang memungkinkan untuk memiliki beberapa server

basis data dan setiap server proses dapat menjalankan transaksi

menggunakan data lokal kemudian secara bersama-sama

mengeksekusi transaksi yang melibatkan banyak server.

Ketika sebuah server menerima kueri yang membutuhkan

akses ke data pada lain server, maka server akan membangkitkan

subkueri yang sesuai untuk dieksekusi oleh server yang lain dan

kemudian mengambil hasil kueri tersebut untuk digunakan

sebagai data agar dapat menghasilkan hasil akhir yang diminta

kueri awal. Yang harus diperhatikan adalah proses pemecahan

kueri menjadi sub kueri harus mempertimbangkan biaya

komunikasi jaringan.

3. Middleware System

Arsitektur middleware memungkinkan kueri tunggal untuk

dikerjakan oleh banyak server, tetapi tidak perlu semua server basis

data dapat melakukan strategi eksekusi kueri pada banyak server.


1

Ide ini muncul karena hanya ada satu server basis data yang

dapat mengatur kueri dan transaksi pada banyak server, tetapi server

yang lain hanya dapat menangani kueri lokal dan transaksi lokal.

Pada arsitektur ini ada server khusus yang memiliki software untuk

mengkoordinasikan eksekusi kueri dan transaksi untuk beberapa

server basis data lainnya. Software ini disebut middleware. Pada sisi

middleware akan dapat melakukan eksekusi join dan operator relasi

lain yang diperoleh dari server lain, tetapi server ini tidak mengatur

data sendiri.

2.3 DESAIN SISTEM BASIS DATA TERDISTRIBUSI

Dalam perencanaan dan pembuatan sistem basis data terdistribusi

terdapat tiga cara yaitu replikasi, fragmentasi, dan alokasi. Meskipun proses

yang digunakan oleh ketiga cara ini untuk mendistribusikan data berbeda,

tetapi tujuannya sama yaitu :

1. Referensi lokalitas

2. Meningkatkan kehandalan dan ketersediaan data

3. Meningkatkan unjuk kerja

4. Keseimbangan kapasitas penyimpanan dan biaya

5. Biaya Komunikasi Minimal

Perbedaannya terletak pada proses pendistribusiannya. Replikasi merupakan

penduplikasian atau pengkopian basis data di dua atau labih lokasi server

basis data yang berbeda. Fragmentasi adalah relasi beberapa basis data yang
1

sudah terpecah menjadi beberapa bagian dimana masing-masing basis data

yang tersimpan di tempat yang berbeda-beda [H.F. Korth dan Silberscatz.

Ambraham, 1986]. Ada dua strategi dasar fragmentasi yaitu fragmentasi

vertikal dan fragmentasi horizontal yang secara lengkap akan dibahasi pada

sub bab berikutnya. Sedangkan alokasi adalah penempatan fragmen data di

suatu tempat.

2.3.1 Fragmentasi

Salah satu cara untuk mendistribusikan basis data adalah

dengan metode fragmentasi. Pada sistem basis data terdistribusi relasi

diletakkan pada beberapa lokasi basis data server. Alasan yang

menyebabkan data dalam suatu tabel dibagi menjadi fragmen data

untuk didistribusikan adalah :

a. Penggunaan. Dalam realitas, data yang sering digunakan

bukanlah data dalam seluruh tabel, tetapi hanyalah sebagian

data atau sering disebut view.

b. Efisiensi. Data disimpan di lokasi yang paling dekat dengan

pengguna yang sering mengakses. Sehingga data yang tidak

sering dibutuhkan oleh lokasi tertentu tidak disimpan di lokasi

yang bersangkutan.

c. Paralel. Karena data yang didistribusikan berupa fragmen data,

maka transaksi yang berupa kueri tunggal dapat dipecah

menjadi sub-kueri yang dikenakan terhadap fragmen data,


1

sehingga transaksi dapat dilakukan secara bersamaan

(concurrent).

d. Keamanan. Data yang tidak dibutuhkan oleh aplikasi lokal

tidak akan disimpan dalam lokasi tersebut, sehingga user yang

tidak memiliki hak untuk mengakses tidak akan bisa

mengakses data yang lain.

Fragmen data akan mendukung beberapa hal seperti diatas, tetapi

penggunaan fragmen data juga memiliki beberapa kelemahan, yaitu :

a. Menurunnya unjuk kerja. View yang melibatkan lebih dari satu

fragmen data pada lokasi yang berbeda akan mengalami

penurunan unjuk kerja.

b. Integritas. Pengendalian integritas lebih sulit jika atribut yang

berperan dalam dependensi didistribusikan ke beberapa lokasi.

Fragmentasi tidak dapat dilakukan secara sembarangan. Untuk

memastikan bahwa tidak terdapat perubahan data dalam basis data

selama menjalani proses fragmentasi.

Proses fragmentasi harus memenuhi 3 aturan berikut ini:

a. Completeness

i. Jika sebuah relasi R dibagi menjadi fragmen-fragmen R1 , R2

, ..., Rn maka fragmentasi dikatakan komplit jika dan hanya

jika setiap item data yang dapat ditemukan dalam R dapat

juga ditemukan di dalam satu atau lebih fragmen Ri .


1

ii. Aturan ini diperlukan untuk memastikan bahwa tidak ada data

yang hilang selama proses fragmentasi.

b. Reconstruction

i. Jika sebuah relasi R dibagi menjadi fragmen-fragmen R1 , R2

, ..., Rn maka fragmentasi dikatakan rekonstruksi jika dan

hanya jika R dapat dibentuk dari fragmen-fragmen Ri.

ii. Dengan kata lain, bahwa dimungkinkan untuk membentuk

sebuah relasi R yang terbentuk dari fragmen-fragmen yang ada.

iii. Aturan ini diperlukan untuk memastikan bahwa

ketergantungan secara fungsi (functional dependencies)

terpenuhi.

c. Disjointness

i. Jika sebuah relasi R dibagi menjadi fragmen-fragmen R1 , R2

,..., Rn dan data item di berada di dalam fragmen Rj maka

fragmentasi dikatakan disjoint jika dan hanya jika data item di

tidak berada di dalam fragmen lain Rk dimana k ≠ j.

ii. Dengan kata lain, jika suatu item data sudah muncul dalam

sebuah fragmen, maka item data tersebut tidak boleh muncul

lagi di fragmen yang lain.

iii. Fragmentasi secara vertikal adalah perkecualian dalam aturan

ini, karena atribut-atribut dari primary key harus diulang untuk

dapat melakukan rekonstruksi. Aturan ini diperlukan untuk

memastikan terjadinya redundansi data seminimal mungkin.


1

1. Fragmentasi Vertikal

Fragmentasi vertikal dari table R adalah proses untuk

mendapatkan fragmen R1, R2,…, Rn sedemikian rupa sehingga

setiap fragmen memuat himpunan bagian dari atribut-atribut R dan

kunci primer. (Ozsu, 1999).

Tujuan utama dari fragmentasi vertikal adalah membagi

sebuah tabel ke dalam tabel-tabel yang lebih kecil sedemikian rupa

sehingga aplikasi user hanya berjalan pada satu tabel. Dengan

demikian meminimalkan waktu eksekusi aplikasi yang berjalan

dalam fragmen-fragmen tersebut. (Ozsu,1999).

Fragmentasi ini lebih sulit daripada fragmentasi horizontal,

karena lebih banyak alternatif hasil yang dapat dibuat dari

fragmentasi vertikal ini. Jika sebuah relasi memiliki m atribut

bukan kunci primer, maka fragmen yang mungkin adalah B(m),

dalam urutan kebenaran dari Bell Number. Untuk nilai yang

besarnya m, maka B(m) ≈ mm. ; sebagai contoh, untuk m = 100,

B(m) ≈115,000, untuk m = 15, B(m) ≈ 109, untuk m = 30, B(m) ≈

1023. (Ozsu, 1999).

Terdapat dua pendekatan untuk memperoleh penyelesaian

terbaik dari fragmentasi vertikal yaitu :

a. Pendekatan Kelompok (Grouping)

Dimulai dengan menempatkan setiap atribut ke dalam sebuah

fragmen. Kemudian setahap demi setahap dilakukan join


2

dengan beberapa fragmen sampai kriteria yang diinginkan

terpenuhi.

b. Pendekatan Pemecahan (Splitting)

Dimulai dengan sebuah tabel dan memutuskan manfaat dari

pembagian yang berlandaskan pada jalannya aplikasi yang

mengakses atribut-atribut.

Kebutuhan informasi dalam fragmentasi vertikal adalah

informasi yang berhubungan dengan aplikasi.

a. Attribute Affinities adalah ukuran yang mengindikasikan

bagaimana relasi antar atribut.

b. Attribute Usage Value apabila diberikan himpunan kueri Q =

{q1, q2, …, qq} yang akan dijalankan pada tabel R[A1, A2, …,

An], maka attribute usage value (use) adalah :

Use(qi,Aj) = {1 jika atribut Aj diakses oleh kueri qi

0 jika sebaliknya}

Dalam skripsi ini hanya akan dibahas mengenai fragmentasi

yang menggunakan pendekatan pemecahan (splitting).

1.2 Tahap-Tahap Proses Fragmentasi Vertikal

Sebagai gambaran untuk kemudahan dan kejelasan dalam tahap-

tahap fragmentasi vertikal akan diberikan contoh kasus. Bila

terdapat tabel PROJ sebagai berikut :


2

Tabel 2.1. Tabel PROJ

Dari tabel tersebut akan dilakukan fragmentasi vertikal.

Misalkan terdapat kueri yang dijalankan terhadap tabel PROJ

adalah sebagai berikut :

q1 : SELECT Budget FROM PROJ WHERE Pno = Value

q2 : SELECT Pname,Budget FROM PROJ

q3 : SELECT Pname FROM PROJ WHERE Loc = Value

q4 : SELECT SUM(Budget) FROM PROJ WHERE Loc = Value

Tahap 1 : Menentukan bagaimana akses kueri (q 1) pada

setiap atribut (Aj)

Dalam tahap ini akan dibuat matriks use(qi,Aj), matriks tersebut

sering disebut Muse, pada baris ke q1 dari kolom A1, isikan

angka1 atau 0 :

a. 1 : jika kueri q1 mengakses atribut A1

b. 0 : jika kueri q1 tidak mengakses atribut A1

Dari empat kueri yang dijalankan pada table PROJ akan didapat

Muse sebagai berikut : andaikan A1= Pno, A2= Pname, A3=

Budget, A4= Loc


2

Muse

A1 A2 A3 A4
q1 1 0 1 0
q2 0 1 1 0
q3 0 1 0 1
q4 0 0 1 1
Gambar 2.3 . Matrik Muse

Tahap 2 : Menentukan frekuensi akses query qi pada setiap

lokasi Lk.

Tahap ini akan dibuat sebuah matrik baru yang menggambarkan

berapakali setiap lokasi mengakses kueri-kueri yang ada, matrik

ini sering disebut Macc. Dalam kasus ini diandaikan terdapat

tiga lokasi yang mengakses, setiap kueri (acci(qi)) di setiap

lokasinya adalah sebagai berikut :

L1 L2 L3
q1 15 20 10
q2 5 0 0
q3 25 25 25
q4 3 0 0
Gambar 2.4. Matrik Macc

Tahap 3 : Menentukan seberapa dekat hubungan antar

atribut

Matrik Affinitas atau sering disebut Maff ini didapat dari Muse

dan Macc. Ukuran atribut affinitas di antara dua atribut Ai dan Aj


2

dari relasi R(A1,A2,…,An) dengan sekumpulan aplikasi Q =

{q1,q2,…qn} didefinisikan sebagai berikut :

Aff(Ai Aj,) =  ref (qk )accl(qk )


k |use( qk , Ai 1use(qk , Aj ) 1 Sl

Dimana refl(qk) adalah nilai yang terakses ke atribut (Ai,Aj)

untuk setiap penerapan dari aplikasi qk di lokasi Ll dan accl(qk)

adalah ukuran frekuensi aplikasi terakses yang telah dijabarkan

dan dimodifikasi untuk mencantumkan frekuensi di lokasi

berbeda.

Hasil dari penghitungan adalah matrik n x n, setiap

elemen dimana setiap ukuran dijabarkan ke atas. Kita

menyebutnya matrik attribute affinity (Maff). Dalam tahap ini

berlaku juga sifat simetris, (Ai,Aj) = (Aj,Ai).

A1 A2 A3 A4
A1 45 0 45 0
A2 0 80 5 75
A3 45 5 53 48
A4 0 75 48 78
Gambar 2.5. Matrik Affinitas (Maff)

Dari persamaan di atas dicari ukuran persamaan antara

atribut A1 dan A3 sebagai berikut :

aff(A1,A3)=

1
3
acc(qk)  acc(q1)  acc(q2)  acc(q3)  45
 
k
1 l1

Tahap 4 : Menentukan Seberapa Dekat Hubungan Atribut

Dengan Bond Energy Algorithm (BEA).


2

Tugas yang paling mendasar dalam mendesain perhitungan

fragmentasi vertikal adalah menemukan beberapa sarana

pengelompokan atribut dari sebuah hubungan berdasar pada

atribut affinity nilai dalam AA. Bond Energy Algorithm (BEA)

untuk mendapatkan matrik pengelompokan (Mcluster)

melakukan tiga langkah :

a. Initialization. Meletakkan dan memperbaiki salah satu kolom

dari AA secara adak ke dalam CA. kolom 1 dipilih dalam

algoritma.

b. Iteration. Ambil tiap n yang tersisa dari kolom n-i, dimana i

adalah jumlah kolom-kolom yang telah diletakkan di CA dan

meletakkan CA ke dalam partisi i+1 yang tersisa dalam

matrik CA. Pilih peletakan yang memberikan nilai yang

paling besar kepada penghitungan persamaan global

tergambar di atas. Lanjutkan langkah ini sampai tidak ada

lagi kolom tersisa untuk ditempati.

c. Row Ordering. Sekali pengaturan kolom ditentukan

penempatan dari baris harus juga diubah sehingga posisi

relatif mereka cocok dengan posisi relatif kolom.

Untuk mencari nilai bond antara dua atribut x dan y

didefinisikan sebagai berikut :

bond(Ax,Ay) = naff ( Az, Ax)aff ( Az, Ay)


z 1
2

cont digunakan untuk mendefinisikan kontribusi dari

atribut untuk penempatan setiap atributnya. Didefinisikan

dengan rumus :

cont(Ai,Ak,Aj) = 2bond(Ai,Ak)+2bond(Ak,Aj)-2bond(Ai,Aj)

Berdasar langkah initialization, kita mengkopi kolom1

dan 2 matrik AA ke matrik CA dan memulai dengan kolom 3

(contoh : atribut A3). Ada tiga tempat alternatif dimana

kolom 3 dapat ditempatkan : di kiri kolom 1, menghasilkan

urutan (3-1-2) di antara kolom 1 dan 2 menghasilkan (1-3-2) dan

di sebelah kanan kolom 2 menghasilkan (1-2-3). Untuk

menghitung kontribusi dari susunan terakhir kita harus

menghitung cont(A2,A3,A4) dari pada cont(A1,A2,A3). Lebih jauh

lagi dalam konteks ini A4 mengacu pada indeks posisi dalam

matrik CA yang kosong (gbr) tidak pada kolom atribut A4 dari

matrik AA.

Perhitungan kontribusi dari susunan (0-3-1) adalah

sebagai berikut :

cont(A0,A3,A1) = 2bond(A0,A3)+2bond(A3,A1)-

2bond(A0,A1)

dimana kita ketahui nilai bond :

bond(A0,A3) = bond(A0,A1) = 0

bond(A3,A1) = ((45*45)+(5*0)+(53*45)+(3*0)) = 4410

dapat diperoleh nilai cont :


2

cont(A0,A3,A1) = ((2*0)+(2*4410)-(2*0)) = 8820

Perhitungan kontribusi dari susunan (1-3-2) :

cont(A1,A3,A2) = 2bond(A1,A3)+2bond(A3,A2)-2bond(A1,A2)

dimana kita ketahui nilai bond :

bond(A1,A3) = bond(A3,A1) = 4410

bond(A3,A2) = ((45*0)+(80*5)+(5*53)+(75*3)) = 890

bond(A1,A2) = ((40*0)+(80*0)+(45*5)+(75*0)) = 225

dapat diperoleh nilai cont :

cont(A2,A3,A4) = ((2*890)+(2*0)-(2*0)) = 1780

Kontribusi dari susunan (1-3-2) adalah yang

terbesar, kita memilih untuk meletakkan A3 di sebelah kanan A1

(Gambar 2.6b.). Selanjutnya menyisipkan kolom 4.

Kontribusi susunan (0-4-1) adalah sebagai berikut :

cont(A0,A4,A1) = 2bond(A0,A4)+2bond(A1,A4)-2bond(A1,A0)

dimana kita ketahui nilai bond :

bond(A0,A4) = bond(A4,A0) = 0

bond(A4,A1) = ((45*0)+(75*0)+(3*45)+(78*0)) = 135

dapat diperoleh nilai cont :

cont(A0,A4,A1) = ((2*0)+(2*135)-(2*0)) = 270

Perhitungan kontribusi susunan (1-4-3) adalah sebagai berikut :

cont(A1,A4,A3) = 2bond(A1,A4)+2bond(A3,A4)-2bond(A1,A3)

dimana kita ketahui nilai bond :

bond(A1,A4) = bond(A4,A1) = 135


2

bond(A3,A4) = ((45*0)+(75*5)+(3*53)+(78*3)) = 768

bond(A1,A3) = bond(A3,A1) = 4410

dapat diperoleh nilai cont :

cont(A1,A4,A3) = ((2*135)+(2*768)-(2*4410)) = -7014

Perhitungan dari susunan (3-4-2) adalah sebagai berikut :

cont(A3,A4,A2) = 2bond(A3,A4)+2bond(A2,A4)-2bond(A2,A3)

dimana kita ketahui nilai bond :

bond(A3,A4) = ((45*0)+(75*5)+(3*53)+(78*3)) = 768

bond(A2,A4) = ((0*0)+(75*80)+(3*5)+(78*75)) = 11865

bond(A2,A3) = bond(A3,A2) = 890

dapat diperoleh nilai cont :

cont(A3,A4,A2) = ((2*768)+(2*11865)-(2*890)) = 23486

Perhitungan kontribusi dari susunan (2-4-5) adalah sebagai

berikut

cont(A2,A4,A5) = 2bond(A2,A4)+2bond(A5,A4)-2bond(A2,A5)

dimana kita ketahui nilai bond :

bond(A2,A4) = bond(A4,A2) = 11865

bond(A5,A4) = 0

bond(A2,A5) = 0

dapat diperoleh nilai cont :

cont(A2,A4,A5) = ((2*0)+(2*11865)-(2*0)) = 23730

Dari perhitungan kontribusi di atas (2-4-5) memberikan nilai

cont terbesar (Gambar 2.6c.). Selanjutnya baris tersusun dalam


2

susunan yang sama seperti kolom dan hasilnya dapat dilihat

dalam gambar .

A1 A2 A3 A4 A1 A3 A 2 A4
A1 45 2.6a.
Gambar 0 Matrik CA(a) A1 45 2.6b.
Gambar 45 Matrik
0 CA(b)
A2 0 80 A2 0 5 80
A3 45 5 A3 45 53 5
A4 45 A175 A3 A2 A4 A4 A45
1 A48
2 A75
3 A4
A1 45
Gambar 2.6c.45Matrik
0 0CA(c) A1 45 2.6d.
Gambar 45 Matrik
0 0 CA(d)
A2 0 5 80 75 A3 45 53 5 3
A3 45 53 5 3 A2 0 5 80 75
Tahap
A 0 5 3: Menentukan
75 78 Pemisahan
A4 0Tabel
3 dengan
75 78 Mengacu
4

pada Matrik Cluster

Tujuan dari aktifitas pemisahan adalah untuk menemukan

pasangan atribut yang diakses atau pada sebagian besar

pasangan aplikasi tertentu. Adapun langkah-langkah yang

dilakukan pada tahap ini adalah sebagai berikut :


2

a. Mencari Himpunan Atribut yang Diakses oleh aplikasi qi.

AQ(qi) = {Aj|use (qi,Aj) =1}

Dari contoh matrik use di atas akan dihasilkan atribut untuk

setiap aplikasi qi sebagai berikut :

q1= {A1,A3}, q2= {A2,A3}, q3= {A2,A4}, q4= {A3,A4}

b. Mencari Jumlah total frekuensi akses untuk setiap aplikasi qi

pada semua lokasi. Dari matrik acc akan didapat total acc

sebagai berikut :

q1 = 45, q2 = 5, q3 = 75, q4= 3

c. Mencari nilai terbesar partisi dengan menggunakan

algoritma partisi. Matrik cluster akan dibagi menjadi 4

dengan 3 macam cara yaitu :

Gambar 2.7. Lokasi pemisahan ke-1

Gambar 2.8. Lokasi pemisahan ke-2


3

Gambar 2.9. Lokasi pemisahan ke-3

Kemudian mencari TQ, BQ, dan OQ yaitu :

TQ : Aplikasi qi dimana himpunan atribut yang diakses oleh

apliaksi qi merupakan himpunan bagian dari TA.

TQ = {qi|AQ(qi)  TA}

BQ : Aplikasi qi dimana himpunan atribut yang diakses oleh

apliaksi qi merupakan himpunan bagian dari BA.

BQ = {qi|AQ(qi)  BA}

OQ : Aplikasi qi selain TQ dan BQ

OQ = Q - {TQ  BQ}

Dari 3 lokasi pemisahan di atas (gambar 2.7; 2.8; 2.9 ) akan

didapat TQ, BQ, dan OQ sebagai berikut :

Untuk lokasi pemisahan ke-1 :

TQ : {q1,q2}; BQ : 0 ; OQ : {q3,q4}

Untuk lokasi pemisahan ke-2 :

TQ : {q1}; BQ : {q3} ; OQ : {q2,q4}

Untuk lokasi pemisahan ke-3 :

TQ : 0 ; BQ : { q2, q3,q4 } ; OQ : {q1}


3

d. Hitung jumlah akses total atribut setiap aplikasi dengan

mencari : CTQ, CBQ, dan COQ. CTQ adalah jumlah akses

total untuk aplikasi qi dari himpunan TQ, CBQ adalah

jumlah akses total untuk aplikasi qi dari himpunan BQ, dan

COQ adalah jumlah akses total untuk aplikasi qi dari

himpunan OQ. Dimana :

CQ = 
qiQ Sj
refj(qi)accj(qi)

CTQ = 
qiQ Sj
refj(qi)accj(qi)

CBQ = 
qiQ Sj
refj(qi)accj(qi)

COQ = 
qiQ Sj
refj(qi)accj(qi)

Dari 3 lokasi pemisahan diatas didapat CTQ, CBQ, dan COQ

sebagai berikut :

Untuk lokasi pemisahan ke-1 :

CTQ = 45+5 = 50; CBQ = 0; COQ = 128-50 = 78

Untuk lokasi pemisahan ke-2 :

CTQ = 45; CBQ = 75; COQ = 128-120 = 8

Untuk lokasi pemisahan ke-3 :

CTQ = 0; CBQ = 5+75+3 = 83; COQ = 128-83 = 50

e. Untuk setiap matrik pemisahan diatas cari nilai matrik

kualitas untuk split(z).


3

Z = CTQ * CBQ – COQ2

Kemudian nilai z yang terbesar akan menjadi dasar

penentuan atribut untuk pembagian matrik secara vertikal.

Dari kasus diatas didapat nilai z sebagai berikut :

i. Untuk lokasi pemisahan ke-1 : 50 * 0 – (78)2 = -6084

ii. Untuk lokasi pemisahan ke-2 : 45 * 75 – (8)2 = 3311

iii. Untuk lokasi pemisahan ke-3 : 0 * 83 – (50)2 = -2500

Karena lokasi pemisahan ke-2 menghasilkan nilai z yang

terbesar maka fragmentasi yang terbentuk adalah :

PROJ1 = {A1,A3}, dan PROJ2 = {A1,A2,A4}.

Setelah didapat fragmen-fragmen data, langkah berikutnya

adalah menguji kebenaran fragmentasi, yaitu apakah

memenuhi syarat completeness, reconstruction, dan disjoint.

a. Completeness

Hasil fragmentasi diatas sudah memenuhi syarat

completeness, karena tidak ada data yang hilang selama

proses fragmentasi.

b. Recontruction

Syarat reconstruction sudah dipenuhi, karena dari hasil

fragmen-fragmen data di atas dapat dibentuk kembali sebuah

relasi seperti semula.


3

c. Disjoint

Langkah pemecahan tabel di atas sudah memenuhi syarat

disjoint, karena tidak ada atribut yang berada pada dua

fragmen, kecuali kunci primer.

2. Fragmentasi Horizontal

Dua syarat informasi untuk fragmentasi horizontal, yaitu:

a. Database information

Database information terdiri dari dua macam informasi yaitu

relasi dan kardinalitas. Untuk lebih jelasnya dapat dilihat pada

gambar 2.10.

Gambar 2.10. Ekspresi Relasi Antar Tabel Menggunakan Link

(Li)

Dengan memberikan link L1 pada gambar, fungsi owner dan

member bernilai :

Owner (L1) = PAY

Member (L1) = EMP


3

b. Application information

Informasi kualitatif yang paling mendasar dari sebuah aplikasi

adalah predicate yang digunakan dalam kueri. Dari predikat

dapat dibentuk :

i. Simple Predicates

Untuk relasi R[A1,A2,A3,…,An], maka simple predicate P,

adalah Pj : Ai θ Value. Dimana Ai adalah atribut,  {<, >,

≤, ≥, =, ≠} adalah operasi pembanding, dan Value adalah

nilai domain. Untuk relasi R didefinisikan Pr =

{P1,P2,P3,…,Pm} (Ozsu, 1999).

Contoh :

p1 : Pname = “ Maintenance”

p2 : Budget ≤ 200000

Maka domain dari atribut Pname adalah “Maintenance”,

dan domain dari atribut Budget adalah 200000.

ii. Minterm Predicates

Kombinasi atau kumpulan dari simple predicates akan

membentuk minterm predicates. Diberikan R dan Pr =

{P1,P2,P3,…,Pm}, didefinisikan M= {m1,m2,m3,...,mn}

sebagai :

M = {mij|mij = P*ik}, l ≤ k ≤ m , l ≤ j ≤ z
PikPri

Dimana P*ik = P*ik atau P*ik =  (Pik)


3

Contoh :

m1 : PNAME="Maintenance" ^ BUDGET ≤ 200000

m2 : NOT(PNAME="Maintenance") ^ BUDGET ≤

200000

m3 : PNAME= "Maintenance" ^ NOT(BUDGET ≤

200000)

m4 : NOT(PNAME="Maintenance") ^ NOT(BUDGET ≤

200000)

Dalam hal ini, m1 dan m4 adalah contradictory dengan

implikasi l dan dapat di eliminasi dari M [Otzu, 1999].

Informasi kuantitatif dari aplikasi adalah :

i. Selektivitas Minterm (Minterm selectivity)

Jumlah tuple dari relasi yang akan diakses oleh user

berdasarkan minterm predicate.

Contoh : dari minterm pada contoh diatas maka sel(m2 ) =

0, sedangkan sel(m2 ) = 2.

ii. Frekuensi Akses (Access frequency)

Frekuensi aplikasi mengakses mengakses data. Jika Q =

{q1,q2,q3,…,qz} adalah himpunan kueri user, maka Acc(qi)

adalah frekuensi akses dari user kueri qi.


3

2.A Primary Horizontal Fragmentation (PHF)

1. PHF adalah sebuah fragmentasi dari tabel R yang

difragmen menjadi tabel-tabel {R1,R2,, Rw} menurut kueri Fj,

dimana kueri Fj adalah minterm predicates (mi) (Ozsu, 1999).

2. Algoritma PHF :

Input : Sebuah table R, dan himpunan simple predicates

Pr

Output : Himpunan fragmen R = {R1,R2,…,Rw} yang

memenuhi aturan fragmentasi.

Syarat : Pr harus complete, dan Pr harus minimal.

3. Aturan pada himpunan simple predicates

a) complete

Sebuah himpunan simple predicates Pr dikatakan

complete jika dan hanya jika setiap dua tuple pada

fragmen yang sama mempunyai probabilitas yang

sama untuk diakses oleh setiap transaksi.

Contoh :

Asumsikan bahwa relasi PROJ [PNO, PNAME,

BUDGET, LOC] diakses oleh dua aplikasi :

a. Aplikasi 1 : temukan budget dari setiap project

pada masing-masing lokasi

b. Aplikasi 2 : temukan project dengan budget <

$200000
3

Jika berdasar aplikasi 1 maka didapat :

Pr={LOC=”Montreal”,LOC=”New York”, LOC=

”Paris”}

Tetapi tidak complete untuk aplikasi 2.

Maka Pr dimodifikasi menjadi :

Pr={LOC=”Montreal”,LOC=”New York”, LOC=

”Paris”, BUDGET ≤ 200000, BUDGET >

200000}

Yang memenuhi sifat complete.

b) Minimal

Sebuah simple predicates dikatakan minimal jika

dan hanya jika terdapat paling sedikit ada satu

transaksi yang mengakses akan menghasilkan akses

pada fragmen-fragmen yang berbeda.

Sebagai contoh, jika terdapat dua buah fragmen

yang berbeda fi dan fj maka paling sedikit terdapat

sebuah aplikasi yang dapat mengakses dua fragmen

yang berbeda tersebut.

Contoh :

Pr = {LOC=”Montreal”, LOC=”New York”,

LOC=”Paris”, BUDGET ≤ 200000, BUDGET >

200000}

adalah minimal (in addition to being complete).


3

Namun, jika kita tambahkan simple predikat berikut

ke Pr :

PNAME =”Instrumentation”

maka Pr menjadi tidak minimal.

Contoh Primary Horizontal Fragmentation (PHF)

Sebagai gambaran untuk kemudahan dan kejelasan dalam

tahap-tahap fragmentasi horizontal primer (PHF) akan

diberikan contoh kasus. Bila terdapat tabel PAY dan PROJ

sebagai berikut :

Fragmentasi dari relasi PAY :

Relasi PAY adalah sebagai berikut :

Tabel 2.2. Tabel PAY

Aplikasi akan meminta :

a. Melihat info gaji.

b. Daftar pegawai berada pada dua aplikasi yang berjalan

di dua lokasi

Simple predicates :

p1 : SAL ≤ 30000

p2 : SAL > 30000

Pr = {p1, p2 } dimana Pr'=Pr Complete dan minimal


3

Minterm predicates :

m1 : (SAL ≤ 30000)

m2 : NOT(SAL ≤ 30000) = (SAL > 30000)

hasil fragmentasi :

Tabel 2.3(a). Tabel PAY1 Tabel 2.3(b). Tabel PAY2

Fragmentasi dari relasi PROJ

Aplikasi akan meminta :

a. Cari nama dan budget project yang berada pada tiga

lokasi (1)

b. Akses informasi project untuk budget pada satu lokasi

≤ 200000 dan yang lain > 200000 (2)

Simple predicates

Untuk aplikasi (1)

p1 : LOC = “Montreal”

p2 : LOC =”New York”

p3 : LOC = “Paris”

Untuk aplikasi (2)

p4 : BUDGET = 200000

p5 : BUDGET > 200000

Pr = Pr' = {p1,p2,p3,p4,p5}

Minterm predicates untuk fragmen setelah eliminasi :


4

m1 : (LOC = “Montreal”) ^ (BUDGET ≤ 200000)

m2 : (LOC = “Montreal”) ^ (BUDGET > 200000)

m3 : (LOC = “New York”) ^ (BUDGET ≤ 200000)

m4 : (LOC = “New York”) ^ (BUDGET > 200000)

m5 : (LOC = “Paris”) ^ (BUDGET ≤ 200000)

m6 : (LOC = “Paris”) ^ (BUDGET > 200000)

Hasil Fragmentasi

Tabel 2.4. Tabel Hasil Fragmentasi Horizontal Primer

(PHF)

PROJ1

PROJ2

PROJ3

PROJ4

Uji kebenaran PHF

a. Completeness

Karena Pr' complete dan minimal, maka selection

predicates adalah komplit.


4

b. Reconstruction

Jika relasi R dibuat menjadi fragmen FR = {R1,R2,…,Rr}

maka R =   Ri FRRi adalah reconstruction.

c. Disjointness

Minterm predicates untuk setiap fragmen adalah mutually

exclusive.

2.B Derived Horizontal Fragmentation (DHF)

Derived Horizontal Fragmentation dari tabel R

didefinisikan sebagai :

Dengan R adalah tabel member, Si = σ Fi(S),dimana Fi

merupakan formula yang berdasarkan pada Primary

Horizontal Fragmentation Si mana yang didefinisikan, serta w

adalah jumlah maksimun fragmentasi yang akan didefinisikan

pada R.

Derived Horizontal Fragmentation didefinisikan pada link

relasi tabel member menurut pilihan operasi yang spesifik dari

tabel owner [Otzu, 1999]. Ada dua poin yang perlu diingat.

Pertama, link diantara relasi owner dan member terdefinisi

sebagai equi-join. Poin yang kedua menjadi sangat penting

ketika akan dilakukan partisi dari dari sebuah relasi member

yang berdasarkan pada fragmentasi tabel owner, tetapi dapat


4

juga jika diinginkan hasil fragmentasi yang didefinisikan

hanya pada attribut relasi tabel member. Link yang dimaksud

adalah primary key pada tabel owner kemudian juga menjadi

foreign key pada tabel member. Berikut adalah gambar relasi

tebel owner dan tabel member menurut :

Gambar 2.11 Ekspresi dari relasi tabel owner dan tabel

member menggunakan link (Li)

Algoritma DHF :

Input : Tabel member R, fragmen PHF S

={S1,S2,…,Sw} dan atribut penghubung tabel

member R dan tabel owner S.

Output : Himpunan fragmen R ={R1,R2,…,Rw} yang

memenuhi aturan fragmentasi.

Syarat :

a. Pr harus complete

b. Pr harus minimal

Dari contoh fragmen horisontal primer, kita telah mendapatkan

fragmen horisontal dari tabel EMP dan PROJ. Dan dari


4

gambar 2.11., kita memiliki tabel owner PAY dan tabel

member EMP.

Contoh 1 Derived Horizontal Fragmentation

Aplikasi : Diasumsikan bahwa user ingin mengelompokkan

data pegawai berdasar gaji yang diterima.

Simple predicates table PAY

p1 : SAL ≤30000

p2 : SAL > 30000

PHF tabel PAY

PAY1 =  SAL ≤ 30000 (PAY)

PAY2 =  SAL > 30000 (PAY)

Derived Fragment table PAY

Hasilnya adalah :

Tabel 2.5. Tabel Hasil Derived Horizontal Fragmentation (DHF)

EMP1
4

EMP2

Contoh 2 Derived Horizontal Fragmentation

Aplikasi :

a. Menemukan data pegawai yang bekerja di suatu lokasi.

b. Menampilkan data pegawai yang mengakses proyek

pada lokasi dimana data pegawai di fragmen.

PHF tabel PROJ

PROJ1 :  (LOC=“Montreal”) ^ (BUDGET ≤ 200000)

PROJ

PROJ3 :  (LOC=“New York”) ^ (BUDGET ≤ 200000)

PROJ

PROJ4 :  (LOC=“New York“) ^ (BUDGET > 200000)

PROJ

PROJ6 : (LOC =“Paris”) ^ (BUDGET > 200000) PROJ

Derived Fragment table ASG berdasar PHF PROJ


4

Hasilnya adalah :

Tabel 2.6. Tabel Derived Fragment ASG berdasar PHF

PROJ

ASG1

ASG2

ASG3

ASG4

Derived fragmen tabel ASG berdasar derived fragmen

EMP
4

Hasilnya adalah :

Tabel 2.7. Tabel derived fragmen ASG berdasar

derived fragmen EMP

ASG1

ASG2

Uji kebenaran PHF

a. Completeness

Karena Pr' complete dan minimal, maka selection

predicates adalah komplit.

b. Reconstruction

Jika relasi R dibuat menjadi fragmen FR = {R1 ,R2 ,…,Rr}

maka R =   Ri FRRi adalah reconstruction.

c. Disjointness

Minterm predicates untuk setiap fragmen adalah mutually

exclusive.
4

Aturan Pemilihan Derived Fragmentasi

Terkadang sebuah tabel memiliki lebih dari satu tabel

owner (seperti ASG memiliki table owner EMP dan PROJ),

sehingga akan mendapatkan dua derived fragment.

Jika terdapat lebih dari satu derived fragment maka dapat

dipilih salah satu dengan menggunakan kriteria :

a. Fragmentasi akan menghasilkan sifat join yang lebih

baik.

b. Fragmentasi digunakan pada lebih banyak aplikasi.

2. Alokasi

Alokasi dalam sistem terdistribusi dapat diartikan dengan

peletakan tiap-tiap fragmen pada suatu lokasi dengan distribusi

yang optimal (Ozsu, 1999). Ketika kita sudah memfragmen data,

masih ada yang perlu dipertimbangkan, yaitu alokasi fragmen data

tersebut. Dalam menentukan alokasi, Fragmen(F), lokasi data(S),

dan aplikasi(Q) yang ingin ditentukan adalah distribusi paling

optimal fragmen F pada lokasi S.

Ukuran optimal yang digunakan adalah :

a. Biaya Paling Minimal

Yang dimaksud biaya disini adalah biaya penyimpanan

fragmen pada lokasi, biaya kueri fragmen pada setiap lokasi,


4

biaya meng-update fragmen pada semua lokasi penyimpanan,

dan biaya komunikasi data.

b. Unjuk Kerja

Meminimalkan waktu respond dan memaksimalkan keluaran

dari sistem.

2.4 QUERY-PROCESSOR TERDISTRIBUSI

2.4.1 Definisi Query-Processor Terdistribusi

Query-processor adalah modul dari sistem manajemen basis data

tredistribusi yang dipakai untuk melayani kueri data (Ozsu,1999). Query-

processor dipakai supaya pengguna tidak perlu memakai bahasa

prosedural (aljabar) yang rumit. Dalam hal ini dipakai bahasa non-

prosedural (kalkulus) seperti SQL (Ozsu,1999). Bahasa non-prosedural

akan menyembunyikan detail low-level dari organisasi fisik data. Sehingga

kueri yang kompleks dapat dilakukan dalam bentuk ekspresi bahasa yang

ringkas dan sederhana. Query-processor juga melakukan optimasi kueri.

2.4.2 Peran Utama Query-Processor Terdistribusi

Peran utama dari query-processor terdistribusi adalah melakukan

pemetaan (mapping) dari kueri high-level (relasi kalkulus dalam sebuah

basis data terdistribusi) menjadi sederetan operasi basis data lokal

(berbentuk relasi aljabar) terhadap fragmen-fragmen relasi (ozsu,1999).


4

Berikut adalah gambar diagram pemetaan untuk memperjelas definisi di

atas.

Gambar 2.12. Diagram Pemetaan

Fungsi-fungsi dari pemetaan (mapping) :

a. Kueri kalkulus harus disusun balik menjadi sederetan operasi relasional

yang disebut kueri aljabar.

b. Data yang diakses oleh kueri harus dilokalisasi sehingga operasi

terhadap relasi dilakukan pada data lokal atau fragmen data.

c. Kueri aljabar terhadap fragmen-fragmen harusdiperluas dengan operasi

komunikasi dan dioptimisasi untuk meminimalkan fungsi biaya. Fungsi

biaya menyangkut sumber daya komputasi seperti disk I/O, CPU, dan

jaringan komunikasi.

Dengan kata lain, peran utama dari query-processor relasional

adalah melakukan transformasi kueri high-level (relasi kalkulus) menjadi

kueri low-level (relasi aljabar) yang ekuivalen. Kueri low-level akan

mengimplementasikan strategi eksekusi terhadap kueri (Ozsu,1999).


5

Dua hal penting dalam transformasi :

1. Ketepatan (correctness). Yaitu, kueri low-level memiliki semantik

yang sama dengan kueri aslinya.

2. Efisiensi (strategi eksekusi yang efisien). Sebuah kueri kalkulus

relasional dapat ditransformasikan ke dalam beberapa bentuk kueri

aljabar yang ekuivalen dan benar. Memilih salah satu kueri aljabar

yang paling efisien akan tergantung pada pemilihan strategi eksekusi

yang meminimalkan sumber daya komputasi.

2.4.3 Contoh Kasus Query-Processor Terdistribusi 1

Kueri :

”Cari nama-nama pegawai yang menjabat manajer proyek”

Ekspresi kueri kalkulus relasional, memakai sintaks SQL :

SELECT ENAME
FROM EMP, ASG
WHERE EMP.ENO = ASG.ENO
AND RESP = "Manager"

Dua macam kueri aljabar relasional yang ekuivalen, hasil transformasi dari

kueri di atas :

Dalam sistem terdistribusi, aljabar relasional masih belum cukup untuk

mengeksekusi kueri. Diperlukan operasi pertukaran data antar lokasi agar

eksekusi kueri menjadi lebih benar dan efisien.


5

2.4.4 Contoh Kasus Contoh Kasus Query-Processor Terdistribusi 2

Contoh ini menggambarkan begitu pentingnya pemilihan dan

komunikasi antar lokasi bagi sebuah kueri aljabar relasional terhadap basis

data yang sudah terfragmen.

Kueri dari contoh 1 :

Diasumsikan relasi antara EMP dan ASG terfragmentasi horisontal

sebagai berikut :

Fragmen-fragmen ASG1, ASG2, EMP1, dan EMP2 disimpan pada lokasi-

lokasi 1,2,3,dan 4 dan hasilnya diharapkan berada pada lokasi 5.

Gambar 2.13. Lokasi Fragmen-fragmen ASG dan EMP

Strategi A : Memanfaatkan fakta bahwa relasi EMP dan ASG

terfragmentasi dengan cara sama untuk melakukan operasi select dan join

secara paralel.
5

Strategi B : Memusatkan semua data pada result-site sebelum memproses

kueri.

Konsumsi sumber daya dengan model simple-cost (Ozsu, 1999)

Asumsi :

 Tuple-acces : tupacc adalah 1 unit (Ozsu, 1999)

 Tuple-transfer : tuptrans adalah 10 unit (Ozsu, 1999)

 Relasi EMP mempunyai 400 tuple

 Relasi ASG mempunyai 1000 tuple

 Ada 20 manajer dalam relasi ASG

 Data terdistribusi secara uniform pada semua lokasi

 Relasi ASG secara lokal terikat pada atribut RESP. Terdapat akses

langsung ke tuple-tuple ASG yang berdasarkan nilai atribut RESP.

 Relasi EMP secara lokal terikat pada atribut ENO. Terdapat akses

langsung ke tuple-tuple EMP yang berdasarkan nilai atribut ENO.

Tabel 2.8. Tabel total biaya dari strategi A

1. Produce ASG dengan select ASG perlu (10+10)*tupacc 20


2. Transfer ASG ke lokasi-lokasi EMP perlu (10+10)*tup 200
trans
3. Produce EMP dengan join ASG dan EMP perlu
(10+10)*tupa cc*2 40
4. Transfer EMP ke result-site perlu (10+10)*tup trans 200
460
Total Biaya
5

Tabel 2.9. Tabel total biaya dari strategi B

1. Transfer EMP ke lokasi 5 perlu 400*tup trans 4000


2. transfer ASG ke lokasi 5 perlu 1000*tup trans 10000
3. Produce EMP dengan join ASG dan EMP perlu
(10+10)*tupa cc*2 1000
4. join EMP dan ASG perlu 400*20*tupa cc 8000
Total Biaya 23000

Dalam strategi B kita menganggap bahwa metode akses ke relasi EMP dan

ASG yang berdasarkan kepada atribut RESP dan ENO telah hilang karena

transfer data, ini merupakan asumsi yang biasa dalam praktek.

Strategi A lebih baik dengan faktor 50. Dengan demikian merupakan

strategi yang lebih baik untuk distribusi data di antara lokasi-lokasi.

2.4.5 Optimasi Kueri

Tujuan dari optimasi kueri adalah meminimalkan :

Biaya I/O+biaya CPU + biaya komunikasi

Karena untuk memproses kueri membutuhkan aljabar relasional, maka

kompleksitas operasi aljabar relasional akan mempengaruhi waktu

eksekusi kueri. Kompleksitas dari operasi aljabar relasional adalah :


5

Tabel 2.10. Tabel kompleksitas operasi aljabar relasional

Beberapa sifat dari pemroses kueri akan digunakan sebagai dasar untuk

optimisasi yaitu :

1. Tipe Optimisasi

2. Waktu Optimisasi

3. Statistik

4. Keputusan Lokasi

5. Topologi Jaringan

6. Fragmen Replikasi

7. Penggunaan Semijoin
BAB III

ANALISA DAN PERANCANGAN SISTEM

Permasalahan yang akan dibahas pada bab ini adalah mengenai analisis

sistem dan pembahasan perancangan sistem yang akan dibuat. Tahap analisis

merupakan tahap menganalisa kebutuhan sistem dan kebutuhan software yang

digunakan sistem untuk kemudian didokumentasikan dan di review bersama

kostumer apakah telah sesuai dengan kebutuhan atau belum sesuai.

3.1 ANALISIS MASALAH

Dalam sebuah perpustakaan, pengelolaan data buku memiliki peranan

yang sangat penting karena dengan pengelolaan data yang baik dapat

meningkatkan efektifitas kinerja dan layanan dari suatu perpustakaan.

Seiring dengan berjalannya waktu, penyimpanan data pada perpustakaan

semakin besar dan memerlukan proses yang sangat kompleks bahkan pada

beberapa perpustakaan mengunakan sistem jaringan untuk pengelolaan basis

data perpustakaan karena lokasi yang terpisah. Tingginya pengaksesan dari

masing-masing lokasi mempengaruhi layanan dan kinerja dari perpustakaan

karena hanya memiliki satu server.

Pada perpustakaan USD yang lokasinya terpisah, layanan pada suatu

lokasi tidak selalu menggunakan seluruh data yang ada. Data yang dibutuhkan

oleh perpustakaan Mrican dan Paingan tidaklah sama. Dengan menggunakan

satu server, akses basis data menjadi lambat karena pada saat perpustakaan

Mrican atau Paingan mengakses basis data, data-data yang seharusnya tidak

55
5

perlu diakses oleh salah satu lokasi akan diakses secara bersamaan. Salah satu

alternatif penyelesaian masalah untuk pengaksesan data yang lambat pada saat

proses penelusuran buku dilakukan adalah implementasi Sistem Basis Data

Terdistribusi (SBDT). Sistem basis data terdistribusi merupakan cara untuk

mendistribusikan basis data yang ber-relasi secara logis pada beberapa lokasi

secara terpisah dengan menggunakan jaringan komputer.

Sistem basis data terdistribusi pada perpustakaan Universitas Sanata

Dharma ini akan diterapkan menggunakan metode fragmentasi horizontal.

Fragmentasi horizontal cocok diterapkan pada sistem ini karena basis data

perpustakaan mempunyai jumlah record yang banyak dan mempunyai kueri

yang sering digunakan berdasarkan record tertentu.

3.2 ANALISIS KELAYAKAN

Sistem Basis data Terdistribusi pada Pepustakaan layak untuk di-

implementasikan karena :

1. Efisien

Sistem ini hanya menyimpan data yang paling sering digunakan sehingga

proses akses ke basis data dapat dilakukan lebih cepat karena data yang

tidak sering dipakai pada lokasi perpustakaan tertentu tidak disimpan

(tidak adanya penumpukan data ).

2. Kehandalan

Sistem ini menempatkan fragmen - fragmen data yang diperlukan oleh

setiap lokasi sesuai dengan kebutuhan masing-masing. Hal ini dilakukan


5

karena pada saat pengaksesan tidak semua data dalam suatu tabel

digunakan tetapi hanya sebagian saja. Kehandalan dari sistem ini akan

terbentuk karena dengan fragmen-fragmen tersebut data akan selalu siap

untuk diakses.

3. Ketersediaan data

Data yang akan diakses akan selalu tersedia karena sistem ini

menggunakan fragmen data yang akan disimpan pada lokasi yang sering

mengunakannya.

4. Kelayakan keamanan

Dengan adanya fragmen-fragmen ini, data yang tidak dibutuhkan pada

satu lokasi tertentu tidak disimpan sehingga aplikasi lokal tidak dapat

mengaksesnya.

5. Meningkatkan kinerja

Kinerja dari sistem akan meningkat karena setiap aplikasi pada lokasi

tertentu tidak harus mengakses semua data melainkan hanya mengakses

data yang diperlukannya saja, sehingga lebih sedikit data yang di akses

dan lebih cepat.

6. Biaya komunikasi yang minimal

Dengan sistem ini biaya komunikasi antar lokasi penyimpanan menjadi

minimum karena biaya pengambilan data minimum jika lokalitas

maksimum atau dengan kata lain fragmen data dilakukan secara maksimal

pada lokasi tertentu.


5

3.3 ANALISIS KEBUTUHAN

Berdasarkan hasil peninjauan ke lokasi perpustakaan USD data yang

disimpan tidak sesuai dengan kebutuhan dari masing-masing lokasi. Semua

data buku disimpan di perpustakaan Mrican. Perpustakaan Paingan hanya

melakukan akses data ke basis data yang terletak di perpustakaan Mrican saja.

Permintaan data dari masing-masing lokasi sama, hal ini dikarenakan aplikasi

dari perpustakaan Mrican dan Paingan mengakses kolom yang sama dalam

tabel. Hal ini menyebabkan tabel ini tidak cocok untuk dilakukan fragmentasi

vertikal. Fragmentasi dilakukan dengan menggunakan metode fragmentasi

horizontal.

Dengan menggunakan analisis kebutuhan sedapat mungkin dapat

menyelesaikan persoalan pendistribusian dengan fragmentasi ini. Kebutuhan-

kebutuhan yang dibutuhkan adalah :

3.3.1 Kebutuhan Perpustakaan Paingan

Perpustakaan Paingan hanya menangani proses pencarian dan

transaksi. Untuk mendukung tugasnya, perpustakaan Paingan melakukan

pengamatan terhadap data buku dengan memperhatikan bidang

pencarian dan transaksi sebagai berikut :

1. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku tekhnik.

2. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku Matematika.


5

3. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku psikologi.

4. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku farmasi.

5. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku fisika.

6. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku komputer.

3.3.2 Kebutuhan Perpustakaan Mrican

Perpustakaan Mrican menangani proses pengadaan, pengelolaan,

pencarian dan transaksi. Untuk mendukung tugasnya, perpustakaan

Mrican melakukan pengamatan terhadap data buku dengan

memperhatikan bidang pengadaan, pengelolaan, pencarian dan transaksi

sebagai berikut :

a. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku kesusasteraan.

b. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku manajemen.

c. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku ekonomi.

d. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku sejarah.


6

e. Mencari data buku berdasarkan judul yang mempunyai klasifikasi

sebagai buku-buku bahasa.

3.4 GAMBARAN UMUM SISTEM

Implementasi basis data terdistribusi dengan metode fragmentasi pada

perpustakaan Mrican dan Paingan dirancang menggunakan blok diagram yang

dituliskan :

Gambar 3.1. Blok Diagram Sistem Basis Data Terdistribusi Perpustakaan

Dengan menggunakan blok diagram diatas digambarkan dua macam

aplikasi yaitu aplikasi komputer server dan aplikasi komputer klien. Secara

logis basis data server saling berhubungan supaya server dapat saling

melakukan tukar menukar data.

Pada aplikasi server terdapat basis data paingan dan basis data Mrican

dengan dilengkapi TCP/IP.

Komputer klien terdiri dari aplikasi yang merupakan antarmuka user

dengan sistem. Pada lokasi paingan terdapat dua aplikasi klien yaitu aplikasi
6

Transaksi dan pencarian sedangkan pada lokasi Mrican terdapat tiga macam

aplikasi klien yaitu aplikasi transaksi, aplikasi pencarian, aplikasi pengadaan,

dan aplikasi pengelolaan.

Topologi yang digunakan adalah topologi star, topologi ini digunakan

karena, jika salah satu komputer klien mati maka komputer klien lain masih

bisa mengakses basis data.

3.5 PERANCANGAN PROSES

Salah satu syarat utama dari pengembangan suatu sistem adalah

perancangan arsitektur program. Rancangan sistem dengan konstruksi yang

baik dan tepat akan menghasilkan program aplikasi yang handal dan

pengolahan data yang akurat. Perancangan Sistem Basis Data Terdistribusi

untuk Perpustakaan ini memerlukan tahap yang harus dirancang, agar sesuai

dengan inti program yang akan dibuat.

3.5.1 Diagram Alir Data

3.5.1.1 Diagram Konteks

Gambar 3.2. Diagram Konteks

Pada sistem basis data terdistribusi ini terdapat dua

entitas yaitu entitas Perpustakaan Mrican, dan entitas


6

Perpustakaan Paingan. Dari masing-masing entitas ini

memiliki 5 proses yang mengakses basis data buku Mrican.

3.5.1.2 DAD Level 0 untuk Perpustakaan Mrican

Gambar 3.3. DAD Level 0 untuk Perpustakaan Mrican

Pada DAD level 0 untuk perpustakaan Mrican

terdapat 6 proses yang mengakses basis data buku. Masing-

masing proses akan dijabarkan dalam tabel berikut :

Tabel 3.1. Tabel Spesifikasi Proses Pada Perpustakaan Mrican

Nama Proses Keterangan

Proses a Proses ini digunakan untuk mengakses tabel BUKU yang


mempunyai klasifikasi sebagai buku-buku kesusasteraan.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses b
mempunyai klasifikasi sebagai buku-buku manajemen.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses c
mempunyai klasifikasi sebagai buku-buku ekonomi.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses d
mempunyai klasifikasi sebagai buku-buku sejarah.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses e
mempunyai klasifikasi sebagai buku-buku bahasa
6

3.5.1.3 DAD Level 0 untuk Perpustakaan Paingan

Gambar 3.4. DAD Level 0 untuk Perpustakaan Paingan

Pada DAD level 0 untuk perpustakaan Mrican terdapat 6

proses yang mengakses basis data buku. Masing-masing

proses akan dijabarkan dalam tabel berikut :

Tabel 3.2. Tabel Spesifikasi Proses Pada Perpustakaan Paingan

Nama Proses Keterangan


Proses ini digunakan untuk mengakses tabel BUKU yang
Proses 1
mempunyai klasifikasi sebagai buku-buku teknik.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses 2
mempunyai klasifikasi sebagai buku-buku Matematika.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses 3
mempunyai klasifikasi sebagai buku-buku psikologi.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses 4
mempunyai klasifikasi sebagai buku-buku farmasi.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses 5
mempunyai klasifikasi sebagai buku-buku fisika.
Proses ini digunakan untuk mengakses tabel BUKU yang
Proses 6
mempunyai klasifikasi sebagai buku-buku komputer.
6

3.5.2 Kamus Data

Kamus data ini didapatkan dari proses pengaksesan tabel buku yang

ber-relasi dengan tabel lainya oleh aplikasi dari perpustakaan Mrican

maupun Paingan

a) Kamus data untuk tabel asal

 No_Asal = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4
25
 Negara = {legal – char }

b) Kamus data untuk tabel Bahasa

 No_bahasa = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4
15
 Bahasa = {legal – char }

c) Kamus data untuk tabel Penerbit

 No_Penerbit = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Penerbit = {legal - char}100

d) Kamus data untuk tabel Jenis_Buku

 No_Jenis_Buku = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4
20
 Jenis = {legal – char }

 Singkatan = {legal – char }3

 Batas_Jumlah = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Batas_Waktu = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Denda = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }11

 Status_Pinjam = {bit}1
6

e) Kamus data untuk tabel buku

 ID_Buku = {legal - char}10

 ISBN = {legal - char}30


255
 Judul_Buku = {legal – char }
255
 Judul_Seri = {legal – char }
255
 Anak_Judul = {legal – char }

 Kota = {legal - char}40

 Klasifikasi = {legal - char}30

 No_Asal = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 No_Bahasa = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 No_Jenis_Buku = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 No_Penerbit = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Tahun = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Ket_Edisi = {legal - char}20


40
 Kolasi = {legal – char }

 Bibliografi = {bit}1

 Bibliopage = {legal – char }20

 Abstraksi = text

 Image = {legal - char}255

 Call_Number = {legal - char}30

 Catatan = text
6

 Tgl_Save = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }2+ {-} + {1 | 2 | 3 | 4

| 5 | 6 | 7 | 8 | 9 | 0 }2 + {-} + {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Tgl_Update = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }2+ {-} + {1 | 2 | 3

| 4 | 5 | 6 | 7 | 8 | 9 | 0 }2 + {-} + {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Full_Text = text

 ImageData = {legal - char}9

 Release = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 No_mahasiswa = {legal - char}15

 No_Program_Studi = {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 }4

 Tahun_Angkatan = {legal - char}4

f) Kamus data untuk tabel klasifikasi

 ID_Buku = {legal - char}10


 No_Klasifikasi ={legal - char}30
50
 Keterangan = {legal – char }

3.6 PERANCANGAN BASIS DATA

3.6.1 Entity Relational Diagram (ERD)

ERD sistem Basis Data Terdistribusi Pada Perpustakaan Universitas

Sanata Dharma ini terdiri dari 6 tabel yaitu :

a. Tabel buku yang mempunyai atribut sebagai berikut :

1. ID_Buku *(PK) 5. Anak_Judul


2. ISBN 6. Kota
3. Judul_Buku 7. Klasifikasi
4. Judul_Seri 8. No_Asal
6

9. No_Bahasa 20. Call_Number


10. No_Jenis_Buku 21. Catatan
11. No_Penerbit 22. Tgl_Save
12. Tahun 23. Tgl_Update
13. Ket_Edisi 24. Full_Text
14. Kolasi 25. ImageData
15. Bibliografi 26. Release
16. Bibliopage 27. No_Mahasiswa
17. Indeks 28. No_Program_Studi
18. Abstraksi 29. Tahun_Angkatan
19. Image

b. Tabel Jenis_buku dengan atribut sebagai berikut :

1. No_jenis_buku* 5. Batas_waktu
(PK)
6. Status_pinjam
2. Jenis
7. Denda
3. Singkatan

4. Batas_jumlah

c. Tabel Penerbit dengan atribut sebagai berikut :


1. No_penerbit*(PK)
2. Penerbit
d. Tabel Asal dengan atribut sebagai berikut :
1. No_asal *(PK)
2. Negara
e. Tabel Bahasa dengan atribut sebagai berikut :
1. No_bahasa *(PK)
2. Bahasa
6

f. Tabel Klasifikasi dengan atribut sebagai berikut :


1. No_klasifikasi
2. Keterangan
3. Id_buku

Gambar 3.5. Rancangan Basis Data (ERD)


6

3.6.2 Relasi Antar Tabel

Relasi antar tabel menggambarkan hubungan antara primary key

dengan foreign key dari suatu relasi tabel.

Gambar 3.6. Relasi Antar Tabel

Dari gambar di atas dapat dilihat primary key dari tabel

asal,jenis_buku, penerbit, dan bahasa menjadi foreign key dari

tabel buku.

3.6.3 Mapping

a) Buku(ID_Buku, ISBN, Judul_Buku, Judul_Seri,


Anak_Judul,Kota, Klasifikasi, No_Asal, No_Jenis_Buku,
No_Penerbit, Tahun, Ket_Edisi, Kolasi, Bibliografi, Bibliopage,
Indeks, Abstraksi, Image, Call_Number, Catatan, Tgl_Save,
Tgl_Update, Full_Text, ImageDate, Release, No_Mahasiswa,
No_Program_Studi, Tahun_Angkatan)
b) Asal(No_Asal, Negara)

c) Bahasa(No_bahasa, Bahasa)

d) Jenis_Buku(No_Jenis_Buku, Jenis, Singkatan, Batas_Jumlah,

Batas_Waktu, Denda, Status_Pinjam)

e) Penerbit(No_Penerbit, Penerbit)
f) Klasifikasi(No_klasifikasi, Keterangan, id_buku)
7

3.6.4 Normalisasi Relasi

Tabel hasil pemetaan diatas sudah memenuhi bentuk normal

sampai pada 3nf yaitu setiap atribut pada tabel bernilai tunggal untuk

setiap baris, semua atribut bukan kunci memiliki dependensi

sepenuhnya terhadap kunci utama atau kunci primer, dan setiap atribut

bukan kunci tidak memiliki dependensi transitif terhadap kunci primer.

3.6.5 Tabel Awal

Implementasi fragmentasi horizontal akan dilakukan pada tabel awal

yaitu tabel buku.

Tabel 3.3. Tabel Awal (tabel buku)


ID_Buku ISBN Judul_buku Judul_Seri Anak_Judul Kota Klasifikasi

No_asal No_Bahasa No_Jenis_Buku No_Penerbit Tahun Ket_Edisi Kolasi

Bibliografi Bibliopage Indeks Abstraksi Image Call_number Catatan

Tgl_save Tgl_Update Full_text ImageData Release No_Mahasiswa

No_Program_Studi Tahun_Angkatan

3.7 PERANCANGAN SBDT PERPUSTAKAAN UNIVERSITAS SANATA

DHARMA

3.7.1 Primary Horizontal Fragmentation Dari Tabel BUKU

Tabel buku diakses oleh dua aplikasi yaitu :

a. Aplikasi perpustakaan Paingan :


7

Mencari data buku dengan judul yang ada hubungannya dengan

buku-buku :

1. Ilmu Komputer

2. Psikologi

3. Matematika

4. Fisika

5. Farmasi

6. Teknologi

b. Aplikasi perpustakaan Mrican :

Mencari data buku selain yang diakses oleh aplikasi perpustakaan

Paingan.

Kueri ini kurang cocok digunakan untuk memecah tabel karena,

pengguna jarang menggunakan judul buku secara lengkap untuk

menelusuri data buku. Bagian dari judul buku yang digunakan

sebagai kata kunci ini ada yang memiliki kesamaan antara data buku

yang disimpan di perpustakaan Mrican dengan data buku yang

disimpan di perpustakaan Paingan. Misalnya pengguna ingin mencari

data buku dengan kata kunci ”teknik” maka sistem akan menelusuri

seluruh data buku yang judulnya mengandung kata ”teknik” termasuk

buku-buku yang ada di perpustakaan Mrican. Oleh karena itu judul

buku tidak akan digunakan sebagai simple predicate untuk memecah

tabel. Predikat yang dipakai untuk memecah tabel adalah klasifikasi

buku yang berdasarkan pada kueri awal yang dilakukan oleh


7

pengguna yaitu kueri judul. Untuk memudahkan pemecahan tabel

maka klasifikasi buku dibuat seperti pada tabel berikut :

Tabel 3.4. Tabel Klasifikasi Buku (Dewey, 2003)

No. Klasifikasi Keterangan


1 000 Ilmu Komputer
2 010 Bibliografi
3 020 Ilmu Perpustakaan
4 030 Ensiklopedia
5 040 Tidak Terklasifikasi
6 050 Majalah,Jurnal,dan Serial
7 060 Asosiasi,Organisasi, dan Museum
8 070 Media berita,Jurnalisme, dan Publikasi
9 080 Quotations
10 090 Manuskrip
11 100 Filsafat
12 110 Metafisika
13 120 Epistemologi
14 130 Parapsikologi dan Okultisme
15 140 Sekolah Filsafat
16 150 Psikologi
17 160 Logic
18 170 Ethics
19 180 Filsafat kuno, dan Filsafat Timur
20 190 Filsafat barat modern
21 200 Agama
22 300 Ilmu Sosial, Sosiologi, dan Anthropologi
23 400 Bahasa (kesusasteraan)
24 500 Ilmu Pasti, dan Ilmu Terapan
25 600 Teknologi
26 610 Obat-obatan dan Kesehatan
27 620 Tekhnik
28 630 Agrikultur
29 640 Manajemen Keluarga
30 650 Manajemen dan Publik Relasi
31 660 Teknik Kimia
32 670 Manufacturing
33 680 Manufaktur untuk Kebutuhan Khusus
34 690 Bangunan dan Konstruksi
35 700 Seni dan Olahraga
36 800 Literatur,Retorik, dan Kritik
37 900 Sejarah
7

Setelah melihat permintaan pengguna dan tabel klasifikasi di atas, maka

permintaan pengguna dari aplikasi perpustakaan Paingan dapat

diterjemahkan sebagai berikut :

1. Mengakses data buku dengan klasifikasi sebagai buku ilmu

komputer.

2. Mengakses data buku dengan klasifikasi sebagai buku psikologi.

3. Mengakses data buku dengan klasifikasi sebagai buku ilmu pasti, dan

ilmu terapan.

4. Mengakses data buku dengan klasifikasi sebagai buku obat-obatan,

dan kesehatan.

5. Mengakses data buku dengan klasifikasi sebagai buku teknik.

6. Mengakes data buku dengan klasifikasi sebagai buku teknik kimia.

7. Mengakses data buku dengan klasifikasi sebagai buku manufaktur.

8. Mengakses data buku dengan klasifikasi sebagai buku manufaktur

untuk kebutuhan khusus.

9. Mengakses data buku dengan klasifikasi sebagai buku bangunan, dan

konstruksi.

c. Simple Predicates

Dari modifikasi kueri awal maka didapatkan simple predicates sebagai

berikut :

Pr’ : (p1,p2) dimana :


7

p1 = { klasifikasi=000, klasifikasi=150, klasifikasi=500, klasifikasi=610,

klasifikasi=620, klasifikasi=660, klasifikasi=670, klasifikasi=680,

klasifikasi=690}

p2 = NOT{ klasifikasi=000, klasifikasi=150, klasifikasi=500, klasifikasi

=610, klasifikasi=620, klasifikasi=660, klasifikasi=670,

klasifikasi=680, klasifikasi=690}

Pr = { klasifikasi=000, klasifikasi=150, klasifikasi=500, klasifikasi=610,

klasifikasi=620, klasifikasi=660, klasifikasi=670, klasifikasi=680,

klasifikasi=690, NOT( klasifikasi=000, klasifikasi=150, klasifikasi

=500, klasifikasi=610, klasifikasi=620, klasifikasi=660, klasifikasi

=670, klasifikasi=680, klasifikasi=690)}

Simple predicates ini sudah memenuhi sifat complete dan minimal.

Memenuhi sifat complete karena ada dua tuple pada fragmen yang sama

yang mempunyai probabilitas sama untuk diakses oleh setiap transaksi.

Memenuhi sifat minimal karena terdapat satu transaksi yang mengakses

fragmen-fragmen yang berbeda akan menghasilkan akses pada fragmen-

fragmen tersebut.

d. Minterm Predicates

Dari simple predicates di atas, maka didapatkan minterm predicates

sebagai berikut (klasifikasi = k) :

m1 : (k=000 or k=150 or k=500 or k=610 or k=620 or k=660 or k=670 or

k=680 or k=690)
7

m2 : NOT (k=000 or k=150 or k=500 or k=610 or k=620 or k=660 or

k=670 or k=680 or k=690)

e. Hasil Fragmentasi

Tabel 3.5. Tabel BUKU1 (164 record)

Tabel 3.6. Tabel BUKU2 (4590 record)


7

3.7.2 Derived Horizontal Fragmentation Dari Tabel KLASIFIKASI

Derived horizontal fragmentation dari tabel klasifikasi ini dibutuhkan

karena tabel buku dan tabel klasifikasi saling join. Primary horizontal

fragmentation tabel buku sebagai tabel owner. Kemudian derived

horizontal fragmentation tabel klasifikasi didasarkan dari fragmen

horizontal tabel owner.

3.7.2.1 Primary Horizontal Fragmentation Dari Tabel BUKU

BUKU1 = σ (k=000 or k=150 or k=500 or k=610 or k=620 or

k=660 or k=670 or k=680 or k=690)

BUKU2 = σ (k=010, k=020, k=030, k=040, k=050, k=060,

k=070, k=080, k=090, k=110, k=120, k=130, k=140,

k=160, k=170, k=180, k=190, k=200, k=300, k=400,

k=630,k=640, k=650, k=700, k=800, k= 900)

3.7.2.2 Derived Horizontal Fragmentation Dari Tabel KLASIFIKASI

KLASIFIKASI1 = KLASIFIKASI BUKU1

KLASIFIKASI2 = KLASIFIKASI BUKU2

Hasil Fragmentasi :
7

Tabel 3.7. Tabel KLASIFIKASI1 (720)

Tabel 3.8. Tabel KLASIFIKASI2 (17078)


7

3.7.3 Fragmentasi Vertikal

Tahap-tahap fragmentasi vertikal adalah sebagai berikut :

1. Matriks Use (MUse)

Matriks Use merupakan matriks yang menggambarkan

bagaimana akses yang dilakukan oleh setiap queri Q = q1,q2,…,qi

pada setiap atribut pada sebuah tabel R[A1,A2,…,Aj] (Otzu, 1999).

Notasi ditunjukkan sebagai berikut :

Use(qi,Aj) bernilai 1 jika queri qi mengakses atribut Aj, dan

Use(qi,Aj) bernilai 0 jika queri qi tidak mengakses atribut Aj (Otzu,

1999)

Aplikasi queri yang dilakukan oleh masing-masing perpustakaan

adalah sebagai berikut :

Q1 = Select judul_buku from buku where

klasifikasi=value, Call_number=value,catatan=value

Q2 = Select judul_buku,kota from buku where klasifikasi

=value,call_number=value,catatan=value

Q3 = Select judul_buku,jenis_buku,bahasa from buku

where klasifikasi=value,kolasi=value

Q4 = Select judul_buku,jenis_buku,penerbit from buku

where klasifikasi=value,call_number=value

Q5 = Select judul_buku,call_number,bahasa from buku

where klasifikasi=value,ket_edisi=value

Q6 = Select Jenis_buku,tahun,kota,penerbit from buku

where tgl_save=value
7

Q7 = Select judul_buku,penerbit,kota from buku where

tgl_save=value

Q8 = Select judul_buku,Jenis_buku,tahun,penerbit from

buku where tgl_save=value

Q9 = Select judul_buku,Jenis_buku,penerbit from buku

where tgl_save=value

Q10 = select judul_buku,jenis_buku,tahun,penerbit, kota

from buku where tgl_update=value

Q11 = Select judul_buku,jenis_buku,penerbit,kota from

buku where tgl_update=value

Q12 = Select judul_buku,jenis_buku,penerbit,tahun from

buku where tgl_update=value

Q13 = Select judul_buku,tahun_buku,penerbit,kota from

buku where tgl_update=value

Q14 = Select jenis_buku,penerbit,kota,klasifikasi from

buku where tgl_update=value

Q15 = Select Judul_buku,jenis_buku,penerbit,tahun,

kota,bahasa where tgl_update=value

Q16 = Select judul_buku from buku where jenis_buku =

value, penerbit=value

Q17 = Select judul_buku,penerbit from buku where

jenis_buku = value, bahasa=value

Q18 = Select judul_buku,jenis_buku from buku where

tahun=value, penerbit=value

Q19 = Select jenis_buku,tahun,penerbit from buku where

judul_buku = value,bahasa=value

Q20 = Select jenis_buku,kota,tahun from buku where

judul_buku=value,penerbit=value,ket_edisi=value
8

Q21 = Select Jenis_buku,tahun,kota from buku where

judul_buku = value,penerbit=value

Q22 = Select Jenis_buku,tahun,penerbit,kota from buku

where judul_buku=value,asal_buku=value

Q23 = Select judul_buku,Jenis_buku,tahun from buku

where asal_buku = value,penerbit=value

Q24 = Select judul_buku,no_mahasiswa,no_program_studi,

kota from buku where call_number=value,

tahun=value,asal_buku=value

Q25 = "Select judul_buku,tahun,call_number, kota from

buku where jenis_buku=value,asal_buku =value"

Q26 = Select judul_buku,ket_edisi,tahun,kota from buku

where no_mahasiswa=value,no_program_studi=value,

tahun_angkatan=value

Q27 = Select judul_buku,tahun,bahasa,kota from buku

where jenis_buku=value,asal_buku=value,

ket_edisi=value
8

Dimisalkan atribut-atribut tabel buku :

A1 = ID_Buku A16 = Bibliopage


A2 = ISBN A17 = Indeks
A3 = Judul_Buku A18 = Abstraksi
A4 = Judul_Seri A19 = Image
A5 = Anak_Judul A20 = Call_Number
A6 = Kota A21 = Catatan
A7 = Klasifikasi A22 = Tgl_Save
A8 = No_Asal A23 = Tgl_Update
A9 = No_Bahasa A24 = Full_Text
A10 = No_Jenis_Buku A25 = Image_Data
A11 = No_Penerbit A26 = Release
A12 = Tahun A27 = No_Mahasiswa
A13 = Ket_Edisi A28 = No_Program_Studi
A14 = Kolasi A29 = Tahun_Angkatan
A15 = Bibliografi
8

Berdasarkan akses queri terhadap atribut-atribut di atas maka Muse-nya

adalah sebagai berikut :

Gambar 3.7. Matriks Use

2. Matriks Frekuensi akses (Macc)

Matriks frekuensi akses menggambarkan frekuensi akses qi

pada setiap lokasi Lk (Otzu, 1999). Matriks frekuensi ini sering

disebut Mfrek. Frekuensi akses queri yang dilakukan kedua lokasi

perpustakaan tersebut adalah sebagai berikut :

Gambar 3.8. Matrik Frekuensi


8

Keterangan :

L1 = Lokasi Perpustakaan Mrican

L2 = Lokasi Perpustakaan Paingan

3. Matriks Affinitas (MAff)

Matriks affinitas didapat dari matrik use dan matrik frekuensi.

Ukuran atribut affinitas antara dua atribut Ai dan Aj dari relasi

R(A1,A2,…,An) dengan sekumpulan aplikasi Q = {q1,q2,…,qn}

didefinisikan sebagai berikut :

Aff(Ai Aj,) =  ref (qk )accl(qk (Otzu, 1999)


)
k |use( qk , Ai 1use(qk , Aj ) 1 Sl

Hasil dari penghitungan matrik affinitas adalah sebagai berikut :

Gambar 3.9. Matrik Affinitas

4. Matriks Cluster

Matriks cluster digunakan untuk menemukan pasangan atribut

yang diakses atau pada sebagian besar pasangan aplikasi tertentu.

Masukan dari matriks cluster adalah dari maff (Otzu, 1999). Dari

maff akan dihitung angka bond, yaitu angka yang melambangkan


8

jumlahan dari perkalian angka affinitas dua atribut. Rumus yang

digunakan untuk menghitung angka bond adalah :

Tabel 3.9. Tabel Rumus untuk Menghitung Angka Bond

A1 A2 … An … Am … Ai
A1 X1 Y1
A2 X2 Y2
… … …
An Xn Yn
… … …
Am Xm Ym
… … …
Ai Xi Yi

Angka bond untuk (An, Am) :

(X1*Y1)+(X2*Y2)+…+(Xn*Yn)+(Xm*Ym)+…+(Xi*Yi) (Otzu, 1999)

Setelah angka bond dihitung, langkah selanjutnya adalah

menghitung angka kontribusi atau lebih dikenal dengan angka cont

untuk penampatan setiap atribut. Angka cont dihitung menggunakan

rumus :

Cont(Ai, Aj, Ak) = 2*bond(Ai, Aj) + 2*bond(Aj, Ak) – 2*bond(Ai, Ak)

(Otzu, 1999)

Pertama salin kolom 1 dan 2, kemudian sisipkan kolom 3. Sehingga

ada 3 alternatif penempatan kolom 3.

 3,1,2

 1,3,2

 1,2,3

Untuk kolom 3,1,2 maka untuk memudahkan perhitungan,

diandaikan ada kolom ke 0 dengan nilai 0 sehingga yang dihitung


8

adalah kolom 0,3,1. Begitu juga dengan kolom 1,2,3 dihitung kolom

2,3,0. Dari perhitungan dengan menggunakan rumus di atas maka

didapatkan susunan kolom sebagai berikut :

Gambar 3.10. Matrik Cluster

Setelah matrik cluster ditemukan, maka langkah yang berikutnya adalah :

a. Mencari himpunan atribut yang diakses oleh aplikasi qi yaitu :

q1 = {A3,A7,A20,A21} q11 = {A3,A6,A10,A11,A12}


q2 = {A3,A6,A7,A20,A21} q12 = {A3,A10,A11,A12,A23}
q3 = {A3,A7,A9,A10,A14} q13 = {A3,A6,A11,A12,A23} q14
q4 = {A3,A7,A10,A11,A20} = {A6,A7,A10,A11,A23}
q5 = {A3,A7,A9,A13,A20} q15 = {A3,A6,A9,A10,A11,A12,A23} q16
q6 = {A6,A10,A11,A12,A22} = {A3,A10,A11}
q7 = {A3,A6,A11,A22} q17 = {A3,A9,A10,A11} q18
q8 = {A3,A10,A11,A12,A22} = {A3,A10,A11,A12}
q9 = {A3,A10,A11,A22} q19 = {A3,A9,A10,A11,A22}
q10 = {A3,A6,A10,A11,A12,A23} q20 = {A3,A6,A10,A11,A12,A13}
8

q21 = {A3,A6,A9,A10,A11,A12,A23} q25 = {A3,A6,A8,A10,A12,A20}

q22 = {A3,A6,A8,A10,A11,A12} q26 = {A3,A6,A12,A13,A27,A28,A29}

q23 = {A3,A8,A10,A11,A12} q27 = {A3,A6,A8,A9,A10,A12,A13}

q24 = {A3,A6,A8,A12,A20,A26,A27}

b. Menghitung total frekuensi akses untuk setiap aplikasi qi pada semua

lokasi

Tabel 3.10. Tabel Total Frekuensi Akses

c. Membagi matrik cluster

Matriks cluster akan dibagi menjadi 2 dengan 28 cara.

Gambar 3.11. Matrik Cluster


8

Gambar 3.12. Matrik Cluster M2

Gambar 3.13. Matrik Cluster M3

Gambar 3.14. Matrik Cluster


8

Gambar 3.15. Matrik Cluster M5

Gambar 3.16. Matrik Cluster M6

Gambar 3.17. Matrik Cluster


8

Gambar 3.18. Matrik Cluster M8

Gambar 3.19. Matrik Cluster M9

Gambar 3.20. Matrik Cluster


9

Gambar 3.21. Matrik Cluster M11

Gambar 3.22. Matrik Cluster M12

Gambar 3.23. Matrik Cluster


9

Gambar 3.24. Matrik Cluster M14

Gambar 3.25. Matrik Cluster M15

Gambar 3.26. Matrik Cluster


9

Gambar 3.27. Matrik Cluster M17

Gambar 3.28. Matrik Cluster M18

Gambar 3.29. Matrik Cluster


9

Gambar 3.30. Matrik Cluster M20

Gambar 3.31. Matrik Cluster M21

Gambar 3.32. Matrik Cluster


9

Gambar 3.33. Matrik Cluster M23

Gambar 3.34. Matrik Cluster M24

Gambar 3.35. Matrik Cluster


9

Gambar 3.36. Matrik Cluster M26

Gambar 3.37. Matrik Cluster M27

Gambar 3.38. Matrik Cluster


96

d. Langkah berikutnya adalah mencari TQ, BQ, dan OQ.

TQ : Aplikasi qi dimana himpunan atribut yang diakses oleh aplikasi qi

merupakan himpunan bagian dari CT (Otzu, 1999).

TQ ={qi|AQ(qi)  CT}

BQ : Aplikasi qi dimana himpunan atribut yang diakses oleh aplikasi qi

merupakan himpunan bagian dari CB (Otzu, 1999).

BQ ={qi|AQ(qi)  CB}

OQ : Aplikasi qi selain TQ dan BQ (Otzu, 1999).

OQ = Q - {TQ  BQ}

Untuk M1 : TQ : {0} BQ : {q1,q2,…,q27} OQ : {0}

Untuk M2 : TQ : {0} BQ : {q1,q2,…,q27} OQ : {0}

Untuk M3 : TQ : {0} BQ : {q1,q2,q4,…,q27} OQ : {q3}

Untuk M4 : TQ : {0} BQ : {q1,q2,q6,q7,q8,q9,q10,q11,q12,q13,q15,q16,

q17,q18, q19,q20q21,q22,q23,q24,q25,q26,q27}

OQ : {q3,q4,q5,q14}

Untuk M5 : TQ : {0} BQ : {q6,q7,q8,q9,q10,q11,q12,q13,q15,q16,q17,q18,q19,

q20,q21,q22,q23,q26,q27} OQ : {q1,q2,q3,q4,q5,q14,q24,q25}

Untuk M6 : TQ : {0} BQ : {q6,q7,q8,q9,q10,q11,q12,q13,q15,q16,q17,q18,q19,

q20q21,q26} OQ : { q1,q2,q3,q4,q5,q14,q22,q23,q24,q25,q27}

Untuk M7 : TQ : {0} BQ : {q6,q7,q8,q9,q10,q11,q12,q13,q16,q18,q20q21,q26}

OQ : { q1,q2,q3,q4,q5,q14,q15,q17,q19,q22,q23,q24,q25,q27}

Untuk M8 : TQ : {0} BQ : {q7,q9,q11,q16} OQ : {q1,q2,q3,q4,q5,q6,q8,q10,

q12,q13,q14,q15 ,q17,q18,q19,q20,q21,q22,q23,q24,q25,q26,q27}
9

Untuk M9 : TQ : {0} BQ : {q7} OQ : {q1,q2,q3,q4,q5,q6,q8,q9,q10,q11,q12,

q13, q14,q15 ,q16,q17,q18,q19,q20,q21,q22,q23,q24,q25,q26,q27}

Untuk M10 : TQ : {0} BQ : {0} OQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,

q12,q13,q14,q15,q16,q17,q18,q19,q20,q21,q22,q23,q24,q25,q26,q27}

Untuk M11 : TQ : {q3,q4,q16,q17,q18,q19,q23} BQ : {0} OQ : {q1,q2,q5,

q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q20,q21,q22,q24,q25,q26,q27}

Untuk M12 : TQ : {q3,q4,q16,q17,q18,q19,q20,q21,q22,q23,q25} BQ : {0} OQ

: {q1,q2,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q24,q26,q27}

Untuk M13 : TQ : {q3,q4,q10,q11,q12,q13,q14,q15,q16,q17,q18,q19,q20,q21,

q22,q23,q25} BQ : {0} OQ : {q1,q2,q5,q6,q7,q8,q9,q24,q26,q27}

Untuk M14 : TQ : {q3,q4,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18,

q19,q20,q21,q22,q23,q25} BQ : {0} OQ : {q1,q2,q5,q24,q26,q27}

Untuk M15 : TQ : {q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,

q18,q19,q20,q21,q22,q23,q25,q27} BQ : {0} OQ : {q1,q2,q24,q26}

Untuk M16 : TQ : {q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,

q18,q19,q20,q21,q22,q23,q25,q27} BQ : {0} OQ : {q1,q2,q24,q26}

Untuk M17 : TQ : {q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,

q18,q19,q20,q21,q22,q23,q25,q27} BQ : {0} OQ : {q1,q2,q24,q26}

Untuk M18 : TQ : {q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,

q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q1,q2,q24}

Untuk M19 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}


9

Untuk M20 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M21 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M22 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M23 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M24 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M25 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M26 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M27 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q25,q26,q27} BQ : {0} OQ : {q24}

Untuk M28 : TQ : {q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,

q17,q18,q19,q20,q21,q22,q23,q24,q25,q26,q27} BQ : {0} OQ : {0}

e. Menghitung jumlah akses total atribut oleh setiap aplikasi dengan

mencari : CTQ, CBQ, dan COQ. Dimana CTQ adalah jumlah akses

total untuk aplikasi qi dari himpunan TQ, CBQ adalah jumlah akses
9

total untuk aplikasi qi dari himpunan BQ, dan COQ adalah jumlah

akses total untuk aplikasi qi dari himpunanOQ (Otzu, 1999).

Untuk M1 : CTQ : 0, CBQ : 625, COQ : 0

Untuk M2 : CTQ : 0, CBQ : 625, COQ : 0

Untuk M3 : CTQ : 0, CBQ : 600, COQ : 25

Untuk M4 : CTQ : 0, CBQ : 515, COQ : 110

Untuk M5 : CTQ : 0, CBQ : 430, COQ : 195

Untuk M6 : CTQ : 0, CBQ : 375, COQ : 250

Untuk M7 : CTQ : 0, CBQ : 295, COQ : 330

Untuk M8 : CTQ : 0, CBQ : 80, COQ : 545

Untuk M9 : CTQ : 0, CBQ : 35, COQ : 590

Untuk M10 : CTQ : 0, CBQ : 0, COQ : 625

Untuk M11 : CTQ : 200, CBQ : 0, COQ : 425

Untuk M12: CTQ : 265, CBQ : 0, COQ : 360

Untuk M13: CTQ : 415, CBQ : 0, COQ : 210

Untuk M14 : CTQ : 505, CBQ : 0, COQ : 120

Untuk M15 : CTQ : 545, CBQ : 0, COQ : 80

Untuk M16 : CTQ : 545, CBQ : 0, COQ : 80

Untuk M17 : CTQ : 545, CBQ : 0, COQ : 80

Untuk M18 : CTQ : 545, CBQ : 0, COQ : 80

Untuk M19 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M20 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M21 : CTQ : 595, CBQ : 0, COQ : 30


10

Untuk M22 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M23 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M24 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M25 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M26 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M27 : CTQ : 595, CBQ : 0, COQ : 30

Untuk M28 : CTQ : 625, CBQ : 0, COQ : 0

f. Menghitung nilai kualitas untuk split (sq)

Rumus :

sq = CTQ * CBQ –COQ2 (Otzu, 1999)

Untuk M1 : sq = ( 0 * 625 ) - 02 =0

Untuk M2 : sq = ( 0 * 625 ) - 02 =0

Untuk M3 : sq = ( 0 * 600 ) - 252 = - 625

Untuk M4 : sq = ( 0 * 515 ) - 1102 = - 12100

Untuk M5 : sq = ( 0 * 450 ) - 1952 = - 38025

Untuk M6 : sq = ( 0 * 375 ) - 2502 = - 62500

Untuk M7 : sq = ( 0 * 295 ) - 3302 = - 108900

Untuk M8 : sq = ( 0 * 80 ) - 5452 = - 297025

Untuk M9 : sq = ( 0 * 35 ) - 5902 = - 348100

Untuk M10 : sq = ( 0 * 0 ) - 6252 = - 390625

Untuk M11 : sq = ( 200 * 0 ) - 4252 = - 180625

Untuk M12 : sq = ( 265 * 0 ) - 3602 = - 129600

Untuk M13 : sq = ( 415 * 0 ) - 2102 = - 44100


10

Untuk M14 : sq = ( 505 * 0 ) - 1202 = - 14400

Untuk M15 : sq = ( 545 * 0 ) - 802 = - 6400

Untuk M16 : sq = ( 545 * 0 ) - 802 = - 6400

Untuk M17 : sq = ( 545 * 0 ) - 802 = - 6400

Untuk M18 : sq = ( 545 * 0 ) - 802 = - 6400

Untuk M19 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M20 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M21 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M22 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M23 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M24 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M25 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M26 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M27 : sq = ( 595 * 0 ) - 302 = - 900

Untuk M28 : sq = ( 625 * 0 ) - 02 =0

Karena ada 3 nilai sq terbesar maka bisa dipilih salah satu, disini akan

dipilih M2. maka hasil fragmentasi vertikal yang terbentuk adalah :

F1 terdiri dari atribut : A1,A2

F2 terdiri dari atribut : A1,A14,A7,A20,A8,A9,A12,A10,A11,A3,A6,A23,A22,

A13,A27,A28,A29,A21,A4,A5,A15,A16,A17,A18,A19, A24,A25,A26 (A1 adalah

kunci primer)

Fragmentasi vertikal di atas tidak cocok diterapkan pada basis

data perpustakaan USD karena aplikasi klien dari perpustakaan Mrican


10

atau Paingan tidak mengakses semua kolom dari tabel BUKU.

Aplikasi klien dari perpustakaan Mrican dan Paingan mengakses baris

(row) dari tabel BUKU dan hasil kueri yang diharapkan adalah

menampilkan data buku sesuai dengan kueri yang diminta oleh

pengguna.

3.7.4 Perhitungan Total Biaya

Perhitungan biaya ini akan dilakukan pada hasil fragmentasi

horisontal dengan dua strategi yaitu :

Strategi A : Memanfaatkan relasi BUKU dan KLASIFIKASI yang

terfragmentasi dengan cara sama untuk melakukan operasi select dan

join secara paralel.

Strategi B : Memusatkan semua data pada result-site sebelum

memproses kueri sesuai dengan sistem yang masih diterapkan oleh

Perpustakaan USD pada saat ini.

Berdasarkan pengamatan yang dilakukan penulis, aplikasi perpustakaan

Paingan meminta kueri :

1. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”pemrograman”.

2. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Aljabar”.

3. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Grammar”.


10

4. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Linux”

5. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Psikoterapi”

6. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Fisika Modern”.

7. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Matematika Dasar”.

8. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Farmakologi”

9. Mencari data buku dengan kategori pencarian berdasarkan judul

buku dan kata kunci ”Robotika”

Ekspresi kuari kalkulus relasional, memakai sintaks SQL :

1. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "%pemrograman%";

2. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Aljabar %";

3. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Grammar %";

4. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Linux %";

5. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Psikoterapi %";


10

6. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Fisika Modern %";

7. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Matematika Dasar %";

8. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Farmakologi %";

9. select * from buku b,klasifikasi k where b.id_buku=k.id buku and

b.judul_buku like "% Robotika %";

Kueri kalkulus relasional di atas kemudian ditransformasikan menjadi

kueri aljabar yang ekuivalen yaitu :

1. ∏ * (BUKU id_buku ( σ judul_buku like “%pemrograman%”

(KLASIFIKASI))

2. ∏ * (BUKU id_buku ( σ judul_buku like “%Aljabar%”

(KLASIFIKASI))

3. ∏ * (BUKU id_buku ( σ judul_buku like “%Grammar%”

(KLASIFIKASI))

4. ∏ * (BUKU id_buku ( σ judul_buku like “%Linux%”

(KLASIFIKASI))

5. ∏ * (BUKU id_buku ( σ judul_buku like “%Psikoterapi%”

(KLASIFIKASI))

6. ∏ * (BUKU id_buku ( σ judul_buku like “%Fisika Modern%”

(KLASIFIKASI))
10

7. ∏ * (BUKU id_buku ( σ judul_buku like “%Matematika

Dasar%” (KLASIFIKASI))

8. ∏ * (BUKU id_buku ( σ judul_buku like “%Farmakologi%”

(KLASIFIKASI))

9. ∏ * (BUKU id_buku ( σ judul_buku like “%Robotika%”

(KLASIFIKASI))

Relasi relasi antara BUKU dan KLASIFIKASI terfragmentasi horisontal

sebagai berikut :

BUKU1 = σ (buku.klasifikasi like "00%" or buku.klasifikasi like "15%"

or buku.klasifikasi like "50%" or buku.klasifikasi like "60%"

or buku.klasifikasi like "61%" or buku.klasifikasi like "62%"

or buku.klasifikasi like "63%" or buku.klasifikasi like "66%"

or buku.klasifikasi like "67%" or buku.klasifikasi like "68%"

or buku.klasifikasi like "69%") (BUKU)

BUKU2 = σ NOT (buku.klasifikasi like "00%" or buku.klasifikasi like

"15%" or buku.klasifikasi like "50%" or buku.klasifikasi like

"60%" or buku.klasifikasi like "61%" or buku.klasifikasi like

"62%" or buku.klasifikasi like "63%" or buku.klasifikasi like

"66%" or buku.klasifikasi like "67%" or buku.klasifikasi like

"68%" or buku.klasifikasi like "69%") (BUKU)

KLASIFIKASI1 = σ (klasifikasi like "00%" or klasifikasi like "15%" or

klasifikasi like "50%" or klasifikasi like "60%" or klasifikasi


10

like "61%" or klasifikasi like "62%" or klasifikasi like "63%"

or klasifikasi like "66%" or klasifikasi like "67%" or

klasifikasi like "68%" or klasifikasi like "69%")

(KLASIFIKASI)

KLASIFIKASI2 = σ NOT (klasifikasi like "00%" or klasifikasi like

"15%" or klasifikasi like "50%" or klasifikasi like "60%" or

klasifikasi like "61%" or klasifikasi like "62%" or klasifikasi

like "63%" or klasifikasi like "66%" or klasifikasi like "67%"

or klasifikasi like "68%" or klasifikasi like "69%")

(KLASIFIKASI)

Fragmen BUKU1 dan KLASIFIKASI1 diletakkan di Perpustakaan

Paingan, sedangkan view BUKU1 dan KLASIFIKASI1 diletakkan pada

Perpustakaan Mrican. Hasil dari kueri diharapkan berada pada

Perpustakaan Paingan.

Konsumsi sumber daya, dengan model simple-cost (Otzu, 1999)

 Tuple-access : tupacc adalah 1 unit (Otzu, 1999)

 Tuple-transfer : tuptrans adalah 10 unit (Otzu, 1999)

 Relasi BUKU1 memiliki 164 tuple

 Relasi KLASIFIKASI1 memiliki 720 tuple

 View BUKU1 memiliki 164 tuple

 View KLASIFIKASI1 memiliki 720 tuple

 Relasi ASAL memiliki 41 tuple


10

 Relasi BAHASA memiliki 123 tuple

 Relasi JENIS_BUKU memiliki 9 tuple

 Relasi PENERBIT memiliki 16743 tuple

 Relasi BUKU secara lokal terikat pada atribut id_buku. Yaitu,

terdapat akses langsung ke tuple-tuple BUKU yang berdasarkan

nilai atribut id_buku.

Tabel 3.10. Tabel Total Biaya Dari Strategi A pada SBDT Perpustakaan
1. Produce BUKU1 dengan Select BUKU1 perlu 164*tupacc 164
2. Produce KLASIFIKASI1 dengan Select KLASIFIKASI1 perlu
720
720* tupacc
3. Join BUKU1 ,ASAL, BAHASA, JENIS_BUKU, PENERBIT dan
KLASIFIKASI1 perlu ((164*tupacc)+(41* tupacc)+ (123* tupacc)+ 17800
(9* tupacc) + (16743* tupacc)+(720*tupacc)
TOTAL BIAYA 18684

Tabel 3.11. Tabel Total Biaya Dari Strategi B pada SBDT Perpustakaan
1. Transfer BUKU1 ke lokasi perpustakaan Paingan perlu 164*tuptrans 1640
2. Transfer KLASIFIKASI1 ke lokasi perpustakaan Paingan perlu 720 *
7200
tuptrans
4. 5. Join BUKU1 ,ASAL, BAHASA, JENIS_BUKU, PENERBIT dan
KLASIFIKASI1 perlu ((164*tupacc)+(41* tupacc)+ (123* tupacc)+ 17800
(9* tupacc) + (16743* tupacc)+(720*tupacc)
TOTAL BIAYA 26640

Dilihat dari hasil perhitungan total biaya di atas, strategi A menghasilkan

total biaya yang lebih sedikit. Dengan demikian, Strategi A merupakan

strategi yang lebih baik untuk distribusi data di antara lokasi-lokasi.


10

3.8 PERANCANGAN USER INTERFACE

3.8.1 Form Utama Perpustakaan Mrican

Form ini mucul saat pertama kali user menjalankan aplikasi ini. Form

ini berisi pilihan untuk penelusuran data buku, pilihan tentang

program, pilihan bantuan, dan pilihan profil pembuat.

Gambar 3.39. Form Utama Perpustakaan Mrican

3.8.2 Form Penelusuran Buku Perpustakaan Mrican

Form ini muncul jika user memilih pilihan penelusuran buku pada

form utama.
10

Gambar 3.40. Form Penelusuran Buku Perpustakaan Mrican


11

3.8.3 Form Utama Perpustakaan Paingan

Gambar 3.41. Form Utama Perpustakaan Paingan

3.8.4 Form Penelusuran Buku Perpustakaan Paingan

Gambar 3.42. Form Penelusuran Buku Perpustakaan Paingan


BAB IV

IMPLEMENTASI

4.1 IMPLEMENTASI KOMPUTER SERVER

Implementasi komputer server dilakukan pada dua komputer yang

berbeda, yaitu komputer server perpustakaan Mrican dan komputer server

perpustakaan Paingan dengan koneksi jaringan LAN. Simulasi dilakukan

dengan dua buah komputer, komputer 1 sebagai server perpustakaan

Mrican dan komputer 2 sebagai server perpustakaan Paingan. Supaya

komputer dapat saling bertukar informasi maka terlebih dahulu dilakukan

pengaturan jaringan.

4.1.1 Pengaturan komputer Perpustakaan Mrican

Nama komputer server : MRICAN

Langkah yang dilakukan :

a. Klik kanan pada My Network Places € properties

b. Kemudian klik kanan pada Local Area Connection € properties

c. Pada daftar item koneksi pilih Internet Protocol (TCI/IP) €


properties

d. Kemudian isikan IP Address : 192.168.0.5

e. Isikan Subnet Mask : 255.255.255.0

f. Klik OK

111
11

4.1.2 Pengaturan komputer Perpustakaan Paingan

Nama komputer server : PAINGAN

Langkah yang dilakukan :

a. Klik kanan pada My Network Places € properties

b. Kemudian klik kanan pada Local Area Connection € properties

c. Pada daftar item koneksi pilih Internet Protocol (TCI/IP) €


properties

d. Kemudian isikan IP Address : 192.168.0.1

e. Isikan Subnet Mask : 255.255.255.0

f. Klik OK

Langkah-langkah implementasi pada komputer server basis data di MySql

server adalah sebagai berikut :

1. Membuat basis data baru pada masing-masing komputer server.

Struktur basis data pada masing-masing komputer server sama, hal ini

disebabkan karena digunakannya metode fragmentasi horizontal pada

aplikasi ini. Untuk dapat membuat basis data, pada masing-masing

komputer server harus terinstal MySQL server sebagai server basis

data dan SQLyog sebagai antarmuka server basis data. Langkah

pertama akan dibuat basis data untuk komputer server perpustakaan

Mrican.
11

Gambar 4.1. Koneksi ke MySQL Server

2. Membuat basis data baru pada server perpustakaan Mrican dengan

klik kanan pada root@192.168.0.5 € create database . Beri nama

pada basis data baru dengan nama db_Mrican.

Gambar 4.2. Membuat Basis Data Baru


11

3. Pada basis data db_Mrican akan dibuat tabel baru, caranya klik kanan

€ create table. Kemudian masukkan nama-nama fields yang

digunakan, dan atur properti fields yang dipilih. Setelah itu klik

tombol create table pada antarmuka, dan beri nama tabel (buku)

€ OK. Tabel buku sudah terbentuk.

Gambar 4.3. Membuat Tabel Baru

4. Membuat desain tabel sesuai dengan fagmen data. Seperti sudah

disampaikan sebelumnya, bahwa struktur tabel pada kedua komputer

sama. Kesamaan struktur tabel ini disebabkan karena disini metode

implementasi fragmentasi yang digunakan adalah horizontal. Setelah

struktur tabel dibuat, masukan datanya menurut hasil fragmentasi.


11

Setelah basis data dan tabel pada server perpustakaan Mrican,

selanjutnya adalah meng-copy-kan basis data beserta tabel dari server

perpustakaan Mrican ke server perpustakaan Paingan.

4.2 IMPLEMENTASI KOMPUTER KLIEN

Implementasi komputer klien ini dilakukan pada masing-masing

komputer klien perpustakaan Mrican dan komputer klien perpustakaan

Paingan dengan jaringan LAN. Implementasi komputer klien ini akan

disimulasikan dengan dua komputer yaitu komputer 1 untuk klien

perpustakaan Mrican, dan komputer 2 untuk klien perpustakaan Painngan.

Aplikasi klien diimplementasikan dengan menggunakan Microsoft

Visual Basic 2005. Microsoft Visual Basic 2005 mempunyai akses data

dengan ADO.Net (ActiveX Data Objects). Objek-objek ini memungkinkan

untuk mengakses data dalam basis data server melalui OLE.DB provider

apapun seperti MySQL server. Dalam aplikasi ini ADO.Net yang

digunakan adalah SqlConnection. SqlConnection adalah salah satu contoh

dari object connection yang mengatur koneksi dengan basis data. Object

Connection digunakan untuk membuka koneksi, mengatur atau memanggil

properti-properti dalam koneksi, dan menangani event-event yang

berkaitan dengan koneksi.

4.2.1 Implementasi Komputer Klien pada Perpustakaan Mrican

Implementasi komputer klien pada Perpustakaan Mrican

ditampilkan dalam form-form.


11

a. Form Utama

Form ini muncul pertama kali dalam aplikasi ini. Form ini berisi

menu-menu antara lain menu penelusuran data buku, menu tentang

program, menu bantuan, dan menu untuk keluar dari program.

Gambar 4.5. Form Utama Perpustakaan Mrican

b. Form Penelusuran Data Buku Perpustakaan Mrican

Form ini muncul setelah pengguna memilih menu Penelusuran

buku pada form utama. Form ini digunakan untuk menelusuri data

buku, form ini meminta masukkan dari pengguna berupa kata

kunci, dan kategori pencarian.


11

Gambar 4.6. Form Penelusuran Data Buku Perpustakaan

Mrican

c. Form Tentang Program

Form ini muncul setelah pengguna memilih menu Tentang

Program pada form utama. Form ini berisi informasi tentang

program.
11

Gambar 4.7. Form Tentang Program

d. Form Bantuan

Form ini muncul setelah pengguna memilih menu Bantuan pada

form utama. Form ini berisi petunjuk pemakaian program.

Gambar 4.8. Form Petunjuk Pemakaian Program


11

e. Form Profil Pembuat

Form ini muncul setelah pengguna memilih menu Profil Pembuat

pada form utama. Form ini berisi profil pembuat program.

Gambar 4.9. Form Profil Pembuat

f. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Kesusasteraan

Gambar 4.10. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Kesusasteraan
12

g. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Manajemen

Gambar 4.11. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai Buku
Manajemen

h. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Ekonomi

Gambar 4.12. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai
Buku
12

i. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Sejarah

Gambar 4.13. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai Buku
Sejarah

j. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Bahasa

Gambar 4.14. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai
Buku
12

4.2.2 Implementasi Komputer Klien pada Perpustakaan Paingan

Implementasi komputer klien pada Perpustakaan Paingan

ditampilkan dalam form-form.

a. Form Utama

Form ini muncul pertama kali dalam aplikasi ini. Form ini berisi

menu-menu antara lain menu penelusuran data buku, menu tentang

program, menu bantuan, dan menu untuk keluar dari program.

Gambar 4.15. Form Utama Perpustakaan Paingan

b. Form Penelusuran Data Buku Pada Perpustakaan Paingan

Form ini muncul setelah pengguna memilih menu Penelusuran

buku pada form utama. Form ini digunakan untuk menelusuri data

buku, form ini meminta masukkan dari pengguna berupa kata

kunci, dan kategori pencarian.


12

Gambar 4.16. Form Penelusuran Data Buku Perpustakaan

Paingan

c. Form Tentang Program

Form ini muncul setelah pengguna memilih menu Tentang

Program pada form utama. Form ini berisi informasi tentang

program.

Gambar 4.17. Form Tentang Program


12

d. Form Profil Pembuat

Form ini muncul estela pengguna memilih menú Profil Pembuat

pada form utama. Form ini berisi profil pembuat program.

Gambar 4.18. Form Profil Pembuat

e. Form Bantuan

Form ini muncul setelah pengguna memilih menu Bantuan pada

form utama. Form ini berisi petunjuk pemakaian program

Gambar 4.19. Form Petunjuk Penggunaan Program


12

f. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Ilmu Komputer

Gambar 4.20. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai Ilmu
Komputer

g. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Psikologi

Gambar 4.21. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai
Buku Psikologi
12

h. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Matematika

Gambar 4.22. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai Buku
Matematika

i. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Fisika

Gambar 4.23. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai
Buku
12

j. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Farmasi

Gambar 4.24. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai Buku
Farmasi

k. Form Penelusuran Data Buku Yang Menampilkan Data Buku

Dengan Klasifikasi Sebagai Buku Teknik

Gambar 4.25. Form Penelusuran Data Buku Yang


Menampilkan Data Buku Dengan Klasifikasi Sebagai
Buku
BAB V

PENUTUP

5.1 KESIMPULAN

a. Dari hasil penelitian yang dilakukan penulis, maka dapat disimpulkan

bahwa metode fragmentasi vertikal tidak cocok diterapkan pada basis data

perpustakaan. Metode fragmentasi yang digunakan adalah metode

fragmentasi horizontal.

b. Dari hasil penelitian yang dilakukan oleh penulis, maka dapat disimpulkan

bahwa Sistem Basis Data Terdistribusi dengan metode fragmentasi

horisontal menggunakan total biaya yang lebih sedikit daripada sistem

yang digunakan saat ini. Sistem yang digunakan saat ini adalah sistem

basis data yang terpusat.

c. Aplikasi pada komputer server di lokasi Perpustakaan Mrican dan Paingan

diimplementasikan berdasarkan alokasi fragmen data yang sudah

ditentukan. Server basis data melaksanakan tugas kueri yang dikirim oleh

komputer klien, dan kemudian hasil eksekusi dikirimkan ke komputer

klien.
d. Aplikasi pada komputer klien Perpustakaan Mrican Maupun Perpustakaan

Paingan mengakses basis data di kedua komputer server Mrican dan

Paingan dengan menjalankan atau mengeksekusi kueri yang dikirim oleh

klien.

5.2 SARAN

a. Sistem Basis Data Terdistribusi ini dapat dikembangkan lagi sehingga

pengguna dapat lebih banyak melakukan manipulasi data dengan insert,

update, delete, dsb.

b. Membuat program sederhana pada server basis data untuk menemukan

data pada beberapa basis data yang tersebar di beberapa lokasi.


DAFTAR PUSTAKA

Pressman, Roger S. (1992). Software Engineering A Practitioner’s Approach

Third Edition. McGraw Hill, Inc.

Crichlow,J.M. (1948). An Introduction to Distributed and Paralel Computing.

New York : Prentice Hall International (UK) Ltd.

Ozsu,M.T. dan Patrick, V. (1999). Principles of Distributed Database System.

USA: McGraw Hill.

Ramakrishnan, Raghu dan Gehrke, J. (2003). Database Management System.

USA:McGraw Hill.

McFadden, Fred. Dan Hoffer, Jeffrey. (1994). Modern Database System (4rd)

Philiphines :Benjamin/Cummings.

Melvil, Dewey. (2003). Library of Congress Cataloging-in-Publication Data.

USA: (OCLC) Online Computer Library Center, Inc.

Atmaja, Agnes Nurina Desi. (2005). Implementasi Sistem Basis Data

Terdistribusi dengan Fragmentasi Vertikal. Skripsi. Yogyakarta :

Universitas Sanata Dharma.


Kusumawaty, Mathilda Indah. (2008). Konsep Dan Implementasi Fragmentasi

Horisontal pada Sistem Basis Data Terdistribusi (Studi Kasus :

Database Perusahaan Departemen Tenaga Kerja, Sosial dan Keluarga

Berencana Kabupaten Sleman).. Skripsi. Yogyakarta : Universitas Sanata

Dharma.

Korth, H.F. dan Ambraham Silberchatz. Database System Concepts.

http://www.ise.gmu.edu/~ami/teaching/mfs760/slides

Diakses tanggal 23 Februari 2008.

Gertz, Michael. Distributed Database System.

http://www.db.cs.ucdavis.edu/teaching/165B-SQ06/Handouts/distdb.pdf

Diakses tanggal 21 April 2008

Gertz, Michael. Design Strategies for Distributed & Centralized Databases.

http://www.db.cs.ucdavis.edu/teaching/165B-SQ06/Handouts/distdb2.pdf

Diakses tanggal 21 April 2008

http://www.itee.uq.edu.au/~infs3200/Tutorials/Solutions/Solution2Process
ing.doc

http://www.itee.adfa.edu.au/coursework/ZITE8109/DistributedDBDesign.
ppt

http://infolab.usc.edu/csci585/Spring2006/Lectures/Session17-Design.pdf

Diakses tanggal 12 Desember 2007

Anda mungkin juga menyukai