Analisis Performansi Database Ditinjau dari Aspek Optimasi Query dan Desain Model Data Relational pada DAS dan RAID

(1)

RELASIONAL PADA DAS DAN RAID

TESIS

JUANDA HAKIM LUBIS

117038067

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2013


(2)

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

JUANDA HAKIM LUBIS 117038067

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

Judul : ANALISA PERFORMANSI BASIS DATA

DITINJAU DARI ASPEK OPTIMASI QUERY DAN DESAIN MODEL DATA RELASIONAL PADA DAS DAN RAID

Kategori : Tesis

Nama : Juanda Hakim Lubis

Nomor Induk Mahasiswa : 117038067

Program Studi : Magister (S2) Teknik Informatika

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dr. Zakarias Situmorang Prof. Dr. Herman Mawengkang

Diketahui/disetujui oleh

Program Studi Magister (S2) Teknik Informatika Ketua,

Prof. Dr. H. Muhammad Zarlis NIP . 19570711 198601 1 003


(4)

ANALISIS PERFORMANSI DATABASE DITINJAU DARI ASPEK OPTIMASI QUERY DAN DESAIN MODEL DATA

RELASIONAL PADA DAS DAN RAID

TESIS

Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 25 Oktober 2013

Juanda Hakim Lubis NIM. 117038067


(5)

AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan dibawah ini :

Nama : Juanda Hakim Lubis

NIM : 117038067

Program Studi : Magister (S2) Teknik Informatika Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalty Free Right) atas tesis saya yang berjudul :

ANALISIS PERFORMANSI DATABASE DITINJAU DARI ASPEK OPTIMASI QUERY DAN DESAIN MODELDATA

RELASIONAL PADA DAS DAN RAID

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, 25 Oktober 2013

Juanda Hakim Lubis NIM. 117038067


(6)

PANITIA PENGUJI TESIS

Ketua : Prof. Dr. Herman Mawengkang Anggota : 1. Dr. Zakarias Situmorang

2. Prof. Dr. Muhammad Zarlis

3. Prof. Dr. Tulus, Vor.Dipl.Math., M.Si 4. Dr. Erna Budhiarti Nababan, M.IT


(7)

DATA PRIBADI

Nama Lengkap : Juanda Hakim Lubis, ST Tempat dan Tanggal lahir : Lhokseumawe, 10 April 1987 Alamat Rumah : Jl. Bhakti Indah V no.60

Telepon : 085311116436

E-mail : juandahakim@gmail.com

Instansi Tempat Bekerja : Dinas Kependudukan dan Catatan Sipil Alamat Kantor : JL. KH. Zainul Arifin No.17A, Stabat

DATA PENDIDIKAN

SD : SD 2 Tamansiswa TAMAT : 1999

SLTP : SLTP Yayasan Pendidikan Arun (YAPENA) TAMAT : 2002

SLTA : SMA Negeri 1 Medan TAMAT : 2005

S1 : Institut Teknologi Telkom TAMAT : 2010


(8)

Tiada sanjungan dan pujian yang berhak diucapkan, selain hanya kepada Allah SWT, yang telah memberi kemampuan dan akal kepada hamba-Nya. Salawat dan salam kepada teladan kebaikan Rasulullah SAW.Alhamdulillah, akhirnya penulis dapat menyelesaikan Tesis ini dengan bimbingan, arahan kritik dan saran serta bantuan dari pembimbing, pembanding, segenap dosen, rekan-rekan mahasiswa Program Studi Magister (S2) Teknik Informatika Universitas Sumatera Utara.

Tesis ini diajukan sebagai salah satu syarat untuk memperoleh gelar Magister Fakultas Komputer pada Program Studi Pascasarjana Magister Teknik Informatika pada Fakultas Ilmu Komputer – Teknologi Informasi Universitas Sumatera Utara.Dengan judul tesis “Analisis Performansi Database Ditinjau dari Aspek Optimasi Query dan Desain Model Data Relational pada DAS dan RAID”. Pada proses penulisan sampai dengan selesainya penulisan tesis ini, penulis mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Ayahanda dan Ibunda, terima kasih untuk semua curahan cinta dan kasih sayangnya, perhatian dorongan dan do’a yang tidak henti-hentinya. Semoga selalu dalam lindungan Allah SWT.

2. Keluarga besar: kak irma, kak efa, dan kak sari yang telah memberikan nasehat, motivasi dan doa untuk adiknya tercinta.

3. Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi sekaligus Ketua Program Studi Magister (S2) Teknik Informatika, dan M. Andri Budiman, ST, M.Comp.Sc, M.EM selaku sekretaris Program Studi Magister (S2) Teknik Informatika.

4. Prof. Dr. Herman Mawengkang dan Dr. Zakarias Situmorang selaku pembimbing yang telah membimbing penulis dengan penuh kesabaran hingga selesainya tesis ini dengan baik.

5. Prof. Dr. Muhammad Zarlis, Prof. Dr. Tulus, Vor.Dipl.Math., M.Si, Dr. Erna Budhiarti Nababan, M.IT selaku pembanding yang telah memberikan masukan dan arahan yang baik demi selesainya tesis ini.


(9)

Informasi Universitas Sumatera Utara yang telah memberikan bantuan dan pelayanan terbaik kepada penulis selama mengikuti perkuliahan hingga saat ini.

7. Vicky Laily Qonita, untuk semangat, do’a, inspirasi, mimpi yang diberikan untuk penulis. Terima kasih atas segala bentuk dukungannya selama ini.

8. Rekan mahasiswa/i angkatan ke 4 tahun 2011 pada Program Studi Magister (S2) Teknik Informatika Program Pascasarjana Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara yang telah bersama-sama saling membantu selama mengikuti perkuliahan.

9. Semua pihak yang tidak dapat penulis sebutkan satu persatu, terima kasih atas bantuan yang telah diberikan kepada penulis selama ini

Dengan segala kekurangan dan kerendahan hati, sekali lagi penulis mengucapkan terimakasih.Semoga kiranya Allah SWT membalas segala bantuan dan kebaikan yang telah diberikan.

Medan, 25 Oktober 2013 Penulis

Juanda Hakim Lubis NIM. 117038067


(10)

Jumlah data yang disimpan di piringan magnetik (disket, harddisk, dll) meningkat 100% pertahun, perdepartemen,perperusahaan sehingga diperlukan suatu upaya untuk menjaga kinerja sistem basis data agar tetap optimal.Desain basis data merupakan langkah awal yang dilakukan untuk membuat suatu sistem agar kinerja basis data agar tetap optimal.Akan tetapi proses desain belum cukup untuk meningkatkan kinerja basis data. Salah satu cara adalah dengan meningkatkan kecepatan transaksi data yaitu dengan meningkatkan kecepatan pemrosesan query dan menggunakan hardisk yang dapat diakses secara paralel. Pada penelitian ini akan dilakukan pengujian berbagai model basis data relasional dengan menggunakan berbagai jumlah data, kemudian akan dilakukan pengujian pada DAS (Direct-Attached Storage) dan RAID menggunakan berbagai query dengan outputan yang sama, sehingga akan dianalisa cost query menggunakan metode Cost Base Optimizer dan waktu pengaksesan disk.Sehingga hasil dari penelitian ini bertujuan memberikan masukan kepada administrator sistem basis data agar dapat mendesain model basis data relational dengan tepat, penggunaan teknologi hardisk dengan bijak, dan menggunakan query yang benar dalam pengambilan data dengan tujuan agar kinerja basis data tetap optimal. Hasil dari pengujian ini adalah 1) desain model basis dataakan dapat berkerja lebih optimal dengan cara melakukan pemisahan entity yang berasal dari penggunaan spesialisasi, 2) RAID 0 memiliki performansi paling baikdibandingkan DAS dan RAID-1 dikarenakan saat komputer mengakses sebuah block data di satu harddiskkomputer juga dapat mengakses block data di harddisk yang lainnya, 3) jumlah record, ukuran atribut, jenis atau bentuk query, penggunaan kolom unique key atau primary key, penggunaan order by, urutan indeks, penggunaan fungsi SQLdapat mempengaruhi cost suatu query dalam performansi query.


(11)

ABSTRACT

The amount of data that is stored in magnetic disk (floppy disk, harddisk, etc) increases 100% each year for each department for each company so an effort to maintain a database system to be optimal is needed. Designing a database is the initial step when creating a system with an optimal database performance. However, just designing the database is not enough to increase the performance of the database.One of the ways is to increase the speed of data transaction by increaseing the speed of query processing and using harddisks that can be accessed parallely. In this reaseach, the testing of different relationship database model will be done by using multiple amount of data then DAS and RAID will be tested by using multiple query with the same amount of output. The cost query then is going to be analyzed by using Cost Base Optimizer method and the disk access time. The result of this research is to give input to database system administrator to design relationship database model appropriately, to use the harddisk technology wisely, and to use the right query on retrieving records resulting the database performance optimum. The results of this testing are 1) database design model will be optimum by doing entity separation from specialize usage, 2) RAID 0 have much better performance compared to DAS and RAID-1 because when computer accessed a data block from a harddisk, the computer also can access another data block from another harddisk, 3) the amount of record, the size of attribute, the type of query, the usage of unique key or primary key column, the usage of order by, the sequence of index, the usage of SQL function can affect the cost of query in query performance.


(12)

PENGESAHAN 1i

PERNYATAAN ORISINALITAS iii

PERSETUJUAN PUBLIKASI iv

PANITIA PENGUJI v

RIWAYAT HIDUP vi

KATA PENGANTAR vii

ABSTRAK ix

ABSTRACT x

DAFTAR ISI xi

DAFTAR TABEL xiii

DAFTAR GAMBAR xiv

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Batasan Masalah 4

1.4 Tujuan Penelitian 4

1.5 Manfaat Penelitian 5

BAB 2 TINJAUAN PUSTAKA 6

2.1 Model Data 6

2.1.1 Basis Data Relasional 6

2.2 Entity Relationship Model 6

2.2.1 Entitas dan Himpunan Entitas 7

2.2.2 Atribut 8

2.2.3 Relasi 8

2.2.4 Diagram ER 11

2.3 Konversi ER ke Tabel 12

2.3.1 Himpunan Entitas Lemah 12

2.3.2 Spesialisasi 13

2.4 Normalisasi 14

2.5 Optimasi Query 14

2.5.1 Konsep Dasar Optimasi Query 14

2.5.2 Metode Akses 17

2.5.3 Perhitungan Cost Operasi Query 17

2.5.4 Pemrosesan Querypada Oracle 10g 19


(13)

2.6.2 Standar Level 22

BAB 3 METODE PENELITIAN 27

3.1 Pendahuluan 27

3.2 Rancangan Penelitian 29

3.3 Perangkat Keras dan Perangkat LunakPengujian Sistem 39

BAB 4 HASIL DAN PEMBAHASAN PENELITIAN 40

4.1 Hasil Penelitian 40

4.1.1 Hasil Penelitian Response Time 40

4.1.2 Hasil Penelitian Cost Query 48

4.2 Analisis Hasil Penelitian 50

4.2.1 Analisis Hasil Penelitian Response Time 50 4.2.2 Analisis Hasil Penelitian Cost Query Pada 55

BAB 5 KESIMPULAN DAN SARAN 59

5.1 Kesimpulan 59

5.2 Saran 60

