BAB 2 LANDASAN TEORI
2.1 Pengertian Basisdata Basisdata sendiri memiliki pengertian “a shared collection of logically related data, and a description of this data, designed to meet the information needs of and organization”. (Connoly, 2002, p14). Pendekatan basisdata digunakan untuk menanggulangi masalah seperti: Duplication of data, Data dependence, Incompatible file formats, dan fixed queries / proliferation of application programs (Connolly, 2002, p12-p14). Semua masalah diatas dapat ditangani melalui pendekatan basisdata dengan dua faktor utama : •
Program aplikasi ditambahkan definisi data, daripada disimpan secara terpisah.
•
Program aplikasi hanya mengijinkan user tertentu memiliki kendali atas pengaksesan dan manipulasi dari data.
Kurang lebih basisdata itu merupakan sekumpulan data yang dirancang sedemikian rupa melalui komponen-komponennya (piranti lunak, perangkat keras, dan lain-lain) untuk memenuhi kebutuhan informasi dari suatu perusahaan. Untuk membuat suatu basisdata dibutuhkan DBMS (Database Management System).
6
DBMS adalah sebuah sistem piranti lunak yang memungkinkan pengguna untuk menciptakan, merawat, dan mengendalikan akses ke dalam basisdata. (Connoly, 2002, p16) Komponen-komponen DBMS terdiri dari : •
Perangkat Keras Dalam menjalankan DBMS dan aplikasi dibutuhkan perangkat keras untuk menjalankannya. (Monitor, Server, PC / Personal Computer, dan lain-lain).
•
Piranti Lunak Adalah program aplikasi yang digunakan untuk memantau, menjaga, mengelola, dan mencetak data. Bisa menggunakan bahasa pemograman generasi tiga seperti C, Java, Cobol, dan lain-lain, atau menggunakan 4th Generation Language.
•
Data Adalah komponen terpenting dalam DBMS dimana data diproses menjadi informasi yang dibutuhkan organisasi atau pengguna.
•
Procedure Adalah serangkaian instruksi pemakaian atau penggunaan dalam mengakses sebuah basisdata. (Dari log on ke basisdata, sampai instruksi untuk melihat hasil pengurutan, pencetakan form dan lain-lain).
•
Orang / karyawan Komponen terakhir dari DBMS.
7
2.1.1 Roles dalam Lingkungan Basisdata Data dan Database Administrator Data Administrator bertanggung jawab bagi manjamen sumber daya data termasuk perencanaan basisdata, pengembangan dan perawatan data, kebijakan-kebijakan dan instruksi-instruksi, dan perancangan konseptual/ logikal basisdata. Database Administrator bertanggung jawab bagi pengaktualisasian dari basisdata, termasuk perancangan fisik basisdata dan implementasinya, kendali keamanan dan integritas basisdata, perawatan /maintenance dari sistem operasi yang berjalan, dan memastikan penampilan yang dapat memuaskan keinginan pengguna.
Database Designers Dalam proyek perancangan database berskala besar, dapat dibedakan dua jenis perancangan: perancangan basisdata logikal dan perancang basisdata fisik.
Application Developer Tugas dari application developer adalah bertanggung jawab saat basisdata diimplementasikan, program aplikasi yang menyediakan kebutuhan bagi user harus sudah terintegrasi.
8
End Users End users adalah pengguna basisdata dimana mencari informasi yang dibutuhkan. Terdapat dua tipe end users: Naïve users dan Sophisticated users.
2.1.2 Data Definition Language (DDL) DDL adalah bahasa yang memungkinkan DBA atau pengguna untuk menggambarkan dan nama dari entity, atribut, dan relationship diperlukan bagi aplikasi, bersama dengan segala batasan keamanan dan integritas yang berkaitan. (Connolly, 2002, p40). DDL digunakan untuk mendefinisikan sebuah skema atau memodifikasi skema. Hasil dari kompilasi pernyataan DDL berbentuk tabel yang disimpan dalam System Catalog. System Catalog mengintegrasikan metadata, metadata mengandung definisi dari report, data items, dan lain-lain.
2.1.3 Data Manipulation Language (DML) DML adalah sebuah bahasa yang menyediakan serangkaian operasi untuk mendukung manipulasi data yang terdapat dalam sebuah basisdata. (Connolly, 2002, p41). Operasi manipulasi data meliputi : •
Penyisipan data baru ke dalam basisdata
•
Modifikasi data yang tersimpan dalam basisdata
•
Penarikan data yang tersimpan dalam basisdata
9
•
Pengapusan data dari basisdata Bagian dari DML yang melibatkan penarikan data disebut dengan query
language. Proses penarikan data dalam DML melibatkan 2 jenis teknik konstruksi penarikan yang berbeda: •
Procedural DML adalah bahasa yang mengizinkan user untuk memberitahu sistem tentang data apa yang dibutuhkan dan bagaimana tepatnya menarik sebuah data.
•
Non-Procedural DML adalah bahasa yang mengizinkan user untuk menyatakan data apa yang dibutuhkan daripada bagaimana data itu ditarik. (contohnya : SQL atau QBE).
2.2 Normalisasi Teknik normalisasi digunakan untuk membantu mengidentifikasi hubungan antara data. Normalisasi adalah sebuah pendekatan dari bawah ke atas terhadap rancangan basisdata yang dimulai dengan memeriksa relation antara atributatributnya.
2.2.1 Tujuan dari Normalisasi Normalisasi ditujukan sebagai rangkaian ujian terhadap sebuah relation untuk menentukan apakah relation tersebut memenuhi atau tidak memenuhi persyaratan atau batasan sebagai sebuah normal form.
10
Tiga normal form yang pertama kali diajukan disebut first (1NF), second (2NF), dan third (3NF) normal form. Semua normal form ini didasarkan pada ketergantungan fungsional di antara atribut-atribut sebuah hubungan/ relationship. Relation memiliki penumpukan data yang disebut update anomalies, yang dapat diklasifikasikan ke dalam insertion, deletion, atau modification anomalies.
2.2.2 Functional Dependency Salah satu konsep utama yang dihubungkan dengan normalisasi adalah functional dependency, yang menjelaskan hubungan antara atribut (Maier, 1983). Sebagai ringkasan, ciri utama dari functional dependencies yang kita gunakan dalam normalisasi : •
Memiliki sebuah relationship satu ke satu (one-to-one) antar atribut pada sisi kiri dan kanan dari sebuah dependency
•
Melekat sepanjang waktu
•
Merupakan nontrivial
Jenis-jenis functional dependencies yang paling berguna dalam mengindentifikasi pembatas-pembatas yang penting pada sebuah relasi dan cara penggunaan dependencies ini untuk mengenali sebuah primary key (atau candidate key) untuk sebuah relationyang diberikan. Konsep dari functional dependencies dan key adalah terpusat pada proses normalisasi.
11
2.2.2.1
Kesimpulan
Peraturan-Peraturan
untuk
Ketergantungan
Fungsional Mengidentifikasi kegunaan ketergantungan fungisonal pada sebuah relation dimulai dengan menspesifikasi kepercayaan fungsional yang jelas. Serangkaian kesimpulan peraturan yang menarik, dinamakan kebenaran-kebenaran Armstrong. Kebenaran-kebenaran Armstrong sebagai berikut : 1.
refleksifitas : jika B adalah serangkaian kecil dari A, maka A->B
2.
argumentasi : jika A -> B, maka B-> C, maka A->C
3.
transititas : jika A->B, maka B->C, maka A->C Beberapa peraturan lebih lanjut bisa berasal dari tiga yang
diberikan di atas yang mempermudah tugas yang praktis dari perhitungan X*. Pada peraturan-peraturan berikut, biarkan D menjadi serangkaian kecil yang lain dari atribut-atribut relation R, maka : 4.
determinasi sendiri : A->A
5.
dekomposisi : jika A->B, C, maka A->B dan A->C
6.
union : jika A->B dan A->C, maka A->B, C
7.
komposisi : jika A->B dan C->D, maka A, C->B, D
12
2.2.2.2 Rangkaian Minimal dari Ketergantungan Fungsional Sebuah rangkaian dari ketergantungan fungsional X adalah minimal jika rangkaian tersebut cukup dengan kondisi-kondisi berikut : •
setiap ketergantungan di X mempunyai sebuah atribut tunggal di atas sisi tangan kanannya
•
kita tidak bisa mengganti beberapa ketergantungan A->B di kolom X dengan ketergantungan C->B, dimana C adalah sebuah rangakian kecil, dari A yang sebenarnya, dan masih mempunyai sebuah ketergantungan yang sama dengan X.
•
Kita tidak bisa memindahkan beberapa ketergantungan dari X dan masih mempunyai sebuah rangkaian dari ketergantungan yang sama dengan X.
2.2.3 Proses dari Normalisasi Normalisasi adalah sebuah teknik formal untuk menganalisis relation berdasarkan pada kunci utama mereka dan ketergantungan fungsional. Di bawah ini adalah proses normalisasi secara rinci :
13
First Normal Form (1NF) Untuk mengubah tabel unnormalized menjadi normal form (1NF), kita harus mengidentifkasi dan menghilangkan grup yang berulang-ulang di tabel tersebut. Ada dua pendekatan umum untuk menghilangkan grup yang berulangulang dari tabel unnormalized : •
Di dalam pendekatan pertama, harus menghilangkan perulangan grup dengan memasuki data di dalam kolom yang kosong dimana terdapat baris yang mengulang data tersebut. Dengan kata lain, pengisian kekosongan dengan tidak mengulang data yang sama. Pendekatan ini disebut juga tabel ’flattening’.
•
Dalam pendekatan kedua, harus menghilangkan grup yang berulang-ulang dengna menempatkan perulangan data, bersamaan dengan original key attribute(s), dalam sebuah hubungan terpisah. Suatu waktu tabel unnormalized bisa mengandung lebih dari sebuah grup yang berulang, atau grup yang berulang di dalam grup perulangan. Dalam situasi ini, pendekatan ini akan menggunakan perulangan terus sampai tidak ada lagi perulangan grup yang tersisa.
14
Second Normal Form (2NF) Second normal form menampilkan hubungan dengan kunci yang berlawanan, hubungan antara primary key dengan dua atau lebih atribut. Second normal form (2NF) adalah relasi dalam first normal form (1NF) dan setiap atribut non-primary key yang berdiri sendiri pada primary key.
Third Normal Form (3NF) Walaupun relation 2NF mempunyai redudansi yang kurang daripada 1NF, mereka masih kurang dalam memperbaiki kesalahan yang ada. Bila yang diperbaiki hanya 1 tuple saja dan tidak yang lain, basisdata akan menjadi tidak konsisten. Perbaikan kesalahan ini disebabkan oleh ketergantungan transitif.
Untuk
menghilangkan
ketergantungan
transitif
(transitive
dependency) harus melakukan third normal form.
Transitive Dependency Merupakan sebuah kondisi dimana A, B , dan C merupaan atribut-atribut dari sebuah hubungan seperti itu yang jika A->B dan B->C kemudian secara transitif bergantung pada A yang melalui B (ditetapkan bahwa A secara fungsional tidak tergantung pada B atau C).
Definisi third normal form Third Normal Form (3NF) adalah sebuah relation yang ada pada first dan second normal form, dan yang dimana tidak mempunyai atribut non-
15
primary key (bukan kunci utama) yang secara transitif bergantung pada primary key.
2.3 SQL SQL adalah suatu bahasa berorientasi mengubah bentuk atau suatu bahasa yang merancang untuk menggunakan relasi untuk mengubah bentuk masukan ke dalam keluaran yang diperlukan. Dalam SQL terdapat dua komponen utama yaitu : •
Data Definition Language(DDL) untuk mendefinisikan struktur dari database dan mengontrol akses ke dalam data.
•
Data Manipulation Language(DML) untuk mendapatkan data serta mengupdate data.
2.3.1 Keuntungan dari SQL •
Dapat menciptakan database dan struktur relasinya.
•
Dapat
melaksanakan
tugas
manajemen
data
dasar,
seperti
penyisipan,modifikasi,dan penghapusan data dari hubungan relasi. •
Mudah digunakan karena sederhana dan querynya kompleks.
2.3.2 Kriteria penulisan format perintah dalam SQL •
Masing-masing kalimat di dalam suatu pernyataan harus dimulai dengan garis baru.
16
•
Permulaan dari tiap kalimat perlu disusun dengan permulaan dari kalimat yang lain.
•
Jika suatu kalimat mempunyai beberapa bagian,mereka perlu masingmasing nampak pada suatu garis terpisah dan ia memberi spasi di bawah start anak kalimat untuk menunjukkan relasi.
Dalam manipulasi data terdapat beberapa pernyataan SQL DML yakni : •
SELECT untuk query data di dalam basisdata
•
INSERT untuk memasukkan data ke dalam suatu tabel
•
UPDATE untuk mengupdate data di dalam suatu tabel
•
DELETE untuk menghapus data yang sudah ada di dalam sebuah tabel
Tujuan dalam memilih statement adalah untuk mendapat kembali dan menampilkan data dari satu atau lebih basisdata. Perintah itu sangat kuat yang dimana mampu melakukan hubungan dari pemilihan aljabar yang sejenisnya, proyeksi, dan operasi gabungan dalam statement tunggal. Urutan dari proses SELECT dinyatakan sebagai berikut : •
FROM untuk menetapkan tabel yang akan digunakan
•
WHERE untuk menyaring baris untuk beberapa kondisi
•
GROUP BY untuk membentuk kelompok baris dengan kolom yang sama nilainya
•
HAVING untuk menyaring grup untuk beberapa kondisi
•
SELECT untuk menetapkan kolom yang ada untuk ditampilkan
•
ORDER BY untuk menetapkan order yang akan ditampilkan
ISO menggambarkan lima fungsi utama dari SQL yaitu :
17
•
COUNT untuk mengembalikan nilai-nilai suatu kolom yang telah ditentukan
•
SUM untuk menjumlahkan nilai dalam suatu kolom yang telah ditetapkan
•
AVG untuk mengembalikan rata-rata nilai dalam kolom yang telah ditetapkan
•
MIN untuk mengembalikan nilai paling kecil didalam kolom yang ditetapkan
•
MAX untuk mengembalikan nilai paling besar didalam kolom yang ditetapkan
Di dalam SELECT terdapat beberapa ketentuan yang boleh berisi yaitu nama kolom, kumpulan fungsi, konstan, dan suatu ungkapan yang menyertakan kombinasi di atas. Di subqueries terdapat beberapa ketentuan yaitu : •
Suatu skalar subquery mengembalikan kolom tunggal dan baris,ini adalah nilai tunggal. Pada prinsipnya, suatu skalar subquery dapat digunakan kapan saja nilai tunggal diperlukan.
•
Suatu baris subquery mengembalikan berbagai kolom, tetapi lagi hanya baris tunggal. Suatu baris subquery dapat digunakan kapan saja suatu pembangunan nilai baris diperlukan.
•
Tabel subquery mengembalikan satu atau lebih kolom dan berbagai baris. Suatu tabel Subquery dapat digunakan kapan saja suatu tabel diperlukan.
18
Prosedur untuk membangkitkan hasil dari SELECT dengan suatu gabungan sebagai berikut : 1. Membentuk produk Cartesian dari tabel nam dalam FROM kalimat. 2. Jika ada suatu WHERE kalimat/ketentuan, menerapkan kondisi pencarian tersebut bagi masing-masing baris tabel produk, menahan kepuasan yang mencukupi kondisi tersebut.Dalam kaitannya dengan relasional aljabar, operasi ini menghasilkan suatu pembatasan produk Cartesian. 3. Karena masing-masing baris,menentukan nilai dari tiap item di dalam daftar SELECT untuk menghasilkan baris tunggal di dalam tabel hasil. 4. Jika SELECT DISTINCT telah dispesifikasikan, menghapuskan yang manapun salinan mengacuh dari tabel hasil.Di dalam relational langkah-langkah aljabar 3 dan 4 adalah setara dengan suatu proyeksi pembatasan di atas kolom menyebutkan di dalam daftar SELECT. 5. Jika ada suatu ORDER BY ketentuan mengurutkan jenis tabel sebagai hasil yang diperlukan.
19
2.4 Teknik Fact-Finding Fact-Finding adalah suatu proses formal yang menggunakan teknik seperti wawancara dan kuisioner untuk mengumpulkan fakta tentang sistem, keperluan dan pilihan. Fact Finding digunakan pada saat perencanaan basis data, penjelasan sistem dan pengumpulan keperluan serta tahap analisis. Selain itu, fact finding juga digunakan pada tahap perancangan basis data dan tahap setelah siklus tetapi masih termasuk jarang. Fakta-fakta yang dikumpulkan dalam fact finding, yaitu : 1.
Perancanaan basis data
2.
Definisi sistem
3.
Pengumpulan keperluan dan analisis
4.
Perancangan basisdata
5.
Perencanaan aplikasi
6.
Pemilihan DBMS
7.
Prototyping
8.
Implementasi
9.
Pengisian dan konversi data
10. Uji tes 11. Pemeliharaan operasional
20
2.4.1 Teknik Fact-Finding Lima teknik fact finding yang sering digunakan yaitu: •
Pemeriksaan Dokumentasi (Examining Documentation ) Pemeriksaan dokumentasi sangat berguna saat kita mencoba untuk mendapatkan pengetahuan bagaimana timbulnya keperluan basisdata. Dan juga dapat membantu menyediakan informasi pada bagian perusahaan yang berhubungan dengan masalah. Jika terdapat masalah pada sistem, maka langsung memeriksa dokumentasi yang berhubungan dengan sistem tersebut dengan memeriksa dokumen, form, laporan dan file yang berhubungan dengan sistem yang ada, sehingga kita dapat mengerti dengan cepat pada sistem tersebut.
•
Wawancara (Interviewing) Wawancara adalah teknik yang sering digunakan dan merupakan yang paling berguna. Wawancara dilakukan langsung berhadapan dengan individual. Tujuan dari wawancara adalah mencari fakta, memeriksa fakta, menjelaskan fakta, menghasilkan antusiasme,
mengikutsertakan
end
user,
mengidentifikasi
keperluan dan mengumpulkan ide dan opini. Ada 2 tipe wawancara, antara lain : •
Wawancara tidak terstruktur Wawancara tidak terstruktur hanya dipimpin dengan suatu
21
tujuan yang umum. Pewawancara hanya berpacu pada orang yang diwawancara untuk memberi kerangka dan arah untuk wawancara. Tipe ini tidak terdapat suatu yang terfokus, dan tidak bagus untuk perancangan dan analisis basis data. •
Wawancara terstruktur Pewawancara mempunyai kumpulan pertanyaan yang spesifikasi. Dengan berdasarkan tanggapan dari orang yang diwawancara, pewawancara dapat menambah pertanyaannya untuk mendapatkan penjelasan yang lebih jelas. Open-ended question
memungkinkan
orang
yang
diwawancara
menanggapi dengan cara apa saja yang menurutnya lebih tepat. Closed-ended question mengatur jawaban dengan beberapa pilihan. Keuntungan wawancara : 1. Memungkinkan
orang
yang
diwawancara
untuk
menanggapi lebih bebas dan terbuaka pada pertanyaan 2. Memungkinkan orang dyang diwawancara merasakan dirinya merupakan bagian dari proyek. 3. Memunginkan pewawancara follow up komentar yang diberikan orang yang diwawancarai. 4. Memungkinkan
pewawancara
pertanyaan saat wawancara.
22
beradaptasi
dengan
5. Memungkinkan pewawancara mengamati bahasa isyarat dari orang yang diwawancarai. Kelemahan wawancara : 1. Memerlukan waktu yang panjang dan berbiaya besar dan mungkin tidak begitu praktis. 2. Keberhasilan tergantung pada keahlian komunikasi pewawancara. 3. Keberhasilan bisa saja tergantung pada kemauan dari orang yang diwawancara dalam berpartisipasi pada kegiatan wawancara.
•
Pengamatan Operasi Perusahaan (Observing The Enterprise in Operation) Pengamatan merupakan cara yang paling efektif diantara teknik-teknik fact finding untuk mengetahui dan mengerti jelas tentang sistem. Teknik ini berguna terutama saat keaslian data dikumpulkan melalui metode yang lain. Dalam teknik ini sangat penting untuk mengetahui sebanyak mungkin tentang individuindividu dan aktivitasnya. Keuntungan-keuntungannya adalah : 1.
Memungkinkan untuk mengecek keaslian fakta dan data yang ada.
23
2.
Pengamat bisa melihat dengan jelas apa saja yang telah terjadi.
3.
Pengamat juga bisa memperoleh penjelasan data lingkungan fisik dari suatu tugas.
4.
Relatif tidak mahal.
5.
Pengamat bisa mengukur pekerjaannya. Kerugian-kerugiannya adalah :
1.
Orang-orang
bisa
mengetahui
atau
bisa
pula
tidak
mengetahui perbedaannya saat sedang diamati. 2.
Bisa kehilangan tugas pengamatan yang meliputi level-level perbedaan atau pengalaman normal volume selama periode waktu tersebut.
3.
Beberapa tugas tidak selalu ditampilkan tergantung dalam gaya apa mereka meneliti.
4.
•
Bisa tidak dipraktekan.
Penelitian (Research) Teknik pengumpulan data yang berguna untuk meneliti aplikasi-aplikasi dan permasalahannya.Jurnal komputer, bukubuku referensi dan internet adalah sumber-sumber informasi yang baik. Keuntungan-keuntungannya adalah : 1.
Menghemat waktu apabila sudah ada solusi.
24
2.
Para peneliti dapat melihat bagaimana orang lain telah memecahkan masalah yang sama atau keperluan yang sama.
3.
Menjaga para peneliti tetap up to date dengan perkembangan sekarang. Kelemahan-kelemahannya adalah :
1.
Dapat menghabiskan banyak waktu.
2.
Memerlukan akses ke sumber yang tepat dari informasi.
3.
Mungkin sama sekali tidak dapat membantu dalam memecahkan
masalah,
karena
masalah
tidak
dapat
didokumentasikan.
•
Pertanyaan (Questionnaires) Suatu teknik pengumpulan data yang lain untuk menghubungkan survei dan kuesioner. Kuesioner adalah dokumen untuk tujuan khusus yang memungkinkan data untuk digabungkan dari jumlah yang sangat banyak. Keuntungan-keuntungannya adalah : 1.
Orang bisa menyelesaikannya dan mengembalikannya dengan mudah.
2.
Cara yang relatif mudah untuk mengumpulkan data dalam jumlah yang banyak.
3.
Orang-orang lebih bisa menyediakan fakta yang sebenarnya karena para responden dirahasiakan.
25
4.
Tanggapan-tanggapan bisa diatur dalam bentuk daftar dan dianalisa dengan cepat. Kerugian-kerugiannya adalah :
1.
Jumlah responden mungkin rendah, bisa 5% sampai 10%.
2.
Kuesioner mungkin dikembalikan tidak komplit.
3.
Tidak
menyediakan
kesempatan
untuk
mengubah
pertanyaan yang salah disampaikan. 4.
Tidak bisa mengamati dan analisa bahasa tubuh responden.
5.
Bisa menghabiskan waktu untuk mempersiapkan kuesioner.
2.5 Siklus Hidup Aplikasi Basisdata 2.5.1 Perencanaan Basisdata Merupakan aktivitas manajemen yang memungkinkan tahapan dari siklus hidup aplikasi basisdata direalisasikan seefektif dan seefisien mungkin. Perencanaan basisdata harus terintegrasi dengan keseluruhan strategi sistem informasi dari organisasi. Terdapat tiga hal pokok yang berkaitan dengan strategi sistem informasi, yaitu: •
Identifikasi rencana dan sasaran dari perusahaan, termasuk mengenai sistem informasi yang dibutuhkan
•
Evaluasi sistem informasi yang ada untuk menetapkan kelebihan dan kekurangan yang dimiliki
•
Penaksiran
kesempatan
teknologi
memberikan keuntungan kompetitif.
26
informasi
yang
mungkn
Metodologi untuk mengatasi tiga hal tersebut adalah: •
Perencanaan Basisdata – Mission Statement: Pernyataan tugas untuk proyek basisdata mendefinisikan tujuan utama dari aplikasi basisdata. Mengarahkan proyek basisdata, biasanya mendefinisikan perintah tugas. Pernyataan Misi ini membantu menjelaskan kegunaan dari proyek basisdata dan menyediakan alur yang lebih jelas untuk mencapai efektivitas dan efisiensi penciptaan dari suatu aplikasi basisdata yang diinginkan.
•
Perencanaan Basisdata – Mission Objectives: Ketika mission statement telah didefinisikan, maka mission objectives didefinisikan. Setiap tujuan harus mengidentifikasikan tugas khusus yang harus didukung oleh basisdata. Dapat pula disertai
dengan
beberapa
informasi
tambahan
yang
menspesifikasikan pekerjaan yang harus diselesaikan, sumber daya yang digunakan, dan biaya untuk membayar semuanya itu. Perencanaan
Basisdata
juga
harus
menyertakan
pengembangan standar-standar yang menentukan: •
Bagaimana data akan dikumpulkan,
•
Bagaimana menspesifikasikan format bentuk data,
•
Dokumentasi penting apakah yang akan diperlukan, dan
•
Bagaimana perancangan dan aplikasi harus dilakukan.
27
2.5.2 Definisi Sistem Menjelaskan batasan-batasan dan cakupan dari aplikasi basisdata dan sudut pandang pemakai (user view) yang utama. User view mendefinisikan apa yang diwajibkan dari suatu aplikasi basisdata dari perspektif aturan kerja khusus (seperti manajer atau supervisor) atau area aplikasi perusahaan (seperti: marketing, personnel, atau stock control). Aplikasi basisdata dapat memiliki satu atau lebih user view. Identifikasi user view membantu untuk memastikan bahwa tidak ada user utama dari suatu basisdata yang terlupakan ketika pembuatan aplikasi baru yang dibutuhkan. User view juga membantu dalam pengembangan aplikasi basisdata yang rumit atau kompleks yang memungkinkan permintaan-permintaan dipecah ke dalam bagian-bagian yang lebih sederhana.
2.5.3 Analisis dan Pengumpulan Kebutuhan Suatu proses pengumpulan dan analisis informasi mengenai bagian organisasi yang didukung oleh aplikai basisdata dan menggunakan informasi tersebut untuk identifikasi kebutuhan user akan sistem yang baru. Informasi dikumpulkan untuk setiap user view meliputi: •
Deskripsi data yang digunakan atau dihasilkan
•
Detail mengenai bagaimana data digunakan atau dihasilkan
•
Beberapa kebutuhan tambahan untuk aplikasi basisdata yang baru
28
Informasi dianalisis untuk identifikasi kebutuhan agar disertakan dalam aplikasi basisdata yang baru. Aktivitas penting lainnya adalah menentukan bagaimana mengatur aplikasi basisdata dengan multiple user view, yaitu: •
Pendekatan Terpusat Kebutuhan untuk setiap user view digabungkan menjadi sekumpulan kebutuhan. Sebuah model data global dibuat berdasarkan atas penggabungan kebutuhan (untuk merepresentasikan user view tersebut).
•
Pendekatan Integrasi View Kebutuhan untuk setiap user view digunakan untuk membagun model data terpisah untuk merepresentasikan user view tersebut. Hasil dari model data tersebut nantinya digabungkan dalam tahapan perancangan basisdata. Model-model yang merepresentasikan user view tunggal disebut model data lokal, dan tersusun atas diagram-diagram dan dokumentasi yang secara formal mengambarkan kebutuhan dari user view
khusus
digabungkan
terhadap untuk
basisdata.
menghasilkan
Kemudian model
model data
merepresentasikan seluruh user view untuk basisdata. •
Kombinasi keduanya
29
data
lokal
global,
yang
2.5.4 Perancangan Basisdata Merupakan suat proses pembuatan sebuah perancangan basisdata yang akan mendukung tujuan dan operasi suatu perusahaan. Tujuan utamanya adalah: •
Merepresentasikan data dan relationship antardata yang dibutuhkan oleh seluruh area aplikasi utama dan user group.
•
Menyediakan model data yang mendukung segala transaksi yang diperlukan pada data.
•
Menspesifikasikan rancangan minimum yang secara tepat disusun untuk memenuhi kebutuhan performa yang ditetapkan pada sistem.
2.5.4.1 Pendekatan dalam perancangan basisdata 1. Top-down, diawali dengan pembentukan model data yang berisi beberapa entitas high-level dan relationship, yang kemudian menggunakan pendekatan top-down secara berturut-turut untuk mengidentifikasikan entitas lower level, relationship, dan atribut lainnya. 2. Bottom-up, dimulai dari atribut dasar (misal: sifat-sifat entitas dan relationship), dengan analisis dari penggabungan antaratribut yang dikelompokkan ke dalam suatu relasi yang merepresentasikan tipe dari entitas dan relationship antarentitas. 3. Inside-out, berhubungan dengan pendekatan bottom-up, tetapi sedikit berbeda dengan identifikasi awal entitas utama dan
30
kemudian menyebar ke entitas, relationship, dan atribut terkait lainnya yang lebih dulu diidentifikasi. 4. Mixed, menggunakan pendekatan bottom-up dan top-down untuk bagian yang berbeda sebelum pada akhirnya digabungkan.
2.5.4.2 Data Modelling Ada dua kegunaan dari data modelling, yaitu: •
Untuk membantu dalam memahami arti (semantik) dari data.
•
Untuk memfasilitasi komunikasi mengenai informasi yang dibutuhkan. Kriteria untuk menghasilkan model data yang optimal:
1.
Validitas Struktural, harus konsisten dengan definisi perusahan dan informasi organisasi.
2.
Kesederhanaan, mudah dimengerti, baik oleh sistem informasi profesional maupun pengguna non-teknis.
3.
Ketepatan, kemampuan untuk membedakan antara data yang berlainan, relationship antardata, dan batasan-batasan.
4.
Tidak rangkap, pengeluaran informasi yang tidak berhubungan, dengan kata lain, representasi setiap bagian infornasi hanya satu kali.
5.
Digunakan bersama, tidak ditentukan untuk aplikasi atau teknologi tertentu dan dapat digunakan oleh banyak pengguna.
31
6.
Perluasan Penggunaan, kemampuan untuk menyusun dan mendukung kebutuhan baru dengan akibat sampingan yang minimal terhadap user yang sudah ada.
7.
Integritas, konsistensi dengan cara yang digunakan untuk perusahaan dan pengaturan informasi.
8.
Representasi Diagram, kemampuan untuk merepresentasikan model menggunakan notasi diagram yang mudah dimengerti.
Terdapat tiga fase perancangan basisdata, yaitu: perancangan basisdata konseptual, perancangan basisdata logikal, dan perancangan basisdata fisikal. Ketiganya akan dibahas pada sub bab berikutnya.
2.5.5 DBMS Selection (Opsional) Pemilihan DBMS yang tepat untuk mendukung aplikasi basisdata. Dapat dilakukan kapanpun sebelum menuju perancangan logikal asalkan terdapat cukup informasi mengenai kebutuhan sistem. Tahap-tahap utama untuk memilih DBMS: •
Mendefinisikan terminologi studi referensi
•
Mendaftar dua atau tiga produk
•
Evaluasi produk
•
Rekomendasi pilihan
32
2.5.6 Perancangan Aplikasi Perancangan
antarmuka
pemakai
dan
program
aplikasi
yang
menggunakan dan memproses basisdata. Perancangan basisdata aplikasi merupakan aktivitas paralel yang meliputi dua aktivitas penting, yaitu: •
Perancangan Transaksi Transaksi adalah suatu aksi atau serangkaian aksi yang dilakukan oleh user tunggal atau program aplikasi, yang mengakses atau mengubah isi dari basidata. Kegunaan dari perancangan transaksi adalah untuk menetapkan dan menerangkan karakteristik high-level dari suatu transaksi yang dibutuhkan pada basisdata, di antaranya: 1.
Data yang akan digunakan oleh transaksi
2.
Karakteristik fungsional dari suatu transaksi
3.
Output transaksi
4.
Keuntungannya bagi user
5.
Tingkat kegunaan yang diharapkan Terdapat tiga tipe transaksi, yaitu: o Retrieval transaction, digunakan untuk pemanggilan data untuk ditampilkan di layar atau menghasilkan suatu laporan. o Update transaction, digunakan untuk menambahkan record baru, menghapus record lama, atau memodifikasi record yang sudah ada di dalam basisdata. o Mixed transaction, meliputi pemanggilan dan pengubahan data.
•
Perancangan Antarmuka Pemakai
33
Beberapa aturan pokok dalam pembuatan antarmuka pemakai: 1.
Memberikan nama suatu form cukup jelas untuk menerangkan kegunaan dari suatu form/ laporan.
2.
Menggunakan istilah yang umum untuk menyampaikan transaksi ke user dan jika informasi tambahan dibutuhkan, maka harus disediakan helpscreen.
3.
Menempatkan field-field yang saling berhubungan pada form/ laporan yang sama. Urutan field harus logis dan konsisten.
4.
Menggunakan label yang umum.
5.
Konsistensi dalam penggunaan istilah dan singkatan.
6.
Konsistensi warna.
7.
Memberitahukan user mengenai jumlah tempat yang disediakan untuk pemasukan data.
8.
Memudahkan user dalam menjalankan operasi yang diinginkan dengan menggerakan kursor pada form/ laporan.
9.
Memudahkan user dalam melakukan perubahan terhadap nilai field.
10. Menampilkan pesan kesalahan pada saat dimasukkan nilai yang tidak cocok. 11. Menandai beberapa field opsional secara jelas. 12. Menyediakan keterangan pada saat kursor diletakkan pada suatu field.
34
13. Memberikan indikator bahwa suatu proses telah selesai dilaksanakan.
2.5.7 Prototyping (opsional) Membuat model kerja suatu aplikasi basisdata. Tujuan utama dari pembuatan prototyping adalah: 1. Mengidentifikasikan feature dari sistem yang berjalan dengan baik atau tidak. 2. Memberikan perbaikan-perbaikan atau penambahan feature baru. 3. Mengklarifikasi kebutuhan user. 4. Mengevaluasi feasibibilitas (kemungkian yang akan terjadi) dari perancangan sistem khusus. Terdapat dua macam strategi prototyping yang digunakan saat ini, yaitu: •
Requirements prototyping, menggunakan prototipe untuk menentukan kebutuhan dari aplikasi basisdata yang diinginkan dan ketika kebutuhan itu terpenuhi, maka prototipe akan dibuang.
•
Evolutionary prototyping, digunakan untuk tujuan yang sama. Perbedaannya,
prototipe
tidak
dibuang,
pengembangan
lanjutan
menjadi
aplikasi
digunakan.
35
tetapi basisdata
dengan yang
2.5.8 Implementasi Merupakan realisasi fisik dari basisdata dan perancangan aplikasi. Implementasi basisdata dicapai dengan menggunakan: •
DDL untuk membuat skema basisdata dan file basisdata kosong.
•
DDL untuk membuat user view yang diinginkan.
•
3GL dan 4GL untuk membuat program aplikasi, termasuk transaksi basisdata disertakan dengan menggunakan DML, atau ditambahkan pada bahasa pemrograman.
2.5.9 Konversi Data dan Pemanggilan Pemindahan
data
yang
ada
ke
dalam
basisdata
baru
dan
mengkonversikan aplikasi yang ada agar dapat digunakan pada basisdata yang baru. Tahapan ini dibutuhkan ketika sistem basisdata baru menggantikan sistem yang lama. DBMS biasanya memiliki utilitas yang memanggil ulang file yang sudah ada ke dalam basisdata baru. Dapat pula mengkonversi dan menggunakan program aplikasi dari sistem yang lama untuk digunakan oleh sistem yang baru.
2.5.10 Uji Test Suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan. Dengan menggunakan strategi tes yang direncanakan dan data yang sesungguhnya. Pengujian hanya akan terlihat jika terjadi kesalahan
36
piranti lunak. Mendemonstrasikan basisdata dan program aplikasi terlihat berjalan seperti apa yang diharapkan.
2.5.11 Pemeliharaan Operasional Suatu proses pengawasan dan pemeliharaan sistem setelah instalasi, meliputi: 1. Pengawasan performa sistem, jika performa menurun maka memelukan perbaikan atau pengaturan ulang basisdata. 2. Pemeliharaan dan pembaharuan aplikasi basisdata (jika dibutuhkan). 3. Penggabungan kebutuhan baru ke dalam aplikasi basisdata.
2.6 Perancangan Konseptual, Logikal, dan Fisikal 2.6.1 Metodologi Perancangan Metodologi
perancangan
adalah
pendekatan
terstuktur
yang
menggunakan prosedur-prosedut, teknik-teknik, alat-alat, dan dokumentasi tambahan untuk mendukung dan memberi fasilitas dari perancangan tersebut. Ada tiga fase utama dalam metodologi perancangan basisdata, yaitu: •
Perancangan Basisdata Konseptual Merupakan proses pembuatan sebuah model dari informasi yang digunakan pada sebuah perusahaan, independen terhadap semua pertimbangan fisikal.
37
•
Perancangan Basisdata Logikal Merupakan proses dari pembuatan sebah model dari informasi yang digunakan pada perusahaan berdasarkan pada model data yang spesifik, tetapi independen terhadap pertimbangan DBMS tertentu dan fisikal lainnya.
•
Perancangan Basisdata Fisikal Merupakan
proses
implementasi
untuk
basisdata
menghasilkan pada
suatu
penyimpanan
deskripsi sekunder,
dari juga
mendeskripsikan relasi dasar, organisasi file, dan perancangan indeks yang digunakan untuk mencapai akses yang efisien terhadap data dan batasan integritas lainnya yang masih berhubungan serta ukuranukuran keamanan. Faktor-faktor kesuksesan yang penting dalam merancang basisdata: 1. Bekerjalah seinteraktif mungkin dengan user sebanyak mungkin. 2. Ikutilah metodologi yang terstruktur pada seluruh proses data modelling. 3. Gunakan pendekatan data-driven. 4. Gabungkanlah pertimbangan struktural dan integritas ke model data. 5. Kombinasikan konseptualisasi, normalisasi, dan teknik validasi transaksi ke metodologi pemodelan data (data modelling). 6. Gunakanlah diagram untuk merepresentasikan model data sebanyak mungkin.
38
7. Gunakanlah
DBDL
(Database
Design
Language)
untuk
merepresentasikan semantik data tambahan. 8. Buatlah kamus data untuk menambahkan diagram model data. 9. Berkemauan untuk mengulangi langkah-langkah tersebut di atas.
2.6.2 Fase-Fase Perancangan Basisdata Perancangan Basisdata Konseptual Langkah 1: Buatlah data model lokal yang konseptual untuk setiap user view. Untuk membangun sebuah model data konseptual lokal dari sebuah perusahaan untuk setiap spesifik view. Setiap model data konseptual lokal terdiri dari: Entity types, Relationship types, Atribut dan domain atribut, Primary key dan alternate key, dan Batasan integritas.
Langkah-langkahnya adalah sebagai berikut: 1. Identifikasikan tipe-tipe entity Untuk mengidentifikasikan entitas utama yang dibutuhkan oleh view. Mendefinisikan objek utama di mana user mempunyai ketertarikan dengan objek tersebut. Objek-objek ini adalah tipe entity untuk model. Salah satu metode untuk mengidentifikasi entity adalah dengan menguji spesifikasi
kebutuhan
dari
user.
Dari
spesifikasi
ini
kita
mengidentifikasikan noun dan nouns phrases yang disebutkan. Kita juga dapat melihat objek utama seperti orang, tempat, atau konsep dari ketertarikan di luar noun lainnya yang merupakan kualitas dari objek lain.
39
2. Identifikasikan tipe-tipe relationship Tujuannya untuk mengidentifikasikan relationship penting yang ada antara tipe entity yang telah diidentifikasikan. Kita dapat menggunakan grammar dari spesifikasi kebutuhan tersebut untuk mengidentifikasikan relationship, biasanya relationship dinyatakan oleh kata kerja atau verb atau ekspresi verbal. Secara langsung relationship tersebut adalah binary, dengan kata lain relationship tersebut berada antara dua tipe entity. Kita pun harus berhati-hati untuk mencari relationship yang kompleks yang dapat menghubungkan lebih dari dua tipe entity. Langkah-langkah identifikasi tipe relasi: •
Gunakan Entity Relationship Diagram (ERD)
•
Mencari batasan dari tipe relationship
•
Memeriksa fan dan chasm traps
•
Memeriksa bahwa masing-masing entity ikut serta setidaknya dalam satu relationship
•
Mendokumentasikan tipe relationship
3. Identifikasi dan hubungkan atribut-atribut dengan tipe entity atau relationship Tujuannya untuk menghubungkan atribut dengan entity atau tipe relationship yang sesuai dan mendokumentasikan detail dari setiap atribut. Atribut-atribut bisa diidentifikasi dengan kata benda atau ungkapan kata benda (nouns phrases) seperti: properti, kualitas, identifier, atau
40
karakteristik dari satu entity atau hubungan. Atribut dapat dibagi menjadi tiga, yaitu: atribut simple (composite attribute), atribut single atau multi value, dan atribut derived. 4. Tentukan domain atribut Tujuannya untuk menetapkan domain atribut dalam model data konseptual lokal dan mendokumentasikan setiap detail dari domain. Domain merupakan sekumpulan nilai dari satu atau lebih atribut yang menggambarkan nilainya. Model data yang dibuat menspesifikasikan domain untuk tiap-tiap atribut dan menyertakan nilai yang diizinkan untuk atribut serta ukuran dan format atributnya itu sendiri. 5. Tentukan atribut kandidat dan primary key Untuk mengidentifikasikan candidate key untuk setiap entity dan jika terdapat lebih dari satu candidate key, maka pilih satu sebagai primary key. 6. Pertimbangkan penggunaan konsep Enhanced Modelling Dalam langkah ini, kita mempunyai pilihan untuk mengembangkan model ER dengan menggunakan konsep enhanced modelling, seperti: spesialisasi, generalisasi, penggabungan, dan komposisi. 7. Periksa model untuk redundansi Dalam langkah ini, kita menguji model data konseptual lokal dengan tujuan spesifik untuk mengidentifikasikan apakah ada redundansi dalam data dan memindahkan data yang telah ada. Dua aktivitas dalam langkah ini adalah: 1. Menguji ulang relationship 1-1 (one-to-one)
41
2. Menghilangkan relationship yang redundan 8. Validasikan model lokal konseptual terhadap transaksi user Tujuannya untuk memastikan model konseptual lokal mendukung transaksi yang dibutuhkan oleh view. Diuji dua pendekatan untuk memastikan model data konseptual lokal mendukung transaksi yang dibutuhkan, dengan cara: a. Mendeskripsikan
transaksi-transaksi,
dengan
memeriksa
seluruh
informasi (entity, relationship, dan attribute) yang dibutuhkan oleh setiap
transaksi
telah
disediakan
oleh
model,
dengan
mendokumentasikan setiap kebutuhan transaksi. b. Menggunakan jalur-jalur transaksi, untuk validasi model data terhadap transaksi yang dibutuhkan, termasuk representasi diagram jalur yang digunakan oleh setiap transaksi langsung pada diagram ER. 9. Tinjau kembali model data lokal yang konseptual dengan user Tujuannya untuk meninjau model data konseptual lokal dengan user untuk memastikan model tersebut adalah representasi sebenarnya dari view. Model data konseptual ini termasuk diagram ER dan dokumentasi pendukung yang mendeskripsikan model data. Bila ada kejanggalan (anomali) dalam model data, maka harus dibuat perubahan yang sesuai yang mungkin membutuhkan pengulangan langkah-langkah sebelumnya.
42
Perancangan Basisdata Logikal Langkah 2: Buat dan validasikan model data lokal yang logikal untuk setiap view. 1. Pindahkan fitur-fitur yang tidak kompatibel dengan model relasional Tujuannya adalah untuk menyaring model data konseptual lokal untuk menghilangkan fitur-fitur yang tidak kompatibel dengan model relasional, yaitu: •
Menghilangkan tipe relasi biner many-to-many (*:*)
•
Menghilangkan tipe relasi rekursif many-to-many (*:*)
•
Menghilangkan tipe relasi kompleks
•
Menghilangkan atribut multi-valued
2. Ambil hubungan untuk data model lokal yang logikal Tujuannya adalah membuat relasi untuk model data logikal lokal untuk merepresentasikan entity, relasi, dan atribut yang telah diidentifikasikan. 3. Validasikan hubungan menggunakan normalisasi Tujuannya adalah untuk memvalidasi relasi pada model data logikal lokal dengan menggunakan teknik normalisasi yang dibahas pada sub bab sebelumnya. 4. Validasikan hubungan terhadap transaksi user Tujuannya adalah untuk menjamin bahwa relasi pada model data logikal lokal mendukung transaksi yang diminta oleh view. 5. Tentukan batasan integritas
43
Tujuannya adalah menentukan batasan-batasan integritas pada view. Terdapat lima jenis batasan integritas, yaitu: •
Data yang diminta, yang berarti setiap atribut harus memiliki suatu nilai yang valid.
•
Batasan domain atribut, bahwa setiap atribut memiliki domain, yang merupakan suatu himpunan nilai yang sah. Contohnya adalah untuk jenis kelamin, hanya ada dua pilihan, yaitu: ’L’ untuk laki-laki dan ’P’ untuk perempuan.
•
Integritas entitas, yang menerangkan bahwa primary key tidak boleh null (harus memiliki nilai).
•
Integritas referensial, artinya apabila terdapat foreign key, nilainya harus merujuk pada relasi induknya.
•
Batasan perusahaan, yaitu peraturan-peraturan dan kaidah-kaidah dari perusahaannya.
6. Tinjau kembali model data logikal lokal dengan user Tujuannya adalah untuk menjamin bahwa model data logikal lokal dan dokumentasi yang mendukung model data adalah benar sesuai dengan view.
Langkah 3: Buat dan validasikan model data logikal global Tujuannya adalah untuk mengkombinasikan model-model data logikal lokal individual
ke
dalam
model
merepresentasikan perusahaan.
44
data
logikal
global
tunggal
yang
1. Gabungkan model data logikal lokal menjadi model global Tujuannya adalah untuk menggabungkan model data logikal lokal individual ke dalam model data logikal global tunggal dari perusahaan. Beberapa instruksi yang ada pada pendekatan ini adalah: •
Meninjau nama dan isi dari entitas/ relasi dan candidate key nya.
•
Meninjau nama dan isi hubungan/ foreign key.
•
Menggabungkan entitas/ relasi dari model data lokal.
•
Menyertakan entitas/ relasi pada setiap model data lokal.
•
Menggabungkan hubungan/ foreign key dari model data lokal.
•
Menyertakan hubungan/ foreign key pada setiap model data lokal.
•
Memeriksa untuk entitas/ relasi dan hubungan/ foreign key yang hilang.
•
Memeriksa foreign key.
•
Memeriksa batasan-batasan integritas.
•
Menggambarkan diagram ER global/ relasi.
•
Memperbaharui dokumentasi.
2. Validasikan model data logikal global Tujuannya adalah untuk memvalidasikan relasi yang dibuat dari model data logikal global dengan menggunakan teknik normalisasi dan memastikan bahwa relasi ini mendukung transaksi yang diminta.
45
3. Periksa untuk pengembangan mendatang Tujuannya adalah untuk menentukan apakah ada perubahan signifikan pada masa yang akan datang dan untuk mengkaji apakah model data logikal global dapat mengakomodasi perubahan-perubahan ini. 4. Tinjau kembali model data logikal global dengan user Tujuannya adalah menjamim bahwa model data logikal global adalah representasi dari perusahaan.
Perancangan Basisdata Fisikal Langkah 4: Terjemahkan model data logikal global target DBMS Tujuannya adalah untuk menghasilkan skema basisdata relasional dari model data logikal global yang dapat diimplementasikan pada DBMS target. Proses ini mencakup: •
Bagaimana membuat relasi dasar,
•
Apakah sistem mendukung definisi dari primary key, foreign key, dan alternate key,
•
Apakah sistem mendukung definisi dari data yang diminta (apakah sistem memperbolehkan atribut untuk didefinisikan sebagai NOT NULL),
•
Apakah sistem mendukung definisi domain,
•
Apakah sistem mendukung batasan-batasan integritas relasional, dan
•
Apakah sistem mendukung definisi dari batasan-batasan perusahaan.
46
1. Rancang relationdasar Tujuannya adalah untuk menentukan bagaiman untuk merepresentasikan relasi dasar yang diidentifikasikan pada model data logikal global pada DBMS target. 2. Rancang representasi dari data yang dihasilkan Tujuannya adalah untuk menentukan bagaimana merepresentasikan datadata turunan dari model data logikal global pada DBMS target. 3. Rancang batasan-batasan perusahaan Tujuannya adalah merancang batasan-batasan untuk DBMS target.
Langkah 5: Rancang representasi fisikal Tujuannya adalah untuk menentukan pengorganisasian file yang optimal untuk menempatkan relasi dasar dan indeks yang diminta untuk mencapai tampilan yang dapat diterima, di mana relasi dan tuple akan berada pada penyimpanan sekunder. Terdapat beberapa faktor untuk menyimpan data secara efisien, yaitu: •
Transaction throughput
•
Response time
•
Disk storage
1. Analisis transaksi-transaksi Tujuannya adalah memahami fungsi transaksi yang akan berjalan pada basisdata dan menganalisis transaksi-transaksi penting lainnya.
47
2. Pilih organisasi file Tujuannya adalah menentukan pengorganisasian file yang efisien untuk setiap relasi dasar. Terdapat beberapa pengorganisasian file yang dapat digunakan, yaitu: •
Heap
•
Hash
•
B*-tree
•
Clustered tables
3. Pilih indeks Tujuannya adalah menentukan apakah menambahkan indeks akan meningkatkan performa dari sistem. 4. Perkirakan kebutuhan tempat penyimpanan Tujuannya untuk memperkirakan jumlah disk space yang akan diperlukan untuk basisdata.
Langkah 6: Rancang user view Tujuannya adalah merancang user view yang diidentifikasikan selama fase pengumpulan kebutuhan dan analisis dari siklus aplikasi basisdata relasional. Langkah 7: Rancang mekanisme keamanan Tujuannya adalah untuk merancang mekanisme keamanan untuk basisdata yang dispesifikasikan oleh user. Terdapat dua tipe keamanan basisdata, yaitu: •
Keamanan sistem yang melindungi akses dan penggunaan basisdata pada level sistem, seperti user name dan password.
48
•
Keamanan data yang melindungi akses dan penggunaan objek-objek basisdata (seperti relasi dan view) dan aksi-aksi dari user yang memilikinya.
Langkah 8: Pertimbangkan pengenalan dari redundansi terkontrol Langkah 9: Awasi dan atur sistem operasional
2.7 Data Flow Diagram dan Entity Relationship Diagram 2.7.1 Data Flow Diagram (DFD) Data Flow Diagram (1989, p139) adalah suatu alat pengembangan atau perancangan sistem yang membantu perancang untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang saling dihubungkan oleh suatu aliran dari dan meneruskannya menjadi data. Data Flow Diagram (DFD) merupakan diagram yang menunjukkan urutan proses yang dilakukan dalam suatu sistem. DFD dapat dibagi menjadi tiga bagian, yaitu: •
Diagram Hubungan Diagram pada tingkat yang paling atas dari DFD terdiri dari satu lingkaran proses yang mewakili keseluruhan sistem, arus data memperlihatkan hubungan antara sistem dengan unit atau bagian dari luar sistem.
•
Diagram Nol Diagram Nol merupakan tingkat tertinggi dari fungsi/ proses utama di dalam sistem. Diagram ini didapat dengan cara memecah atau
49
membagi diagram hubungan menjadi beberapa fungsi penting yang harus dikerjakan oleh sistem. •
Diagram Rinci Diagram ini menggambarkan rincian tiap-tiap proses yang terdapat pada diagram nol, proses ini dipecahkan lagi sampai proses yang paling rinci (tidak dapat dipecahkan lagi). Empat elemen dasar dari DFD adalah:
•
Aliran data (data flow), pipa yang menunjukkan aliran data dari suatu sistem.
•
Proses
(process),
menunjukkan
pengolahan
masukan
dan
menghasilkan keluaran. •
Penyimpanan data (table/ file/ data store), menunjukkan tempat penyimpanan data.
•
Sumber (source) atau tujuan (sink), menunjukkan sumber dan tujuan yang berhubungan dengan sistem.
2.7.2 Entity Relationship Diagram (ERD) Menurut Yourdan (1989, p233), Entity Relationship Diagram (ERD) adalah suatu model jaringan kerja yang menguraikan bentuk data yang tersimpan dalam suatu sistem dalam bentuk yang mudah dimengerti. Entity adalah suatu objek atau kumpulan objek yang dapat berupa: orang, tempat, organisasi, atau fungsi di mana kita menyimpan informasi.
50
2.8 Teori Sorting 2.8.1 Bubble Sort Algoritma ini diberi nama bubble sort karena mengikuti prinsip bubble (gelembung udara). Karena gelembung udara lebih ringan daripada air maka gelembung udara di dalam air akan naik ke atas. Ada penulis yang menakan algoritma ini exchange sort karena pada proses pengurutan selalu dilakukan pertukaran (exchange) dua data yang berdekatan. Pengurutan dalam algoritma dibagi dalam beberapa putaran (ronde, round). Pada putaran pertama dicari data dengan nilai terkecil (jika pengurutan secara ascending) dan meletakkan data tersebut pada posisi indeks terkecil ([0]). Putaran kedua bertujuan mencari data nomor dua kecil dan meletakannya pada [1] dan seterusnya. Banyaknya pengurutan adalah sejumlah data dikurangi satu. Kompleksitas algoritma ini adalah O(n2).
2.8.2 Selection Sort Algoritma ini membagi proses pengurutan menjadi putaran-putaran. Pada putaran pertama diseleksi data dengan nilai terkecil dan data ini ditempatkan pada posisi indeks terkecil (data[0]). Pada putaran kedua diseleksi data dengan nilai nomor dua kecil untuk ditempatkan pada posisi kedua (data[1]). Proses seleksi dlam satu putaran dilakukan dengan membandingkan nilai elemen pada dua indeks pembanding. Selama proses pembandingan berlansung perubahan hanya dilakukan terhadap indeks pembanding. Pertukaran data secara fisik dilakukan pada akhir setiap putaran.
51
Jadi berbeda dengan bubble sort yang pada setiap pembandingan dilakukan pertukaran data bila diharuskan, selection sort melakukan pertukaran data hanya satu kali untuk setiap putarannya yaitu saat putaran tersebut selesai. Algoritma ini mempunyai kompleksitas O(n2).
2.8.3 Insertion Sort Cara kerja insertion sort mirip seseorang yang mengurutkan kartu. Selembar demi selembar kartu diambil dari kumpulan kartu dan disisipkan pada posisinya yang tepat. Pada putaran pertama urutan dua data pertama. Pengurutan ini bersifat relatif, artinya kedua data ini belum tentu dua data terkecil dari seluruh data melainkan bahwa kedua data ini telah terurut dalam lingkup dua kartu. Pada putaran kedua dicarikan tempat sisip yang tepat bagi data [2]. Algoritma ini mempunyai kompleksitas O(n2).
2.8.4 Quick Sort Quicksort bekerja dengan memartisi sekumpulan data menjadi dua bagian sedemikian rupa sehingga elemen tertentu (elemen ke-i) berada tepat pada posisinya, semua elemen yang nilainya lebih kecil dari elemen ke-i berada di sebelah kiri elemen ke-i dan semua elemen yang nilainya lebih besar dari elemen ke-i berada di sebelah kanan elemen ke-i. Selanjutnya elemen-elemen pada partisi di sebelah kiri elemen ke-i disort lagi dengan cara yang sama, demikian pula dengan elemen-elemen pada partisi
52
di sebelah kanan elemen ke-i. Algoritma Quicksort mempunyai kompleksitas O(n log n).
2.8.5 Merge Sort Mergesort adalah pengurutan dengan cara penggabungan. Dua kumpulan data
yang
masing-masing
telah
diurutkan
digabung
menjadi
satu.
Penggabungan dimulai dengan menggabungkan kelompok data dengan jumlah elemen terkecil, yaitu kelompok satu data digabung dengan kelompok satu data. Algoritma mergesort mempunyai kompleksitas O(n log n) untuk worst ase tetapi memerlukan memori yang lebih banyak.
2.8.6 Shell Sort Cara kerja algoritma shellsort mirip dengan algoritma insertion sort. Insertion sort membandingkan elemen-elemen data yang berdekatan (berjarak satu posisi). Shell sort mengurutkan elemen berjarak tertentu (diminishing distance) misalnya yang berjarak 5 posisi, lalu berjarak 3 posisi dan yang terakhir yang berjarak 1 posisi. Diminishing distance harus dicari sedemikian rupa sehingga tidak mengulangi atau merusak hasil sorting sebelumnya.
53
2.9 Teori Penjualan Penjualan adalah sebuah transaksi yang menambah nilai kepada pembeli dengan memenuhi kebutuhan mereka, dan menghasilkan keuntungan bersama bagi pembeli maupun penjual. Terdapat prinsip dasar yang dapat membuat proses penjualan menjadi lebih efektif dan menguntungkan bagi kedua pihak. Hal-hal yang dapat membantu dalam proses penjualan adalah seperti melihat sebuah prospek, kualifikasi, dan presentasi. Tujuan menjual adalah untuk membantu orang lain mendapatkan perasaan senang yang mereka inginkan atas apa yang mereka beli dan atas diri mereka sendiri. Dengan demikian penjual akan dapat menjual lebih banyak. Penjual tidak akan memaksa orang lain untuk membeli memenuhi keinginan penjual. Karena orang membeli karena alasan mereka sendiri, bukan alasan penjual. Bila penjual melayani dan memenuhi kebutuhan pelanggan dengan senang hati, maka penjual akan merasakan berkurangnya beban mental. Dan pelanggan yang mendapatkan kepuasan dari penjual akan menyarankan orang-orang lain agar membeli dari penjual tersebut. Tidak jarang mereka justru memanggil penjual itu kembali, sehingga tidak perlu menjual lagi.
54