BAB 2 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 perbaikanperbaikan 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 tabeltabel. 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 (column atau 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 Universita Sumatera Utara 7 tentang basis data. Pandangan konseptual ini tentunya harus bisa diimplementasikan kedalam bentuk tabel, karena basis data relasional hanya mengenal tabel. ER adalah salah satu pemodelan basis data konseptual yang menggambarkan basis data ke dalam bentuk Entitas-Entitas dan Relasi yang terjadi di antara entitas entitasentitas yang ada(SilberSchatz,et SilberSchatz,et al. 2002) 2002). Entitas diartikan sebagai ‘objek objek’ didunia nyata yang bisa dibedakan dengan ‘‘objek’ yang lain. Relasi diartikan sebagai hubungan yang terjadi diantara satu entitas dengan entitas yang lainnya. 2.2.1 Entitas dan Himpunan Entitas Definisi entitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa : – Objek Konkrit Contoh : Orang, Buku – Objek Abstrak Contoh : Jadwal, Pinjaman, Tabungan Bambangadalah salah satu contoh dari entitas. Sedangkan bambang, susi, sumarno arno merupakan himpunan him entitas orang. Dapat dikatakan katakan bahwa Himpunan Entitas (Entity Set) : Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama. Kumpulan entitas orang oran dengan karakteristik mempunyai unyai nim, prodi, dsb bisa dikatakan katakan merupakan himpunan entitas mahasiwa. Entitas menunjuk kepada pada individu suatu objek sedangkan himpunan entitas menunjuk pada rumpun (family) dari individu tersebut. Gambar 2.1 2. Himpunan Entitas Mahasiswa Universita Sumatera Utara 8 Sebuah entitas / himpunan entitas dapat di gambarkan / di notasikan dengan sebuah gambar persegi panjang. Berikut merupakan contoh entitas mahasiwa, jadwal dan pinjaman. Gambar 2.2 2. Contoh Himpunan Entitas Setiap entitas mempunyai atribut yang melekat pada entitas tersebut. Berikut gambaran konseptual basis data (* entitas dan atribut) yang direfleksikan kedalam bentuk fisik dari basis data (* tabel dan kolom). Gambar 2.3 2. Gambaran Himpunan Entitas di Tabel 2.2.2 Atribut Atribut merupakan gambaran karakteristik dari sebuah entitas atau himpunan entitas. Contoh : atribut untuk himpunan entitas mahasiswa adalah nim, nama, alamat, ipk, program studi, hobi,, dsb.Setiap dsb. atribut mempunyai domain value set yaitu batasan batasan yg dibolehkan bagi suatu atribut. 2.2.3 Relasi ER menggambarkan entitas-entitas entitas entitas dengan atributnya yang saling berelasi. Relasimenggambarkan menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat. Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut. Universita Sumatera Utara 9 Gambar 2.4 2. Relasi digambarkan dengan belah ketupat Gambar di atas menunjukkan hubungan antara entitas mahasiswa dan entitas organisasi. Relasi yang terjadi adalah relasi mempunyai, dimana mahasiwa mempunyai organisasi. Entitas mahasiwa memiliki atribut nim, nama, alamat, prodi, ipk, dsb. Sedangkan entitas organisasi memiliki atribut kd_organisasi, nama_organisasi, jenis_organisasi (* olahraga/kesenian/jurusan dsb). 2.2.3.1 Kardinalitas Relasi Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-relasi relasi dengan entitas pada himpunann entitas yang lain. Pada himpunan relasi biner, pemetaan kardinalitas relasi dapat berupa salah satu dari pilihan berikut : Satu ke Satu Gambar 2.5 2. Relasi dengan Kardinalitas 1 ke 1 Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Asumsi si penulis akan membuat sebuah tugas yaitu menjadi pj_cuci_piring. 1 Orang di tugaskan untuk menjadi pj_cuci_piring di maksimal 1 hari. Begitupun juga jika di balik, pada 1 hari, maksimal 1 orang yang menjadi pj_cuci_piring. Dari A ke B kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena ituu relasi ini berkardinalitas 1 ke 1. Universita Sumatera Utara 10 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 Universita Sumatera Utara 11 maksimal adalah 1, dan dari B ke A kardin kardinalitasnya alitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1. Banyak ke Banyak Gambar 2.8 2. Relasi dengan Kardinalitas Banyak ke Banyak Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal banyak entitas di himpunan entitas B. Asumsikan A sikan bahwa dalam 1 hari pj_cuci_piring bisa di bebankan pada banyak orang dan 1 orang bisa di bebankan untuk menjadi pj_cuci_piring lebih dari 1 hari. Dari A ke B kardinalitasnya maksimal adalah banyak, banyak, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke banyak. 2.2.4 Diagram ER Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis. Gambar 2.9 Contoh Diagram ER Universita Sumatera Utara 12 Notasi yang digunakan di Diagram ER adalah : o Garis : Link yang menghubungkan atara Entitas dengan atribut,dan dan entitas dengan relasi atau entitas 2.3 o Elips dobel :Menunjukkan atribut yang multivalued o Elips garis terputus :Menunjukkan atribut turunan Konversi ER ke Tabel T 2.3.1 Himpunan Entitas Lemah Secara ecara umum, Himpunan Entitas Lemah tidak memiliki primary key dan selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah digambarkan dengan double diamond. Diskriminator / key parsialadalah parsial atribut-atribut yang dapatt membedakan membedak entitas-entitas entitas yang terdapat di himpunan entitas lemah. Diskriminator tidak sama dengan primary key.. Konsep diskriminator hanya di pakai pada himpunan entitas lemah. Primary key pada Himpunan Entitas lemah ada 2 yaitu primary key dari entitas kuat yg berelasi dan diskriminator / key parsialnya. Diskriminator di notasikan dengan garis bawah yang putus putus. Gambar 2.10 2. Contoh Himpunan Entitas Lemah Relasi di atas menggambarkan bahwa seorang pegawai mendapatkan fasilitas tunjangan dari perusahaan tempat dia bekerja. Tunjangan dalam hal ini adalah entitas lemah. Tunjangan sebagai entitas tidak bisa berdiri sendiri, tunjangan harus bergantung pada entitas as pegawai (* tidak akan ada tunjangan jika tidak ada pegawai). Universita Sumatera Utara 13 Kardinalitas relasi yang terjadi pada himpunan entitas lemah biasanya merupakan banyak ke 1 atau 1 ke banyak dengan kardinalitas 1 di himpunan entitas yang lebih kuat. 2.3.2 Spesialisasi Spesialisasi merupakan proses desain top-down dengan mendesain subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan entitas. Tujuan dari spesialisasi adalah memberikan gambaran konseptual tentang perbedaan karakteristik dari himpunan entitas itas yang hampir serupa dengan konsep sub grouping / pengelompokan. Subgrouping di atas menjadi himpunan entias yang levelnya lebih rendah dan memiliki atribut tersendiri yang tidak dimiliki pada level di atasnya. Atribut ini khas dan merupakan pembeda dar dari entitas di subgroup yang lain. IS A dinotasikan den dengan gambar segitiga berlabelIS berlabelISA. Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada level tinggi secara otomatis akan di turunkan pada level di bawahnya. Gambar 2.11 Contoh Spesialisasi Contoh di atas menggambarkan bahwa entitas pegawai mempunyai 2 subgroup yaitu pegawai tetap dan pegawai honorer. Kedua entitas pegawai tetap dan pegawai honorer sama sama mempunyai atribut turunan yaitu nama dan id_pegawai dari entitas pegawai. Perbedaan dari pegawai tetap dan pegawai honorer terdapat di atribut yang melekat pada subgroup-nya. nya. Atribut besar tunjangan dan gaji perbulan Universita Sumatera Utara 14 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 : Universita Sumatera Utara 15 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 plan yang terbaik untuk suatu query (Lewis, 2006). Query optimizer adalah 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. Universita Sumatera Utara 16 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 Universita Sumatera Utara 17 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 optimizer untuk 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. Universita Sumatera Utara 18 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 : R⋈<kondisi join> (S) Universita Sumatera Utara 19 Dua relasi yang terlibat dibedakan menjadi relasi luar dan relasi dalam. Untuk memudahkan, dalam left deep plan terdapat 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 TABLE ACCESS FULL PER_ALL_PEOPLE_F Universita Sumatera Utara 20 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 Universita Sumatera Utara 21 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. Universita Sumatera Utara 22 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. Universita Sumatera Utara 23 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. Gambar 2.14 RAID 1 Universita Sumatera Utara 24 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 Universita Sumatera Utara 25 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. Gambar 2.17 RAID 4 Universita Sumatera Utara 26 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. Gambar 2.18 RAID 5 Universita Sumatera Utara