DAFTAR PUSTAKA 61

LAMPIRAN 1 62

LAMPIRAN 2 65


(14)

TABEL 3.1. Jumlah Record pada ER Model 1 30

TABEL 3.2. Jumlah Record pada ER Model 2 30

TABEL 3.3. Jumlah Record pada ER Model 3 33

TABEL 4.1. Perbandingan Response Time pada Simple Query 41 TABEL 4.2. Perbandingan Response Time pada Aggregate Query 42 TABEL 4.3. Perbandingan Response Time pada Inner Join Query 43 TABEL 4.4. Perbandingan Response Time pada Outer Join Query 44 TABEL 4.5. Perbandingan Response Time pada Subquery 45 TABEL 4.6. Perbandingan Response Time pada Correlated Query 46 TABEL 4.7. Perbandingan Response Time pada Kompleks Query 47


(15)

GAMBAR 2.1. Himpunan Entitas Mahasiswa 7

GAMBAR 2.2. Contoh Himpunan Entitas 8

GAMBAR 2.3. Gambaran Himpunan Entitas di Tabel 8

GAMBAR 2.4. Relasi digambarkan dengan belah ketupat 9

GAMBAR 2.5. Relasi dengan Kardinalitas 1 ke 1 9

GAMBAR 2.6. Relasi dengan Kardinalitas 1 ke Banyak 10 GAMBAR 2.7. Relasi dengan Kardinalitas Banyak ke 1 10 GAMBAR 2.8. Relasi dengan Kardinalitas Banyak ke Banyak 11

GAMBAR 2.9. Contoh Diagram ER 11

GAMBAR 2.10. Contoh Himpunan Entitas Lemah 12

GAMBAR 2.11. Contoh Spesialisasi 13

GAMBAR 2.12. Tahapan Pemrosesan Query 15

GAMBAR 2.13. RAID 0 23

GAMBAR 2.14. RAID 1 23

GAMBAR 2.15. RAID 2 24

GAMBAR 2.16. RAID 3 25

GAMBAR 2.17. RAID 4 25

GAMBAR 2.18. RAID 5 26

GAMBAR 3.1. Skenario Pengujian 28

GAMBAR 3.2. ER Model 1 29

GAMBAR 3.3. ER Model 2 31

GAMBAR 3.4. ER Model 3 32

GAMBAR 4.1. Grafik Perbandingan response time pada simple query 41 GAMBAR 4.2. Grafik Perbandingan response time pada aggregate query 42 GAMBAR 4.3. Grafik Perbandingan response time pada inner join query 43 GAMBAR 4.4. Grafik Perbandingan response time pada outer join query 44 GAMBAR 4.5. Grafik Perbandingan response time pada subquery 45 GAMBAR 4.6. Grafik Perbandingan response time pada correlated query 46 GAMBAR 4.7. Grafik Perbandingan response time pada kompleks query 47


(16)

Jumlah data yang disimpan di piringan magnetik (disket, harddisk, dll) meningkat 100% pertahun, perdepartemen,perperusahaan sehingga diperlukan suatu upaya untuk menjaga kinerja sistem basis data agar tetap optimal.Desain basis data merupakan langkah awal yang dilakukan untuk membuat suatu sistem agar kinerja basis data agar tetap optimal.Akan tetapi proses desain belum cukup untuk meningkatkan kinerja basis data. Salah satu cara adalah dengan meningkatkan kecepatan transaksi data yaitu dengan meningkatkan kecepatan pemrosesan query dan menggunakan hardisk yang dapat diakses secara paralel. Pada penelitian ini akan dilakukan pengujian berbagai model basis data relasional dengan menggunakan berbagai jumlah data, kemudian akan dilakukan pengujian pada DAS (Direct-Attached Storage) dan RAID menggunakan berbagai query dengan outputan yang sama, sehingga akan dianalisa cost query menggunakan metode Cost Base Optimizer dan waktu pengaksesan disk.Sehingga hasil dari penelitian ini bertujuan memberikan masukan kepada administrator sistem basis data agar dapat mendesain model basis data relational dengan tepat, penggunaan teknologi hardisk dengan bijak, dan menggunakan query yang benar dalam pengambilan data dengan tujuan agar kinerja basis data tetap optimal. Hasil dari pengujian ini adalah 1) desain model basis dataakan dapat berkerja lebih optimal dengan cara melakukan pemisahan entity yang berasal dari penggunaan spesialisasi, 2) RAID 0 memiliki performansi paling baikdibandingkan DAS dan RAID-1 dikarenakan saat komputer mengakses sebuah block data di satu harddiskkomputer juga dapat mengakses block data di harddisk yang lainnya, 3) jumlah record, ukuran atribut, jenis atau bentuk query, penggunaan kolom unique key atau primary key, penggunaan order by, urutan indeks, penggunaan fungsi SQLdapat mempengaruhi cost suatu query dalam performansi query.


(17)

ABSTRACT

The amount of data that is stored in magnetic disk (floppy disk, harddisk, etc) increases 100% each year for each department for each company so an effort to maintain a database system to be optimal is needed. Designing a database is the initial step when creating a system with an optimal database performance. However, just designing the database is not enough to increase the performance of the database.One of the ways is to increase the speed of data transaction by increaseing the speed of query processing and using harddisks that can be accessed parallely. In this reaseach, the testing of different relationship database model will be done by using multiple amount of data then DAS and RAID will be tested by using multiple query with the same amount of output. The cost query then is going to be analyzed by using Cost Base Optimizer method and the disk access time. The result of this research is to give input to database system administrator to design relationship database model appropriately, to use the harddisk technology wisely, and to use the right query on retrieving records resulting the database performance optimum. The results of this testing are 1) database design model will be optimum by doing entity separation from specialize usage, 2) RAID 0 have much better performance compared to DAS and RAID-1 because when computer accessed a data block from a harddisk, the computer also can access another data block from another harddisk, 3) the amount of record, the size of attribute, the type of query, the usage of unique key or primary key column, the usage of order by, the sequence of index, the usage of SQL function can affect the cost of query in query performance.


(18)

PENDAHULUAN

1.1 Latar Belakang

Kinerja (performance) sistem basis data merupakan isu yang semakin penting saat sistem basis data terkomputerisasi beranjak semakin besar dan kompleks.Hal ini dibuktikan dari hasil sebuah survey Universitas California di BerkeleyLightstone, jumlah data yang disimpan di piringan magnetik (disket, harddisk, dll) meningkat 100% pertahun, perdepartemen, perperusahaan, artinya setiap perusahaan di dunia yang menggunakan komputer data yang dimilikinya akan meningkat 2 kali lipat pertahun. Oleh sebab itu perlu suatu upaya untuk menjaga kinerja sistem basis data agar tetap optimal.

Strategi penilaian dan perbaikan kinerja bervariasi dalam hal efektivitasnya, dan sistem-sistem yang dirancang untuk berbagai tujuan, misalnya sistem operasional atau Sistem Pendukung Keputusan (DSS-Decission Support System), masing-masing membutuhkan ketrampilan pengaturan kinerja yang berbeda-beda.Dalam hal ini, kinerja sistem dirancang dan dikembangkan untuk suatu sistem terkomputerisasi.Selain itu, permasalahan kinerja tentu saja juga sangat dipengaruhi oleh hasil dari perkembangan teknologi komputer. Saat sistem menjadi usang, bagaimanapun juga pintarnya seorang administrator database melakukan perancangan-perancangan dan pengaturan-pengaturan tidak akan mampu mencapai peringkat kinerja yang tinggi. Selain itu pula, tingkat kinerja yang tinggi juga sangat dipengaruhi oleh perancanaan serta perancangan sistem basis data.

Upaya perancangan basis data dapat ditempuh dengan mendesain sebuah model dari awal sama sekali sampai dilakukan perbaikan-perbaikan untuk mendapatkan sebuah model data yang lebih permanen dan lebih mendekati pada keadaan yang sebenarnya. Desain basis data merupakan langkah awal yang dilakukan untuk membuat suatu sistem agar kinerja basis data agar tetap optimal.


(19)

Dengan desain basis data seorang praktisi dapat mengurangi waktu proses untuk operasi bisnis dalam beberapa kasus. Akan tetapi proses desain belum cukup untuk meningkatkan kinerja basis data. Salah satu cara adalah dengan meningkatkan kecepatan transaksi data yaitu dengan mentukan kecepatan pemrosesan query. Hal tersebut dapat meningkatkan kinerja antara 25% dan 100%, kadang-kadang bisa lebih (Powell, 2007).

Dari sudut perancangan basis data, tabel-tabel yang dirancang dengan baik serta dilengkapi dengan indeks-indeks yang representatif sangat membantu kinerja.Kadang juga proses normalisasi tabel yang dilakukan secara sangat seksama, memberi efek yang setara dengan perbaikan perangkat keras. Hal yang sama juga berlaku dengan menggunakan hardisk yang dapat diakses secara paralel (misalnya RAID [Redundant Array of Inexpensive Disk]) yang merupakan trend perangkat keras untuk sistem basis data yang berukuran besar), yang pada gilirannya akan sangat mempengaruhi kinerja sisem basis data. RAID adalah salah satu cara dalam meningkatkan kinerja dan performansi disk yaitu dengan membentuk suatu sistem dari beberapa hardisk atau drive sehingga terbentuk satu partisi dari beberapa hardisk yang bertujuan sebagai toleransi kesalahan.

Beberapa penelitian yang telah dilakukan tentang optimalisasi basis data antara lain, Panus & Pirkl (2010), melakukan penelitian dengan melakukan pengujian terhadap pengaruh penggunaan Oracle Optimizer Hints (SQL Hints) dan Clasic SQL Query pada proses eksekusi. Optimalisasi tersebut diukur dengan menggunakan Cost Query dan CPU dari Query. Hasil pengujian menunjukan bahwa penggunaan SQL Hints lebih unggul daripada Clasic SQL Query, akan tetapi dari segi avarage time saat proses eksekusi, Clasic SQL Query lebih cepat dibandingkan menggunakan SQL Hints. Chandra, et al.(2007), menjelaskan tentang optimasi query pada oracle yang bertujuan untuk menemukan strategi atau rencana evaluasi query terbaik pada pemrosesan query, sehingga time proses dan total cost dari proses eksekusi menjadi lebih efisien dan lebih murah. Kavita (2012), melakukan penelitian dengan membuat sebuah model Materialized View untuk meningkat performansi query sehingga membantu para database adminstrator untuk melakukan manajemen Materialized View secara tepat sehingga akan membawa keuntungan bagi perusahaan dari segi efisiensi operasional karena laporan dihasilkan lebih cepat. Salim (2011), mengkaji 2 buah teknik optimizer yaitu Rule based optimization dan cost based optimization,


(20)

yang bertujuan untuk memperoleh query plan yang paling optimal sehingga akan diperoleh waktu yang paling optimal. Dari kajiannya tersebut diperoleh suatu kesimpulan bahwa Rule Base Optimization merupakan urutan plan dari query tunggal yang biasanya digambarkan sebagai query tree, dimana masing-masing plan lebih efisien dari plan sebelumnya. Sedangkan Cost based optimization akan memperkirakan dan membandingkan cost dari eksekusi sebuah query menggunakan strategi-strategi eksekusi yang berbeda dan memilih strategi dengan perkiraan cost terendah. Cost dari masing-masing plan adalah merupakan perkiraan, dengan memilih yang paling efisien.

