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

repository.usd.ac.id · SKRIPSI IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI P ADA PERPUSTAKAAN UNIVERSITAS SANATA DHARMA YOGYAKARTA Dipersiapkan dan ditulis oleh : Andreas Wahyu

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

  • 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 PAD A

    PERPUSTAKAAN UNIVERSITAS SANATA DHARMA YOGYAKARTA

    Oleh:

    Andreas Wahyu Utama

    NIM : 033124038

    Telah disetujui oleh :

    Pembimbing

    A. Rita Widiarti, S.Si.,M.Kom.

    III

    Tanggal, 8 Oktober 2008

  • SKRIPSI

    IMPLEMENTASI SISTEM BASIS DATA TERDISTRIBUSI PADA

    PERPUSTAKAAN UNIVERSITAS SANATA DHARMA YOGYAKARTA

    Dipersiapkan dan ditulis oleh :Andreas Wahyu Utama

    NIM: 033124038

    Yogyakarta, 8 Oktober 2008

    -::)/: ,\.

    Tanda Tangan

    ~~J~VL_~+~U=--~'

    Nama Lengkap

    Susunan Tim Penguji

    Telah dipertahankan di depan Tim Pengujipada tanggal8 Oktober 2008

    dan dinyatakan memenuhi syarat

    : Sri Hartati Wijono, S.Si., M.Kom.

    : A. Rita Widiarti, S.Si.,M.Kom.

    : St. Eko Hari Parmadi, S.Si.,M.Kom.

    Ketua

    Anggota

    Sekretaris

    Fakultas Sains dan Teknologi

    ( Jr. Greg Heliarko SJ.,S.S.,M.Sc.,M.A.)

    IV

  • 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 : [email protected] 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

    xvii

  • 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

    xviii

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

    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

    xx

  • Gambar 4.24. Form Penelusuran Data Buku yang Menampilkan Data Buku

    dengan Klasifikasi Farmasi ……………………………………….. 127

    Gambar 4.25. Form Penelusuran Data Buku yang Menampilkan Data Buku

    dengan Klasifikasi Teknik ………………………………………… 127

    xxi

  • 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

    xxii

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

  • 10

    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 :

  • 11

    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

  • 12

    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.

  • 13

    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

  • 14

    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.

  • 15

    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

  • 16

    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,

  • 17

    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 .

  • 18

    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.

  • 19

    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

  • 20

    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 :

  • 21

    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 (q1) 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

  • 22

    Muse

    A1 A2 A3 A4q1 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

  • 23

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

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

    Aff(Ai Aj,) = ∑ ∑=∧= ∀1),(1,(|

    )()(AjqkuseAiqkusek Sl

    qkacclqkref

    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

    1

    3

    1l45)3()2()1()(

    kqaccqaccqaccqkacc

    Tahap 4 : Menentukan Seberapa Dekat Hubungan Atribut

    Dengan Bond Energy Algorithm (BEA).

  • 24

    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) = ∑=

    n

    zAyAzaffAxAzaff

    1),(),(

  • 25

    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 :

  • 26

    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

  • 27

    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

  • 28

    susunan yang sama seperti kolom dan hasilnya dapat dilihat

    dalam gambar .

    A1 A2 A3 A4A1 45 0

    A2 0 80

    A3 45 5

    A4 45 75

    A1 A3 A2 A4A1 45 45 0

    A2 0 5 80

    A3 45 53 5

    A4 45 48 75

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

    A1 A3 A2 A4

    A1 45 45 0 0

    A2 0 5 80 75

    A3 45 53 5 3

    A4 0 3 75 78

    A1 A2 A3 A4A1 45 45 0 0

    A3 45 53 5 3

    A2 0 5 80 75

    A4 0 3 75 78

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

    Tahap 5 : Menentukan Pemisahan Tabel dengan Mengacu

    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 :

  • 29

    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

  • 30

    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}

  • 31

    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 = ∑∑∈ ∀Qqi Sj

    )()( qiaccjqirefj

    CTQ = ∑∑∈ ∀Qqi Sj

    )()( qiaccjqirefj

    CBQ = ∑∑∈ ∀Qqi Sj

    )()( qiaccjqirefj

    COQ = ∑∑∈ ∀Qqi Sj

    )()( qiaccjqirefj

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

  • 32

    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.

  • 33

    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

  • 34

    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)

  • 35

    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.

  • 36

    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

  • 37

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

  • 38

    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

  • 39

    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 :

  • 40

    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.

  • 41

    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

  • 42

    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

  • 43

    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

  • 44

    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

  • 45

    Hasilnya adalah :

    Tabel 2.6. Tabel Derived Fragment ASG berdasar PHF

    PROJ

    ASG1

    ASG2

    ASG3

    ASG4

    Derived fragmen tabel ASG berdasar derived fragmen

    EMP

  • 46

    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.

  • 47

    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,

  • 48

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

  • 49

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

  • 50

    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.

  • 51

    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.

  • 52

    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)*tuptrans 200

    3. Produce EMP dengan join ASG dan EMP perlu

    (10+10)*tupacc*2 40

    4. Transfer EMP ke result-site perlu (10+10)*tuptrans 200

    Total Biaya 460

  • 53

    Tabel 2.9. Tabel total biaya dari strategi B

    1. Transfer EMP ke lokasi 5 perlu 400*tuptrans 4000 2. transfer ASG ke lokasi 5 perlu 1000*tuptrans 10000 3. Produce EMP dengan join ASG dan EMP perlu (10+10)*tupacc*2 1000 4. join EMP dan ASG perlu 400*20*tupacc 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 :

  • 54

    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

  • 56

    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

    perpusta