Walaupun banyak penelitian yang dilakukan berkaitan dengan optimalisasi basis data yang bertujuan untuk memperbaiki kinerja sistem basis data, pada tesis ini dilakukan penelitian terhadap beberapa model basis data relasional dengan menggunakan berbagai jumlah data, kemudian akan dilakukan pengujian pada DAS (Direct-Attached Storage) dan RAID menggunakan berbagai query dengan outputan yang sama, sehingga akan dianalisa cost query menggunakan metode Cost Base Optimizer dan waktu pengaksesan disk.

Penelitian tesis ini akanmengajukan cara memperoleh cost query dan waktu pengaksesan disk. Sehingga administrator sistem basis data dapat mendesain model basis data relational dengan tepat, penggunaan teknologi hardisk dengan bijak, dan menggunakan query yang benar dalam pengambilan data dengan tujuan agar kinerja basis data tetap optimal.

1.2 Perumusan Masalah

Berdasakan pada latar belakang yang telah dikemukan dapat dirumuskan beberapa masalah yaitu,ketika jumlah data semakin lama semakin besar, makadiperlukanpemilihan suatu desain modeldata relational yang dapatmempengaruhi kinerja database dalam kecepatantransaksi data.Akan tetapi hal itu saja belum cukup untuk meningkatkan kinerja database, sehingga perlu dilakukan analisis yang mempengaruhi kinerja pemrosesan query dan seberapa pengaruh hardisk yang dapat diakses secara paralel dalam mempengaruhi kinerja database.


(21)

1.3 Batasan Masalah

Rumusan masalah diatas, dibatasi dengan beberapa hal sebagai berikut : 1. Menggunakan data Inventori

2. Menggunakan model Entity Relationshipdiagram (diagram ER) 3. Bekerja pada sistem terpusat (centralized)

4. Menggunakan DBMS Oracle pada proses optimasiquery.

5. Metode yang digunakan dalam proses optimasiquery berdasarkan proses Cost based optimizer pada DBMS Oracle 10g.

6. Hanya menggunakan indexyang standar dan tidak ada penambahan index. 7. Parameter pengukuran yang dianalisis adalah cost (pengaksesan disk) dari

suatu query.

8. Menggunakan setting database standar (General purpose database) 9. Menggunakan RAID Level 0 (RAID-0), RAID Level 1 (RAID-1)

1.4 Tujuan Penelitian

Tujuan yang ingin dicapai pada penelitian tesis ini, yaitu :

1. Untukmengetahui perancangan desain model data yang dapat menghasilkan proses pengambilan data lebih cepat, dengan melakukan perbaikan-perbaikan desain model data dengan memiliki kebutuhan informasi yang sama untuk mendapatkan sebuah model data yang lebih cepat dibandingakan dengan desain sebelumnya.

2. Menganalisis cost query dan time proses dari berbagai query yang dijalankan pada berbagai desain model data dengan output yang sama menggunakan metode Cost Base Optimizer sehingga mengetahui langkah eksekusi yang diambil oleh DBMS dan cost query yang dihasilkan untuk mengeksekusi query tersebut.

3. Untuk mendapatkan hasil pengujianperformansi hardisk pada DAS, RAID-0, dan RAID-1 dalam meningkatkan kinerja database.


(22)

1.5 Manfaat Penelitian

Manfaat dari penelitian tesis ini, yaitu :

1. Memberikan masukan kepada administrator sistem basis data agar dapat mendesain model basis data relational dengan tepat, penggunaan teknologi hardisk dengan bijak, dan menggunakan query yang benar dalam pengambilan data dengan tujuan agar kinerja basis data tetap optimal.

2. Sebagai referensi bagi hasil studi dan peneliti selanjutnya yang diminati dan mengembangkan penelitian ini.


(23)

TINJAUAN PUSTAKA

2.1 Model Data

Untuk membangun suatu sistem aplikasi, basis data merupakan pemodelan keadaan dari “Real word” atau dunia nyata. Upaya perancangan basis data dapat ditempuh dengan membuat sebuah model dari awal sama sekali sampai dilakukan perbaikan-perbaikan untuk mendapatkan sebuah model data yang lebih permanen dan lebih mendekati pada keadaan yang sebenarnya.

Menurut SilberSchatz et al. (2002), model data adalah kumpulan perangkat konseptual untuk menggambarkan data, hubungan data, semantik (makna) data dan batasan data.

Model basis data relasional merupakan salah satu model basis data disamping ada model basis data hirarki dan model basis data jaringan (network). Model basis data relasional adalah model yang menggunakan kumpulan table yang masing-masing tabelnya terdiri dari kumpulan baris/record dan atribut/field.

2.1.1 Basis Data Relasional

Basis data relasional adalah basis data yang setiap entitasnya disimpan kedalam tabel-tabel. Basis data akan dipilah-pilah kedalam berbagai tabel 2 dimensi. Setiap table terdiri atas lajur mendatar yang disebut baris data (row atau record) dan jalur vertikal yang biasa disebut kolom (columnatau field).

2.2 Entity Relationship Model

Dalam membuat sebuah Basis Data, hal pertama yang harus dilakukan adalah mendesain tabel tabel yang akan digunakan untuk menyimpan data sesuai bisnis proses yang kita inginkan. Proses konseptual adalah pandangan secara konsep


(24)

tentang basis data. Pandangan kedalam bentuk tabel, karena

ER adalah salah satu basis data ke dalam bentuk entitas yang ada(SilberSchatz,et nyata yang bisa dibedakan hubungan yang terjadi diantara satu

2.2.1 Entitas dan Himpunan

Definisi entitas adalah objek yang dirasa penting di sistem tersebut, – Objek Konkrit

Contoh : Orang, Buku – Objek Abstrak

Contoh : Jadwal, Pinjaman Bambangadalah salah sumarno merupakan him

Entitas (EntitySet) : Sekelompok sama. Kumpulan entitas oran dikatakan merupakan himpunan individu suatu objek sedangkan dari individu tersebut.

Gambar 2.

Pandangan konseptual ini tentunya harus bisa diimplementasikan ntuk tabel, karena basis data relasional hanya mengenal tabel.

salah satu pemodelan basis data konseptual yang menggambarkan dalam bentuk Entitas-Entitas dan Relasi yang terjadi di antara

SilberSchatz,et al. 2002). Entitas diartikan sebagai ‘objek dibedakan dengan ‘objek’ yang lain. Relasi diartikan hubungan yang terjadi diantara satu entitas dengan entitas yang lainnya.

Entitas dan Himpunan Entitas

ntitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa :

Contoh : Orang, Buku

Contoh : Jadwal, Pinjaman, Tabungan

Bambangadalah salah satu contoh dari entitas. Sedangkan bambang, n himpunan entitas orang. Dapat dikatakan bahwa

Sekelompok entitas yang sejenis dan berada dalam lingkup entitas orang dengan karakteristik mempunyai nim, prodi, merupakan himpunan entitas mahasiwa. Entitas menunjuk kepada

objek sedangkan himpunan entitas menunjuk pada rumpun

Gambar 2.1 Himpunan Entitas Mahasiswa

diimplementasikan relasional hanya mengenal tabel.

yang menggambarkan di di antara

entitas-objek’ didunia diartikan sebagai

ersebut, yg bisa berupa :

Sedangkan bambang, susi, bahwa Himpunan dalam lingkup yang nim, prodi, dsb bisa menunjuk kepada pada pada rumpun (family)


(25)

Sebuah entitas / himpunan sebuah gambar persegi panjang. dan pinjaman.

Gambar 2.

Setiap entitas mempunyai gambaran konseptual basis

bentuk fisik dari basis data (* tabel dan kolom).

Gambar 2.

2.2.2 Atribut

Atribut merupakan gambaran Contoh : atribut untuk himpunan program studi, hobi, dsb.

batasan yg dibolehkan bagi suatu atribut.

2.2.3 Relasi

ER menggambarkan entitas Relasimenggambarkan hubungan dengan proses bisnisnya.

notasi belah ketupat.

Perhatikan contoh relasi antara mahasiswa dengan organisa

entitas / himpunan entitas dapat di gambarkan / di notasikan persegi panjang. Berikut merupakan contoh entitas mahasiwa,

Gambar 2.2 Contoh Himpunan Entitas

mempunyai atribut yang melekat pada entitas tersebut. konseptual basis data (* entitas dan atribut) yang direfleksikan k dari basis data (* tabel dan kolom).

Gambar 2.3 Gambaran Himpunan Entitas di Tabel

gambaran karakteristik dari sebuah entitas atau himpunan untuk himpunan entitas mahasiswa adalah nim, nama,

, dsb.Setiap atribut mempunyai domain value set yg dibolehkan bagi suatu atribut.

menggambarkan entitas-entitas dengan atributnya yang saling menggambarkan hubungan antara entitas satu dengan entitas yang

bisnisnya. Notasi relasi didalam diagram ER digambarkan

Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut.

di notasikan dengan entitas mahasiwa, jadwal

entitas tersebut. Berikut direfleksikan kedalam

atau himpunan entitas. nama, alamat, ipk, yaitu batasan

saling berelasi. entitas yang lain sesuai digambarkan dengan


(26)

Gambar 2.

Gambar di atas menunjukkan organisasi. Relasi yang

mempunyai organisasi. Entitas ipk, dsb. Sedangkan nama_organisasi, jenis_org

2.2.3.1 Kardinalitas Relas

Kardinalias relasi menggambarkan ber-relasi dengan entitas

biner, pemetaan kardinalitas relasi da  Satu ke Satu

Gambar 2.

Relasi di atas

entitas A berpasangan B. Asumsi

pj_cuci_piring. maksimal 1 orang yang maksimal 1,

itu relasi ini berkardi

Gambar 2.4 Relasi digambarkan dengan belah ketupat

atas menunjukkan hubungan antara entitas mahasiswa yang terjadi adalah relasi mempunyai, dimana organisasi. Entitas mahasiwa memiliki atribut nim, nama, alamat,

Sedangkan entitas organisasi memiliki atribut kd_organisasi, sasi, jenis_organisasi (* olahraga/kesenian/jurusan dsb).

itas Relasi

asi menggambarkan banyaknya jumlah maksimum entitas dengan entitas pada himpunann entitas yang lain. Pada himpunan pemetaan kardinalitas relasi dapat berupa salah satu dari pilihan berikut :

Satu ke Satu

Gambar 2.5 Relasi dengan Kardinalitas 1 ke 1

Relasi di atas menggambarkan bahwa untuk setiap entitas di entitas A berpasangan dengan maksimal 1 entitas di himpunan

si penulis akan membuat sebuah tugas yaitu pj_cuci_piring. 1 Orang di tugaskan untuk menjadi pj_cuci_piring maksimal 1 hari. Begitupun juga jika di balik, pada 1 hari,

orang yang menjadi pj_cuci_piring. Dari A ke B kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya maksimal 1.

u relasi ini berkardinalitas 1 ke 1.

mahasiswa dan entitas dimana mahasiwa nama, alamat, prodi, atribut kd_organisasi,

maksimum entitas dapat Pada himpunan relasi rupa salah satu dari pilihan berikut :

entitas di himpunan di himpunan entitas tugas yaitu menjadi menjadi pj_cuci_piring di 1 hari, maksimal 1 B kardinalitasnya maksimal 1. Oleh karena


(27)

 Satu ke Banyak

Gambar 2.6 Relasi dengan Kardinalitas 1 ke Banyak

Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan banyak entitas di himpunan entitas B. Asumsi yang berbeda di pakai ketika memandang relasi ini, 1 orang bisa memperoleh pj_cuci_piring untuk > 1 hari. Tetapi 1 hari hanya di pj-kan hanya untuk maksimal 1 orang. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak.

 Banyak ke Satu

Gambar 2.7 Relasi dengan Kardinalitas Banyak ke 1

Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Asumsikan bahwa untuk 1 hari pj_cuci_piring boleh di berikan pada banyak orang, sedangkan 1 orang hanya di berikan tugas untuk menjadi pj_cuci_piring sebanyak maksimal 1 hari. Dari A ke B kardinalitasnya


(28)

maksimal adalah

banyak. Oleh karena itu rel

 Banyak ke Banyak

Gambar 2.

Relasi di atas

entitas A berpasangan entitas B.

bebankan pada

menjadi pj_cuci_piring maksimal adalah adalah banyak. banyak.

2.2.4 Diagram ER

Merupakan diagram model basisdata berbasis grafis.

maksimal adalah 1, dan dari B ke A kardinalitasnya maksima banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1.

Banyak ke Banyak

Gambar 2.8 Relasi dengan Kardinalitas Banyak ke Banyak

Relasi di atas menggambarkan bahwa untuk setiap entitas di entitas A berpasangan dengan maksimal banyak entitas di entitas B. Asumsikan bahwa dalam 1 hari pj_cuci_piring bebankan pada banyak orang dan 1 orang bisa di bebankan menjadi pj_cuci_piring lebih dari 1 hari. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya

adalah banyak. Oleh karena itu relasi ini berkardinalitas

diagram model konseptual untuk menggambarkan struktur

Gambar 2.9 Contoh Diagram ER

alitasnya maksimal adalah berkardinalitas banyak ke 1.

ke Banyak

entitas di himpunan entitas di himpunan pj_cuci_piring bisa di di bebankan untuk ke B kardinalitasnya kardinalitasnya maksimal berkardinalitas banyak ke


(29)

Notasi yang digunakan o Garis

o Elips dobel

o Elips garis terputus

2.3 Konversi ER ke T

2.3.1 Himpunan Entitas Lem

Secara umum, Himpunan

bergantung pada entitas lain. Notasi panjang, sedangkan relasi

diamond. Diskriminator / entitas-entitas yang terdapat dengan primary key. Konsep lemah. Primary keypada Himpuna kuat yg berelasi dan diskriminator /

Diskriminator di notas

Gambar 2.

Relasi di atas menggambarkan tunjangan dari perusahaan

lemah. Tunjangan sebagai

bergantung pada entitas pegawai (* tidak akan ada t Notasi yang digunakan di Diagram ER adalah :

: Link yang menghubungkan atara Entitas dengan atribut,dan entitas dengan entitas

Elips dobel :Menunjukkan atribut yang multivalued garis terputus :Menunjukkan atribut turunan

Tabel

ntitas Lemah

Himpunan Entitas Lemah tidak memiliki primary key entitas lain. Notasi entitas lemah digambarkan dengan double

relasi untuk himpunan entitas lemah digambarkan deng

Diskriminator / key parsialadalah atribut-atribut yang dapat membedak terdapat di himpunan entitas lemah. Diskriminator

. Konsep diskriminator hanya di pakai pada himpunan pada Himpunan Entitas lemah ada 2 yaitu primary key dan diskriminator / keyparsialnya.

Diskriminator di notasikan dengan garis bawah yang putus putus.

Gambar 2.10 Contoh Himpunan Entitas Lemah

atas menggambarkan bahwa seorang pegawai mendapatkan perusahaan tempat dia bekerja. Tunjangan dalam hal ini adalah

sebagai entitas tidak bisa berdiri sendiri, tunjangan as pegawai (* tidak akan ada tunjangan jika tidak ada pegawai).

atara Entitas

dengan relasi atau

multivalued

key dan selalu rkan dengan double persegi digambarkan dengan double t membedakan Diskriminator tidak sama pada himpunan entitas primary keydari entitas

putus.

mendapatkan fasilitas hal ini adalah entitas tunjangan harus k akan ada tunjangan jika tidak ada pegawai).


(30)

Kardinalitas relasi merupakan banyak ke 1 yang lebih kuat.

2.3.2 Spesialisasi

Spesialisasi merupakan proses didalam didalam himpunan spesialisasi adalah memberikan dari himpunan entitas yang pengelompokan.

Subgrouping di atas memiliki atribut tersendiri dan merupakan pembeda dar gambar segitiga berlabelIS

Sifat dari spesialisasi

secara otomatis akan di turunkan pada level di bawahnya.

Contoh di atas menggambarkan subgroupyaitu pegawai tetap

pegawai honorer sama sama dari entitas pegawai. Perbedaa atribut yang melekat pada

relasi yang terjadi pada himpunan entitas lemah ke 1 atau 1 ke banyak dengan kardinalitas 1 di himpunan

merupakan proses desain top-down dengan mendesain himpunan entitas yang berbeda dari himpunan entitas.

memberikan gambaran konseptual tentang perbedaan itas yang hampir serupa dengan konsep sub

di atas menjadi himpunan entias yang levelnya lebih tersendiri yang tidak dimiliki pada level di atasnya. Atribut pembeda dari entitas di subgroupyang lain. IS A dinotasika segitiga berlabelISA.

spesialisasi adalah inheritan atribut yaitu atribut pada otomatis akan di turunkan pada level di bawahnya.

Gambar 2.11 Contoh Spesialisasi

atas menggambarkan bahwa entitas pegawai mempunya pegawai tetap dan pegawai honorer. Kedua entitas pegawai

sama sama mempunyai atribut turunan yaitu nama dan pegawai. Perbedaan dari pegawai tetap dan pegawai honorer

t pada subgroup-nya. Atribut besar tunjangan dan gaji

lemah biasanya di himpunan entitas

mendesain subgrouping entitas. Tujuan dari perbedaan karakteristik sub grouping /

levelnya lebih rendah dan atasnya. Atribut ini khas dinotasikan dengan

atribut pada level tinggi

pegawai mempunyai 2 pegawai tetap dan nama dan id_pegawai honorer terdapat di dan gaji perbulan


(31)

hanya terdapat di himpunan entitas pegawai tetap, sedangkan atribut upah per jam dan jumlah jam kerja terdapat di himpunan entitas pegawai honorer.

2.4 Normalisasi

Normalisasi merupakan cara pendekatan lain dalam membangun desain logik basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan criteria standar untuk menghasilkan stuktur tabel yang normal.

Adapun bentuk normalisasi antara lain :

 Bentuk normal tahap pertama (1st Normal Form/1NF)

Syaratnya jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribut) atau dengan kata lain atribut yang atomik.

 Bentuk normal tahap kedua (2nd Normal Form/2NF)

Syaratnya, memenuhi bentuk normal tingkat pertama, semua atribut yang tidak termasuk dalam key primer memiliki ketergantungan fungsional (KF) pada key primer yang utuh.

 Bentuk normal tahap ketiga (3th Normal Form/3NF)

Syaratnya, memenuhi bentuk normal tingkat kedua. Tidak terdapat ketergantungan fungsi transitif ( transitive functional dependency), yaitu tidak terdapat ketergantungan fungsi antara atribut – atribut bukan kunci ke atribut bukan kunci lainnya dalam tabel.

2.5 Optimasi Query

2.5.1 Konsep Dasar Optimasi Query

Menurut SilberSchatz et al. (2002) , query adalah sebuah pernyataan yang meminta pengaksesan informasi. Query (permintaan) merupakan metode pengaksesan yang paling sering digunakan. Dalam DBMS, query dinyatakan dalam SQL (Structured Query Languange).

Dalam Database Management System (DBMS), query di proses melalui tahapan berikut :


(32)

Gambar 2.12 Tahapan Pemrosesan Query

Sebuah query yang diekspresikan dalam sebuah bahasa query tingkat tinggi seperti SQL mula-mula harus dibaca, diuraikan dan disahkan (parser and translator). Query tersebut kemudian dibentuk menjadi sebuah struktur data yang biasa disebut dengan query tree. Dan kemudian DBMS (Database management system) harus merencanakan sebuah strategi eksekusi untuk mendapatkan kembali hasil dari query dari file-file database.

Query Optimizer memeriksa semua ekspresi-ekspresi aljabar yang sama untuk query yang diberikan dan memilih salah satu dari ekspresi tersebut yang terbaik yang memiliki perkiraan termurah. Dengan kata lain, tugas dari query optimizer adalah menghasilkan sebuah rencana eksekusi. Proses ini disebut dengan optimisasi query. Output dari Optimizer adalah evaluation plan, yaitu urutan rencana proses eksekusi query oleh DBMS. Optimasi query merupakan sebuah proses untuk memilih evaluation planyang terbaik untuk suatu query (Lewis, 2006). Query optimizeradalah bagian dari DBMS yang melakukan fungsi optimasi query.

Ada beberapa tahapan dalam optimasi query, yaitu (Ramakrishnan, 1998) : 1. Membangkitkan plan-plan alternatif yang akan dipilih sebagai evaluation

plan.

2. Mengestimasi biaya eksekusi untuk setiap alternatif plan yang dihasilkan pada tahap satu. Dari beberapa plan yang diperhitungkan, query optimizer memilih satu plan optimal, yaitu plan dengan estimasi biaya terkecil.


(33)

Optimasi query dapat dikategorikan menjadi 2 bagian, antara lain : 1. Cost Based Optimization

Pemilihan plan berdasarkan pada perkiraan biaya untuk setiap alternatif plan. Optimizer akan memutuskan rencana eksekusi (execution plan ) mana yang terbaik dan paling efisien dengan mempertimbangkan pada ketersediaan path aksesnya dan juga berdasar pada statistik informasi untuk skema objek (tabel/indeks) yang di akses oleh sebuah sql statement.

Secara konsep, pendekatan cost-based terdiri atas 3 langkah berikut :

 Optimizer membangkitkan seperangkat rencana eksekusi yang potensial untuk SQL Statement berdasar pada ketersediaan path dan petunjuk tentang sql statement tersebut.

 Optimizer memperhitungkan cost pada tiap rencana eksekusi berdasarkan statistik pada kamus data untuk distribusi data dan karakteristik maupun informasi tentang penyimpanan dari tabel, indeks, dan partisi yang di akses oleh sebuah sql statement.

 Optimizer membandingkan biaya setiap execution plan, dan kemudian memilih plan dengan biaya paling rendah

Adapun beberapa catatan mengenai hal ini, yaitu :

 Cost dapat diartikan sebagai sebuah nilai resource yg dibutuhkan untuk eksekusi sql statement dari beberapa execution plannya

 Optimizer menghitung cost dari tiap kemungkinan metode akses dan urutan pen-joinan berdasar estimasi resource seperti CPU time, memori,I/O untuk ekseskusi statement sql menggunakan plan

 Execution plan secara serial dengan cost besar butuh waktu eksekusi lebih banyak daripada cost yg kecil

 Execution plan secara parallel, penggunaan resource tidak langsung berpengaruh pada waktu yg dibutuhkan untuk eksekusi statement sql


(34)

2. Rule Base Optimization

Pemilihan plan mengacu pada heuristic / petunjuk baku yang menentukan prioritas eksekusi suatu operasi.

Pada dasarnya tujuan dari optimasi query menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizeruntuk melakukan analisa query dan untuk melakukan pencarian jalan akses.

2.5.2 Metode Akses

Metode akses /access method adalah metode-metode yang dapat dilakukan untuk mengakses tuple dalam suatu relasi. Sebuah metode akses dapat berupa file scan ataupun indeks dengan kondisi seleksi tertentu (Ramakrishnan, 1998).

Indeks adalah suatu metoda pengaksesan file data dari disk dengan menyimpan alamat entri data file tersebut pada file lain yang berukuran lebih kecil dan lebih cepat diakses. Indeks yang biasanya dipakai adalah indeks B+Tree dan Hash. Indeks B+Tree dapat menjadi metode akses untuk seleksi operator <, <=, =, !=, >=, atau >. Indeks hash dapat menjadi metode akses untuk seleksi dengan operator =.

Selektivitas sebuah metode akses adalah jumlah block yang diambil dengan menggunakan metode akses tersebut. Metode akses yang paling selektif adalah metode akses yang mengambil block paling sedikit. Penggunaan metode akses yang paling selektif akan meminimalkan biaya pengambilan data.

2.5.3 Perhitungan Cost Operasi Query

Cost dari operasi query dapat dihitung dengan menjumlahkan beberapa parameter, antara lain : biaya pengaksesan disk dan waktu proses CPU. Pengaksesan disk merupakan faktor terpenting. Hal ini dikarenakan pengaksesan disk memakan biaya lebih besar dibandingkan operasi dalam memori utama. Pada tugas akhir ini parameter yang digunakan hanya biaya pengaksesan disk dimana merupakan jumlah pengambilan page dari disk ke memori.


(35)

Sintaks umum SQL adalah sebagai berikut : SELECT <daftar Attribute> FROM <daftar Tabel> WHERE <kondisi>

Dalam aljabar relasional, pernyataan SQL diatas terdiri atas beberapa operasi yaitu projection, selection, dan join. Operasi select terdapat pada term-term klausa WHERE. Operasi project terdapat pada daftar atribut list klausa SELECT. Operasi join terdapat pada klausa FROM yang menyatakan daftar relasi lebih dari satu. Kondisi join ditentukan dari term-term pada klausa WHERE.

1. Operasi Select

Operasi Select adalah operasi SQL yang digunakan untuk memilih sebuah subset tuple-tuple dari sebuah relasi berdasarkan kondisi tertentu. Kondisi tersebut terdapat dalam bentuk term-term pada klausa WHERE. Pada umumnya, operasi select ditunjukkan oleh :

<kondisi pilihan>(R)

2. Operasi Project

Operasi Project adalah operasi SQL yang digunakan untuk memilih atribut-atribut tertentu dari suatu relasi dan membuang atribut-atribut lainnya yang tidak diperlukan. Pada umumnya operasi project ditunjukkan oleh :

π<daftar attribute>(R) 3. Operasi Join

Operasi Join adalah operasi SQL yang digunakan untuk mengkombinasikan hubungan tuple-tuple dari dua relasi dengan suatu kondisi penggabungan tertentu.Pada umumnya operasi project pada dua relasi R(A1,A2,…An) dan S(B1,B2,…Bm) ditunjukkan oleh :


(36)

Dua relasi yang terlibat dibedakan menjadi relasi luar dan relasi dalam. Untuk memudahkan, dalam left deep planterdapat konversi yaitu sub plan kiri (L) dianggap sebagai relasi luar dan sub plan kanan (R) dianggap sebagai relasi dalam.

2.5.4 Pemrosesan Querypada Oracle 10g

Pada saat sebuah query diproses, Oracle server prosesakan memeriksa apakah blok data yang dibutuhkan ada di database buffer cache. Jika blok yang dibutuhkan tidak terdapat di database buffer cache, maka server process akan melakukan pembacaan untuk mencari blok yang dibutuhkan di data file untuk kemudian meletakkan salinannya di database buffer cache. Jika saat pemrosesan query berikutnya memerlukan blok yang sama dengan query sebelumnya, maka pemrosesan query tersebut tidak memerlukan pembacaan data ke file fisik. Blok data yang berada di memory dan tidak sering diakses akan dikeluarkan dari database buffer cache.

2.5.5 Explain Plan

Explain plan adalah suatu perintah yang digunakan untuk menampilkan perintah eksekusi suatu query.

Dengan memanfaatkan explain plan kita bisa melihat langkah eksekusi yang diambil oleh oracle, sehingga kita bisa meningkatkan performansi query kita. Optimizer mengambil informasi tentang objek dan tipe dari query yang dijalankan, kemudian memberikan keputusan bagaimana suatu query akan dieksekusi.

Contoh dari explain plan :

EXPLAIN PLAN SET statement_id = 'example_plan1' FOR SELECT full_name FROM per_all_people_f

WHERE UPPER(full_name) LIKE 'Pe%' ;

Plan

---SELECT STATEMENT


(37)

Diatas menunjukan suatu contoh execution plan dari sebuah SELECT statement. Tabel per_all_people_f diakses menggunakan full table scan.Seriap baris dalam tabel per_all_people_f diakses, klausa WHERE clause dievaluasi untuk setiap row.Kemudian SELECT statement mengembalikan row yang memenuhi klausa where.

2.6 RAID

2.6.1 Konsep RAID

Dalam media penyimpanan data, disk rentan akan kerusakan yang akan mengakibatkan hilangnya data dan turunnya kinerja disk. Salah satu cara dalam meningkatkan kinerja dan performansi disk adalah RAID. RAID singkatan dari Random Array of Inexpensive Disk. Metodenya dengan membentuk suatu sistem dari beberapa harddisk/drive sehingga terbentuk satu partisi dari beberapa harddisk, dimana biasanya kita melakukan pembagian banyak partisi pada satu harddisk. Kegunaan RAID adalah sebagai media perlindungan penyimpanan data sehingga reliability data terjaga. RAID merupakan gabungan beberapa harddisk fisik ke dalam sebuah unit logis penyimpanan, dengan menggunakan perangkat lunak atau perangkat keras khusus.

Peningkatan Kehandalan dan Kinerja dari disk dapat dicapai melalui dua cara (SilberSchatz,et al. 2002) :

1. Redudansi

Peningkatan kehandalan disk dapat dilakukan dengan redundansi, yaitu menyimpan informasi tambahan yang dapat dipakai untuk membentuk kembali informasi yang hilang jika suatu disk mengalami kegagalan.Salah satu teknik untuk redundansi ini adalah dengan caramirroring atau shadowing, yaitu dengan membuat duplikasi dari tiap - tiap disk. Jadi, sebuah disk logical terdiri dari 2 disk physical, dan setiap penulisan dilakukan pada kedua disk, sehingga jika salah satu disk gagal, data masih dapat diambil dari disk yang lainnya, kecuali jika disk kedua gagal sebelum kegagalan pada disk pertama diperbaiki.Pada cara ini, berarti diperlukan media penyimpanan yang dua kali lebih besar daripada ukuran data sebenarnya. Akan tetapi, dengan cara ini


(38)

pengaksesan disk yang dilakukan untuk membaca dapat ditingkatkan dua kali lipat dengan menggunakan RAID controller. Hal ini dikarenakan setengah dari permintaan membaca dapat dikirim ke masing-masing disk.

2. Paralelisme

Peningkatan kinerja dapat dilakukan dengan mengakses banyak disk secara paralel. Pada disk mirroring, di mana pengaksesan disk untuk membaca data menjadi dua kali lipat karena permintaan dapat dilakukan pada kedua disk, tetapi kecepatan transfer data pada setiap disk tetap sama. Kita dapat meningkatkan kecepatan transfer ini dengan cara melakukan data striping ke dalam beberapa disk. Data striping, yaitu menggunakan sekelompok disk sebagai satu kesatuan unit penyimpanan, menyimpan bit data dari setiap byte secara terpisah pada beberapa disk (paralel).

Adapun teknik-teknik yang digunakan dalam RAID sebagai berikut : 1. Teknik Stripping

Stripping merupakan teknik atau cara untuk pemecahan data ke beberapa disk. Teknik ini meningkatkan performansi harddisk, dimana sekumpulan data dapat dibaca dari beberapa harddisk pada satu waktu. Namun, apabila salah satu harddisk mengalami kegagalan, maka harddisk lain pun tidak dapat berfungsi. 2. Teknik Mirroring

Mirroring merupakan teknik atau cara untuk penyalinan data ke lebih dari satu harddisk. Teknik ini dapat meningkatkan proses pembacaan data, namun untuk menulis kinerjanya lebih buruk karena data yang sama akan tertulis pada beberapa harddisk yang tergabung dalam penggabungannya.


(39)

2.6.2 Standar Level

Untuk skema level standard tersusun atas beberapa level. Beberapa variasi dikembangkan untuk non nested level dan nested level.

Berikut ini jenis-jenis dari RAID non-nested level : 1. RAID 0

Dikenal dengan modus stripping.Membutuhkan minimal 2 harddisk.Sistemnya adalah menggabungkan kapasitas dari beberapa harddisk.Sehingga secara logikal hanya "terlihat" sebuah harddisk dengan kapasitas yang besar (jumlah kapasitas keseluruhan harddisk).

Pada awalnya, RAID 0, digunakan untuk membentuk sebuah partisi yang sangat besar dari beberapa harddisk dengan biaya yang efisien.

Contoh: Peneliti membutuhkan suatu partisi dengan ukuran 2TB. Harga sebuah harddisk berukuran 500GB adalah Rp.400.000,- sedangkan harga harddisk berukuran 2TB adalah Rp.2.500.000,-. Maka peneliti dapat membetuk suatu partisi berukuran 2TB dari 4 unit harddisk berukuran 500GB dengan menggunakan RAID 0. Tentunya skenario ini lebih murah karena memakan biaya lebih murah: 4 x Rp.400.000,- = Rp.2.000.000,-. Lebih murah daripada harus membeli harddisk yang berukuran 2TB.Oleh sebab itu kenapa pada awalnya disebut redundant array of inexpensive disk.

Data yang ditulis pada harddisk-harddisk tersebut terbagi-bagi menjadi fragmen-fragmen.Dimana fragmen-fragmen tersebut disebar di seluruh harddisk.Sehingga, jika salah satu harddisk mengalami kerusakan fisik, maka data tidak dapat dibaca kembali.

Namun ada keuntungan dengan adanya fragmen-fragmen ini: kecepatan. Data bisa diakses lebih cepat dengan RAID 0, karena saat komputer membaca sebuah fragmen di satu harddisk, komputer juga dapat membaca fragmen lain di harddisk lainnya.


(40)

Gambar 2.13 RAID 0

2. RAID 1

Biasa disebut dengan modus mirroring.Membutuhkan minimal 2 harddisk. Sistem ini memiliki kelebihan, yaitu menyalin isi sebuah harddisk ke harddisk lain dengan tujuan: jika salah satu harddisk rusak secara fisik, maka data tetap dapat diakses dari harddisk lainnya. Proses untuk membaca data dapat dilakukan dengan setengah dari permintaan membaca dikirim ke masing-masing disk (proses membaca data baik) atau membaca data dilakukan dengan membaca dari kedua disk (proses membaca data buruk). Hal ini tergantung kepada RAID Controllernya.

Contoh: Sebuah server memiliki 2 unit harddisk yang berkapasitas masing-masing 500GB dan dikonfigurasi RAID 1. Setelah beberapa tahun, salah satu harddisknya mengalami kerusakan fisik.Namun data pada harddisk lainnya masih dapat dibaca, sehingga data masih dapat diselamatkan selama bukan semua harddisk yang mengalami kerusakan fisik secara bersamaan.


(41)

3. RAID 2

RAID 2, juga menggunakan sistem stripping. Namun ditambahkan tiga harddisk lagi untuk pariti hamming, sehingga data menjadi lebih handal.Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 5 (n+3, n > 1).Ketiga harddisk terakhir digunakan untuk menyimpan hamming code dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya.

Contoh: Peneliti memiliki 5 buah harddisk (sebut saja harddisk A,B,C, D, dan E) dengan ukuran yang sama, masing-masing 500GB. Jika mengkonfigurasi keempat harddisk tersebut dengan RAID 2, maka kapasitas yang didapat adalah: 2 x 500GB = 1TB (dari harddisk A dan B). Sedangkan harddisk C, D, dan E tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi pariti hamming dari dua harddisk lainnya: A dan B. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A atau B), maka data tetap dapat dibaca dengan memperhitungkan pariti kode hamming yang ada di harddisk C,D, E.

Gambar 2.15 RAID 2

4. RAID 3

RAID 3, juga menggunakan sistem stripping. Namun hanya ditambahkan sebuah harddisk lagi untuk parity.. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 3 (n+1 ; n > 1). Harddisk terakhir digunakan untuk menyimpan parity dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya.

Contoh: Peneliti memiliki 4 harddisk (sebut saja harddisk A,B,C, dan D) dengan ukuran yang sama, masing-masing 500GB. Jika mengkonfigurasi


(42)

keempat harddisk tersebut dengan RAID 3, maka kapasitas yang didapat adalah: 3 x 500GB = 1,5TB. Sedangkan harddisk D tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi parity dari ketiga harddisk lainnya: A, B, dan C. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A, B, atau C), maka data tetap dapat dibaca dengan memperhitungkan parity yang ada di harddisk D. Namun, jika harddisk D yang mengalami kerusakan, maka data tetap dapat dibaca dari ketiga harddisk lainnya.

Gambar 2.16 RAID 3

5. RAID 4

Sama dengan sistem RAID 3, namun menggunakan parity dari tiap block harddisk, bukan bit. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1). Kelebihannya yaitu pembacaan data transaksi dan tingkat perpindahan saat penggabungan proses baca sangat tinggi. Akan tetapi data sulit dibentuk ulang jika terjadi kegagalan disk,serta penulisan data transaksi dan tingkat perpindahan saat penggabungan proses tulis sangat buruk.


(43)

6. RAID 5

RAID 5 pada dasarnya sama dengan RAID 4, namun dengan pariti yang terdistribusi. Yakni, tidak menggunakan harddisk khusus untuk menyimpan paritinya, namun paritinya tersebut disebar ke seluruh harddisk. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1). Hal ini dilakukan untuk mempercepat akses dan menghindari bottleneck yang terjadi karena akses harddisk tidak terfokus kepada kumpulan harddisk yang berisi data saja. Kekurangan dari RAID 5 adalah sulit untuk membentuk kembali jika terjadi kegagalan disk.


(44)

METODE PENELITIAN

3.1 Pendahuluan

Pembahasan dalam tesis ini akan menggunakan struktur data Inventori suatau perusahaan tertentu. Aplikasi yang akan dibangun merupakan tools simulasi untuk menganalisa performansi query yang dihasilkan dari tiap desain model data, sehingga tidak terlalu memperhatikan faktor-faktor pendukung IMK (Interaksi Manusia Komputer) seperti interface yang user friendly. Aplikasi ini akan meminta user untuk memasukkan statement query dan kemudian menganalisis keluaran dari aplikasi berupa hasil dari query, data statistik berupa cost query (disk I/O) serta responstimenya.

Dengan menggunakan perangkat lunak yang telah dibuat, akan dilakukan 3 skenario pengujian (gambar 3.1) dengan memasukan berbagai statement query dari 3 model data berdasarkan proses bisnis yang akan dianalisa. Skenario pertama, pegujian akan dilakukan pada DAS . Skenario kedua, pengujian akan dilakukan pada RAID 1. Skenario ketiga, pengujian akan dilakukan pada RAID 0. Untuk masing skenario, pengujian akan dilakukan dengan menggunakan data yang berbeda-beda, yaitu minimal jumlah data 100.000, 1.000.000, 10.000.000, dan 100.000.000 untuk setiap entity yang dihasilkan pada desain model data pertama (desain ER-1).

Query yang dibuat dalam pengujian ini dibedakan menjadi 7 jenis yaituSimple Query, Aggregate Query, Inner Join Query, Outer Join Query, Subquery, Correlated Subquery, Kompleks Query yang digunakan baik untuk RAID maupun DAS.

Setiap pengujian terhadap statement query akan diperoleh waktu dan costnya. Waktu yang diperoleh yaitu waktu time proses rata-rata untuk setiap query. Cost yang diperoleh adalah total pengaksesan disk dimana merupakan jumlah pengambilan page dari disk ke memori.


(45)

Gambar 3.1Skenario Pengujian Mulai

Perbandingan

Memilih desain model relational, yaitu ER-1, ER-2, atau ER-3

Diperoleh Responstime dan Cost query rata-rata untuk setiap query

Selesai Memilih query : Simple Query, Aggregate Query, Inner Join Query, Outer Join Query, Subquery,

CorrelatedSubquery, Kompleks Query

Insert data dimulai 100.000.000, 10.000.000, 1.000.000, 100.000 tiap entitas

Memilih media penyimpanan data, yaitu DAS, RAID-1, atau RAID-0

Ya Jumlah data

= 100.000 Tidak


(46)

3.2 Rancangan Penelitian

Rancangan penelitian ini pertama kali dilakukan adalah dengan merancang berbagai desain model data dengan memiliki kebutuhan informasi yang sama. Selanjutnya akan dilakukan pengujian dengan berbagai jenis query dan menggunakan jumlah data yang berbeda-beda pada media penyimpanan data yang dipilih, yaitu DAS, RAID-1, atau RAID-0.

Desain model yang digunakan untuk pengujian, yaitu : 1. Diagram ER-1

Pada model ER-1 (gambar 3.2) , meggunakan desain yang sangat sederhana dimana hanya menjelaskan tentang entity barang, supplier, pegawai,material_doc, serta memiliki relasi transaksi dan pasok. Dengan desain yang sederhana ini, sudah mampu mencakup informasi yang dibutuhkan.


(47)

Berikut ini merupakan jumlah data untuk masing-masing pengujian pada desain model ER-1. Data yang digunakan diperluas hingga 100.000.000 dari data aslinya, yaitu :

Tabel 3.1 Jumlah Record Pada ER Model 1

Atribut

Jumlah Data Masing-Masing Pengujian

Pengujian 1 Pengujian 2 Pengujian 3 Pengujian 4 Barang 100.068.428 10.068.428 1.068.428 108.427 Karyawan 100.048.368 10.048.368 1.048.368 101.295 Material Doc 100.054.085 10.054.085 1.054.085 152.175 Pasok 100.022.952 10.022.952 1.022.952 102.952 Supplier 100.002.381 10.002.381 1.002.381 102.380 Transaksi 100.153.237 10.153.237 1.153.237 129.998

2. Diagram ER-2

Pada model ER-2 (gambar 3.3), meggunakan desain dengan sedikit perubahan dari model ER-1, yaitu adanya variasi IS-A pada entity material_doc untuk membedakan jenis barang dan jenis material_doc yang sebelumnya tidak terdapat pada model ER-1, sehingga adanya penambahan entity material_doc_terima dan material_doc_ambil.

Berikut ini merupakan jumlah data untuk masing-masing pengujian pada desain model ER-2.Data yang digunakan berasal dari desain model ER-1, yaitu :

Tabel 3.2 Jumlah Record Pada ER Model 2

Atribut

Jumlah Data Masing-Masing Pengujian

Pengujian 1 Pengujian 2 Pengujian 3 Pengujian 4 Barang 100.068.428 10.068.428 1.068.428 108.427 Karyawan 100.048.368 10.048.368 1.048.368 101.295 Material Doc 100.054.085 10.054.085 1.054.085 152.175


(48)

Tabel 3.2 Jumlah Record Pada ER Model 2 (Lanjutan)

Material Doc Ambil 50.041.660 5.041.660 541.660 90.521 Material Doc Terima 50.012.425 5.012.425 512.425 61.654 Pasok 100.022.952 10.022.952 1.022.952 102.952 Supplier 100.002.381 10.002.381 1.002.381 102.380 Transaksi 100.153.237 10.153.237 1.153.237 129.998


(49)

3. Diagram ER-3

Pada model ER-3 (gambar 3.4), sedikit berbeda dengan ER-2 yaitu tidak adanya variasi IS-A pada material_doc untuk membedakan jenis material_doc. Tetapi, pada model ER-3 ini jenis material_doc dipecah menjadi 2 entity, yaitu entity material_doc_ambil dan material_doc_terima, sehingga terjadi penambahan relasi transaksi-1 dan transaksi-2.


(50)

Berikut ini merupakan jumlah data untuk masing-masing pengujian pada desain model ER-3. Data yang digunakan berasal dari desain model ER-2, yaitu :

Tabel 3.3 Jumlah Record Pada ER Model 3

Atribut

Jumlah Data Masing-Masing Pengujian

Pengujian 1 Pengujian 2 Pengujian 3 Pengujian 4 Barang 100.068.428 10.068.428 1.068.428 108.427 Karyawan 100.048.368 10.048.368 1.048.368 101.295 Material Doc Ambil 50.041.660 5.041.660 541.660 90.521 Material Doc Terima 50.012.425 5.012.425 512.425 61.654

Pasok 100.022.952 10.022.952 1.022.952 102.952

Supplier 100.002.381 10.002.381 1.002.381 102.380

Transaksi_1 25.589.439 2594181 294655 111.473

Transaksi_2 74.563.798 7559056 858582 18.525

Query yang dibuat dalam pengujian ini dibedakan menjadi 7 jenis yaitu Simple Query, Aggregate Query, Inner Join Query, Outer Join Query, Subquery, Correlated Subquery, Kompleks Query yang digunakan pada masing-masing desain model data relational dengan output yang sama pada DAS, RAID 1, RAID 0 .

Setiap pengujian terhadap statement query akan diperoleh waktu dan costnya. Waktu yang diperoleh yaitu waktu response time rata-rata untuk setiap query. Cost yang diperoleh adalah total pengaksesan disk dimana merupakan jumlah pengambilan page dari disk ke memori.

Statement query yang digunakan untuk pengujian yaitu : 1. Simple Query

ER-1

select mat_doc,id_pegawai from material_doc where mat_doc = 4900005190


(51)

ER-2

select a.mat_doc mat_doc, a.id_pegawai id_pegawai from material_doc_ambil a, material_doc b

where a.mat_doc = b.mat_doc and a.mat_doc = 4900005190

ER-3

select mat_doc_ambil mat_doc,id_pegawai from material_doc_ambil where mat_doc_ambil = 4900005190

2. Aggregate Query ER-1

select count(*) Total from material_doc where kode_kategori_doc =113

ER-2

select Count(*) Total from material_doc_terima a, material_doc b where a.mat_doc = b.mat_doc and a.kode_kategori_doc = 113

ER-3

select count(*) Total from material_doc_terima

3. Inner Join Query ER-1

select c.id_barang, a.nama_pegawai,c.quantity from transaksi c inner

join material_doc b

on c.mat_doc = b.mat_doc inner join karyawan a

on b.id_pegawai = a.id_pegawai where a.id_pegawai = 1000055074


(52)

ER-2

select c.id_barang, a.nama_pegawai,c.quantity from transaksi c

join material_doc_ambil b on c.mat_doc = b.mat_doc join material_doc d on b.mat_doc = d.mat_doc join karyawan a

on d.id_pegawai = a.id_pegawai where a.id_pegawai = 1000055074

ER-3

select c.id_barang, a.nama_pegawai,c.quantity from transaksi_1 c

join material_doc_ambil b

on c.mat_doc_ambil = b.mat_doc_ambil join karyawan a

on b.id_pegawai = a.id_pegawai where a.id_pegawai = 1000055074

4. Outer Join Query ER-1

select c.id_barang, a.nama_pegawai,c.quantity from transaksi c

left outer join material_doc b on c.mat_doc = b.mat_doc left outer join karyawan a on b.id_pegawai = a.id_pegawai where a.id_pegawai = 1000055074

ER-2

select c.id_barang, a.nama_pegawai,c.quantity from transaksi c


(53)

left outer join material_doc_ambil b on c.mat_doc = b.mat_doc

left outer join material_doc d on b.mat_doc = d.mat_doc left outer join karyawan a on d.id_pegawai = a.id_pegawai where a.id_pegawai = 1000055074

ER-3

select c.id_barang, a.nama_pegawai,c.quantity from transaksi_1 c

left outer join material_doc_ambil b on c.mat_doc_ambil = b.mat_doc_ambil left outer join karyawan a

on b.id_pegawai = a.id_pegawai where a.id_pegawai = 1000055074

5. Subquery ER-1 select *

from ( select id_barang,count(*) Total from pasok where id_vendor = 400879 group by id_barang )

ER-2 select *

from ( select id_barang,count(*) Total from pasok where id_vendor = 400879 group by id_barang)


(54)

ER-3 select *

from ( select id_barang,count(*) Total from pasok where id_vendor = 400879 group by id_barang)

6. Corelated Subquery ER-1

select id_barang, nama_material from barang

where id_barang IN (select id_barang from transaksi where id_barang = barang.id_barang) and id_barang = 5200007713

ER-2

select id_barang, nama_material from barang

where id_barang IN (select id_barang from transaksi where id_barang = barang.id_barang) and id_barang = 5200007713

ER-3

select id_barang, nama_material from barang

where id_barang IN (select id_barang from transaksi_2 where id_barang = barang.id_barang) and id_barang = 5200007713

7. Kompleks Query ER-1

select e.id_pegawai, c.nama_pegawai, a.id_barang,a.nama_material from (select id_barang, nama_material from barang

where id_barang IN(select id_barang from pasok) and id_barang in (select id_barang from transaksi) and kode_kategori_barang = 12) a

join (select mat_doc, id_barang from transaksi) b on a.id_barang = b.id_barang

join material_doc e on b.mat_doc = e.mat_doc


(55)

join karyawan c

on e.id_pegawai = c.id_pegawai

where a.id_barang = 5100000401 and e.id_pegawai = 1000011448

ER-2

select e.id_pegawai, c.nama_pegawai, a.id_barang,a.nama_material from (select id_barang, nama_material from barang

where id_barang IN (select id_barang from pasok) and id_barang in (select id_barang from transaksi) and kode_kategori_barang = 12) a

join (select mat_doc, id_barang from transaksi) b on a.id_barang = b.id_barang

join material_doc_ambil e on b.mat_doc = e.mat_doc join material_doc f

on e.mat_doc = f.mat_doc join karyawan c

on f.id_pegawai = c.id_pegawai

where a.id_barang = 5100000401 and f.id_pegawai = 1000011448

ER-3

select e.id_pegawai, c.nama_pegawai, a.id_barang,a.nama_material from (select id_barang, nama_material from barang

where id_barang IN (select id_barang from pasok) and id_barang in (select id_barang from transaksi_1) and kode_kategori_barang = 12) a

join (select mat_doc_ambil, id_barang from transaksi_1) b on a.id_barang = b.id_barang

join material_doc_ambil e

on b.mat_doc_ambil = e.mat_doc_ambil join karyawan c

on e.id_pegawai = c.id_pegawai


(56)

3.3 Perangkat Keras dan Perangkat LunakPengujian Sistem

Pengujian sistem ini dilakukan dengan menggunakan perangkat keras sebagai berikut :

 Processor Intel(R) Core(TM) i3-3220 3.30 GHz

 HD SATA 3 2x500 GB

 RAM DDR3 8GB

 VGA Card

 Keyboard dan mouse

Sedangkan perangkat lunak yang dipakai untuk membangun aplikasi ini, antara lain :

 Windows 7 Ultimate

 Database Management System Oracle 11gR2


(57)

HASIL DAN PEMBAHASAN PENELITIAN

Pada bab ini akan dibahas hasil dan pembahasan penelitian ditinjau dari performansi query dan desain model data relational, baik terhadap RAID itu sendiri maupun jika dibandingkan dengan DAS (Direct-Attached Storage). RAID yang akan digunakan pada proses pengujian ini adalah RAID 1 dan RAID 0. Salah satu cara untuk mengukur performansinya adalah dengan memperhatikan responstimenya dan cost query.

4.1 Hasil Penelitian

4.1.1 Hasil Penelitian Response Time Pada DAS, RAID 1, RAID 0

Dengan menggunakan perangkat lunak yang telah dibangun, dilakukan penelitian terhadap 7 jenis bentuk query. Tabel dibawah ini merupakan hasil response time untuk 7 jenis bentuk query.

1. Hasil Penelitian Response Time Pada Simple Query

Hasil penelitian response time pada simple query yang dilakukan pada DAS, RAID-1, dan RAID-0 dapat dilihat pada tabel 4.1.Dari hasil tersebut dapat dibuat sebuah grafik perbandingan (seperti gambar 4.1) sehingga dapat dengan mudah untuk melakukan analisa.


(58)

Tabel 4.1 Perband

Jumlah Data

DAS 1. Simple query

a. 100.000 - ER-1 - ER-2 - ER-3 0.021 0.03 0.01 b. 100.000 - ER-1 - ER-2 - ER-3 c. 1.000.000 - ER-1 - ER-2 - ER-3 d. 10.000.000 - ER-1 - ER-2 - ER-3 e. 100.000.000 - ER-1 - ER-2 - ER-3 0.021 0.03 0.01 0.06 0.042 0.018 0.03 0.108 0.03 0.044 0.064 0.038

Gambar 4.1 Grafik Perbandingan res 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 ER 1 second

Tabel 4.1 Perbandingan response time pada simple query Response Time

RAID-1 RAID-0 Perbandingan Kesimpulan

0.014 0.014 0.016 0.009 0.019 0.016

2.33 : 1.55 : 1 1.58 : 0.74 : 1 0.63 : 1 : 1

RAID 0 lebih cepat pada desain ER 1 denga kecepatan 0.009s 0.014 0.014 0.016 0.03 0.042 0.03 0.045 0.098 0.024 0.046 0.064 0.03 0.009 0.019 0.016 0.023 0.031 0.028 0.028 0.0693 0.037 0.049 0.06 0.048

2.33 : 1.55 : 1 1.58 : 0.74 : 1 0.63 : 1 : 1 2.6 : 1.3 : 1 1.35 : 1.35 : 1 0.64 : 1.07 : 1 1.07 : 1.6 : 1 1.55 : 1.41 : 1 0.81 : 0.65 : 1 0.89 : 0.94 : 1 1.06 : 1.06 : 1 0.79 : 0.63 : 1

RAID 0 lebih cepat pada desain ER 1 denga kecepatan 0.009s

DAS lebih cepat pada desain ER 3 dengan kecepatan 0.018s

RAID 1 lebih cepat pada desain ER 3 denga kecepatan 0.024s

RAID 1 lebih cepat pada desain ER 3 denga kecepatan 0.003s

afik Perbandingan response time pada simple query, Jumlah data 100.000.000

ER 1 ER 2 ER 3

DAS

RAID 1

RAID 0

Desain model imple query

Kesimpulan Hasil Pengujian

RAID 0 lebih cepat pada desain ER 1 dengan kecepatan 0.009s

RAID 0 lebih cepat pada desain ER 1 dengan kecepatan 0.009s

DAS lebih cepat pada desain ER 3 dengan kecepatan 0.018s

RAID 1 lebih cepat pada desain ER 3 dengan kecepatan 0.024s

RAID 1 lebih cepat pada desain ER 3 dengan kecepatan 0.003s

sponse time pada simple query, Jumlah data RAID 1

RAID 0


(59)

2. Hasil Penelitian Response Time Pada Agregate Q Hasil penelitian

DAS, RAID-1, dan dapat dibuat sebuah dengan mudah untuk

Tabel 4.2 Perb

Jumlah Data DAS

2. Aggregate query a. 100.000 - ER-1 - ER-2 - ER-3 b. 1.000.000 - ER-1 - ER-2 - ER-3 c. 10.000.000 - ER-1 - ER-2 - ER-3 d. 100.000.000 - ER-1 - ER-2 - ER-3 0.141 0.26 0.065 0.424 0.575 0.115 4.172 9.62 0.87 43.337 140.413 8.487

Gambar 4.2 Grafik Perbandingan response time pada 0 50 100 150 200 250 ER 1 second

Response Time Pada Agregate Query

response time pada Agregate Query yang dilakukan 1, dan RAID-0 dapat dilihat pada tabel 4.2.Dari hasil sebuah grafik perbandingan (seperti gambar 4.2) sehingga udah untuk melakukan analisa.

Tabel 4.2 Perbandingan response time pada aggregate query Response Time

DAS RAID-1 RAID-0 Perbandingan Kesimpulan

0.141 0.065 0.424 0.575 0.115 4.172 43.337 140.413 8.487 0.268 0.147 0.027 0.938 1.038 0.294 6.413 16.953 2.273 65.246 246.191 25.441 0.064 0.158 0.032 0.214 0.427 0.086 2.012 7.208 0.457 22.22 130.066 4.157

2.2 : 4.18 : 1 1.65 : 0.93 : 1 2.03 : 0.84 : 1 1.98 : 4.38 : 1 1.35 : 2.43 : 1 1.34 : 3.42 : 1 2.07 : 3.19 : 1 1.33 : 2.35 : 1 1.9 : 4.97 : 1 1.95 : 2.93 : 1 1.08 : 1.89 : 1 2.04 : 6.12 : 1

RAID 1 lebih cepat pada desain ER 3 denga kecepatan 0.027s RAID 0 lebih desain ER 3 denga kecepatan 0.086s

RAID 0 lebih cepat pada desain ER 3 denga kecepatan 0.457s

RAID 0 lebih cepat pada desain ER 3 denga kecepatan 4.157s

2 Grafik Perbandingan response time pada aggregate quer data 100.000.000

ER 1 ER 2 ER 3

DAS

RAID 1

RAID 0

Desain model

yang dilakukan pada 4.2.Dari hasil tersebut 4.2) sehingga dapat

gate query

Kesimpulan Hasil Pengujian

RAID 1 lebih cepat pada desain ER 3 dengan kecepatan 0.027s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.086s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.457s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 4.157s

aggregate query, jumlah RAID 1

RAID 0


(60)

3. Hasil Penelitian Response Time Pada Ine Hasil penelitian response

DAS, RAID-1, dan dapat dibuat sebuah

dengan mudah untuk melakukan analisa. Tabel 4.3 Per

Jumlah Data DAS

3. Inner join query a. 100.000 - ER-1 - ER-2 - ER-3 b. 1.000.000 - ER-1 - ER-2 - ER-3 c. 10.000.000 - ER-1 - ER-2 - ER-3 d. 100.000.000 - ER-1 - ER-2 - ER-3 0.218 0.226 0.112 0.881 0.831 0.255 7.088 6.53 2.19 71.23 64.89 18.308

Gambar 4.3 Grafik Perbandingan res 0 20 40 60 80 100 120 second

Response Time Pada Iner Join Query

response time pada Iner Join Query yang dilakukan 1, dan RAID-0 dapat dilihat pada tabel 4.3.Dari hasil sebuah grafik perbandingan (seperti gambar 4.3) sehingga mudah untuk melakukan analisa.

Tabel 4.3 Perbandingan response time pada inner join query Response Time

DAS RAID-1 RAID-0 Perbandingan Kesimpulan

0.218 0.226 0.112 0.881 0.831 0.255 7.088 71.23 64.89 18.308 0.134 0.172 0.106 1.738 1.804 0.587 11.806 13.004 2.157 107.926 95.133 24.792 0.123 0.144 0.072 0.416 0.436 0.148 3.226 3.407 0.897 37.754 38.655 8.019

1.77 : 1.09 : 1 1.57 : 1.19 : 1 1.55 : 1.47 : 1 2.12 : 4.18 : 1 1.9 : 4.13 : 1 1.72 : 3.96 : 1 2.19 : 3.65 : 1 1.92 : 3.82 : 1 2.44 : 2.40 : 1 1.88 : 2.85 : 1 1.68 : 2.46 : 1 2.28 : 3.09 : 1

RAID 0 le

desain ER 3 denga kecepatan 0. RAID 0 le

desain ER 3 denga kecepatan 0. RAID 0 le

desain ER 3 denga kecepatan 0. RAID 0 le

desain ER 3 denga kecepatan 8.

k Perbandingan response time pada inner join query data 100.000.000

ER 1 ER 2 ER 3

DAS

RAID 1

RAID 0

Desain model

yang dilakukan pada 4.3.Dari hasil tersebut 4.3) sehingga dapat

time pada inner join query

Kesimpulan Hasil Pengujian

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.072s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.148s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.897s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 8.019s

join query, Jumlah Desain model


(61)

4. Hasil Penelitian Response Time Pada Outer Join Query Hasil penelitian response

DAS, RAID-1, dan dapat dibuat sebuah

dengan mudah untuk melakukan analisa. Tabel 4.4 Perbandingan res

Jumlah Data DAS

5. Outer join query a. 100.000 - ER-1 - ER-2 - ER-3 b. 1.000.000 - ER-1 - ER-2 - ER-3 c. 10.000.000 - ER-1 - ER-2 - ER-3 d. 100.000.000 - ER-1 - ER-2 - ER-3 0.23 0.225 0.112 0.813 1.188 0.258 6.406 7.252 1.96 70.189 65.77 18.906

Gambar 4.4 Grafik Perbandingan res 0 20 40 60 80 100 120 second

Response Time Pada Outer Join Query

response time pada Outer Join Query yang dilakukan 1, dan RAID-0 dapat dilihat pada tabel 4.4.Dari hasil sebuah grafik perbandingan (seperti gambar 4.4) sehingga mudah untuk melakukan analisa.

rbandingan response time pada outer join query Response Time

DAS RAID-1 RAID-0 Perbandingan Kesimpulan

0.225 0.112 0.813 1.188 0.258 6.406 7.252 70.189 65.77 18.906 0.127 0.142 0.045 1.789 1.463 0.653 12.293 11.634 2.796 101.268 104.143 25.803 0.174 0.115 0.033 0.431 0.463 0.11 3.186 3.227 0.891 38.086 39.259 8.12

1.32 : 0.73 : 1 1.95 : 1.23 : 1 3.39 : 1.36 : 1 1.88 : 4.15 : 1 2.56 : 3.16 : 1 2.34 : 5.93 : 1

2.01 : 3.56 : 1 2.25 : 3.6 : 1 2.12 : 3.14 : 1 1.84 : 2.66 : 1 1.67 : 2.65 : 1 2.33 : 3.18 : 1

RAID 0 le

desain ER 3 denga kecepatan 0. RAID 0 le

desain ER 3 denga kecepatan 0.11s

RAID 0 le

desain ER 3 denga kecepatan 0.891s RAID 0 le

desain ER 3 denga kecepatan 8.12s

k Perbandingan response time pada outer join query data 100.000.000

ER 1 ER 2 ER 3

DAS

RAID 1

RAID 0 second

Desain model

yang dilakukan pada 4.4.Dari hasil tersebut 4.4) sehingga dapat

join query

Kesimpulan Hasil Pengujian

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.033s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.11s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.891s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 8.12s


(62)

5. Hasil Penelitian Response Time Pada SubQuery Hasil penelitian response

RAID-1, dan RAID dibuat sebuah grafik perb mudah untuk melakukan ana

Tabel 4.5 Perband

Jumlah Data DAS

6. Subquery a. 100.000 - ER-1 - ER-2 - ER-3 b. 1.000.000 - ER-1 - ER-2 - ER-3 c. 10.000.000 - ER-1 - ER-2 - ER-3 d. 100.000.000 - ER-1 - ER-2 - ER-3 0.205 0.106 0.09 0.455 0.435 0.42 4.155 4.12 3.88 36.55 34.55 36.55

Gambar 4.5 Grafik Perbandingan res 0 20 40 60 80 ER 1 second

Response Time Pada SubQuery

response time pada SubQuery yang dilakukan dan RAID-0 dapat dilihat pada tabel 4.5.Dari hasil tersebut sebuah grafik perbandingan (seperti gambar 4.5) sehingga d

uk melakukan analisa.

Tabel 4.5 Perbandingan response time pada subquery Response Time

DAS RAID-1 RAID-0 Perbandingan Kesimpulan

0.205 0.106 0.455 0.435 4.155 36.55 34.55 36.55 0.058 0.067 0.062 0.963 0.938 0.927 6.324 5.829 4.502 60.155 53.25 51.454 0.072 0.034 0.04 0.204 0.208 0.252 1.71 1.704 1.79 40.584 38.595 17.062

2.85 : 0.81 : 1 3.12 : 1.97 : 1 2.25 : 1.55 : 1 2.23 : 4.72 : 1 2.09 : 4.5 : 1 1.67 : 3.68 : 1 2.43 : 3.69 : 1 2.42 : 3.42 : 1 2.17 : 2.51 : 1 0.9 : 1.48 : 1 0.89 : 1.38 : 1 2.14 : 3.01 : 1

RAID 0 desain ER 2 de kecepatan 0. RAID 0 le desain ER 1 de kecepatan 0. RAID 0 le desain ER 2 de kecepatan 1. RAID 0 le desain ER 3 de kecepatan 1

Gambar 4.5 Grafik Perbandingan response time pada subquery, Jumlah data 100.000.000

ER 1 ER 2 ER 3

DAS

RAID 1

RAID 0

Desain model

dilakukan pada DAS, hasil tersebut dapat sehingga dapat dengan

Kesimpulan Hasil Pengujian

RAID 0 lebih cepat pada desain ER 2 dengan kecepatan 0.034s

RAID 0 lebih cepat pada desain ER 1 dengan kecepatan 0.204s

RAID 0 lebih cepat pada desain ER 2 dengan kecepatan 1.704s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 17.062s

, Jumlah data RAID 1

RAID 0


(63)

6. Hasil Penelitian Respo Hasil penelitian response DAS, RAID-1, dan dapat dibuat sebuah dengan mudah untuk

Tabel 4.6 Perbandingan response time

Jumlah Data DAS

6. Corelated Subquery a. 100.000 - ER-1 - ER-2 - ER-3 b. 1.000.000 - ER-1 - ER-2 0.108 0.09 0.029 0.305 0.305 - ER-3 c. 10.000.000 - ER-1 - ER-2 - ER-3 d. 100.000.000 - ER-1 - ER-2 - ER-3 0.235 2.28 3.08 1.747 22.15 21.15 17.382

Gambar 4.6 Grafik Perbandingan response time 0 10 20 30 40 ER 1 second

Response Time Pada Corelated Query

response time pada Corelated Query yang dilakukan 1, dan RAID-0 dapat dilihat pada tabel 4.6.Dari hasil sebuah grafik perbandingan (seperti gambar 4.6) sehingga udah untuk melakukan analisa.

bandingan response time pada correlated query Response Time

DAS RAID-1 RAID-0 Perbandingan Kesimpulan

0.108 0.029 0.305 0.305 0.046 0.017 0.023 0.578 0.496 0.026 0.026 0.017 0.145 0.146

4.15 : 1.77 : 1 3.46 : 0.65 : 1 1.7 : 1.35 : 1 2.1 : 3.98 : 1 2.08 : 3.39 : 1

RAID 0 le

desain ER 3 denga kecepatan 0. RAID 0 le

desain ER 3 denga 0.235 1.747 22.15 21.15 17.382 0.626 4.34 5.014 3.055 35.213 31.672 25.898 0.123 1.046 1.089 0.808 12.457 11.262 7.431

1.91 : 5.08 : 1 2.18 : 4.15 : 1 2.83 : 4.6 : 1 2.16 : 3.78 : 1 1.78 : 2.83 : 1 1.88 : 2.81 : 1 2.34 : 3.48 : 1

kecepatan 0. RAID 0 le

desain ER 3 denga kecepatan 0. RAID 0 le

desain ER 3 denga kecepatan 7.

Gambar 4.6 Grafik Perbandingan response time pada correlated quer data 100.000.000

ER 1 ER 2 ER 3

DAS

RAID 1

RAID 0

Desain model

yang dilakukan pada 4.6.Dari hasil tersebut 4.6) sehingga dapat

time pada correlated query

Kesimpulan Hasil Pengujian

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.017s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.123s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 0.808s

RAID 0 lebih cepat pada desain ER 3 dengan kecepatan 7.431s query, Jumlah DAS RAID 1 RAID 0 Desain model


(1)

- ER-3

4. Outer Join Query - ER-1


(2)

- ER-2

- ER-3


(3)

5. Subquery

- ER-1, ER-2, dan ER-3

6. Correlated Subquery - ER-1 dan ER-2

- ER-3


(4)

7. Kompleks Query - ER-1


(5)

- ER-2


(6)

- ER-3