Perancangan Basis Data Relasional PERANCANGAN BASIS DATA RELASIONAL

Ukuran: px
Mulai penontonan dengan halaman:

Download "Perancangan Basis Data Relasional PERANCANGAN BASIS DATA RELASIONAL"

Transkripsi

1 PERANCANGAN BASIS DATA RELASIONAL POLITEKNIK TELKOM BANDUNG 2009 Perancangan Basis data i

2 Koordinator & Editor: Dedy Rahman Wijaya Tim: Abdul Rohim Elly Rosely Komala Ratna Sari Tora Fahrudin Wahyu Hidayat Dilarang menerbitkan kembali, menyebarluaskan atau menyimpan baik sebagian maupun seluruh isi buku dalam bentuk dan dengan cara apapun tanpa izin tertulis dari Politeknik Telkom. Hak cipta dilindungi Politeknik Telkom 2009 No part of this document may be copied, reproduced, printed, distributed, modified, removed and amended in any form by any means without prior written authorization of Telkom Polytechnic. ii Perancangan Basis data

3 KATA PENGANTAR Segala puji bagi Allah SWT, yang telah melimpahkan nikmat-nya kepada penulis sehingga dapat menyelesaikan penulisan course ware ini. Course ware ini digunakan oleh penulis sebagai acuan untuk mata kuliah Perancangan Basis Data di Politeknik Telkom. Course ware ini ditujukan bagi mahasiswa program studi diploma. Course ware ini terdiri dari sepuluh bab, yaitu Pengenalan Basis Data, Entity Relationship Model, Konversi ER ke Tabel, Normalisasi, Aljabar Relasional, Bahasa Basis Data, Bahasa Basis Data Lanjutan, Pengenalan Arsitektur Basis Data, dan Aplikasi Basis Data. Semua materi tersebut merupakan bahan kuliah yang sesuai dengan kurikulum yang berlaku di Politeknik Telkom. Pada kesempatan ini, penulis menyampaikan terima kasih yang tulus kepada berbagai pihak atas segala bantuan dan dukungannya sehingga penulis dapat menyelesaikan penulisan course ware ini. Akhirnya, penulis mohon maaf jika dalam tulisan ini masih banyak kekurangan. Sumbangan ide, saran, dan kritik yang membangun untuk perbaikan diktat ini sangat penulis harapkan. Bandung, Maret 2009 Penulis, Perancangan Basis data iii

4 DAFTAR ISI KATA PENGANTAR... iii DAFTAR ISI... iv Daftar Gambar... ix Daftar Tabel...xii 1 PENGENALAN BASIS DATA Data dan Informasi Siklus Informasi Pentingnya data dan informasi Sistem Basis Data dan Sistem File Definisi Basis Data dan Sistem Basis Data (DBMS) Komponen Sistem Basis Data Abstraksi Data Model Basis Data Basis Data Relasional Alternative Terminology Perancangan Basis Data Relational Faktor penting menyangkut pemodelan data dari dunia nyata Metodologi Perancangan Basis Data Bahasa Basis Data ENTITY RELATIONSHIP MODEL ER Sebagai Salah Satu Pemodelan Konseptual Basis Data Entitas dan Himpunan Entitas Atribut Relasi Derajat Himpunan Relasi Kardinalitas Relasi Key Diagram ER iv Perancangan Basis data

5 2.9 Constraint Cardinalitas KONVERSI ER KE TABEL Himpunan Entitas Lemah Spesialisasi Generalisasi Agregasi Ringkasan notasi simbol di ER Penurunan skema ER ke Tabel Representasi Atribut sebagai Kolom Representasi Himpunan Entitas sebagai Tabel Representasi Relasi (* pada kardinalitas N to N) Hubungan kardinalitas dengan tabel yang terbentuk Representasi Spesialisasi (IS A) Representasi Agregasi NORMALISASI Definisi Normalisasi Tujuan Normalisasi Update Anomaly Insertion Anomaly Deletion Anomaly The Three Keys Functional Dependencies Partial Funcional Dependency Transitive Functional dependency Bentuk Normal dan Langkah-Langkah Normalisasi Bentuk Normal Pertama (1st Normal Form) Bentuk Normal Ke Dua (2nd Normal Form) Bentuk Normal Ke Tiga (3rd Normal Form) Bentuk Normal Boyce Codd (BC Normal Form) Bentuk-Bentuk Normal Lainnya Denormalisasi ALJABAR RELASIONAL Query dan Aljabar Relasional Perancangan Basis data v

6 5.2 Operasi Select Operasi Project Operasi Cartesian Product Operasi Unio Operasi Set Difference Operasi Intersection Operasi rename Join Fungsi Agregasi Operasi Division BAHASA BASIS DATA Pendahuluan Standarisasi SQL Membangun Basidata Membuat BasisData Membuat Tabel Data Melakukan Perubahan pada Tabel Maintenance Data pada Basisdata Memasukan Data Merubah Data Menghapus Data Mengakses Basisdata Menganti Judul Kolom Function pada SQL Menentukan Kondisi Menguruntukan Data BAHASA BASIS DATA LANJUTAN Fungsi Aggregation Query dari Beberapa Tabel Nama Alias Bentuk-bentuk Perintah Join LEFT JOIN RIGHT JOIN vi Perancangan Basis data

7 7.4.3 FULL JOIN Subquery PENGENALAN ARSITEKTUR BASIS DATA Pendahuluan Struktur DBMS Produk-produk DBMS Database Oracle Arsitektur Database Oracle Struktur Database Oracle Oracle Instance Oracle Memory Structure Oracle Processes Structure Oracle Storage Structure Arsitektur Sistem database Centralized Sistems Client-Server Sistems Parallel Sistems Distributed Sistems Network types APLIKASI BASIS DATA Pendahuluan Sistem Pendukung Keputusan (Decision-Support Sistem) Analisis Data Penggalian Data (Data Mining) Penggudangan Data (Data Warehousing) Basis Data Spasial (Spatial Databases) Representasi Informasi Geometris Basis Data Perancangan Data Geografis Representasi Data Geografis Aplikasi Data Geografis Basis Data untuk Multimedia (Multimedia Databases). 181 Perancangan Basis data vii

8 9.4.1 Pengambilan Berbasis Kesamaan (Similarity-Based Retrieval) Data sinambung (Continuous-Media Data) Basis Data Bergerak (Mobility and Personal Databases) Model Komputasi Bergerak Routing dan Pemrosesan Query Sistem Pencarian Informasi (Information Retrieval) Pengindeksan Dokumen Browsing dan Hypertext World Wide Web (WWW) WEB Sebagai Bentuk Aplikasi Basis Data Daftar Pustaka viii Perancangan Basis data

9 Daftar Gambar Gambar 1-1 Siklus informasi... 2 Gambar 1-2 Perkembangan Database... 5 Gambar 1-3 Komponen DBMS... 7 Gambar 1-4 Abstraksi Data Gambar 1-5 Model Database Gambar 1-6 Ilustrasi sebuah relasi Gambar 1-7 Terminologi Gambar 1-8 Pendekatan Konvensional Gambar 1-9 Pendekatan ER Gambar 2-1 Himpunan Entitas Mahasiswa Gambar 2-2 Contoh himpunan entitas Gambar 2-3 Gambaran Himpunan entitas di Tabel Gambar 2-4 Contoh Atribut Komposit Gambar 2-5 Entitas mahasiswa dengan Atribut Gambar 2-6 Relasi di gambarkan dengan belah ketupat Gambar 2-7 Himpunan Entitas Mahasiwa Ber-Relasi dengan Himpunan Entitas Organisasi Gambar 2-8 Contoh Derajat Relasi Unary Gambar 2-9 Contoh Derajat Relasi Binary Gambar 2-10 Contoh Derajat Relasi Ternary Gambar 2-11 Relasi dengan Kardinalitas 1 ke Gambar 2-12 Relasi dengan Kardinalitas 1 ke Banyak Gambar 2-13 Relasi dengan Kardinalitas Banyak ke Gambar 2-14 Relasi dengan Kardinalitas Banyak ke Banyak Gambar 2-15 Contoh Diagram ER Gambar 2-16 Relasi 1 ke Gambar 2-17 Relasi 1 ke banyak Gambar 2-18 Relasi Banyak ke Gambar 2-19 Relasi Banyak ke Banyak Gambar 3-1 Contoh Himpunan Entitas Lemah Perancangan Basis data ix

10 Gambar 3-2 Contoh Spesialisasi Gambar 3-3 Contoh Agregasi Gambar 3-4 Relasi di pandang sebagai Himpunan Entitas Gambar 3-5 Ringkasan Notasi pada Diagram ER Gambar 3-6 Atribut multivalued di pecah menjadi entitas baru. 47 Gambar 3-7 Atribut himpunan entitas kuat di representasikan kedalam tabel Gambar 3-8 Penurunan Himpunan Entitas Lemah ke tabel Gambar 3-9 Penurunan Kardinalitas relasi N to N menjadi Tabel Gambar 3-10 Representasi spesialisasi ke tabel metoda Gambar 3-11 Representasi spesialisasi ke tabel metoda Gambar 3-12 Representasi Agregasi untk tabel mata kuliah, dosen dan Dosen mengajar mt kul Gambar 3-13 Representasi Agregasi untuk tabel Mahasiwa dan Mahasiwa Mengambil Mtkul Gambar 4-1 Diagram Normalisasi Gambar 7-1 Entitas Mahasiswa Gambar 7-2 Entitas Kurikulum Gambar 7-3 Entitas Mahasiswa dan Jurusan Gambar 7-4 Relasi Tabel Mahasiswa dan Tabel Jurusan Gambar 9-1 Struktur DBMS secara umum Gambar 9-2 Struktur Database Oracle Gambar 9-3 Oracle Instance Gambar 9-4 Oracle Memory Gambar 9-5 Oracle Processes Gambar 9-6 Oracle Storage Gambar 9-7 Database Functionality Gambar 9-8 Centralized Sistem Gambar 9-9 Client-Server Sistem Gambar 9-10 Parallel Sistems Gambar 9-11 Distributed Sistem Gambar 10-1 Arsitektur Data warehouse x Perancangan Basis data

11 Gambar 10-2 Bentuk-bentuk Geografis. dan Representasinya 177 Gambar 10-3 Objek-objek 3 Dimensi yang Lebih Kompleks Gambar 10-4 Objek sebagai Data Raster dan Data Vektor Gambar 10-5 Pengelompokan Buku dalam Perpustakaan Gambar 10-6 Pengelompokan DAC dalam Sistem Pencarian Informasi Gambar 10-7 Arsitektur Web Perancangan Basis data xi

12 Daftar Tabel Tabel 4-1 Contoh Update Anomaly Tabel 4-2 Contoh Insert Anomaly Tabel 4-3 Contoh Delete Anomaly Tabel 4-4 Tabel Mata Kuliah Tabel 4-5 Contoh Tabel Tabel 4-6 Tabel Nilai Tabel 4-7 Tabel Mahasiswa Tabel 4-8 Versi pertama Tabel 4-9 Versi ke dua Tabel 4-10 Contoh Tabel T Tabel 4-11 Contoh Tabel T Tabel 4-12 Contoh T-1hasil Tabel 4-13 Contoh Tabel T Tabel 4-14 Contoh Tabel T Tabel 4-15 Contoh Tabel T Tabel 4-16 Contoh tabel T Tabel 4-17 Contoh Tabel T Tabel 4-18 Contoh Tabel T Tabel 7-1 Tabel Data Mahasiswa Tabel 7-2 Data Kurikulum Tabel 7-3 Tabel Data Jurusan Tabel 7-4 Tabel Data Mahasiswa Tabel 7-10 Jenis Data pada Oracle Tabel 7-11 Data Jurusan Tabel 7-12 Data Mahasiswa Tabel 7-13 Data Jurusan Tabel 7-14 Data Mahasiswa Tabel 7-15 Output Select Jurusan Tabel 7-16 Output Select Jurusan Tabel 7-17 Operator Kondisi Tabel 7-18 Output Select Mahasiswa menggunakan Where xii Perancangan Basis data

13 Tabel 7-19 Output Select Mahasiswa menggunakan Where Tabel 7-20 Contoh Perintah Like Tabel 7-21 Output Order By Tabel Mahasiswa Tabel 7-22 Output Order By DESC Tabel Mahasiswa Tabel 7-23 Output Order By Dua Kolom Tabel 8-1 Data Kurikulum Tabel 8-2 Hasil Query Jumlah Matakuliah per Semester Tabel 8-3 Hasil Query Jumlah Sks per Semester Tabel 8-4 Hasil Query Jumlah matakuliah dan Sks per Semester Tabel 8-5 Hasil Query Kelompok Matakuliah Tabel 8-6 Perbandingan Perintah SQL untuk Limit Tabel 8-7 Mahasiswa dan tabel Jurusan Tabel 8-8 Output Relasi antar Tabel Tabel 8-9 Pengarang Tabel 8-10 Penerbit Tabel 8-11 Hasil Relasi Left Join Tabel 8-12 Hasil Relasi Right Join Tabel 8-13 Hasil Relasi Full Join Tabel 8-14 Data Penerbit Tabel 8-15 Data Buku Tabel 8-16 Data Pengarang Tabel 8-17 Hasil Query Operator IN Tabel 8-18 Hasil Query Operator Not IN Tabel 8-19 Hasil Query Operator Exists Tabel 8-20 Hasil Query Operator Not Exists Tabel 8-21 Hasil Query Operator Komparasi Tabel 8-22 Hasil Query Operator ANY Tabel 10-1 Contoh Cross-Tab Tabel 10-2 Tabel Relasional Perancangan Basis data xiii

14

15 1 PENGENALAN BASIS DATA Overview Dalam kehidupan sehari-hari kita sering membahas mengenai data dan informasi. Informasi berasal dari kumpulan data yang disimpan secara terstruktur pada sebuah sistem yang dikenal dengan basis data (database). Pada bab awal ini akan dibahas tentang definisi, komponen sistem basis data, sistem file, abstraksi data, bahasa basis data, database administrator dan struktur sistem. Tujuan 1. Mahasiswa mengetahui dan mengerti konsep basis data. 2. Mahasiswa mengetahui mengenai komponen-komponen sistem basis data. 3. Mahasiswa mengetahui mengenai abstraksi data dan Database Language. Perancangan Basis data 1

16 1.1. Data dan Informasi Menurut Turban, Aronson, and Liang (2005) data dan informasi didefinisikan sebagai berikut: Data, merupakan sesuatu yang menyangkut barang, kejadian, aktivitas, dan transaksi yang telah tercatat, diklasifikasikan, dan disimpan namun belum memiliki makna. Data dapat berupa nilai numerik, alphanumerik, gambar, dan suara. Informasi, adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimanya Siklus Informasi Data dan informasi akan saling berkesinambungan sehingga membentuk suatu siklus yang disebut information cycle (siklus informasi). Data ditangkap oleh indera kemudian menjadi inputan dalam sebuah model untuk diubah menjadi informasi bagi penerimanya yang nantinya akan membantu pengambilan keputusan dan menjadi sebuah hasil tindakan. Gambar 1-1 Siklus informasi 2 Perancangan Basis data

17 1.3. Pentingnya data dan informasi Data dan informasi sebagai sebuah aset penting perusahaan/organisasi. Informasi yang benar dapat menjadikan suatu perusahaan/organisasi memperoleh margin untuk melakukan aksi. Data dan informasi sebagai salah satu parameter kemajuan perusahaan/organisasi (maturity level) Sistem Basis Data dan Sistem File Pada sebuah institusi, data merupakan salah satu hal yang sangat penting. Setiap bagian/divisi dari institusi memiliki data sendiri-sendiri. Tapi setiap bagian pun membutuhkan sebagian data dari bagian yang lain. Hal ini yang biasa dikenal sebagai shared data. Setiap divisi memiliki aplikasi sendirisendiri dalam melakukan manipulasi dan pengambilan data tersebut. Setiap aplikasi memiliki file-file dalam sistem operasi yang digunakan untuk menyimpan data-data. Seiring dengan berkembangnya institusi, bertambahnya bagian/divisi, bertambah pula data dan aplikasi yang digunakan. Bertambahnya aplikasi, bertambah pula file-file yang dibuat. Gaya sistem pemrosesan-file tersebut menyebabkan setiap data disimpan dalam bentuk record dalam berbagai macam file, dan diperlukan aplikasi yang berbeda dalam melakukan pengambilan record dari, dan penambahan record ke dalam file. Hal ini berlaku pada masa sebelum adanya Sistem Basis Data (DBMS). Menyimpan data dalam bentuk file yang berbeda-beda, memiliki kekurangan-kekurangan: Data redundancy dan inconsistency. Dikarenakan programer yang berbeda membuat file dan aplikasi masing-masing, menyebabkan beragam format dan aplikasi yang dibuat. Bahkan, aplikasi pun dibuat menggunakan bahasa pemrograman yang berbeda-beda. Lebih jauh lagi, data atau informasi yang sama bisa terdapat dalam beberapa file yang berbeda. Ini yang disebut dengan redundancy. Redundancy data ini lama kelamaan akan menyebabkan inconsystency dari data. Perancangan Basis data 3

18 Kesulitan dalam pengaksesan data. Dikarenakan setiap aplikasi memiliki file tersendiri untuk penyimpanan dan pengambilan data, maka jika suatu bagian dari institusi membutuhkan data dari bagian lain, akan menemui kesulitan. Hal ini dikarenakan aplikasi yang dimiliki bagian tersebut, tidak dapat membaca file yang terdapat di bagian lain. Isolasi data. Dikarenakan data tersebar dalam berbagai macam file, dan file tersebut dalam beragam format, pembuatan aplikasi baru akan terasa sulit ketika harus membaca format dari masing-masing file tersebut. Masalah integritas. Data yang disimpan harus memenuhi hal yang dinamakan dengan consistency constraint. Jika sebuah constraint berubah, maka seluruh aplikasi yang digunakan harus mengakomodasinya. Masalah akan muncul, jika constraint melibatkan beberapa data dari file yang berbedabeda. Masalah keamanan. Tidak semua pengguna dari basis data dapat mengakses semua data. Hal ini akan sulit dilakukan jika menggunakan gaya penyimpanan data dalam file. 4 Perancangan Basis data

19 Gambar 1-2 Perkembangan Database 1.5. Definisi Basis Data dan Sistem Basis Data (DBMS) Basis data adalah penyimpanan kumpulan informasi secara sistematik dalam sebuah komputer sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (Database Management System, DBMS). DBMS memiliki karakteristik sebagai berikut: Software program Supplements operating sistem Perancangan Basis data 5

20 Manages data Queries data and generates reports Data security Sedangkan sistem adalah sebuah tatanan yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses pekerjaan. Sehingga bisa dikatakan bahwa sistem basis data adalah sistem yang terdiri atas kumpulan file-file yang saling berhubungan dan dikelola oleh program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain yang memiliki otoritas untuk mengakses dan memanipulasi data tersebut. Kelebihan pemakaian DBMS adalah: Data berdiri sendiri (Data Independence) Pengaksesan data efisien (Efficient data access) Integritas data dan keamanan terjamin (Data integrity and security) Administrasi data (Data administration) Dapat diakses bersamaan (Concurrent access ) Recovery saat terjadi kegagalan (Crash recovery) Mengurangi waktu pembangunan aplikasi (Reduced application development time) 1.6. Komponen Sistem Basis Data Komponen-komponen pada sebuah sistem basis data antara lain: Perangkat keras Sistem operasi Basis data DBMS (Database Management System) Pemakai Aplikasi lain 6 Perancangan Basis data

21 1.7. Abstraksi Data Gambar 1-3 Komponen DBMS Tujuan utama dari sistem basis data adalah untuk menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Namun bagaimana sistem menyimpan dan mengelola data tersebut, hanya diketahui oleh sistem itu sendiri. Abstraksi data merupakan level dalam bagaimana melihat data dalam sebuah sistem basis data. Berikut ini tiga level abstraksi data: 1. Level fisik Merupakan level terendah pada abstraksi data yang menunjukkan bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri. Perancangan Basis data 7

22 2. Level lojik Merupakan level berikutnya pada abstraksi data, menggambarkan data apa yang disimpan pada basis data dan hubungan apa saja yang ada di antara data tersebut. 3. Level view Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data atau informasi yang ada atau yang disimpan. Para user umumnya hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya di mata user diatur oleh aplikasi end user Model Basis Data Gambar 1-4 Abstraksi Data. Hierarchical Memiliki struktur pohon dimana field hanya memiliki satu buah induk (parent), masing-masing parent memiliki banyak child (anak). Model ini memiliki kecepatan yang baik. Network Relationship dibuat menggunakan linked list (pointer). Berbeda dengan model hierarchical satu anak dapat memiliki beberapa induk. Model ini memiliki fleksibilitas yang tinggi. 8 Perancangan Basis data

23 Relational Model ini direpresentasikan dalam tabel dua dimensi, tabel-tabel tersebut memiliki hubungan yang disebut dengan relasi. Model ini memiliki fleksibilitas dan kecepatan yang tinggi. Object oriented Object Oriented Database adalah sebuah sistem database yang menggabungkan semua konsep object oriented seperti pewarisan, abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan baik dengan bahasa pemrograman berorientasi objek seperti java dan C++. Perancangan Basis data 9

24 Gambar 1-5 Model Database 10 Perancangan Basis data

25 1.9. Basis Data Relasional Dalam beberapa tahun terakhir, sistem pengelola basis data (Database Management System - DBMS) menjadi pilihan dalam hal penyimpanan data bagi sistem informasi mulai dari pemrosesan aplikasi transaksi komersial yang besar hingga ke aplikasi yang berbasis desktop PC. Kebanyakan yang digunakan pada masa ini adalah Model basis data relasional dengan menggunakan Relational Database Management System (RDBMS). RDBMS menyediakan layanan pengorganisasian data yang mudah tetapi memiliki kemampuan untuk menangani jumlah data yang sangat besar. Beberapa contoh dari RDBMS diantaranya: SQL Server, dibuat oleh Microsoft. MS Access, dibuat oleh Microsoft. Oracle Database, dibuat oleh Oracle. MySQL, dibuat oleh MySQL AB. Firebird, dibuat oleh komunitas open source berdasarkan dari kode Interbase. PostgreSQL, dibuat oleh komunitas open source. DB2, dibuat oleh IBM. Basis data relasional memiliki satu struktur lojik yang disebut Relation (relasi). Struktur relasi merupakan strukture data 2-dimensi dan pada level fisik berupa table (tabel). Attribute merepresentasikan elemen dari data yang berkaitan dengan relasi. Sebagai contoh, relasi Mahasiswa memiliki atribut-atribut seperti nim, nama, tempat lahir. tanggal_ lahir, dan alamat. Pada buku-buku teks mengenai perancangan basis data, sebuah relasi dinotasikan secara konvensional dengan Relation(attribute1, attribute2,..) dengan aturan : nama dari relasi dan atribut-atribut dari relasi yang berada didalam tanda kurung. Contohnya: Mahasiswa(NIM, Nama, Alamat, Jenis_kelamin ). Nilai data dari atribut dari sebuah relasi akan disimpan dalam tuple atau row (baris) dari tabel. Gambar dibawah merupakan ilustrasi dari sebuah relasi. Perancangan Basis data 11

26 Gambar 1-6 Ilustrasi sebuah relasi Alternative Terminology Table-oriented Set-oriented Record-Oriented Table Relation Record-type, file Row Tuple Record Column Attribute Field Gambar 1-7 Terminologi Ada beberapa istilah/ terminologi yang berkaitan dengan konsep basis data Relational. Ada beberapa cara pandang terhadap data pada konsep basis data relasional. Yang pertama adalah pandangan yang berorientasi tabel (tableoriented) dimana sebuah entity-set direpresentasikan secara lojik menjadi sebuah tabel (table) yang terdiri dari baris (row) dan kolom (column). Kedua adalah pandangan berorientasi set/kumpulan (set-oriented) dimana entity-set direpresentasikan sebagai relasi (Relation), nilai-nilai data yang sesuai dengan atributnya (attribute) disimpan dalam sebuah tempat yang dinamakan tuple. 12 Perancangan Basis data

27 Terminologi yang terakhir adalah pandangan berorientasi record (recordoriented) dimana entity-set di representasikan dengan record-type/file sedangkan nilai dari tiap-tiap entity direpresentasikan dengan record yang terstruktur berdasarkan field-field yang dimiliki Perancangan Basis Data Relational Merupakan proses untuk merepresentasikan fakta dunia nyata (real world) yang dikehendaki ke dalam sistem komputer, sehingga mudah dipahami pemakai dengan mempertimbangkan kemudahan implementasi dan pemrosesannya. Tujuan dari perancangan basis data : Memenuhi kebutuhan informasi pada saat ini dan akan datang Kemudahan pengembangan sesuai dengan perkembangan organisasi Penerapan mekanisme pengamanan data Istilah dunia nyata (real world) bermakna terhadap keseluruhan data yang belum terstruktur yang secara nyata ada/terkait dalam lingkup sistem yang sedang ditinjau. Dunia nyata disini bisa dikatakan sebagai sebuah domain secara utuh/penuh maupun subdomain, sebagai contoh jika kita menganggap suatu perusahaan sebagai suatu domain maka kita dapat menganggap unit-unit yang ada dalam perusahaan tersebut adalah subdomain atau bisa saja sebuah proses bisnis atau aktivitas yang ada di perusahaan tersebut juga bisa kita anggap sebagai sebuah subdomain bahkan domain. Setiap dunia nyata (real world) yang ada memiliki karakter yang tidak sama/unik. Sebagai contoh dunia nyata bagi sistem perbankan pasti tidak sama dengan dunia nyata bagi sistem rumah sakit. Pertanyaannya adalah apakah dunia nyata di bank yang satu dengan bank yang lain pasti sama? Faktor penting menyangkut pemodelan data dari dunia nyata 1. Adanya aturan, rule dari proses bisnis yang akan dijadikan model. 2. Ada struktur (keteraturan) data yang akan disimpan dan bagaimana struktur data yang akan diimplementasikan ke dalam sebuah basis data secara fisik. Perancangan Basis data 13

28 3. Karakteristik dari data yang akan disimpan sudah jelas. Contoh : Dalam sistem rumah sakit misalnya ada : dokter, pasien, obat, kamar, dan lainlain Metodologi Perancangan Basis Data Merupakan cara bagaimana suatu basis data dibuat melalui tahap-tahap tertentu, mulai dari tahap investigasi masalah sampai tahap implementasinya. Secara umum ada dua tahapan proses perancangan basis data, yaitu : perancangan logika basis data perancangan fisik basis data 1. Perancangan logika basis data Merupakan proses pendefinisian entitas dan relasi (Relationship) dari dunia nyata yang dirancang, berdasarkan kebutuhan informasi dan pengolahan data dari organisasi yang bersangkutan. Entity / entitas adalah sekumpulan objek yang dapat diidentifikasi dan dibedakan di lingkungan pemakai Relasi adalah hubungan yang terjadi antar kelompok entitas. Sasaran dari perancangan logika basis data adalah fleksibilitas model data yang dihasilkan dan efisiensi pengimplementasiannya dalam komputer. 2. Perancangan fisik basis data Merupakan proses untuk mengimplementasikan hasil perancangan logika ke dalam komputer secara fisik yang bergantung kepada software DBMS yang dipilih. Proses yang dilakukan : Menentukan struktur untuk setiap tabel, meliputi nama field, jenis, lebar dan field kuncinya. Menentukan nama basis data dan nama setiap tabel, serta lokasi tempat penyimpanannya (drive, directory / folder). Menghitung perkiraan tempat (space) yg dibutuhkan untuk seluruh tabel dan untuk seluruh index. Implementasi dengan menggunakan software DBMS. 14 Perancangan Basis data

29 Terdapat dua pendekatan dalam perancangannya : 1. Pendekatan konvensional Perancangan basis data tanpa melalui tahap perancangan konseptual. Secara umum mempunyai tahapan perancangan sebagi berikut: Pembuatan model relasi Normalisasi Implementasi dengan menggunakan DBMS tertentu (Access, SQL, dsb.). Struktur tabel, atribut kunci, aturan integritas, relasi antar tabel Pembuatan Normalisasi Implementasi melalui DBMS REAL WORLD Model relasi Model Data Relasi Skema Basis Data Basis Data Gambar 1-8 Pendekatan Konvensional 2. Pendekatan Entity-Relationship Menggunakan pendekatan model konseptual. Secara umum, mempunyai tahapan sebagai berikut : Pembuatan model konseptual (model E-R) Identifikasi entitas dan atributnya Pendefinisian relasi antar entitas Penentuan atribut relasi antar entitas Menggambar diagram E-R Perancangan Basis data 15

30 Transformasi menjadi model relasi Nomalisasi Implementasi dengan menggunakan DBMS tertentu (Access, SQL, dsb.). Struktur tabel, atribut kunci, aturan integritas, relasi antar tabel REAL WORLD Pembuatan Model Data E-R Model Data Relasi Normalisasi Skema Basis Data Model Konseptual Implementasi melalui DBMS Basis Data Bahasa Basis Data Gambar 1-9 Pendekatan ER 1. Data Definition Language (DDL) Data Definition Language ini berfungsi untuk menspesifikasikan skema basis data. Degan bahasa ini user dimungkinkan untuk membuat tabel baru, indeks, mengubah struktur tabel, menetukan stuktur penyimpanan tabel, dan masih banyak lagi. Hasil dari kompilasi DDL adala kumpulan tabel yang tersimpan pada sebuah file khusus yang disebut dengan kamus data (data dictionary) atau data directory. Kamus data merupakan sebuah file yang berupa metadata, yaitu data tentang data. Kamus data ini akan selalu diakses pada suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses. 2. Interactive Data Manipulation Language (DML) Level abstraksi yang telah dibahas sebelumnya tidak hanya berlaku pada definisi atau struktur data tetapi juga pada manipulasi data. Manipulasi data itu sendiri dapat berupa: i. pengambilan informasi yang tersimpan pada basis data. ii. Pemasukan informasi baru ke dalam basis data. iii. Penghapusan informasi dari basis data. iv. Modifikasi informasi yang tersimpan pada basis data 16 Perancangan Basis data

31 Pada level fisik, kita harus mendefinisikan algoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi, yang dipentingkan bukan hanya efisiensi akses tetapi juga efisiensi interaksi user dengan sistem. DML merupakan bahasa yang memungkinkan user untuk mengakses atau memanipulasi data sebagaimana telah direpresentasikan oleh model data. Terdapat dua macam DML, yaitu: Prosedural, mengharuskan user untuk menentukan data apa yang dibutuhkan dan bagaimana untuk mendapatkan data tersebut. Nonprosedural, mengharuskan pemakai untuk menentukan data apa yang dibutuhkan tanpa menyebuntukan bagaimana mendapatkan data tersebut. 3. Transaction control Transaction control adalah bahasa basis data yang mengatur transaksi yang dilakukan oleh Data Manipulation Language (DML). Transaction control ini memiliki peran yang sangat besar untuk menentukan dilakukan atau tidaknya perubahan-perubahan data yang ada pada basis data. Contoh dari transaction control ini adalah perintah commit dan rollback. 4. Embedded and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal, etc. Tidak semua DBMS memiliki fasilitas ini, salah satu contoh DBMS yang memiliki fasilitas ini adalah oracle dimana oracle dapat me-load class yang ditulis menggunakan bahasa pemrograman java kedalam database. 5. Authorization, untuk mendefinisikan hak akses spesifik terhadap objekobjek basis data. Perancangan Basis data 17

32 Rangkuman 1. Data dan informasi akan saling berkesinambungan sehingga membentuk suatu siklus yang disebut information cycle (siklus informasi). 2. Pengelolaan data dan informasi menggunaan DBMS memiliki keuntungan jika dibandingkan dengan menyimpannya menggunakan file. 3. Basis data adalah penyimpanan kumpulan informasi secara sistematik dalam sebuah komputer sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (Database Management System, DBMS). 4. Teradapat tiga level abstraksi data yaitu dari yang paling dasar adalah level fisik, level lojik, dan level view. 5. Basis data relasional memiliki satu struktur lojik yang disebut Relation (relasi). Struktur relasi merupakan struktur data 2-dimensi dan pada level fisik berupa table (tabel). 18 Perancangan Basis data

33 Kuis Benar Salah 1. Informasi merupakan hasil dari pengolahan data. 2. Data ditangkap oleh indera kemudian menjadi inputan dalam sebuah model untuk diubah menjadi pengetahuan dan tindakan. 3. Data merupakan salah satu parameter kemajuan sebuah organisasi. 4. Jika data disimpan dalam file maka setiap aplikasi tidak memiliki file tersendiri. 5. Data integrity merupakan masalah yang dapat ditemui jika kita menyimpan data menggunakan file. 6. Model object oriented direpresentasikan dalam tabel dua dimensi, tabeltabel tersebut memiliki hubungan yang disebut dengan relasi. 7. Perancangan basis data merupakan proses untuk merepresentasikan fakta dunia nyata (real world) yang dikehendaki ke dalam sistem komputer, sehingga mudah dipahami pemakai dengan mempertimbangkan kemudahan implementasi dan pemrosesannya. 8. Database Management System (DBMS) merupakan salah satu jenis perangkat lunak. 9. Data yang disimpan dalam DBMS tidak dapat diakses secara bersamaan. 10. Memungkinkan beberapa aplikasi menggunakan DBMS yang sama. Perancangan Basis data 19

34 Pilihan Ganda 1. Berikut ini merupakan hasil pengolahan data, kecuali A. Informasi D. DBMS B. Pengetahuan E. Wisdom C. Kebijakan Penyimpanan data menggunakan file memiliki permasalahan sebagai berikut 2. kecuali A. Data redundancy dan inconsistency D. Security B. Isolation E. Integrity C. Simplicity Dalam menganalisis suatu domain, hal-hal yang harus diperhatikan adalah 3. sebagai berikut kecuali A. Pendefinisian masalah D. Identifikasi entitas dan relasi B. Business process oriented E. Identifikasi produktivitas domain C. Aturan/rule yang jelas 4. Jawaban yang paling tepat mengenai Database Management System adalah... A. Menambah data D. Mengelola data B. Mengubah data E. Memberikan data C. Menghapus data 5. Berikut ini adalah jenis DBMS untuk skala enterprise adalah A. MySQL D. SQL server B. Firebird E. MS Access C. PostgreSQL 6 Berikut ini jenis model basis data kecuali... A. Relational D. Hirarkial 20 Perancangan Basis data

35 B. Heuristik E. Object oriented C. Network 7 Berikut ini termasuk komponen basis data, kecuali A Hardware D Tupperware B Operating sistem E Software C Brainware 8 Hal yang benar mengenai level view pada abstraksi data adalah A Merupakan level terendah abstraksi D Berhubungan langsung dengan user B Dapat direpresentasikan dengan diagram ER. E Salah satu level konseptual abstraksi data C Berhubungan dengan indexing, fragmenting, dan crash recovery 9 Hal-hal berikut ini yang berhubungan dengan metodologi perancangan basis data kecuali... A Cara pembuatan basis data D Perancangan lojik B Perancangan fisik E Penentuan entitas dan relasi C Operasi recovery 10 Kelebihan DBMS kecuali A Data Independence D Crash recovery B Data integrity E Salah semua C Data avaibility Perancangan Basis data 21

36 Latihan 1. Gambarkan dan jelaskan proses pengolahan data hingga data tesebut dapat menjadi sebuah kebijakan (wisdom)! 2. Jelaskan mengenai masalah integritas data yang terjadi jika kita menggunakan file untuk menyimpan data! 3. Jelaskan mengenai mekanisme crash recovery pada DBMS 4. Jelaskan perbadaan antara entitas dan relasi dalam konsep RDBMS 5. Apakah tujuan dari perancangan basis data? 22 Perancangan Basis data

37 2 ENTITY RELATIONSHIP MODEL Overview Salah satu pemodelan basis data secara konseptual adalah pemodelan berbasis relasi antar entitas. Pemodelan ini dikenal karena mudah dimengerti. Konsep utama dari pemodelan ini berakar pada Entitas entitas dan relasi antar entitas. Pada bab ini akan di bahas pengertian entitas, atribut dan relasi, derajat himpunan relasi, kardinalitas relasi, serta pengenalan key sebagai salah satu constraint dalam ER. Tujuan 1. Mahasiswa memahami definisi salah pemodelan konseptual basis data menggunakan ER. 2. Mahasiswa memahami Konsep Entitas, Atribut, Relasi dan Kardinalitas relasi. Perancangan Basis data 23

38 2.1 ER Sebagai Salah Satu Pemodelan Konseptual Basis Data Didalam 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 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-entitas yang ada. Entitas diartikan sebagai 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 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 Bambang adalah salah satu contoh dari entitas. Sedangkan bambang, susi, sumarno merupakan himpunan entitas orang. Dapat kita katakan bahwa Himpunan Entitas (Entity Set): Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama. Kumpulan entitas orang dengan karakteristik mempunyai nim, prodi, dsb bisa kita katakan merupakan himpunan entitas mahasiwa. Entitas menunjuk kepada pada individu suatu objek sedangkan himpunan entitas menunjuk pada rumpun (family) dari individu tersebut. 24 Perancangan Basis data

39 Bambang Susi Entitas orang entitas orang Sumarno Mahasiswa Himpunan entitas orang yang mempunyai kesamaan karakteristik yaitu nim, prodi, dsb membentuk himpunan entitas mahasiswa Gambar 2-1 Himpunan Entitas Mahasiswa Sebuah entitas / himpunan entitas dapat di gambarkan / di notasikan dengan sebuah gambar persegi panjang. Berikut merupakan contoh entitas mahasiwa, jadwal dan pinjaman. Mahasiswa Jadwal Pinjaman Gambar 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). Atribut Entitas MAHASISWA Entitas 1 Entitas 2 Entitas 3 Gambar 2-3 Gambaran Himpunan entitas di Tabel Perancangan Basis data 25

40 2.3 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 atribut mempunyai domain value set yaitu batasan batasan yg dibolehkan bagi suatu atribut. Tipe tipe atribut dapat dibedakan. Simple dan Composite Atribut Simple yaitu suatu atribut yang tidak bisa dibagi menjadi bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin. Atribut Composite yaitu suatu atribut yang dapat di bagi menjadi beberapa bagian. Contoh atribut composite Nama dapat di bagi menjadi nama depan dan nama belakang. Gambar 2-4 Contoh Atribut Komposit Single value dan multivalued Atribut Single value yaitu suatu atribut yang bisa di isi paling banyak 1 nilai untuk setiap baris data. Contoh atribut single value adalah Jenis Kelamin. Atribut Multivalued yaitu suatu atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data. Contoh atribut mutlivalued value adalah Alamat, No telp dan hobi. Ketiga atribut tersebut bisa berisi lebih dari 1. Contoh untuk 1 entitas orang bisa mempunyai lebih dari 1 nilai untuk atribut hobi yang isinya musik, olahraga begitu juga untuk telp dan alamat (* karena bisa mempunyai > 1 no telp dan > 1 alamat) 26 Perancangan Basis data

41 Derived attribute Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari hasil pengolahan atribut lain. Contoh atribut derived adalah umur yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang. IPK yang didapatkan dari penjumlahan nilai di bagi dengan jumlah sks yang diambil. Notasi atribut digambarkan dengan gambar elips. Atribut kunci biasa di beri tanda # atau garis bawah. Contoh himpunan entitas mahasiswa mempunyai atribut nim sebagai key, prodi, nama, ipk, dsb nama prodi ipk #nim Mahasiswa 2.4 Relasi Gambar 2-5 Entitas mahasiswa dengan Atribut ER menggambarkan entitas-entitas dengan atributnya yang saling berelasi. Relasi menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat. Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut. Relasi mahasiswa mempunyai organisasi Mahasiswa mempunyai Organisasi Gambar 2-6 Relasi di gambarkan 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, Perancangan Basis data 27

42 nama, alamat, prodi, ipk, dsb. Sedangkan entitas organisasi memiliki atribut kd_organisasi, nama_organisasi, jenis_organisasi (* olahraga/kesenian/jurusan dsb). 1 Mahasiswa bisa mempunyai 0 atau lebih organisasi pada semester dan tahun ajaran tertentu. 1 Organisasi bisa di punyai 0 atau lebih mahasiswa pada semester dan tahun ajaran tertentu. Kardinalitas relasi adalah n ke n. Dampak dari kardinalitas n ke n ini, relasi menjadi atribut, primary key dari entitas mahasiwa dan primary key dari entitas organisasi masuk ke tabel relasi sebagai atribut. Atribut tambahan berupa semester dan tahun ajaran merupakan atribut tambahan pada tabel relasi mempunyai, atribut ini disebut atribut deskriptif. Atribut deskriptif ini muncul karena adanya kebutuhan dari proses bisnis untuk mencatat historis mahasiwa tersebut per semester dan tahun ajaran tertentu, sehingga bisa di lihat track record organisasi mahasiwa tersebut selama belajar di kampus dari semester ke semester berikutnya. Berikut merupakan contoh gambaran antara entitas mahasiwa dan entitas organisasi. Susi Organisai LINUX Sumarno Bambang Organisai Pecinta Satwa Sumarno Mempunyai organisasi Pecinta Satwa Di semester 1 tahun ajaran 2008/2009 Gambar 2-7 Himpunan Entitas Mahasiwa Ber-Relasi dengan Himpunan Entitas Organisasi 2.5 Derajat Himpunan Relasi Jika dilihat dari jumlah entitas yang dihubungkan oleh sebuah relasi, maka kita bisa membagi menjadi 3 macam: Unary (Hanya me-relasi-kan 1 entitas) 28 Perancangan Basis data

43 Gambar 2-8 Contoh Derajat Relasi Unary Relasi di atas menggambarkan entitas karyawan yang berrelasi dengan entitas karyawan. Entitas karyawan bisa merupakan karyawan biasa tetapi bisa juga merupakan manajer. Relasi yang terjadi yaitu relasi karyawan bekerja untuk manajer (* entitas manajer adalah salah satu karyawan juga). Perhatikan kardinalitas relasinya, 1 karyawan hanya bekerja untuk 1 manajer, tetapi 1 manajer bisa mempunyai banyak bawahan. Binary (Me-relasi-kan 2 entitas) Gambar 2-9 Contoh Derajat Relasi Binary Relasi di atas menggambarkan entitas pelangan yang ber-relasi dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak nomor pinjaman, dan 1 nomor pinjaman hanya untuk 1 pelanggan. Perancangan Basis data 29

44 Ternary (Me-relasi-kan 3 entitas) Gambar 2-10 Contoh Derajat Relasi Ternary Relasi di atas menggambarkan entitas karyawan yang berrelasi dengan entitas cabang dan entitas pekerjaan melalui relasi bekerja_di. 1 karyawan bekerja di sebuah id pekerjaan tertentu dan juga bekerja di sebuah cabang tertentu. Ada 3 entitas yang terlibat dari relasi di atas 2.6 Kardinalitas Relasi Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-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-11 Relasi dengan Kardinalitas 1 ke 1 Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di 30 Perancangan Basis data

45 himpunan entitas B. Asumsi kita 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 itu relasi ini berkardinalitas 1 ke 1. Satu ke Banyak Gambar 2-12 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-13 Relasi dengan Kardinalitas Banyak ke 1 Perancangan Basis data 31

46 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 maksimal adalah 1, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1. Banyak ke Banyak 2.7 Key Gambar 2-14 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 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, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke banyak. Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa mendefinisikan key sebagai satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. Macam key ada 3 yaitu : Superkey 32 Perancangan Basis data

47 Superkey yaitu satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik. Contoh super key yaitu = Nim, nama, alamat, kota Nim, nama, alamat Nim, nama Nim Candidate key Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Contoh Nim Primary key Primary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key : Lebih sering di jadikan acuan Lebih ringkas Jaminan keunikan key lebih baik Contoh dari primary key adalah Nim 2.8 Diagram ER Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis. #nim nama kota #kd_org nama alamat ipk Mahasiswa umur prodi mem Organisasi jenis Gambar 2-15 Contoh Diagram ER Notasi yang digunakan di Diagram ER adalah : Garis : Link yang menghubungkan atara Entitas dengan atribut, dan entitas dengan relasi atau entitas Elips dobel : Menunjukkan atribut yang multivalued Elips dengan garis terputus : Menunjukkan atribut turunan Perancangan Basis data 33

48 2.9 Constraint Cardinalitas Dalam menggambarkam kardinalitas pada Diagram ER, digunakan garis panah (->) yang menunjukkan Satu atau garis biasa ( ) yang menunjukkan Banyak. #nim nama kota #kd_org nama alamat ipk Mahasiswa mem prodi umur Gambar 2-16 Relasi 1 ke 1 Organisasi jenis 1 Mahasiswa hanya boleh menjabat 1 jabatan dalam 1 periode tertentu. 1 Jabatan hanya boleh di jabat oleh 1 mahasiswa dalam 1 periode tertentu. #nim nama kota #kd_org nama alamat ipk Mahasiswa mem prodi umur Gambar 2-17 Relasi 1 ke banyak Organisasi jenis 1 Jabatan hanya boleh dijabat oleh 1 mahasiswa dalam 1 periode tertentu dan 1 organisasi tertentu. 1 Mahasiswa boleh menjabat 1 jabatan dalam 1 periode tertentu di organisasi yang berbeda. 34 Perancangan Basis data

49 #nim nama kota #kd_org nama alamat ipk Mahasiswa mem prodi umur Gambar 2-18 Relasi Banyak ke 1 Organisasi jenis 1 Jenis Beasiswa boleh diberikan untuk banyak mahasiwa 1 Mahasiwa hanya boleh mendapatkan 1 Jenis beasiwa #nim nama kota #kd_org nama alamat ipk Mahasiswa mem Organisasi prodi umur jenis Gambar 2-19 Relasi Banyak ke Banyak 1 Mahasiswa boleh mengambil banyak mata kuliah 1 Mata kuliah boleh diambil banyak mahasiwa Perancangan Basis data 35

50 Rangkuman 1. ER adalah salah satu pemodelan basis data ke dalam bentuk Entitas-Entitas dan Relasi yang terjadi di antara entitas-entitas yang ada. 2. Entitas diartikan sebagai objek didunia nyata yang bisa dibedakan dengan objek yang lain. Notasi entitas digambarkan dengan Persegi panjang. 3. Relasi diartikan sebagai hubungan yang terjadi diantara satu entitas dengan entitas yang lainnya. Notasi relasi di gambarkan dengan belah ketupat. 4. Setiap entitas mempunyai atribut yang berisi karakteristik yang mendeskripsikan dari entitas tersebut. Notasi atribut di gambarkan dengan elips. 5. Derajat himpunan relasi ada 3 macam, yaitu unary, binary dan ternary. 6. Kardinalitas relasi menggambarkan banyaknya jumlah maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain. 7. Pada himpunan relasi biner, pemetaan kardinaltias relasi dapat berupa salah satu dari berikut ini a. Satu ke Satu b. Satu ke Banyak c. Banyak ke Satu d. Banyak ke Banyak 8. Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. Macam key dibedakan jadi 3 = super key, candidate key, primary key. 9. Diagram ER Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis 36 Perancangan Basis data

51 Kuis Benar Salah 1. ER merupakan satu-satunya pemodelan konseptual basis data. 2. Objek hanya didefinisikan untuk wujud yang konkrit. 3. Himpunan entitas merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis 4. Setiap atribut mempunyai domain value set yang di spesifikasikan pada masing masing atribut. 5. Yang membedakan domain set value antara atribut single dan composit adalah jika single nilainya tidak bisa dibagi menjadi bagian yang lebih kecil, sedangkan composit, nilainya dapat dibagi menjadi nilai yang lebih kecil. 6. Makna atribut composit sama dengan atribut multi valued karena bisa dipecah menjadi bagian yang lebih kecil. 7. Atribut yg didapat dari hasil pengolahan atribut lain merupakan definisi dari Derived Attribut dengan contohnya yaitu ipk. 8. Didalam relasi tidak dibolehkan menambah atribut lagi kecuali primary key dari kedua entitas yang ber-relasi. 9. Yang membedakan derajat himpunan relasi adalah banyaknya entitas yang ber-relasi. 10. Kardinalitas relasi menggambarkan banyaknya jumlah maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain. 11. Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik merupakan definisi dari super key. 12. Nim, nama, alamat, kota merupakan primary key. 13. Notasi Elips dobel menunjukkan atribut yang multivalued. 14. Notasi Elips dengan garis terputus : Menunjukkan atribut turunan 15. Notasi garis bawah menunjukkan bahwa atribut tersebut adalah primary key. Perancangan Basis data 37

52 Pilihan Ganda Petunjuk: Pilihlah jawaban yang paling tepat! 1. Manakah yang bukan merupakan entitas dari pilihan di bawah A. Dosen D. Penjadwalan B. Mata Kuliah E. Nasabah C. Mempunyai 2. Notas persegi panjang bisa memberikan makna A. Entitas D. Atribut B. Himpunan Entitas E. Relasi C. A dan B benar Berikut ini merupakan domain value set bagi sebuah atribut didalam konse 3. Entity Relationship, kecuali A. Simple D. Multivalued B. Composit E. Surrogate key C. Single value Dibawah ini merupakan alasan yang benar tentang makna Atribut 4. deskriptif Muncul hanya jika 2 entitas A. bertemu di sebuah relasi D. Atribut yang dipercaya sebagai key B. Dibolehkan di konsep ER E. Pernyataan di atas salah semua C. Atribut yang di turunkan dari atribut lain 38 Perancangan Basis data

53 5. Pada gambar di atas, derajat himpunan relasinya adalah A. Unary D. Four-ary B. Binary E. Tidak ada jawaban yang benar C. Ternary 6 Manakah yang benar dari gambar di atas A. Relasi di atas berkardinalitas satu ke banyak D. B adalah himpunan Entitas Orang B. Relasi di atas berkardinalitas banyak ke banyak E. Relasi di atas di petakan kedalam 3 tabel C. A adalah himpunan Entitas Hari 7 Pernyataan yang benar dari gambar di atas A Himpunan relasi berderajat D A dan B benar Perancangan Basis data 39

54 B C Ternary Merupakan kardinalitas relasi banyak ke banyak E B dan C benar Terdapat 3 tabel, yaitu himpunan entitas orang, himpunan entitas hari dan relasi 8 Notasi di atas menggambarkan A 1 Mahasiswa bisa aktif di banyak organisasi D 1 Organisasi bisa di ikuti oleh banyak mahasiwa B 1 Mahasiswa hanya bisa aktif di 1 organisasi E B dan D benar C 1 Organisasi hanya bisa di ikuti oleh 1 mahasiswa 9 Kardinalitas relasi dari gambar di atas adalah A 1 ke 1 D Banyak ke Banyak B 1 ke banyak E Tidak ada jawaban yang benar C Banyak ke 1 Dari himpunan atribut StaffNo, StaffAddress, Skill, mana yang 10 merupakan candidate key paling baik A StaffNo D StaffNo dan Skill B StaffNo dan StaffAddress E Tidak ada jawaban yang tepat C StaffNo,StaffAddress dan Skill 40 Perancangan Basis data

55 Latihan 1. Buatlah sebuah entitas dan relasinya dari requirement berikut ini. Di sebuah perusahaan, terdapat kepentingan untuk mencatat detail logistik dari setiap kantor cabang. Contoh barang barang logistik adalah Meja, Kursi, Lemari, Komputer. Setiap cabang bisa mempunyai setiap barang tersebut sesuai kebutuhan. Untuk setiap logistik ada merknya sendiri sendiri, bisa berbeda beda. Sistem basis data di inginkan bisa mencatat historis dari barang logistik yang ada, barang tersebut kapan datang, kondisinya masih bagus atau sudah rusak. Sehingga manajemen bisa membuat sebuah anggaran untuk mengganti logistik-logistik yang sudah usang. Perancangan Basis data 41

56 3 KONVERSI ER KE TABEL Overview Pemodelan ER adalah pemodelan konseptual sebuah basis data relasional. Desain ER bisa di konversikan kedalam bentuk tabel fisik yang akan di simpan di dalam basis data. Didalam bab ini akan di bahas lebih lanjut dari ER yaitu tentang weak entity, spesialisasi, agregasi dan penurunan Diagram ER ke bentuk tabel. Penekanan pada bab ini adalah kapan dan bagaimana kita menggunakan weak entity, spesilisasi dan agregasi dan bagaimana menurunkan konseptual ER kedalam tabel. Tujuan 1. Mahasiswa memahami konsep Weak Entity, Spesialisasi dan Agregasi 2. Mahasiswa memahami konsep penurunan dari Diagram ER ke Tabel 42 Perancangan Basis data

57 3.1 Himpunan Entitas Lemah Secara 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 parsial adalah atribut atribut yg dpt membedakan 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. #nip Pegawai nama Nama penerima Tunjangan Nomor jabatan Besar tunjangan Gambar 3-1 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 pegawai (* tidak akan ada tunjangan jika tidak ada pegawai). Kardinalitas relasi yang terjadi pada himpunan entitas lemah biasanya merupakan banyak ke 1 / 1 ke banyak dengan kardinalitas 1 di himpunan entitas yang lebih kuat. 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 Perancangan Basis data 43

58 tentang perbedaan karakteristik dari himpunan entitas 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 dari entitas di subgroup yang lain. IS A dinotasikan dengan gambar segitiga berlabel IS A. Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada level tinggi secara otomatis akan di turunkan pada level di bawahnya. nama #Id_pegawai Pegawai Besar tunjangan Gaji Per Bulan IS A Upah Per Jam Jumlah Jam Kerja Pegawai Tetap Gambar 3-2 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. Atribut besar tunjangan dan gaji perbulan hanya terdapat di himpunan entitas pegawai tetap, sedangkan atribut upah per jam dan jumlah jam kerja terdapat di himpunan entitas pegawai honorer. 3.3 Generalisasi Pegawai Honorer Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A, yang membedakan adalah sudut pandangnya saja. Jika Spesialisasi kita mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas tersebut, tetapi generalisasi memandang sebaliknya, dari adanya subgroup subgroup yang berbeda kemudian di cari entitas umum yang mewakili 2 himpunan entitas tersebut. 44 Perancangan Basis data

59 3.4 Agregasi Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam konsep agregasi terdapat istilah enkapsulasi relasi dari kedua entitas. Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi. Gambar 3-3 Contoh Agregasi Gambar di atas menunjukkan relasi dosen mengajar sebuah mata kuliah dan mahasiswa mengambil mata kuliah yang diajarkan oleh dosen tertentu. Agregasi di perlukan dikarenakan tidak di mungkinkan mahasiwa untuk mengambil mata kuliah tanpa adanya dosen yang bersedia untuk mengajar mata kuliah tersebut. Dalam kasus di atas menekankan bahwa himpunan entitas dosen harus ber-relasi terlebih dahulu dengan himpunan entitas mata kuliah, kemudian relasinya di pandang sebagai 1 entitas yang berrelasi dengan himpunan entitas mahasiwa lewat relasi mengambil. Primary key dari kedua himpunan entitas dosen dan mata kuliah akan secara implisit masuk ke relasi mengajar dengan di tambah 2 atribut deskriptif (* semester dan thn_ajaran). Relasi tersebut di anggap sebagai 1 entitas seperti gambar di bawah ini. Gambar 3-4 Relasi di pandang sebagai Himpunan Entitas Perancangan Basis data 45

60 3.5 Ringkasan notasi simbol di ER Gambar 3-5 Ringkasan Notasi pada Diagram ER 46 Perancangan Basis data

61 3.6 Penurunan skema ER ke Tabel Penurunan skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi. Inti dari Entity Relationship adalah menggambarkan hubungan di dunia nyata kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini bisa di buat kedalam bentuk tabel yang langsung di implementasikan kedalam basis data. Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut : Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat atau lemah) Setiap atribut menjadi kolom di tabel Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (* akan di bahas di bawah lebih detail) 3.7 Representasi Atribut sebagai Kolom Pada atribut bertipe simple, single dan derived direpresentasikan sama persis seperti diagram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan tersendiri. Atribut komposit akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. Contoh atribut nama pada tabel mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama belakang. Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel. Atribut multivalued M dari entitas E direpesentasikan oleh tabel terpisah EM. Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah atribut multivalued : Gambar 3-6 Atribut multivalued di pecah menjadi entitas baru Perancangan Basis data 47

62 3.8 Representasi Himpunan Entitas sebagai Tabel Himpunan entitas kuat di representasikan kedalam tabel dengan kolom sama persis dengan atribut yang sudah di definisikan di diagram ER. Perhatikan gambar di bawah ini : Gambar 3-7 Atribut himpunan entitas kuat di representasikan kedalam tabel Himpunan entitas lemah akan menjadi tabel tersendiri yang didalamnya ada kolom primary key yang merupakan identifikasi dari himpunan entitas kuat. Contoh di bawah menggambarkan himpunan entitas lemah di turunkan kedalam tabel. Gambar 3-8 Penurunan Himpunan Entitas Lemah ke tabel 48 Perancangan Basis data

63 3.9 Representasi Relasi (* pada kardinalitas N to N) Relasi dari Himpunan Banyak ke Banyak direpresentasikan kedalam Tabel tersendiri dengan primary key dari 2 Entitas menjadi atribut di Tabel Relasi. Perhatikan relasi banyak ke banyak berikut dan contoh penurunan ke tabel : Gambar 3-9 Penurunan Kardinalitas relasi N to N menjadi Tabel 3.10 Hubungan kardinalitas dengan tabel yang terbentuk Kardinalitas relasi dari Himpunan Entitas yang saling ber-relasi akan menentukan banyaknya tabel yang bisa di buat. Adapun aturannya sebagai berikut : 1 ke 1 Pilih primary key di 1 himpunan entitas untuk menjadi foreign key bagi himpunan entitas yang lain. Perancangan Basis data 49

64 1 ke banyak / banyak ke 1 Primary key pada Tabel berkardinalitas sedikit menjadi foreign key pada tabel berkardinalitas banyak. Banyak ke banyak Sudah jelas di atas 3.11 Representasi Spesialisasi (IS A) Ada 2 pendekatan yang dipakai didalam menurunkan spesialisasi kedalam tabel. Pendekatan 1 Bentuklah tabel untuk level entitas yg lebih tinggi Bentuklah tabel untuk level entitas yg lebih rendah (*dengan memasukkan primary key pada level yg lebih tinggi ke tabel dengan level yang lebih rendah) Gambar 3-10 Representasi spesialisasi ke tabel metoda 1 Pendekatan 2 Bentuklah tabel untuk tiap himpunan entitas dengan semua atribut lokal dan turunan. Bisa jadi tabel pada level tinggi tidak perlu di simpan jika spesialisasi adalah total. Jika diperlukan bisa dibuat view yang menggabungkan tabel-tabel spesialisasi. 50 Perancangan Basis data

65 Gambar 3-11 Representasi spesialisasi ke tabel metoda Representasi Agregasi Untuk merepresentasikan agregasi, buatlah tabel yang terdiri dari : Foreign key dari himpunan entitas yang berhubungan Setiap atribut deskriptif Atribut baru untuk primary key di tabel relasi Gambar 3-12 Representasi Agregasi untk tabel mata kuliah, dosen dan Dosen mengajar mt kul Perancangan Basis data 51

66 Gambar 3-13 Representasi Agregasi untuk tabel Mahasiwa dan Mahasiwa Mengambil Mtkul 52 Perancangan Basis data

67 Rangkuman 1. Himpunan Entitas Lemah tidak memiliki primary key dan selalu bergantung pada entitas lain. 2. Notasi entitas lemah adalah doble persegi panjang, sedangkan relasinya double diamond. 3. Jika konsep primary key di pakai didalam himpunan entitas kuat, maka diskriminator dipakai sebagai pembeda antar entitas di dalam himpunan entitas lemah. Diskriminator di gambarkan sebagai garis bawah yang terputus putus. 4. Spesialisasi merupakan proses desain top-down; dengan mendesain subgrouping didalam himpunan entitas yang berbeda dari himpunan entitas. 5. Generalisasi merupakan proses desain bottom-up; mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama-sama. 6. Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Notasi agregasi adalah Persegi Panjang yang membungkus himpunan entitas biner yang saling ber-relasi. 7. Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut : Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat atau lemah) Setiap atribut menjadi kolom di tabel Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (* akan di bahas di bawah lebih detail) 8. Atribut komposit akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. 9. Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel. 10. Himpunan Weak Entity akan menjadi tabel tersendiri yang didalamnya ada kolom primary key yang merupakan identifikasi dari strong entity. 11. Kardinalitas relasi menentukan berapa banyak tabel yang terbentuk. Perancangan Basis data 53

68 Kuis Benar Salah 1. Pemodelan ER adalah pemodelan konseptual sebuah basis data relasional dan pasti bisa di turunkan kedalam tabel. 2. Konsep diskriminator hanya di dapat pada himpunan entitas lemah. 3. Spesialisasi dan Generalisasi sama sama menggunakan notasi IS A. 4. Hanya kardinalitas relasi banyak ke banyak yang menurunkan 1 tabel lagi yaitu tabel relasi. 5. Agregasi hanya bisa dilakukan pada kardinalitas relasi banyak ke banyak. 54 Perancangan Basis data

69 Pilihan Ganda Petunjuk: Pilihlah jawaban yang paling tepat! Perhatikan relasi berikut 1. kardinalitas relasinya adalah A. Banyak ke Banyak D. Banyak ke Banyak B. 1 ke 1 E. Salah semua C. 1 ke Banyak 2. Diskriminator adalah konsep yang terdapat di A. Himpunan Entitas kuat D. Spesialisasi B. Himpunan Entitas lemah E. Generalisasi C. Agregasi 2 Entitas dengan kardinalitas relasi 1 ke banyak akan menghasilkan 3. tabel A. 1 Tabel D. Bisa 2 atau 3 tergantung situasi B. 2 Tabel E. Bisa 1 atau 2 tergantung situasi C. 3 Tabel Perhatikan relasi berikut 4. Relasi di atas merupakan contoh dari relasi Perancangan Basis data 55

70 A. Agregasi D. Weak Entity B. Spesialisasi E. Salah semua C. Generalisasi Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah 5. A. 3 Tabel D. 6 Tabel B. 4 Tabel E. 7 Tabel C. 5 Tabel Gambar himpunan entitas berikut menggambarkan 6 A. Himpunan Entitas D. Relasi B. Himpunan Entitas Lemah E. Atribut C. Himpunan Entitas Kuat Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah 7. A. 3 Tabel B. 4 Tabel E. 7 Tabel C. 5 Tabel C Network 8 Setiap atribut pasti menjadi 1 kolom. Pernyataan tersebut A Benar D. Salah pada kondisi tertentu B Salah E. C dan D benar C Benar pada kondisi tertentu 9 Ketika sebuah nilai atribut mempunyai multivalued maka langkah kita adalah A Menjadikannya entitas D. Tidak di ikuntukan menjadi kolom B Biarkan saja E. Tidak ada jawaban yang tepat C Membuat banyak kolom untuk mengatasi multivalued tersebut 56 Perancangan Basis data

71 10 Semua ER adalah benar. Pernyataan tersebut A Mutlak benar D. Tidak di ikuntukan menjadi kolom B Mutlak salah E. Tidak ada jawaban yang tepat C Mutlak salah karena hanya ada 1 ER yang benar Perancangan Basis data 57

72 Latihan 1. Turunkan Diagram ER berikut kedalam tabel! 58 Perancangan Basis data

73 4 NORMALISASI Overview Bab ini akan membahas konsep normalisasi database berikut konsep-konsep lain yang mendasarinya. Dalam bab ini juga akan ditampilkan contoh penerapan normalisasi untuk tabel-tabel sederhana dalam kasus database akademik di sebuah perguruan tinggi. Tujuan 1. Mahasiswa memahami definisi dan tujuan normalisasi 2. Mahasiswa mampu mengidentifikasi super key, candidate key dan primary key dari sebuah table 3. Mahasiswa mampu mengidentifikasi functional dependency yang ada pada sebuah tabel, termasuk partial dan transitive FD 4. Mahasiswa mengenal bentuk normal pertama, ke dua, ke tiga dan BCNF serta mampu melakukan normalisasi dengan menerapkan bentuk-bentuk normal tersebut 5. Mahasiswa mengenal sekilas tentang bentuk-bentuk normal lain dan memahami konsep denormalisasi Perancangan Basis data 59

74 4.1 Definisi Normalisasi Normalisasi adalah langkah-langkah sistematis untuk menjamin bahwa struktur database memungkinkan untuk general purpose query dan bebas dari insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya integritas data (E.F. Codd, 1970) 4.2 Tujuan Normalisasi Pada dasarnya normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data. Untuk memperjelas pemahaman tentang proses normalisasi, perhatikan diagram berikut: Gambar 4-1 Diagram Normalisasi Intinya, normalisasi dilakukan terhadap desain tabel yang sudah ada dengan tujuan untuk meminimalkan redundansi (pengulangan) data dan menjamin integritas data dengan cara menghidari 3 Anomali Data: Update, Insertion dan Deletion Anomaly Update Anomaly Tabel 4-1 Contoh Update Anomaly NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin TE Elektro TE-001 Elektronika 3 A 1-01 Tukimin TE Elektro DU-001 English 2 A 2-01 Jamilah IF Informatika IF-001 Algoritma 3 B 2-01 Jamilah IF Informatika DU-001 English 2 C 2-02 Maemunah IF Informatika IF-002 Database 2 A Tabel di atas adalah contoh tabel yang memiliki desain yang kurang baik. Perhatikan bahwa jika kita ingin meng-update jumlah sks mata kuliah English dari 2 menjadi 3 sks, maka kita harus mengupdate lebih dari 1 record, yaitu baris 2 dan 4. Jika hanya salah satu baris saja yang di-update, maka data menjadi tidak konsisten (ada mata kuliah English dengan 2 sks dan ada mata kuliah 60 Perancangan Basis data

75 English dengan 3 sks). Kondisi seperti inilah yang disebut dengan update anomaly Insertion Anomaly Tabel 4-2 Contoh Insert Anomaly NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin TE Elektro TE-001 Elektronika 3 A 1-01 Tukimin TE Elektro DU-001 English 2 A 2-01 Jamilah IF Informatika IF-001 Algoritma 3 B 2-01 Jamilah IF Informatika DU-001 English 2 C 2-02 Maemunah IF Informatika IF-002 Database 2 A Pada tabel yang sama seperti contoh di atas, terjadi pula insertion anomaly. Misalkan terdapat mahasiswa baru dengan nim 1-02 bernama Zubaedah dengan kode jurusan TE dan nama jurusan Elektro. Data mahasiswa tersebut tidak dapat dimasukkan ke dalam tabel sebab dia belum mengambil kuliah apapun (misalnya karena belum melakukan registrasi). Kondisi inilah yang disebut dengan insertion anomaly Deletion Anomaly Tabel 4-3 Contoh Delete Anomaly NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin TE Elektro TE-001 Elektronika 3 A 1-01 Tukimin TE Elektro DU-001 English 2 A 2-01 Jamilah IF Informatika IF-001 Algoritma 3 B 2-01 Jamilah IF Informatika DU-001 English 2 C 2-02 Maemunah IF Informatika IF-002 Database 2 A Pada contoh tabel di atas terjadi deletion anomaly. Perhatikan bahwa jika kita menghapus data mahasiswa bernama Maemunah maka kita harus menghapus data pada baris ke 5, hal ini akan mengakibatkan kita juga kehilangan data mata kuliah Database. Kondisi inilah yang disebut dengan deletion anomaly. Selain 3 anomali di atas, ada beberapa konsep yang mendasari normalisasi. Adapun konsep-konsep penting yang mendasari normalisasi Perancangan Basis data 61

76 adalah konsep mengenai super key, candidate key, primary key, functional dependency dan tentu saja bentuk-bentuk normal yang menjadi acuan kita dalam melakukan normalisasi terhadap desain sebuah tabel. Pemahaman terhadap konsep-konsep ini sangat penting dan akan dibahas di beberapa sub bab berikutnya. 4.3 The Three Keys Konsep tentang key adalah konsep yang penting untuk memahami keterkaitan antar atribut data dalam tabel dan akan sangat berguna dalam proses normalisasi. Dalam setiap tabel, terdapat 3 macam key: a) Super key Super key adalah satu atribut atau gabungan atribut (kolom) pada tabel yang dapat membedakan semua baris secara unik. b) Candidate key Candidate key disebut juga dengan minimal super key, yaitu super key yang tidak mengandung super key yang lain. Setiap candidate key pasti merupakan super key, namun tidak semua super key akan menjadi candidate key. c) Primary key Primary key adalah salah satu candidate key yang dipilih (dengan berbagai pertimbangan) untuk digunakan dalam DBMS. Tiap tabel hanya memiliki 1 primary key, namun primary key tersebut bisa saja dibentuk dari beberapa atribut (kolom). Untuk memperjelas pemahaman kita terhadap 3 macam key di atas, perhatikan contohnya pada tabel mata_kuliah di bawah ini: Tabel 4-4 Tabel Mata Kuliah Kode_MK Nama_MK Semester SKS DU-001 English 2 2 DU-002 Kalkulus 1 3 IF-001 Algoritma 1 3 IF-002 Database 2 3 IF-003 Artificial Intelligence 5 2 TE-001 Elektronika 4 3 Beberapa super key dari tabel di atas adalah: 1. (kode_mk) 62 Perancangan Basis data

77 Dari 6 baris data yang ada pada tabel di atas tak ada satupun yang memiliki kode_mk yang sama. 2. (nama_mk) Demikian pula dengan nama_mk, masing-masing baris data memiliki nama_mk yang unik. Tidak ada satupun baris data yang memiliki kolom nama_mk dengan nilai yang sama persis. 3. (kode_mk,nama_mk,semester) Walaupun beberapa baris data memiliki kolom semester dengan nilai yang sama (misalnya baris 1&4, baris 2&3) namun tidak ada satupun baris data yang memiliki kombinasi kode_mk, nama_mk dan semester yang sama persis. 4. (kode_mk,nama_mk, sks) Kombinasi kode_mk, nama_mk dan sks juga digolongkan sebagai super key dengan alasan yang kurang lebih sama dengan poin (kode_mk,nama_mk, semester, jml_temu) Kombinasi kode_mk, nama_mk, semester dan jml_temu juga digolongkan sebagai super key dengan alasan yang kurang lebih sama dengan poin 3 dan 4. Sedangkan yang bukan super key adalah: 1. (sks) Perhatikan bahwa kolom sks tidak bisa membedakan baris data secara unik, contohnya baris data 2,3, 4 dan 6 sama-sama memiliki kolom sks bernilai (semester) Kolom semester juga tidak bersifat unik, contohnya baris data 1 dan 4 sama-sama memiliki kolom semester bernilai 2 3. (semester, sks) Kombinasi semester dan sks juga tidak membedakan tiap baris data secara unik, contohnya baris data ke 2 dan 3 sama-sama memiliki kolom semester bernilai 1 dan sama-sama memiliki kolom sks bernilai 3 Candidate key dari tabel mata_kuliah dipilih dari super key yang sudah ada. Super key yang akan menjadi candidate key adalah super key yang tidak mengandung super key lain di dalamnya. Perhatikan 5 super key yang sudah kita peroleh dari analisis sebelumnya: 1. (kode_mk) 2. (nama_mk) 3. (kode_mk,nama_mk,semester) Perancangan Basis data 63

78 4. (kode_mk,nama_mk, sks) 5. (kode_mk,nama_mk, semester, jml_temu) Super key yang hanya teridiri dari satu atribut data pasti akan menjadi candidate key sebab tidak mungkin mengandung super key yang lain. Oleh karena itu super key pada poin 1 dan 2 otomatis menjadi candidate key. Super key pada poin 3 tidak menjadi candidate key sebab dalam kombinasi (kode_mk, nama_mk, semester) terdapat super key yang lain yaitu (kode_mk). Dengan demikian, poin 4 dan 5 juga bukan candidate key. Dari analisis ini, kita memperoleh 2 buah candidate key yaitu (kode_mk) dan (nama_mk). Salah satu dari beberapa candidate key ini akan dipilih untuk digunakan dalam DBMS sebagai primary key. Ada beberapa pertimbangan untuk memilih primary key, di antaranya adalah jaminan keunikan yang lebih kuat, representasi yang lebih baik dan lain-lain. 4.4 Functional Dependencies Functional dependency (FD) atau kebergantungan fungsional adalah constraint atau batasan/ ketentuan antara 2 buah himpunan atribut pada sebuah tabel. JIka A dan B adalah himpunan atribut dari tabel T, kebergantungan fungsional antara A dan B biasanya dinyatakan dalam notasi notasi A B. Notasi A B berarti: A menentukan B B secara fungsional bergantung kepada A. A B jika memenuhi syarat berikut ini : Pada sebuah tabel T, jika ada dua baris data atau lebih dengan nilai atribut A yang sama maka baris-baris data tersebut pasti akan memiliki nilai atribut B yang sama Namun hal ini tidak berlaku sebaliknya. Untuk lebih jelasnya perhatikan tabel berikut ini: Tabel 4-5 Contoh Tabel NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin TE Elektro TE-001 Elektronika 3 A 1-01 Tukimin TE Elektro DU-001 English 2 A 2-01 Jamilah IF Informatika IF-001 Algoritma 3 B 2-01 Jamilah IF Informatika DU-001 English 2 C 2-02 Maemunah IF Informatika IF-002 Database 2 A 64 Perancangan Basis data

79 Contoh kebergantungan fungsional yang terdapat pada tabel di atas: NIM Nama_mhs Untuk setiap baris data, jika NIM = 1-01 pasti Nama_mhs = Tukimin, walaupun belum tentu semua mahasiswa yang bernama Tukimin memiliki NIM = 1-01 NIM Kd_jur Untuk setiap baris data, jika NIM = 1-01 pasti Kd_jur = TE, walaupun tidak semua baris data dengan kd_jur TE memiliki kolom NIM bernilai 1-01 NIM Nama_Jur Untuk setiap baris data dengan kolom NIM bernilai 1-01 pasti memiliki kolom Nama_Jur = Elektro, walaupun tidak semua orang di jurusan Elektro memiliki NIM = Demikian pula tidak semua baris data pada tabel dengan kolom Nama_Jur = Elektro memiliki kolom NIM = 1-01 Penulisan kebergantungan fungsional dari 3 poin di atas dapat diringkas menjadi (NIM) (nama_mhs, kd_jur, nama_jur) Dengan demikian, dari tabel tersebut dapat kita simpulkan beberapa kebergantungan fungsional (FD) sebagai berikut: FD1: (nim) (nama_mhs, kd_jur, nama_jur) FD2: (kd_jur) (nama_jur) FD3: (kode_mk) (nama_mk, sks) FD4: (nim,kode_mk) (nilai) Ada beberapa jenis kebergantungan fungsional, di antaranya yaitu: a. Partial Functional dependency b. Transitive Functional dependency c. Multivalued Functional dependency Ketiganya adalah konsep penting dalam normalisasi, namun dalam sub bab ini kita hanya akan membahas mengenai Partial Functional dependency dan Transitive Functional dependency Partial Funcional Dependency Partial Functional dependency atau kebergantungan fungsional parsial terjadi bila: B A B adalah bagian dari candidate key Perancangan Basis data 65

80 Dengan kata lain jika (B,C) adalah candidate key dan B A maka A bergantung secara parsial terhadap (B,C) atau (B,C) menentukan A secara parsial. Untuk lebih jelasnya perhatikan tabel berikut ini: Tabel 4-6 Tabel Nilai NIM Nama_Mhs Kode_MK Nilai 1-01 Tukimin TE-001 A 1-01 Tukimin DU-001 A 2-01 Jamilah IF-001 B 2-01 Jamilah DU-001 C 2-02 Maemunah IF-002 A Pada tabel di atas perhatikan bahwa: 1. Super key : (nim,kode_mk), (nim,nama_mhs,kode_mk) dan (nim,nama_mhs,kode_mk,nilai) 2. Dari super key yang sudah diperoleh pada poin 1, maka dipilih super key yang akan menjadi candidate key yaitu (nim,kode_mk) 3. FD: (nim) (nama_mhs) Dari analisis poin 2 dan 3 maka dapat disimpulkan bahwa terjadi kebergantungan fungsional parsial dimana (nama_mhs) bergantung kepada (nim,kode_mk) secara parsial atau dapat juga dikatakan bahwa (nim,kode_mk) menentukan (nama_mhs) secara parsial Transitive Functional dependency Transitive Functional dependency atau kebergantungan fungsional transitif terjadi jika: A B B C Jika A B dan B C maka A C. Dengan kata lain A bergantung secara transitif terhadap C melalui B atau A menentukan C secara transitif melalui B. Untuk lebih jelasnya perhatikan contoh tabel berikut ini: 66 Perancangan Basis data

81 Tabel 4-7 Tabel Mahasiswa NIM Nama_Mhs Kd_Jur Nama_Jur 1-01 Tukimin TE Elektro 1-01 Tukimin TE Elektro 2-01 Jamilah IF Informatika 2-01 Jamilah IF Informatika 2-02 Maemunah IF Informatika FD1: (nim) (nama_mhs, kd_jur, nama_jur) FD2: (kd_jur) (nama_jur) Dengan demikian dapat disimpulkan bahwa (nama_jur) bergantung secara transitif terhadap (nim) melalui (kd_jur) atau dapat juga dikatakan bahwa (nim) (nama_jur) secara transitif melalui (kd_jur). 4.5 Bentuk Normal dan Langkah-Langkah Normalisasi Bentuk Normal adalah sekumpulan kriteria yang harus dipenuhi oleh sebuah desain tabel untuk mencapai tingkat/level bentuk normal tertentu. Parameter yang biasanya digunakan dalam menentukan kriteria bentuk normal adalah Functional dependency & The Three Keys. Masing-masing bentuk normal memiliki kriteria dan level tertentu yang tidak mungkin dicapai tanpa memenuhi kriteria bentuk nomal level yang berada di bawahnya. Makin tinggi level bentuk normal yang dicapai maka kualitas desain tabel tersebut dinyatakan makin baik dan semakin kecil peluang terjadinya anomali dan redundansi data. Normalisasi dilakukan dengan cara menerapkan Bentuk-Bentuk Normal secara bertahap dari level terendah sampai level yang dikehendaki. Walaupun ada beberapa bentuk normal namun jika desain tabel tertentu sudah memenuhi kriteria 3 rd NF atau BCNF maka desain tabel itu biasanya dianggap sudah cukup normal Bentuk Normal Pertama (1st Normal Form) Bentuk normal pertama atau First Normal Form (1 st NF) adalah bentuk normal yang memiliki level terendah. Kriteria 1 st NF: Tidak ada atribut (kolom) pada tabel yang bersifat multi-value Perancangan Basis data 67

82 Sebuah atribut disebut bersifat multivalue jika dalam sebuah baris data pada kolom tersbut terdapat lebih dari satu nilai. Misalnya kolom telepon yang berisi 0813xx, 022xxx dan seterusnya. Tidak memiliki lebih dari satu atribut dengn domain yang sama Sebuah tabel dikatakan memiliki lebih dari satu atribut dengan domain yang sama jika pada tabel tersebut terdapat lebih dari satu kolom yang digunakan untuk menyimpan data yang jenisnya sama. Misalnya kolom telepon1, telepon2, telepon3 dan seterusnya. Untuk lebih jelasnya perhatikan 2 versi contoh tabel T berikut ini: Tabel 4-8 Versi pertama NIM Nama_Mhs Telp_1 Telp_2 Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin 0813xx 022xxx TE Elektro TE-001 Elektronika 3 A 2-01 Jamilah 0812xx 021xxx IF Informatika IF-001 Algoritma 3 B 2-02 Maemunah 0852xx 031xxx IF Informatika IF-002 Database 2 A Tabel T versi pertama ini memiliki 2 atribut dengan domain yang sama yaitu kolom telp_1 dan telp_2. Hal ini menunjukkan bahwa tabel T versi pertama ini belum memenuhi syarat 1 st NF. Tabel 4-9 Versi ke dua NIM Nama_Mhs Telepon Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin 0813xx, 022xxx 2-01 Jamilah 0812xx, 021xxx 2-02 Maemunah 0852xx, 031xxx TE Elektro TE-001 Elektronika 3 A IF Informatika IF-001 Algoritma 3 B IF Informatika IF-002 Database 2 A Tabel T versi ke dua ini juga belum memenuhi sayarat 1 st NF karena kolom telepon bersifat multivalue. Solusi agar tabel T memenuhi syarat 1 st NF adalah dengan melakukan pemecahan tabel atau dekomposisi tabel. Namun perlu diingat, dekomposisi tabel harus dilakukan dengan cermat agar data tetap konsisten (perubahan hanya terjadi pada struktur tabel tapi tidak terjadi perubahan pada data) Perhatikan bahwa (nim) (telepon). Dengan demikian, kita dapat memecah tabel T menjadi tabel T-1 dan tabel T-2 berikut ini: 68 Perancangan Basis data

83 Tabel 4-10 Contoh Tabel T-1 NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin TE Elektro TE-001 Elektronika 3 A 2-01 Jamilah IF Informatika IF-001 Algoritma 3 B 2-02 Maemunah IF Informatika IF-002 Database 2 A Tabel 4-11 Contoh Tabel T-2 NIM Telepon xx xxx xx xxx xx xxx Baik Tabel T1 maupun tabel T2 tidak memiliki atribut bersifat multivalue. Tabel T1 dan T2 juga tidak memiliki lebih dari satu atribut dengan domain yang sama. Dengan demikian dapat disimpulkan bahwa tabel T1 dan T2 telah memenuhi syarat 1 st NF dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (2 nd NF) Bentuk Normal Ke Dua (2nd Normal Form) Kriteria 2 nd NF: Memenuhi 1 st NF Desain tabel yang tidak memenuhi syarat 1 st NF sudah pasti tidak akan memenuhi syarat 2 nd NF Tidak ada Partial Functional dependency Partial Functional dependency terjadi bila (B,C) adalah candidate key dan B A Untuk lebih jelasnya perhatikan tabel T-1hasil tahap sebelumnya: Perancangan Basis data 69

84 Tabel 4-12 Contoh T-1hasil NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Tukimin TE Elektro TE-001 Elektronika 3 A 2-01 Jamilah IF Informatika IF-001 Algoritma 3 B 2-02 Maemunah IF Informatika IF-002 Database 2 A Perhatikan bahwa: 1. (nim, kode_mk) adalah candidate key 2. FD1: (nim) (nama_mhs, kd_jur, nama_jur) 3. FD2: (kode_mk) (nama_mk, sks) 4. FD3: (nim,kode_mk) nilai Berarti Terjadi Partial Functional dependency: FD 1: (nim,kode_mk) (nama_mhs,kd_jur,nama_jur) secara parsial FD 2: (nim,kode_mk) (nama_mk,sks) secara parsial Walaupun tabel T-1 telah memenuhi syarat 1 st NF namun karena terjadi partial functional dependency maka tabel T-1 belum memenuhi syarat 2 nd NF. Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1 dengan tetap menjaga agar datanya tetap konsisten. Hal ini dapat dilakukan dengan melakukan dekomposisi tabel sesuai FD1, FD2 dan FD3 yang telah kita analisis sebelumnya. Adapun hasil dekomposisi dari tabel T-1 adalah 3 tabel berikut ini: Tabel 4-13 Contoh Tabel T-1-1 NIM Nama_Mhs Kd_Jur Nama_Jur 1-01 Tukimin TE Elektro 2-01 Jamilah IF Informatika 2-02 Maemunah IF Informatika Tabel 4-14 Contoh Tabel T-1-2 Kode_MK Nama_MK SKS TE-001 Elektronika 3 DU-001 English 2 IF-001 Algoritma 3 IF-002 Database 2 70 Perancangan Basis data

85 Tabel 4-15 Contoh Tabel T-1-3 NIM Kode_MK Nilai 1-01 TE-001 A 1-01 DU-001 A 2-01 IF-001 B 2-01 DU-001 C 2-02 IF-002 A Ketiga tabel hasil dekomposisi tersebut sudah tidak mengalami partial functional dependency. Dengan demikian ketiga tabel tersebut telah memenuhi syarat 2 nd NF dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (3 rd NF). Adapun Tabel T-2 (hasil dekomposisi pada tahap 1 st NF) juga tidak mengalami partial functional dependency sehingga sudah memenuhi 2 nd NF, tidak perlu didekomposisi lagi dan dapat langsung diperiksa apakah memenuhi 3 rd NF bersama-sama dengan tabel T-1-1, T-1-2 dan T Bentuk Normal Ke Tiga (3rd Normal Form) Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3 rd NF) maka tabel tersebut sudah dianggap cukup normal. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF. Kriteria 3 rd NF: Memenuhi 2 nd NF Desain tabel yang tidak memenuhi syarat 2 nd NF sudah pasti tidak akan memenuhi syarat 3 rd NF Tidak ada Transitive Functional dependency Transitive functional dependency terjadi bila A B dan B C Untuk lebih jelasnya perhatikan tabel T-1-1 dari tahap sebelumnya: Perancangan Basis data 71

86 Tabel 4-16 Contoh tabel T-1-1 NIM Nama_Mhs Kd_Jur Nama_Jur 1-01 Tukimin TE Elektro 2-01 Jamilah IF Informatika 2-02 Maemunah IF Informatika Perhatikan bahwa: FD1: (nim) (nama_mhs, kd_jur, nama_jur) FD2: (kd_jur) (nama_jur) Berarti Terjadi Transitive FD: (nim) (nama_jur) secara transitif melalui (kd_jur) Walaupun tabel T-1-1 telah memenuhi syarat 2 nd NF namun karena terjadi transitive functional dependency maka tabel T1 belum memenuhi syarat 3 rd NF. Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1-1 dengan tetap menjaga agar datanya tetap konsisten sesuai FD1dan FD2. Adapun hasil dekomposisi dari tabel T-1-1 adalah 2 tabel berikut ini: Tabel 4-17 Contoh Tabel T NIM Nama_Mhs Kd_Jur 1-01 Tukimin TE 2-01 Jamilah IF 2-02 Maemunah IF Tabel 4-18 Contoh Tabel T Kd_Jur Nama_Jur TE IF IF Elektro Informatika Informatika Bentuk Normal Boyce Codd (BC Normal Form) Boyce Codd Normal Form atau bentuk normal Boyce-Codd adalah bentuk normal yang levelnya di atas 3 rd NF. Kriteria BCNF: 72 Perancangan Basis data

87 Memenuhi 3 rd NF Desain tabel yang tidak memenuhi syarat 3 rd NF sudah pasti tidak akan memenuhi syarat BCNF Untuk semua FD yang terdapat di tabel, ruas kiri dari FD tersebut adalah super key Jika ada satu saja FD pada tabel dimana ruas kirinya bukan super key maka desain tabel tersebut belum memenuhi syarat BCNF. Solusinya adalah dengan melakukan dekomposisi tabel dan tetap mempertahankan konsistensi data seperti beberapa contoh pada sub bab sebelumnya Jarang ada kasus dimana sebuah tabel memenuhi 3 rd NF tapi tidak memenuhi BCNF. Umumnya sebuah tabel dikategorikan sudah cukup normal jika sudah memenuhi kriteria BCNF. Jika tidak memungkinkan untuk memenuhi kriteria BCNF, maka 3 rd NF juga sudah dianggap cukup memadai Bentuk-Bentuk Normal Lainnya Selain bentuk-bentuk normal yang sudah diperkenalkan pada beberapa sub bab sebelumnya, masih ada beberapa bentuk-bentuk normal lain. Beberapa diantaranya adalah sebagai berikut: 1. Bentuk Normal ke-4 (4 th NF) diperkenalkan oleh Ronald Fagin pada tahun Bentuk Normal ke-5 (5 th NF) diperkenalkan oleh Ronald Fagin pada tahun Domain/Key Normal Form (DKNF) diperkenalkan oleh Ronald Fagin pada tahun Bentuk Normal ke-6 (6 th NF) diperkenalkan oleh Date, Darwen dan Lorentzos pada tahun Denormalisasi Denormalisasi adalah proses menggandakan data secara sengaja (sehingga menyebabkan redundansi data) untuk meningkatkan performa database, untuk meningkatkan kecepatan akses data atau memperkecil query cost. Yang perlu diingat tentang denormalisasi adalah bahwa denormalisasi tidak sama dengan tidak melakukan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi cukup normal (mencapai level bentuk normal yang dikehendaki). Perancangan Basis data 73

88 Salah satu contoh teknik Denormalisasi adalah Materialized View pada DBMS Oracle. Materialized view adalah teknik menggandakan data dengan cara membuat tabel semu berupa view fisik (yang benar-benar dituliskan di disk, bukan sebatas di memory). Materialized view biasanya dibuat dari hasil join beberapa tabel yang sering diakses tapi jarang diupdate. Materialized view akan menyebabkan redundansi data, namun sebagai imbalannya kecepatan akses data meningkat drastis sebab data dapat langsung diakses melalui materialized view tanpa harus menunggu query menyelesaikan operasi join dari beberapa tabel. Ada beberapa alasan melakukan denormalisasi: 1. Mempercepat proses query dengan cara meminimalkan cost yang disebabkan oleh operasi join antar tabel 2. Untuk keperluan Online Analytical Process (OLAP) 3. Dan lain-lain Adapun konsekuensi denormalisasi adalah sebagai berikut: 1. Perlu ruang ekstra untuk penyimpanan data 2. Memperlambat pada saat proses insert, update dan delete sebab prosesproses tersebut harus dilakukan terhadap data yang redundant (ganda) Dengan demikian dapat disimpulkan bahwa denormalisasi harus dilakukan dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga memiliki konsekuensi yang patut diperhitungkan. 74 Perancangan Basis data

89 Rangkuman 1. Normalisasi merupakan serangkaian langkah sistematis yang dilakukan terhadap desain tabel dan bertujuan untuk menghindari redundansi dan anomaly data sekaligus mengefisienkan penyimpanan data. 2. Tiga macam anomaly data: update, insertion dan deletion anomaly 3. Super key adalah sebuah atribut atau sekumpulan atribut yang dapat membedakan setiap baris data dalam tabel secara unik 4. Candidate key adalah minimal super key yang tidak mengandung super key yang lain 5. Primary key adalah candidate key yang dipilih untuk diimplementasikan pada DBMS 6. Setiap primary key pasti merupakan candidate key, setiap candidate key pasti merupakan super key. Hal ini tidak berlaku sebaliknya. 7. A B jika terpenuhi syarat bahwa untuk setiap baris data di tabel T, jika ada pasangan baris data pada kolom A memiliki nilai yang sama maka dijamin kolom B pada baris-baris tersebut juga akan memiliki nilai yang sama, namun tidak harus sebaliknya. 8. Partial Functional dependency terjadi bila sebuah atribut bergantung pada sebagian dari candidate key 9. Transitive Functional dependency terjadi bila sebuah atribut bergantung pada key melalui atribut lain 10. Normalisasi dilakukan secara bertahap, yaitu dengan menerapkan bentukbentuk normal dari mulai level terendah sampai mencapai level yang dikehendaki. 11. Syarat 1st NF: tidak ada atribut multivalue dan tidak ada lebih dari satu atribut dengan domain yang sama 12. Syarat 2nd NF: memenuhi syarat 1st NF dan tidak mengalami partial functional dependency 13. Syarat 3rd NF: memenuhi syarat 2nd NF dan tidak mengalami transitive functional dependency 14. Syarat BCNF: memenuhi syarat 3rd NF dan ruas kiri dari setiap functional dependency-nya adalah super key 15. Denormalisasi tidak sama dengan tidak melakukan normalisasi, tujuannya adalah untuk meningkatkan performa database sebagai imbalan dari munculnya redundansi (pengulangan data) pada database. Perancangan Basis data 75

90 Kuis Benar Salah 1. Normalisasi dilakukan secara bertahap 2. Setiap super key pasti bisa membedakan baris-baris data dalam tabel secara unik 3. Dalam sebuah tabel minimal ada satu candidate key 4. Primary key dalam sebuah tabel bisa ada lebih dari satu 5. Primary key dalam sebuah tabel bisa terdiri dari beberapa atribut 6. Jika sebuah tabel mengalami transitive functional dependency pasti tabel tersebut tidak memenuhi syarat 2 nd NF 7. Jika sebuah tabel mengalami transitive functional dependency pasti tabel tersebut tidak memenuhi syarat BCNF 8. Desain tabel yang sudah memenuhi 2 nd NF pasti tidak memiliki atribut multivalue 9. Desain tabel yang sudah memenuhi syarat BCNF pasti tidak mengalami partial functional dependency tapi masih mungkin mengalami transitive functional dependency 10. Denormalisasi adalah membuat tabel menjadi tidak normal 76 Perancangan Basis data

91 Pilihan Ganda Petunjuk: Pilihlah jawaban yang paling tepat! 1. Normalisasi bertujuan untuk A. Membuat desain tabel menjadi lebih efisien B. Menghidari update dan insertion anomaly C. Meminimalkan redundansi data D. Menghindari deletion anomaly E. Semua benar 2. Atribut atau sekumpulan atribut yang dapat membedakan setiap baris data dalam tabel secara unik disebut A. Super key B. Candidate key C. Primary key D. Functional dependency E. Tidak ada jawaban yang benar 3. Jika diketahui FD1: (A,B) (C) dan FD2: (C) (D,E) maka dapat disimpulkan bahwa A. Terjadi transitive functional dependency B. Tabel tersebut tidak memenuhi syarat 3rd NF C. (A,B) (C,D) D. Pilihan A dan B benar E. Pilihan A, B dan C benar 4. Syarat 2nd NF adalah A. Tabel harus memiliki lebih dari 1 candidate key B. Tidak boleh ada atribut atau kolom yang bergantung secara fungsional pada sebagian dari candidate key C. Tabel harus memiliki primary key D. Tidak terjadi transitive functional dependency E. Tidak ada jawaban yang benar 5. Syarat 3nd NF adalah A. Tabel harus bebas dari partial functional dependency B. Tabel harus memiliki candidate key Perancangan Basis data 77

92 C. Tidak terdapat multivalue atribut D. Memenuhi syarat BCNF E. Memenuhi syarat 2nd NF dan bebas dari transitive functional dependency 6. Pernyataan yang benar tentang primary key adalah A. Setiap primary key pasti merupakan super key B. Setiap primary key pasti merupakan candidate key C. Primary key dalam sebuah tabel boleh lebih dari satu D. Primary key boleh terdiri dari sekumpulan atribut E. Semua jawaban benar 7. Atribut atau sekumpulan atribut yang tidak dapat membedakan setiap baris data dalam tabel secara unik disebut A. Super key B. Candidate key C. Primary key D. Functional dependency E. Non key 8. Jika sebuah tabel T dipastikan telah memenuhi syarat BCNF maka dapat disimpulkan bahwa A. Tabel T pasti memenuhi syarat 1st NF B. Tabel T pasti bebas dari partial functional dependecy C. Tabel T pasti bebas dari transitive functional dependency D. Semua ruas kiri FD pada tabel T pasti merupakan super key E. Semua benar 9. Salah satu contoh denormalisasi adalah A. View B. Sequence C. Materialized View D. Index E. Tidak ada jawaban yang benar 10. Dampak penerapan denormalisasi diantaranya A. Penyimpanan data menjadi lebih boros B. Performa database menjadi makin lambat C. Kecepatan query menurun karena datanya redundan D. Tabel menjadi mengalami partial functional dependency E. Tidak ada jawaban yang benar 78 Perancangan Basis data

93 Id_Ang A-01 A-01 A-02 A-02 A-02 A-03 A-03 Nama_An g Jamal Jamal Jawilem Jawilem Jawilem Juminten Juminten Kd_Buk u B-01 B-02 B-03 B-02 B-02 B-01 B-03 Jdl_Buku Buku Ini Buku Itu Buku Anu Buku Itu Buku Itu Buku Ini Buku Anu Jns_Buk u Fiksi Non Fiksi Fiksi Non Fiksi Non Fiksi Fiksi Fiksi No_Ra k R-01 R-02 R-01 R-02 R-02 R-01 R-01 Tgl_Pinja m 23-Feb Jan Jan Feb Feb Jan Jan-09 Tgl_Kemba li 1-Mar Feb Feb Feb-09 1-Mar Feb Feb-09 Politeknik Telkom Latihan Lakukan normalisasi untuk tabel berikut ini sampai mencapai BCNF Perancangan Basis data 79

94 5 ALJABAR RELASIONAL Overview Bahasa Query adalah bahasa yang dikhususkan untuk mengajukan pertanyaan atau Query, yang melibatkan data dalam sebuah database. Input dan output suatu query adalah relasi. Query dievaluasi dengan menggunakan contoh input relasi dan menghasilkan contoh output relasi. Bahasa query menggunakan operasi-operasi Aljabar relasional. Aljabar relasional mendefinisikan secara teoritis cara memanipulasi isi tabel dengan menggunakan delapan fungsi relasional: SELECT, PROJECT, JOIN, INTERSECT, UNIO, DIFFERENCE, PRODUCT dan DIVIDE. Tujuan 4. Memahami dan mengerti tentang dasar-dasar Lajbar Relasional 5. Mengetahui keterkaitan antara Aljabar relasional dengan bahasa query 6. Memahami dan mengerti sintak dasar query dalam basis data. 80 Perancangan Basis data

95 5.1 Query dan Aljabar Relasional Bahasa query (Query language) merupakan suatu bahasa yang menyediakan fasilitas bagi user untuk mengakses informasi dari basis data. Umumnya query language ini dibagi menjadi 2 (dua) kategori, yaitu: 1. Bahasa Query Prosedural 2. Bahasa Query Non Prosedural Bahasa query Prosedural adalah dimana user menginstruksikan ke sistem agar membentuk serangkaian operasi dalam basis data untuk mengeluarkan hasil yang diinginkan. Yang termasuk dalam bahasa ini adalah Aljabar Relational Bahasa Query Non-Prosedural adalah dimana user mendesktipsikan informasi yang diinginkan tanpa memberikan prosedur detail untuk menghasilkan informasi tersebut. Yang termasuk dalam bahasa ini adalah Kalkulus Relational Tuple. Dalam bab ini akan dibahas Bahasa Query prosedural, bahasa ini memilikisejumlah operasi yang menggunakan satu atau beberapa relasi/tabel sebagai inputan dan menghasilkan sebuah relasi/tabel sebagai outputnya. Aljabar Relational sebagai dasar dari bahasa ini merupakan suatu kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan suatu relasi yang baru. Operasi-operasi dasar dalam Aljabar Relational sendiri dibagi menjadi 2 (dua) yaitu Unary dan Binary. Operasi Unary adalah operasi yang hanya memerlukan satu operasi saja. Yang termasuk didalamnya adalah Select,Project dan Rename. Sedangkan operasioperasi yang membutuhkan lebih dari satu relasi (sepasang relasi atau lebih) disebut Binary,contohnya adalah Unio, Set Difference, Cartessian Product. Selanjutnya akan dibahas satu persatu dari masing-masing operasi-operasi diatas, baik yang termasuk dalam unary maupun binary.sebagai acuan adalah menggunakan tabel- tabel akademik (tabel mahasiswa, tabel kuliah, tabel dosen dan tabel nilai). Perancangan Basis data 81

96 T_kuliah kode_mk mata_kuliah sks semester IS_001 Database 3 3 IS_002 Aljabar_Relational 2 3 CA_003 Calculus 3 1 CE_007 Citizenship 2 2 T_Dosen Kd_dosen Nama_dosen Alamat Tgl_lahir KML Komala Ratna Bandung N HRA Henry Rossi Jakarta No HNP Hanung Jakarta No DAN Dahliar Ananda Surabaya T_ mahasiswa NIM Nama Tempat_lahir Tgl_Lahir Ahmad Jakarta Nita Surabaya Richard Medan Amelia Jakarta T_nilai Kode_mk NIM Indeks IS_ A IS_ A CA_ C CE_ B 5.2 Operasi Select Operasi ini digunakan untuk mengambil sejumlah baris data yang memenuhi predikat yang diberikan. Dimana predikat tersebut sesuai dengan kondisi yang ingin diperoleh dalam operasi ini. Sintaks untuk operasi ini adalah sebagai berikut, σ p = (E1) Dimana P adalah predikat dari atribut di E1. Sehingga jika ingin mengambil bari-baris data mahasiswa yang lahir di kota Jakarta dapat kita buat sintaks seperti dibawah ini 82 Perancangan Basis data

97 σ tempatlahir= Jakarta (mahasiswa) Pada dasarnya predikat merupakan suatu ekspresi lojik sehingga dapat menggunakan operator-operator lojik seperti =, <, >, dan yang lainnya. Operasi Project 5.3 Operasi Project Operasi ini digunakan untuk menampilkan field-field dari sebuah tabel atau relasi yang diinginkan. Sintaks untuk operasi ini adalah sebagai berikut, π <daftar atribut > (<nama tabel>) atau π s (E1) dimana s atau daftar atribut yang berisi satu atau lebih field yang ingin ditampilkan dari E1. Sehingga jika kita ingin menghasilkan tampilan yang berisi data NIM dan Nama_mahasiswa maka query-nya adalah sebagai berikut, π <NIM,Nama_mahasiswa > (mahasiswa) Sebagai catatan, operasi yang dapat diprojeksikan bukan hanya dari tabel tetapi bisa juga dari suatu operasi/query. 5.4 Operasi Cartesian Product Operasi ini adalah operasi yang bisa digunakan untuk menggabungkan data dari dua buah tabel atau hasil query. Sintak yang digunakan adalah E1 X E2 Dimana semua record di E1 akan digabungkan dengan record di E2 dan hasilnya akan menampilkan semua record yang ada di E1 dan E2. Pada umumnya operasi cartesian product ini tidak berdiri sendiri, biasanya dikombinasikan atau digabung dengan operasi select dan project dengan semua ketentuannya sesuai dengan apa yang ingin ditampilkan sebagai hasil query-nya. Sebagai contoh, saat akan menampilkan hasil dari tabel kuliah dan tabel nilai yang mendapatkan indeks A, maka operasinya dapat kita tuliskan sebagai berikut: σindeks= A (t_nilai x t_kuliah) Perancangan Basis data 83

98 Pada dasarnya untuk melihat adanya satu keterhubungan antara satu tabel dengan tabel yang lainnya adalah ditandai dengan adanya satu field yang sama. Misal antara t_kuliah dan t_nilai (tabel kuliah dan tabel nilai) sama-sama memiliki field kode_mk. Jika ingin menampilkan hasil dari suatu query dimana tidak ada relasi langsung antar tabel-tabel yang terkait (tidak ada field yang sama) maka bisa kita libatkan tabel lain yang memiliki keterhubungan antara tabel tersebut. Contoh untuk menghasilkan list mahasiswa yang mengambil mata kuliah IS_001. Tabel kuliah dan tabel mahasiswa tidak memiliki keterhubungan secara langsung tetapi keterhubungannya dapat kita lihat dari tabel nilai. Sehingga kita bisa membuat suatu query seperti dibawah ini: π <NIM > (σt_kuliah.kode_mk=t_nilai.kode_mk п kode_mk = IS_001 (t_nilai xt_ kuliah)) Dari contoh diatas dapat terlihat bahwa Operasi Cartesian Product tidak berdiri sendiri tetapi melibatkan operasi-operasi yang lainnya untuk mendapatkan hasil query yang kita inginkan. 5.5 Operasi Unio Operasi Unio adalah operasi yang menggabungkan semua baris dari dua buah tabel dan kedua tabel tersebut harus sesuai atau memiliki hasil projeksi yang sama. Dimana akan mengasilkan tabel ketiga. Operasi Unio disimbolkan sebagai berikut : T1 U T2 Contoh lainnya, adalah pada t_dosen dan t_mahasiswa terdapat field tempat_lahir. Operasi Projection (proyeksi) untuk masing-masing tabel adalah Πtempat_lahir(t_dosen) dan Πtempat_lahir(t_mahasiswa) Sehingga jika kita ingin memproyeksikan kedua tabel diatas maka kita bisa menggunakan operasi Unio dengan bentuk sebagai berikut : Πtempat_lahir(t_dosen) U Πtempat_lahir(t_mahasiswa) 84 Perancangan Basis data

99 Untuk melakukan suatu operasi unio tabel-tabel tersebut harus bisa unio compatible. Tabel disebut Unio Compatible jika : 1. T1 dan T2 harus memiliki jumlah atribut/field yang sama 2. Field dari T1 dan field dari T2 harus bersala dari domain yang sama. 5.6 Operasi Set Difference Operasi ini merupakan kebalikan dari operasi unio, dimana terjadi pengurangan data ditabel pertama oleh data dari tabel kedua. Simbol dari operasi ini adalah sebagai berikut : T1 T2 Dapat dikatakan juga bahwa operasi adalah operasi terhadap relasi yang terdiri dari semua baris di T1, tetapi tidak ada di T2. Operasi ini juga memiliki syarat yang sama dengan operasi Unio yaitu harus Unio Compatible. Sebagai contohnya perhatikan tabel dibawah ini T_kuliah_MI Kode_mk Mata_kuliah SKS Semester MI_002 Kalkulus 3 1 MI_002 Aljabar Linear 2 2 CA_001 Database 4 2 CE_003 Java 3 3 T_kuliah_TK Kode_mk Mata_kuliah SKS Semester MI_002 Kalkulus 3 1 MI_002 Aljabar Linear 2 2 TK_001 English CE_007 Software 3 3 Operasi yang dikenakan pada 2 (dua) tabel diatas adalah Πmata_kuliah(t_kuliah_MI) mata_kuliah(t_kuliah_tk) Maka hasilnya query diatas adalah sebagai berikut: Perancangan Basis data 85

100 Mata_kuliah Database Java Dari contoh diatas didapatkan bahwa operasi ini akan menemukan tuple-tuple yang berada pada satu relasi tetapi tidak berada pada relasi yang Lainnya 5.7 Operasi Intersection Operasi intersection adalah operasi yang mendapatkan atau menyatakan irisan dari dua buah tabel/query. Operasi ini disimbolkan dengan menggunakan lambang sebagai berikut : T1 T2 Selain simbol diatas dapat disimbolkan juga dengan bentuk set difference seperti dibawah ini : T1 (T1-T2) T1 T2 menghasilkan suatu relasi yang berisi instan instan yang terjadi baik pada T1 dan T2. Relasi T1 dan T2 harus Unio Compatible. 5.8 Operasi rename Dalam operasi himpunan Cross Product, bisa menimbulkan terjadinya konflik penamaan, karena Cross Product bisa menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama yang sama. Operasi Rename ( ) digunakan untuk menghindari terjadinya Konflik Penamaan tersebut.operasi Rename dibutuhkan untuk melakukan penamaan kembali pada suatu tabel atau hasil proyeksi agar dapat menunjukkan acuan yang jelas dalam sebuah operasi yang lengkap, khusnya yang melibatkan dua/lebih sumber data yang sama. Simbol untuk operasi rename adalah sebagai berikut: ( R(( F),( E))) 86 Perancangan Basis data

101 Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Relasional 5.9 Join Merupakan operasi yang digunakan untuk mengabungkan informasi dari dua atau lebih relasi ( ). Selain itu operasi join Memungkinkan kita untuk mengkom- binasikan informasi dari dua tabel atau lebih. JOIN memiliki kemampuan nyata untuk mendukung basis data relasional, memungkinkan penggunaan tabel inde-penden yang dihubungkan melalui atribut yang sama.dimana notasi untuk join adalah sebagai berikut: R x <kondisi join> S Kondisi join dalam bentuk: <kondisi> AND <kondisi> AND AND <kondisi> Operator pembandinganyang digunakan dalam operasi join yaitu {=, <,, >,, } Operasi join sendiri memiliki beberapa tipe lagi, untuk yang pertama adalah Natural join dimana Natural JOIN menghubungkan tabel dengan memilih hanya record dengan nilai yang digunakan bersama-sama pada atribut yang sama. Operator ini akan menghasilkan tiga tahapan proses: PRODUCT SELECT PROJECT Operasi join yang lain adalah EquiJOIN menghubungkan tabel didasarkan pada kondisi yang sama dengan memban-dingkan kolom tertentu setiap tabel. Hasil equijoin tidak menghilangkan kolom dupli-kat dan kondisi atau kriteria penggabungan tabel harus terdefinisi secara eksplisit. Theta JOIN adalah equijoin yang membanding-kan kolom tertentu setiap tabel menggunakan operator pembanding selain operator sama dengan. Perancangan Basis data 87

102 Pada Outer JOIN pasangan data yang tidak cocok akan tetap dipertahankan dan nilai untuk tabel lainnya yang tidak cocok akan dibiarkan kosong. Outer join sendiri terdiri dari tiga jenis, yaitu left outer join, right outer join, dan full outer join. Left outer join akan menjadikan tabel/hasil query disebelah kiri simbol operasi, sehingga dapat melihat semua baris data ditabel/hasil query yang pertama baik yang memiliki relasi ataupun tidak dengan tabel/hasil query kedua. Operasi right outer join merupakan kebalikan dari operasi left outer join. Sedangakan operasi full outer join meriupakan gabungan dari operasi left outer join dan right outer join. Dimana operasi ini akan menghasilkan semua baris data di kedua tabel/hasil query yang memiliki relasi ataupun tidak Fungsi Agregasi Fungsi ini dapat dikatakan sebagai fungsi-fungsi yang akan melakukan penggabungan nilai dari suatu query dan kemudian menyajikannya sebgai sebuah nilai. Sedangkan fungsi-fungsi ini dapat dijalankan jika atau pada atributatribut yang bersifat numerik. Secara umum ada 5 fungsi agregasi, yaitu sebagai berikut : 1. SUM : menjumlah nilai dari suatu atribut 2. AVERAGE : mencari rata-rata nilai dari suatu atribut 3. MAXIMUM : mencari nilai paling besar dari suatu atrbiut 4. MINIMUM : mencari nilai paling besar dari suatu atribut 5. COUNT : menghitung jumlah record Untuk fungsi yang terakhir yaitu fungsi count terdapat perluasan dalam fungsi tersebut yaitu yang diberi nama Count_distict. Fungsi Count_distict akan menghitung nilai atribut yang unik Operasi Division Operasi divisi cocok digunakan untuk quary yang menginginkan adanya pernyataan untuk semua. Misalkan untuk setiap nilai x di dalam R, perhatikan kumpulan nilai y yang muncul dalam instan R dengan nilai x tersebut. Jika kumpulan ini berisi semua nilai y dalam S, maka nilai x adalah hasil dari R / S. Simbol dari operasi ini adalah / atau. Contoh, perhatikan tabel dibawah ini: 88 Perancangan Basis data

103 A, B (T1) B (T1) A a1 a2 a2 a3 B (T1) B b1 B b1 b1 b2 b2 B b1 b2 B ( B = b1 (T1)) A, B (T1) / A a2 A, B (T1) / B ( B = b1 (T1)) A a1 a2 Perancangan Basis data 89

104 Rangkuman 1. ρx(t1), dimana x adalah nama baru untuk hasil T1ika T1 dan T2adalah ekspresi aljabar-relasional,maka berikut ini adalah semua ekspresi aljabarrelasional : a. T1 U T2 b. T1 T2 c. T1 x T2 d. σp(t1), dimana p adalah sebuah predikat untuk atributatribut dalam T1. e. πs(t1), dimana s adalah daftar yang terdiri dari beberapa atribut dalam T1. f. ρx(t1), dimana x adalah nama baru untuk hasil T1 g. Operasi join terdiri dari natural join, equijoin,outer join h. Outer oin dibagi menjadi left outer join, right outer join dan full outer join yang merupakan kombinasi dari left dan right outer join. 2. Operasi join terdiri dari natural join, equijoin,outer join 3. Outer oin dibagi menjadi left outer join, right outer join dan full outer join yang merupakan kombinasi dari left dan right outer join. 4. Operasi lainnya adalah aggregate function terdiri dari operasi Sum, Average, Maximum, Minimum, dan Count. Untuk operasi tambahan dari count adala operasi yang dinamakan dengan Count_distinct 5. Untuk Operasi teakhir dalam bahasan ini adalah operasi Division dimana bisa digunakan untuk operasi yang bersifat untuk semua 90 Perancangan Basis data

105 Kuis Benar Salah 1. Theta JOIN adalah equijoin yang membanding-kan kolom tertentu setiap tabel menggunakan operator pembanding selain operator sama dengan 2. Natural JOIN menghubungkan tabel dengan memilih hanya record dengan nilai yang digunakan bersama-sama pada atribut yang sama 3. Simbol dari operasi Count_distinct adalah / atau. Pilihan Ganda Petunjuk: Pilihlah jawaban yang paling tepat! 1. Operasi yang digunakan untuk menghitung jumlah record adalah A. SUM D. Count B. JOIN E. Natural Join C. FULL Outer Join Perancangan Basis data 91

106 Latihan 1. Buatkan sebuah contoh tabel - tabel beserta Operasi-operasi alajabar relasional yang bisa dikenakan terhadap tabel-tabel tersebut. 92 Perancangan Basis data

107 6 BAHASA BASIS DATA Overview Structure Query Language (SQL) merupakan bahasa standar komputer dalam proses pengolahan data pada basisdata terutama untuk RDBMS. SQL ini telah mengalami jalan panjang sehingga terbentuk standarisai perintah-perintah yang ada. Perintah-perintah SQL mencakup perintah untuk membentuk database dan struktur tabel, merubah database dan struktur tabel, maintenance konten data pada database. Tujuan 1. Mahasiswa memahami fungsi dari SQL 2. Mahasiswa memahami dan mengetahui sejarah terbentuknya SQL 3. Mahasiswa memahami dan mengerti bentuk-bentuk standarisasi SQL 4. Mahasiswa mampu membuat database dan struktur tabel dengan menggunakan perintah SQL 5. Mahasiswa mampu melakukan perubahan pada struktur tabel dengan menggunakan perintah SQL 6. Mahasiswa mampu untuk menambahkan data pada tabel, merubah data pada tabel dan menghapus data pada tabel dengan menggunakan perintah SQL 7. Mahasiswa mampu untuk menampilkan data dari dalam tabel dengan berbagai macam bentuk, kondisi dan urutan data. Perancangan Basis data 93

108 6.1 Pendahuluan Relational Database Management System (RDBMS) seperti Oracle, Microsoft SQL Server, ProstGreSQL dan MySQL merupakan komponen utama dalam dalam sebuah sistem informasi saat ini bahkan untuk sistemsistem yang berbasis intranet dan internet Structure Query Language (SQL) hadir dalam RDBMS sebagai bahasa untuk mengakses, me-maintenance kumpulan dari table-tabel data yang dihubungkan oleh masing-masing key. Jadi SQL dapat diartikan sebagai sebuah bahasa komputer untuk basisdata dimana dapat melakukan proses-proses seperti pembuatan dan perubahan struktur basisdata, perubahan konten data, mendapatkan informasi dari basidata, perubahan setting security dan memberikan hak akses kepada pengguna basidata Secara umum perintah-perintah SQL dibagi dalam tiga bagian utama yaitu: 1. Data Definition Language (DDL) 2. Data Manipulation Language (DML) 3. Data Control Language (DCL) 6.2 Standarisasi SQL SQL muncul pertama kali diawal tahun 1970-an sebagai sebuah hasil penelitian pada lab IBM,San Joe, California yang dilakukan oleh Donald C Meserly dan Raymond F Boyce. Versi pertama ini diberikan nama SEQUEL (Structure English Query Language). Rencana awalnya SEQUEL ini akan digunakan dalam DB2 sebagai sebuah produk RDBMS dari IBM. Dikemudian hari IBM memberikan nama lain pada SEQUEL ini dengan nama SQL Hasil penelitian tersebut menarik banyak perhatian, banyak perusahaan yang tertarik untuk membangun RDBMS berdasarkan pada SQL ini. Salah satunya adalah Oracle. Dan Oracle ini dinyatakan sebagai sebuah produk SQL komersial pertama. Berdasarkan perkembangan hal diatas American National Standard Institute (ANSI) dan International Standard Organization (ISO) membentuk standar SQL yang dimulai tahun Standar SQL ini lebih dikenal dengan SQL86. Kemudian SQL86 ini diperbaharui lagi tahun 1992 yang diberi nama SQL92 dan standar berikutnya dikeluarkan tahun 1999 yang dikenal dengan SQL Perancangan Basis data

109 Perkembangan saat ini server-server basisdata tidak mengacu sepenuhnya pada standar SQL tersebut. Masing-masing server basisdata mengembangkan dialek masing-masing. Beberapa dialek SQL ini diantaranya: 1. PL/SQL Dibuat oleh Oracle sebagai bahasa procedural berbasis pada SQL yang mengacu pada bahasa pemrograman ADA. PL/SQL ini menjadi bagian utama dalam perkembangan Oracle saat ini. 2. Transact SQL Dialek yang dikembangkan oleh Microsoft yang membuat sebuah produk DBMS yang diberi nama Microsoft SQL Server. Transact SQL ini merupakan hasil kerjasama dengan Sybase Adaptive Server. 3. PL/PgSQL Seperti juga pada Oracle, PostgreSQL mengembangkan bahasa procedural tersendiri yang lebih jauh berkembang sehingga memungkinkan untuk mengakomodasi Object Oriented Database Management System SQL92 membagi secara nyata perintah-perintah SQL ini dalam tiga kategori besar yang diberi nama kelompok : Data Manipulation language (DML), Data Definition Language (DDL) dan Data Control Language (DCL). DML menyediakan perintah-perintah untuk melakukan proses manipulasi pada konten data yang ada dalam basidata. Perintah-perintah ini diantaranya: Select, Insert, Update dan Delete. DDL menyediakan perintah-perintah untuk mengakses objek-objek basidata seperti database, table, index PL/Transact baik untuk membuat dengan perintah Create, merubah dengan perintah Alter dan menghapus dengan perintah Drop. Sementara DCL menyediakan perintah-perintah untuk mengatur hak akses terhadap objek-objek data dan konten data untuk masing-masing pengguna dan layer user dalam basidata. Pada SQL99 pembagian kategori perintah didasarkan class-class (object) yang terkait satu dengan yang lainnya. Terdapat tujuh kelas dalam SQL99 yaitu: SQLConnection, SQLControl, SQLData, SQLDiagnostic, SQLSchema, SQLSession, SQLTransaction. Standarisasi SQL berikutnya SQL:2003 yang memperkenalkan Extended Markup Languange (XML) dan auto-genertor column values. Tahun 2006 muncul Perancangan Basis data 95

110 lagi SQL:2006 yang ditambahkan kemampuan untuk lebih pleksibel dalam pemrograman dasidata didalam web dengan membuat XQuery yang mengabungkan antara SQL dan XML. Terkahir tahun 2008 terdapat standar baru SQL: Membangun Basidata Pembangunan basidata pada SQL92 termasuk dalam kategori DDL dimana perintah-perintah dasarnya terdiri dari CREATE, ALTER dan DROP. Pembangun basisdata berarti akan membuat basisdata sebagai wadah utama, tabel-tabel data yang saling berelasi dengan kolom kunci dari masing-masing tabel dan jika dibutuhkan dibuat index tabel Membuat BasisData Struktur umum penulisan perintah untuk membuat basisdata ini adalah CREATE DATABASE nama_database Misalkan di Politeknik telkom akan dibangun beberapa basisdata yang terpisah untuk akademik, keuangan dan SDM maka perintah SQL yang perlu dibuat adalah: CREATE DATABASE Akademik CREATE DATABASE Keuangan CREATE DATABASE SDM Struktur penulisan CREATE DATABASE ini untuk setiap dialek SQL berbeda-beda sehingga nantinya perlu disesuaikan dengan struktur penulisan SQL dari dialek tersebut Membuat Tabel Data Pada basidata yang sudah dibentuk akan ditempatkan beberapa tabel yang saling terkait satu dengan yang lainnya. Keterkaitan antar tabel ini ditandai dengan adanya key (Primary key dan Foreign key). Struktur umum penulisan perintah untuk membuat tabel yaitu : CREATE TABLE nama_tabel ( [kolom_data] ) nama_tabel = nama yang diberikan untuk basisdata tersebut 96 Perancangan Basis data

111 Kolom_data digunakan untuk mendefisikan kolom-kolom data yang ada dalam tabel tersebut. kolom data ini dapat diuraikan kembali sbb: Kolom_data= definisi_kolom, [primary_key, konstrain] Definisi_kolom = [nama_kolom] [tipedata] {Null, Not Null} {Option Kolom} Primary_key = PRIMARY KEY (kolom_key [,kolom_key]) Konstrain = CONSTRAINT {definisi konstrain} Contoh akan dibuatkan tabel Mahasiswa sebagai berikut: Nim Nama Alamat Mahasiswa Gambar 6-1 Entitas Mahasiswa Tabel 6-1 Tabel Data Mahasiswa NIM NAMA Alamat Aji Jl. Abc Bayu Jl. Melati 10 Perintah SQL nya sbb: CREATE TABLE Mahasiswa ( Nim CHAR(10) PRIMARY KEY, Nama VARCHAR(50) NOT NULL, Alamat VARCHAR(75) NULL ) Atau dapat dituliskan sbb: CREATE TABLE Mahasiswa ( Nim CHAR(10) NOT NULL, Nama VARCHAR(50) NOT NULL, Alamat VARCHAR(75) NULL, PRIMARY KEY (Nim) ) Perancangan Basis data 97

112 Contoh lain akan dibuat tabel kurikulum yang mempunyai primary key KodeMK dan KodeKur. KodeMK KodeJur MamaMK Sks Kurikulum Status Gambar 6-2 Entitas Kurikulum Tabel 6-2 Data Kurikulum KodeMK KodeKur Nama Matakuliah Sks Status SI101 SI08 Algoritma Pemrograman 2 1 SI102 SI08 Sistem Komputer 3 1 Perintah SQL nya sbb: CREATE TABLE Kurikulum ( KodeMK CHAR(5) NOT Null, KodeKur CHAR(4) NOT Null, NamaMK VARCHAR NOT Null, Sks INTEGER, STATUS CHAR(1), CONSTRAINT pk_kode_mk_kode_kur PRIMARY KEY (kodemk,kodekur) ) Atau dapat dituliskan sbb: CREATE TABLE Kurikulum ( KodeMK CHAR(5) NOT Null, KodeKur CHAR(4) NOT Null, NamaMK VARCHAR Not Null, Sks INTEGER, STATUS CHAR(1), PRIMARY KEY (KodeMK, KodeKur) ) Kalau tadi sudah dibentuk satu tabel dengan primary key, berikut akan dibentuk tabel yang mempunyai Foreign key. Sebagai contoh akan dibuat tabel Jurusan dan tabel mahasiswa sebagai berikut: 98 Perancangan Basis data

113 Nim Nama Alamat KodeJur Mahasiswa N Memilih 1 Jurusan KodeJur NamaJur Gambar 6-3 Entitas Mahasiswa dan Jurusan Tabel Mahasiswa Nim Nama Alamat KodeJur Tabel Jurusan KodeJur NamaJur Gambar 6-4 Relasi Tabel Mahasiswa dan Tabel Jurusan Tabel 6-3 Tabel Data Jurusan KodeJur NamaJur 12 Teknik Komputer 22 Komputer Akuntansi 32 Manajemen Informatika Tabel 6-4 Tabel Data Mahasiswa NIM NAMA Alamat KodeJur Aji Jl. Abc Bayu Jl. Melati Perancangan Basis data 99

114 Sonny Jl. Ahmad Yani Putra Jl. Terate Ali Jl. Suka Perintah SQL nya sbb: CREATE TABLE Jurusan ( KodeJur CHAR(2) PRIMARY KEY, NamaJur VARCHAR(25) NOT NULL ) CREATE TABLE Mahasiswa ( Nim CHAR(10) PRIMARY KEY, Nama VARCHAR(50) NOT NULL, Alamat VARCHAR(75) NULL, KodeJur CHAR(2) FOREIGN KEY REFERENCES Jurusan(KodeJur) ) Aatau dapat dituliskan sbb: CREATE TABLE Mahasiswa ( Nim CHAR(10) PRIMARY KEY, Nama VARCHAR(50) NOT NULL, Alamat VARCHAR(75) NULL, KodeJur CHAR(2), CONSTRAINT fk_mhs_jur FOREIGN KEY (KodeJur) REFERENCES Jurusan(KodeJur) ) Dalam proses membuat tabel, harus ditentukan dengan tepat jenis data dan ukuran data yang digunakan untuk masing-masing kolom tersebut. Dalam contoh diatas baru beberapa tipe data yang terlihat ada Varchar, Char dan integer. Masing-masing dialek SQL mendefiniskan jenis data masing-masing dan satu dengan yang lainya banyak yang berbeda. Oleh sebab itu dalam pembuatan tabel perlu diperhatikan tujuan basisdata tersebut akan dibentuk untuk server basidata apa. 100 Perancangan Basis data

115 Berikut akan ditampilkan tabel jenis data untuk Oracle sbb: Jenis Data Tipe Data Tabel 6-5 Jenis Data pada Oracle Keterangan BOOLEAN Data lojikal dengan nilai TRUE atau FALSE. DATE mulai 1 Januari 4712 SM sampai dengan 31 Desember NUMBER [(p [,s])] Tipe data numerik dengan p angka penting dan sejumlah s angka penting di belakang koma. Nilai p adalah integer dengan nilai maksimal 38 dan nilai s berada pada rentang - 84 sampai dengan 127. Nilai s negatif berarti pembulatan sampai dengan 10s terdekat. FLOAT Turunan dari NUMBER. Presisi sampai dengan 38 digit. DOUBLE PRECISION Sama dengan FLOAT. REAL Turunan dari number. Presisi sampai dengan 18 digit. DEC [(p [,s])] Sama dengan NUMBER [(p [,s])]. DECIMAL [( p [,s])] Sama dengan NUMBER [(p [,s])]. NUMERIC [(p [,s])] Sama dengan NUMBER [(p [,s])]. INTEGER [(n)] Sama dengan NUMBER [(n,0)]. INT [(n)] Sama dengan NUMBER [(n,0)]. SMALLINT [(n)] Sama dengan NUMBER [(n,0)]. BINARY_INTEGER Tipe variabel ini digunakan menyimpan nilai mulai dari s/d NATURAL Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d NATURALN Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d Tipe data ini tidak boleh bernilai NULL. POSITIVE Bagian dari binary integer, mampu menyimpan mulai dari 1 s/d POSITIVEN Bilangan integer dengan rentang nilai 1 sampai dengan Tipe data ini tidak boleh bernilai NULL. SIGNTYPE Tipe data bilangan yang bernilai -1, 0 atau 1. PLS_INTEGER Bilangan integer dengan rentang nilai sampai Perancangan Basis data 101

116 VARCHAR2(n) VARCHAR(n) CHAR [(n)] STRING(n) CHARACTER [(n)] LONG [(n)] NCHAR [(n)] NVARCHAR2(n) RAW(n) LONG RAW [(n)] ROWID UROWID [(n)] BFILE BLOB CLOB NCLOB Data karakter dengan panjang tidak tetap. Nilai n minimum sama dengan 1 dan maksimum sama dengan byte. Sama dengan VARCHAR2(n). Data karakter dengan panjang tetap sebesar n byte. Nilai n maksimum adalah Nilai n minimum dan juga nilai default adalah 1. Sama dengan VARCHAR2(n). Sama dengan CHAR(n). Data karakter dengan panjang tidak tetap. Nilai n maksimum sama dengan byte. Data karakter dengan panjang tetap. Panjang maksimum sama dengan byte. maksimum bergantung pada national character set yang dipakai. Nilai default adalah 1. Data karakter dengan panjang tidak tetap. Panjang maksimum sama dengan byte. Nilai n maksimum bergantung pada national character set yang dipakai. Data binary dengan panjang tidak tetap. Nilai n maksimum sama dengan byte. Data binary dengan panjang tidak tetap. Nilai n maksimum sama dengan byte. Identitas baris pada suatu tabel-index yang dinyatakan dengan string heksa desimal. Identitas tersebut menunjukkan posisi baris data. Tipe data ini merupakan balikan dari kolom palsu ROWID. Identitas baris pada suatu tabel-index yang dinyatakan dengan string heksa desimal. Nilai n adalah ukuran kolom UROWID. Nilai n maksimum adalah 4000 byte. Tipe data large object untuk data file. Tipe data large object untuk karakter binary. Tipe data large object untuk karakter satu byte. Tipe data large object untuk karakter multi byte. 102 Perancangan Basis data

117 6.3.3 Melakukan Perubahan pada Tabel Perubahan pada tabel sering terjadi sehubungan dengan perubahan pada rancangan basisdata yang dilakukan. Perubahan ini dapat dilakukan untuk menambah kolom, merubah kolom, menghapus kolom, menambahkan key dan menghapus key (primary key, foreign key) Perubahan pada tabel dilakukan dengan menggunakan perintah sbb: ALTER TABLE Nama_tabel [Add kolom] [Alter Kolom] [drop kolom] Menambahkan Kolom Pada tabel mahasiswa akan ditambahkan kolom tahun masuk. Perintah SQLnya sbb: ALTER TABLE mahasiswa ADD TahunMasuk integer Berikut akan ditambahkan dua kolom sekaligus untuk yaitu kolom StatusAkademik dan Kelas Kuliah. Perintah SQLnya sbb: ALTER TABLE Mahasiswa ADD StatusAkd CHAR(1), Kelas Char(2) Merubah Kolom Akan dilakukan perubahan pada panjang data Alamat dari 75 karakter menjadi 100 karakter. Perintah SQLnya sb: ALTER TABLE Mahasiswa ALTER Column Alamat VARCHAR(100) Menghapus Kolom Akan dilakukan penghapusan kolom kelas pada tebel Mahasiswa karena akan dipindahkan pada tabel lainnya. Perintah SQLnya sbb: ALTER TABLE Mahasiswa DROP Column kelas Perancangan Basis data 103

118 Menghapus Primary key Penghapusan primary key mungkin saja terjadi untuk dilakukan perubahan pada tabel tersebut yang sifatnya sementara yang kemudian akan dibentuk kembali primary key yang barunya. Karena prinsip utama pada RDBMS setiap tabel harus mempunyai primary key. Misalkan akan dihapus primary key pada tabel mahasiswa, perintah SQLnya sbb: ALTER TABLE Mahasiswa DROP CONSTRAINT pk_mahasiswa CONSTRAINT pk_mahasiswa didasarkan pada pembentukan struktur tabel diawal CREATE TABLE Mahasiswa ( Nim CHAR(10) NOT NULL, Nama VARCHAR(50) NOT NULL, Alamat VARCHAR(75) NULL, KodeJur CHAR(2), CONSTRAINT pk_mahasiswa PRIMARY KEY (Nim) ) Menambahkan Primary key Akan ditambahkan primary key untuk tabel mahasiswa yang tadi telah dihapus primary key. Primary key nya tetap pada kolom Nim. Perintah SQLnya sbb: ALTER TABLE Mahasiswa ADD CONSTRAINT pk_mahasiswa PRIMARY KEY (Nim) Menghapus Foreign Key Penghapusan foreign key berarti memutus hubungan antar tabel yang sudah saling terkait. Perintah SQL yang dibuat hampir sama dengan penghapusan primary key. Perintah SQL untuk melakukan penghapusan foreign key adalah sbb: ALTER TABLE Mahasiswa DROP CONSTRAINT fk_mhs_jur 104 Perancangan Basis data

119 CONSTRAINT pk_mhs_jur didasarkan pada pembentukan struktur tabel diawal CREATE TABLE Mahasiswa ( Nim CHAR(10) PRIMARY KEY, Nama VARCHAR(50) NOT NULL, Alamat VARCHAR(75) NULL, KodeJur CHAR(2), CONSTRAINT fk_mhs_jur FOREIGN KEY (KodeJur) REFERENCES Jurusan(KodeJur) ) Menambahkan Foreign Key Akan ditambahkan foreign key untuk tabel mahasiswa yang tadi telah dihapus hubungan dengan tabel jurusan nya. Perintah SQLnya sbb: ALTER TABLE Mahasiswa ADD CONSTRAINT fk_mhs_jur FOREIGN KEY (KodeJur) REFERENCES Jurusan(KodeJur) 6.4 Maintenance Data pada Basisdata Pada bagian atas sudah dibentuk tabel-tabel data yang ada dalam sebuah basisdata. Langkah berikutnya adalah akan mengisi tabel-tabel data tersebut dengan konten data. Konten data ini datang dari proses transaksi yang yang di masukan lewat sebuah form yang biasanya ditangani lewat sebuah program aplikasi. Perintah SQL yang diganakan dalam maintenance data ini adalah yang termasuk dalam Data Manipulation Language (DML) yaitu : INSERT UPDATE, DELETE dan SELECT Memasukan Data Struktur umum penulisan perintah untuk menambahkan data adalah sbb: INSERT INTO nama_tabel (kolom_data) VALUES (isi_data) Perancangan Basis data 105

120 Kolom_data adalah nama-nama kolom yang akan diisikan nilai datanya. Kolom data ini lebih baik dituliskan sesuai dengan data yang akan diisikan. Perhatikan jika akan mengisi data kolom yang bernilai NOT Null harus diisi pada saat perintah INSERT dilakukan. Kolom_data dapat diabaikan untuk tidak ditulis jika data yang akan diisikan untuk seluruh tabel. Berikut akan diisikan data untuk tabel Jurusan dan Mahasiswa sesuai dengan tabel berikut: Tabel 6-6 Data Jurusan KodeJur NamaJur 12 Teknik Komputer 22 Komputer Akuntansi 32 Manajemen Informatika Tabel 6-7 Data Mahasiswa NIM NAMA Alamat KodeJur Aji Jl. Abc Bayu Jl. Melati Sonny Jl. Ahmad Yani Putra Jl. Terate Ali Jl. Suka Perintah perintah SQLnya sbb untuk menambahkan data pada tabel Jurusan: INSERT INTO Jurusan (KodeJur, NamaJur) VALUES ('12','Teknik Infromatika'); INSERT INTO Jurusan (KodeJur, NamaJur) VALUES ('22','Komputer Akuntansi'); INSERT INTO Jurusan (KodeJur, NamaJur) VALUES ('32','Manajemen Informatika'); Atau dapat dituliskan perintah SQL sbb: INSERT INTO Jurusan VALUES ('12','Teknik Infromatika'); INSERT INTO Jurusan VALUES ('22','Komputer Akuntansi'); INSERT INTO Jurusan VALUES ('32','Manajemen Informatika'); 106 Perancangan Basis data

121 Perintah perintah SQLnya sbb untuk menambahkan data pada tabel mahasiswa: INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur) VALUES (' ','Aji','Jl. Abc 123','32'); INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur) VALUES (' ','Bayu','Jl. Melati 10','32'); INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur) VALUES (' ','Sonny','Jl. Ahmad Yani 121','12'); INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur) VALUES (' ','Putra','Jl. Terate 15','12'); INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur) VALUES (' ','Ali','Jl. Suka 12','22'); Merubah Data Struktur umum penulisan perintah untuk merubah data adalah sbb: UPDATE nama_tabel SET nama_kolom = nilai_baru_kolom WHERE kondisi Perintah update ini akan mengubah isi kolom data yang jika tidak disikan kondisi Where data maka akan mengubah seluruh kolom yang ada di seuruh baris. Oleh sebab itu untuk membuat perubahan data harus selalu diperhatikan kondisi data yang akan dilakukan perubahan. Misalnya akan dilakukan perubahan nama pada nama=aji menjadi Aji Santoso. Maka kondisi yang harus dibuat adalah Nim sebagai key pada tabel tersebut, Where Nim=' '. Perintah SQLnya untuk merubah data adalah: UPDATE Mahasiswa SET Nama='Aji Santoso' WHERE Nim=' '; Berikutnya ingin dirubah nama alamat menjadi Jl. Sukarame 15 bayu dengan nama Bayu Adji dan UPDATE Mahasiswa SET Nama='Bayu Adji', Alamat='Jl. Sukarame 15' WHERE Nim=' '; Perancangan Basis data 107

122 6.4.3 Menghapus Data Struktur umum penulisan perintah untuk menghapus data adalah sbb: DELETE FROM nama_tabel WHERE kondition Perintah delete akan menghapus satu baris data atau lebih tergantung pada kondisi Where yang diberikan. Sebaiknya setipa melakukan proses penghapusan data maka kondisi penghapusan harus terdefinisi dengan baik, jika tidak maka akan kehilangan data. DELETE FROM Mahasiswa WHERE Nim=' '; Perintah SQL DELETE FROM Mahasiswa akan mengkosongkan data pada tabel Mahasiswa 6.5 Mengakses Basisdata Bagian atas sudah dijelaskan untuk melakukan maintenance data pada tabel. Berikutnya data dalam tabel tersebut akan dipanggil, diolah sehingga menjadi informasi yang berguna bagi pemakainya. Untuk mengakses data digunakan perintah SELECT. Perintah ini akan mengembalikan kelompok baris-baris data satu baris atau lebih (mungkin juga tidak mengembalikan baris) yang berasal dari satu tabel, beberapa tabel, view dan temporary tabel yang ada dalam sebuah basisdata. Untuk latihan select ini akan digunakan tabel Mahasiswa, Jurusan dan Kurikulum seperti berikut ini: Tabel 6-8 Data Jurusan KodeJur NamaJur 12 Teknik Komputer 22 Komputer Akuntansi 32 Manajemen Informatika Tabel 6-9 Data Mahasiswa NIM NAMA Alamat KodeJur Aji Jl. Abc Bayu Jl. Melati Sonny Jl. Ahmad Yani Putra Jl. Terate Ali Jl. Suka Perancangan Basis data

123 Struktur dasar penulisan perintah select adalah sbb: SELECT nama_kolom FROM nama_tabel [WHERE kondisi] [ORDER BY mode_urutan_data] Nama kolom merupakan nama-nama kolom data yang akan ditampilkan sebagai hasil dari perintah select ini. Jika diinginkan untuk ditampilkan seluruh kolom maka dapat digantikan dengan karakter bintang ( * ) Contoh akan ditampilkan data Jurusan, perintah SQL nya sbb: SELECT KodeJur, NamaJur FROM Jurusan Hasil yang didapat dari perintah diatas adalah: Tabel 6-10 Output Select Jurusan KodeJur NamaJur 12 Teknik Infromatika 22 Komputer Akuntansi 32 Manajemen Informatika SELECT * From Jurusan Hasilnya akan sama dengan tabel diatas Menganti Judul Kolom Output pada tabel diatas memperlihatkan judul kolom sama dengan nama kolom, hal ini biasanya tidak baik saat judul kolom tersebut mengandung singkatan sehingga kurang informatif. Untuk menganti judul kolom dapat menggunakan perintah AS. Perintah ini akan memberikan nilai alias pada kolom_data tersebut. Perintah SQL nya sbb: SELECT KodeJur AS Kode, KodeJur AS Jurusan FROM Jurusan Sehingga hasil yang didapat adalah sbb: Tabel 6-11 Output Select Jurusan Kode Jurusan 12 Teknik Informatika Perancangan Basis data 109

124 22 Komputer Akuntansi 32 Manajemen Informatika Penulisan alias pada kolom dapat juga dituliskan tanpa keyword AD, sehingga perintah SQL nya menjadi sbb: SELECT KodeJur Kode, KodeJur AS Jurusan FROM Jurusan Function pada SQL Fungsi-fungsi pada SQL terbagi dalam beberap bagian atau kelompok,d iantaranya : 1. Fungsi untuk agregasi a. AVG() mengembalikan nilai rata b. COUNT() mengembalikan jumlah data c. FIRST() mengembalikan nilai awal data d. LAST() mengembalikan nilai terakhir dari data e. MAX() mengembalikan nilai terbesar dari data f. MIN() mengembalikan nilai terkecil dari data g. SUM() mengembalikan hasil penjumlahan dari data 2. Fungsi untuk skalar a. UCASE() mengkonversi nilai kolom menjadi huruf besar semua b. LCASE() - mengkonversi nilai kolom menjadi huruf kecil semua c. MID() mengambil sebagian dari suatu string d. LEN() mengembalikan panjang string e. ROUND() membulatkan nilai bilangan pada nilai terdekat Fungsi-fungsi ini mungkin akan berbeda dari suatu dialek SQL dengan dialek SQL lainya. Contoh penggunaan function SQL sbb: SELECT COUNT (Nim) FROM Mahasiswa SELECT MAX(KodeJur) FROM Jurusan 110 Perancangan Basis data

125 6.5.3 Menentukan Kondisi Dalam perintah Select terdapat klausa Where yang digunakan untuk menentukan hasil sesuai dengan data yang dibutuhkan. Kondisi ini perlu disehingga tidak semua data akan ditampilkan. Struktur penulisan where pada select sbb: SELECT nama_kolom FROM nama_tabel [WHERE kondisi] Kondisi = nama_kolom operator nilai_data Operator yang dapat digunakan pada penulisan kondisi adalah sbb: Operator = Sama dengan <> Tidak sama dengan > Lebih besar dari < Lebih kecil dari Tabel 6-12 Operator Kondisi >= Lebih besar sama dengan dari <= Kebih kecil sama dengan dari BETWEEN LIKE IN Nilai diantara Keterangan Mencocokan sesuai dengan pola data yang diberikan Mencocokan data dengan yang ada Selain operator diatas juga digunakan operator relasi seperti AND, OR dan NOT Berikut beberapa contoh penulisan kondisi: WHERE Nim= WHERE Sks=2 WHERE Nama = Aji Perancangan Basis data 111

126 Untuk kolom yang jenis datanya adalah karakter (CHAR, VARCHAR) nilai datanya harus diapit oleh tanda kutip seperti dibagian atas. Berikut perintah lengkap menggunakan kondisi dalam menampilkan data. SELECT Nim, Nama, Alamat FROM Mahasiswa WHERE Nim=' ' Hasil yang didapat adalah sbb: Tabel 6-13 Output Select Mahasiswa menggunakan Where NIM NAMA Alamat Aji Jl. Abc 123 SELECT Nim, Nama FROM Mahasiswa WHERE KodeJur='32' Hasil yang didapat adalah sbb: Tabel 6-14 Output Select Mahasiswa menggunakan Where NIM NAMA Aji Bayu Operator Like digunakan untuk mencari data karakter/string dengan pola-pola tertentu. Pembuatan pola diwakili dengan karakter persen ( % ) untuk mengartikan satu atau lebih karakter pada string dan tanda garis bawah ( _ ) yang mewaliki satu karakter saja. Berikut contoh penggunaan Like: Tabel 6-15 Contoh Perintah Like Perintah Like Arti WHERE Nama LIKE A% Nama yang berawalan A WHERE Nama LIKE %i Nama yang berakhiran i WHERE Nama LIKE AL_ Nama yang mempunyai awala AL dan huruf ketiganya bebas 112 Perancangan Basis data

127 6.5.4 Menguruntukan Data Klausa ORDER BY digunakan untuk menguruntukan data output. Urutan data ini dapat diset baik secara Ascending (urutan dari kecil ke besar) atau Descending (urutan dari besar ke kecil) Struktur penulisan ORDER BY sebagai berikut: SELECT nama_kolom FROM nama_tabel ORDER BY nama_kolom ASC DESC Nilai Default untuk pengurutan ini adalah ASC, sehingga untuk menuruntukan dari kecil ke besar sebenarnya tidak perlu dituliskan ASC nya Berikut contoh perintah SQL menggunaka ORDER BY SELECT Nim, Nama FROM Mahasiswa ORDER BY Nama Tabel 6-16 Output Order By Tabel Mahasiswa NIM NAMA Aji Ali Bayu Sonny SELECT Nim, Nama FROM Mahasiswa ORDER BY Nama DESC Tabel 6-17 Output Order By DESC Tabel Mahasiswa NIM NAMA Sonny Bayu Ali Aji SELECT KodeJur As Jurusan,Nim, Nama FROM Mahasiswa ORDER BY Jurusan,Nama Perancangan Basis data 113

128 Tabel 6-18 Output Order By Dua Kolom Jurusan Nim Nama Sonny Ali Aji Santoso Bayu Adji 114 Perancangan Basis data

129 Rangkuman 1. Structure Query Language (SQL) hadir dalam RDBMS sebagai bahasa untuk mengakses, me-maintenance kumpulan dari table-tabel data yang dihubungkan oleh masing-masing key. 2. SQL muncul pertama kali diawal tahun 1970-an sebagai sebuah hasil penelitian pada lab IBM,San Joe, California yang dilakukan oleh Donald C Meserly dan Raymond F Boyce. 3. American National Standard Institute (ANSI) dan International Standard Organization (ISO) membentuk standar SQL yang dimulai tahun Beberapa standar SQL yang sudah dibuat adalah: SQL86, SQL92, SQL99, SQL:2003, SQL2006 dan SQL: Secara umum perintah-perintah SQL dibagi dalam tiga bagian utama yaitu: a. Data Definition Language (DDL) b. Data Manipulation Languange (DML) c. Data Control Languange (DCL) 6. DML menyediakan perintah-perintah untuk melakukan proses manipulasi pada konten data yang ada dalam basidata. Perintahperintah ini diantaranya: Select, Insert, Update dan Delete. 7. DDL menyediakan perintah-perintah untuk mengakses objek-objek basidata seperti database, table, index PL/Transact baik untuk membuat dengan perintah Create, merubah dengan perintah Alter dan menghapus dengan perintah Drop. 8. DCL menyediakan perintah-perintah untuk mengatur hak akses terhadap objek-objek data dan konten data untuk masing-masing pengguna dan layer user dalam basidata. Perancangan Basis data 115

130 Latihan 1. Jelaskan hubungan antara SQL dan RDBMS 2. Jelaskan bentuk-bentuk pengkategorian perintah-perintah SQL pada standar SQL92 dan SQL99 3. Apa fungsi perintah CONSTRAINT pada pembuatan dan perubahan pada tabel 4. Jelaskan apa yang dimaksud dengan NULL dan NOT NULL pada saat membuat struktur tabel 5. jelaskan apakah kolom data yang direferensikan dg foreign key ke tabel lain harus diisi atau tidak saat diberikan perintah INSERT dan UPDATE tabel 6. Buat perintah DDL untuk membentuk struktur tabel diatas. Tentukan oleh anda sendiri jenis data yang sesuai dan status NULL atau tidak Null nya pada masing-masing kolom. Relasi atas tabel harus terbentuk seperti gambar diatas. 7. Isikan data pada tabel-tabel diatas (tabel gaji, r_golongan, dpok_karwayan, absensi_karyawan) masing-masing minimal 3 baris data 116 Perancangan Basis data

131 Kuis Benar Salah 1. Structure Query Languange (SQL) adalah bahasa komputer untuk pemrograman basidata 2. Basisdata dapat diartikan sama dengan Relational Database Management System 3. Standar SQL92 membagi kelompok perintah SQL sbb: Data Definition Language (DDL) Data Manipulation Language (DML) Data Control Language (DCL) 4. Perintah Alter digunakan untuk merubah isi tabel data 5. Tabel yang sudah mempunyai primary key tidak dapat dilakukan perubahan 6. Dalam satu tabel hanya dibolehkan mempunyai mempunyai satu foreign key 7. Perintah Update tabel akan merubahan data hanya pada kolom data pada yang ada pada klausa Set saja 8. Perintah Delete Table akan menghilangkan tabel data tersebut 9. Judul kolom hasil perintah Select harus sama dengan nama kolomnya 10. Klausa Order by tidak perlu dilakukan karena perintah Select sudah menguruntukan data langsung secara Ascending Perancangan Basis data 117

132 Pilihan Ganda Petunjuk: Pilihlah jawaban yang paling tepat! 1 Perhatikan penyataan berikut: 1. SQL dikhususkan untuk bahasa Query Language 2. SQL digunakan untuk mengakses dan me-maintenace basisdata A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah 2 Yang menjadi bagian dari Perintah DDL A. Insert D. Delete B. Update E. Select C. Drop 3 Yang menjadi bagian dari Perintah DCL A. Insert D. Grant B. Create E. Select C. Update Soal untuk nomor 4 s/d 6 Lengkapi bagian kosong dari perintah Query berikut: Create Orders ( No integer, Kepada VARCHAR (50), ) 4 Create A. tidak perlu diisi apapun D. diisi dengan Database B. diisi bebas saja E. Diisi dengan tanda kutif C. diisi dengan Table 118 Perancangan Basis data

133 5 No integer, A. tidak perlu diisi apapun D. diisi dengan Primary key B. diisi bebas saja E. Diisi dengan Constranints C. diisi dengan NULL 6 Kepada VARCHAR (50), A. tidak perlu diisi apapun D. diisi dengan Primary key B. diisi bebas saja E. Diisi dengan Constranints C. diisi dengan NULL 7 Jika diinginkan untuk menghapus kolom data Hobby pada tabel mahasiswa, perintah SQL nya adalah: A. DROP Mahasiswa Hobby D. Alter Table Mahasiswa Drop Column Hobby B. Drop Mahasiswa Column Hobby C. Alter Table Mahasiswa Drop Hobby E. Alter Table Mahasiswa Alter Column Hobby 8 Jika diinginkan mencari data mahasiswa yang mengadung nama Aji maka kondisi where pada select tersebut dituliskan sbb: A. Where nama= Aji D. Where nama like %aji% B. Where nama Like Aji% E. Where nama IN %aji C. Where nama like %aji 9 Jika diinginkan mencari data mahasiswa yang mengadung nama Aji maka kondisi where pada select tersebut dituliskan sbb: A. Where nama= Aji D. Where nama like %aji% B. Where nama Like Aji% E. Where nama IN %aji C. Where nama like %aji 10 Perintah SQL ini mempunyai arti: SELECT COUNT (Nim) FROM Mahasiswa A. Tampilkan tabel mahasiswa D. tampilkan hasil penjumlahan/perhitungan nim mahasiswa B. tampilkan jumlah nim E. Tampilkan daftar nim dari mahasiswa mahasiswa C. Tampilkan jumlah mahasiswa Perancangan Basis data 119

134 7 BAHASA BASIS DATA LANJUTAN Overview Sql Lanjutan membahas perintah-perintah SQL yang mencakup tentang fungsi agregasi yang didalamnya mengandung perintah pengelompokan data dengan menggunakan klausa GROUP BY. Berikutnya dijelaskan query dari beberapa tabel yang bertujuan untuk mengasilkan informasi yang lebih lengkap bagi penggunanya. Dalam pembahasan query dari beberapa tabel ini terkait dengan perintah JOIN dimana terdapat perintah INNER JOIN dan OUTER JOIN. Subquery menjadi bagian penting sebagai alternatif dalam menghasilkan informasi dari basisata selain menggunakan join tersebut. Dalam subquery ini digunakan operator IN, Not IN, Exists, Not Exists, operator relasi dan operator ANY atau ALL Tujuan 1. Mahasiswa memahami dan mengerti serta mampu menuliskan query dalam bentuk agregasi data dengan menggunakan klausa GROUP BY 2. Mahasiswa memahami dan mengerti serta mampu menuliskan query untuk menghubungkan antar label dengan menggunakan perintah JOIN (INNER JOIN dan OUTER JOIN) 3. Mahasiswa memahami dan mengerti serta mampu menuliskan query SubQuery untuk kasus-kasus tertentu 120 Perancangan Basis data

135 7.1 Fungsi Aggregation Pada bab sebelumnya sudah dibahas tentang fungsi-fungsi dalam SQL dan termasuk didalamnya adalah fungsi agregasi. Fungsi-fungsi tersebut adalah sbb: 3. AVG() mengembalikan nilai rata 4. COUNT() mengembalikan jumlah data 5. FIRST() mengembalikan nilai awal data 6. LAST() mengembalikan nilai terakhir dari data 7. MAX() mengembalikan nilai terbesar dari data 8. MIN() mengembalikan nilai terkecil dari data 9. SUM() mengembalikan hasil penjumlahan dari data Contoh penggunaan fungsi agregasi SQL sbb: SELECT COUNT (Nim) as Jumlah FROM Mahasiswa Perintah diatas akan menghasilkan output sbb: Jumlah 5 Dengan menggunakan fungsi agregasi kolom data yang ditampilkan terbatas pada kolom fungsi saja, misalkan diinginkan untuk menampilkan jumlah mahasiswa tiap jurusan Perintah SQL sbb: SELECT KodeJur, COUNT(Nim) as Jumlah FROM Mahasiswa akan menimbulkan kesalahan. Hal ini dikarenakan fungsi agregasi akan mengelompokan data sesuai dengan kolomnya, sementara ada kolom KodeJur pada SELECT tersebut yang tidak dikelompokan. Untuk menanggulangi masalah ini maka diperlukan perintah query tambahan berupa GROUP BY, yang akan mengelompokan data sesuai dengan yang ada dalam kolom data yang akan ditampilkan. Struktur penulisan GROUP BY sbb: SELECT kolom_data, fungsi_agregasi() FROM tabel_data GROUP BY kolom_data Perancangan Basis data 121

136 Jadi perintah SQL untuk menampilkan jumlah mahasiswa per jurusan adalah sbb: SELECT KodeJur, COUNT(Nim) as JumlahMhs FROM Mahasiswa GROUP BY KodeJur; Berikut terdapat sebuah tabel Kurikulum untuk mencoba lebih lanjut fungsi agregasi Tabel 7-1 Data Kurikulum Semester KodeMK KodeKur NamaMK Sks 1 IF0141 MI08 Algoritma dan Pemrograman 4 1 IF0143 MI08 Pemrograman I 3 1 KA0181 MI08 Paket Aplikasi I 2 1 ST0101 MI08 Kalkulus 4 1 TK0117 MI08 Fisika Dasar 4 1 TK0121 MI08 Organisasi Komputer 3 2 IF0142 MI08 Stuktur Data 4 2 IF0144 MI08 Pemrograman II 3 2 IF0146 MI08 Pemrograman Visual 3 2 KA0182 MI08 Paket Aplikasi II 2 2 KU0102 MI08 Pendidikan Pancasila 2 2 KU0108 MI08 Pendidikan Kewarganegaraan 2 2 TK0122 MI08 Arsitektur Komputer 3 2 TK0124 MI08 Pengantar Teknologi Informasi 2 3 IF0201 MI08 Logika Matematika 3 3 IF0223 MI08 Sistem Berkas & Pengantar Basis 3 Data 3 IF0231 MI08 Pemrograman Internet I 3 3 KU0203 MI08 Pendidikan Agama 2 3 ST0203 MI08 Aljabar Linier 3 3 ST0209 MI08 Probabilistik dan Statistik 3 3 TK0221 MI08 Pemrograman III 3 4 IF0202 MI08 Matematika Diskrit 3 4 IF0234 MI08 Komunikasi Data 3 4 IF0292 MI08 Rekayasa Perangkat Lunak 3 4 SI0272 MI08 Sistem Basis Data I 3 4 SI0278 MI08 Sistem Operasi 3 4 SI0282 MI08 Pemrograman Internet II 3 4 SI0292 MI08 Sistem Informasi Perancangan Basis data

137 1. Tampilkan jumlah matakuliah per semester SELECT Semester, Count(KodeMk) as JmlMK FROM Kurikulum GROUP BY Semester; Hasil query yang didapat adalah sbb: Tabel 7-2 Hasil Query Jumlah Matakuliah per Semester Semester JmlMK Tampilkan jumlah Sks per semester SELECT Semester, Sum(Sks) as JmlSks FROM Kurikulum GROUP BY Semester; Hasil query yang didapat adalah sbb: Tabel 7-3 Hasil Query Jumlah Sks per Semester Semester JmlSks Tampilkan jumlah matakuliah dan jumlah sks per semester SELECT Semester, Count(kodeMk) as JmlMK,Sum(Sks) as JmlSks FROM Kurikulum GROUP BY Semester; Perancangan Basis data 123

138 Tabel 7-4 Hasil Query Jumlah matakuliah dan Sks per Semester Semester JmlMK JmlSks Tampilkan jumlah sks per kelompok matakuliah. Kelompok matakuliah ditandai dengan dua huruf pertama pada kolom kodemk SELECT LEFT(kodeMk,2) as KelompokMK, sum(sks) as JmlSks FROM Kurikulum GROUP BY LEFT(kodeMk,2); Hasil query yang didapat adalah sbb: Tabel 7-5 Hasil Query Kelompok Matakuliah KelompokMK JmlSks IF 35 KA 4 KU 6 SI 12 ST 10 TK 15 Setiap dialek dari SQL ini membuat fungsi-fungsi masing sehingga menjadi salah satu nilai lebih dari dialek SQL ini. Untuk itu pada saat mempelajari sebuah dialek SQL maka perlu diperhatikan kekhasan untuk masing-masing dialek. Sebagai contoh (walaupun bukan bagian dari sub bab ini) saya berikan contoh perintah untuk membatasi data yang akan ditampilkan untuk masing-masing dialek SQL ini. 124 Perancangan Basis data

139 Tabel 7-6 Perbandingan Perintah SQL untuk Limit Perintah SQL RDBMS SELECT * FROM T LIMIT 10 PostgreSQL, MySQL, SQLite, H2 SELECT * from T WHERE ROWNUM <= Oracle (mulai dari Oracle8i) 10 SELECT FIRST 10 * from T Ingres SELECT FIRST 10 * FROM T order by a Informix SELECT * FROM T FETCH FIRST 10 DB2 ROWS ONLY SELECT TOP 10 * FROM T MS SQL Server, Sybase ASE, MS Access SELECT TOP 10 START AT 20 * FROM T Sybase SQL Anywhere 7.2 Query dari Beberapa Tabel Dibagian sebelumnya telah dibahan untuk meng-query data dari satu tabel dengan berbagai macam pola dan fungsi-fungsi yang dapat digunakannya. Pada bagian ini akan dibahas query yang didasarkan pada beberapa tabel (dua atau lebih tabel) yang saling terkait untuk menghasilkan informasi Perintah query SELECT * from Mahasiswa kurang begitu infromatif dari data yang dihasilkannya, karena data jurusan hanya ditampilkan kode jurusan saja, seharusnya data jurusan ditampilkan nama jurusan. Data nama jurusaan berada di tabel Jurusan. Oleh sebab itu maka perlu dikaitkan antar tabel matakuliah dengan tabel Jurusan. Dilihat dari hubungan antar tabel seperti yang terlihat pada gambar dibawah ini adalah sbb: Tabel 7-7 Mahasiswa dan tabel Jurusan Tabel Mahasiswa Nim Nama Alamat KodeJur Tabel Jurusan KodeJur NamaJur Perancangan Basis data 125

140 Maka kaitan antara tabel Mahasiswa dan tabel Jurusan adalah pada kolom KodeJur di kedua tabel. Penyambungan dilakukan dengan perintah sbb: Mahasiswa.kodeJur = Jurusan.KodeJur Perintah ini akan ditempatkan pada klausa WHERE pada perintah SELECT dan sebelumnya harus disebuntukan pada FROM kedua tabel tersebut. Perintah lengkapnya sbb: SELECT Nim, Nama, NamaJur FROM Mahasiswa, Jurusan WHERE Mahasiswa.kodeJur = Jurusan.KodeJur Sehingga output yang dihasilkan adalah sbb: Tabel 7-8 Output Relasi antar Tabel Nim Nama NamaJur Sonny Teknik Infromatika Ali Komputer Akuntansi Aji Manajemen Informatika Bayu Manajemen Informatika Bentuk penulisan query diatas dapat juga menggunakan keyword JOIN sebagai pengembangan dari model sebelumnnya. Bentuk penulisan SELECT JOIN adalah sbb: SELECT nama_kolom FROM nama_tabel_1 INNER JOIN nama_tabel_2 ON kolom_relasi_tabel diatas Berikut contoh penggunaan INNER JOIN dengan menggunakan masalah SELECT Nim, Nama, NamaJur FROM Mahasiswa INNER JOIN Jurusan ON Mahasiswa.kodeJur = Jurusan.KodeJur 126 Perancangan Basis data

141 7.3 Nama Alias Nama alias dapat diberikan untuk nama kolom dan juga untuk nama tabel. Pemberian nama alias menggunakan keyword AS. Nama alias ini sangat diperlukan untuk menyingkat penulisan-penulisan perintah query yang komplek dan banyak. Struktur penulisan nama tabel adalah sbb: SELECT nama_kolom FROM nama_tabel AS nama_alias Contoh perintah SQL untuk penggunaan alias ini adalah sbb: SELECT Nim, Nama, NamaJur FROM Mahasiswa AS M, Jurusan AS J WHERE M.kodeJur = J.KodeJur Contoh lain sbb: SELECT Nim, Nama, M.kodeJur, NamaJur FROM Mahasiswa AS M, Jurusan AS J WHERE M.kodeJur = J.KodeJur Perintah INNER JOIN juga dapat menggunakan alias sbb: SELECT Nim, Nama, NamaJur FROM Mahasiswa AS m INNER JOIN Jurusan AS j ON m.kodejur = j.kodejur Pembuatan alias selain menggunakan keyword AS juga dapat menggunakan spasi sebagai pemisah dari nama tabel dan nama alias. Contoh sbb: SELECT Nim, Nama, NamaJur FROM Mahasiswa m INNER JOIN Jurusan j ON m.kodejur = j.kodejur Perancangan Basis data 127

142 7.4 Bentuk-bentuk Perintah Join Perintah JOIN ini terdiri dari berbagai variasi, sebelumnya telah dibahas JOIN dengan INNER JOIN. INNER JOIN ini mensyaratkan data di kedua belah tabel singkon (ada di tabel mahasiswa dan ada di tabel jurusan). Data yang tidak singkron tidak akan ditampilkan sebagai hasil query tersebut. Bentuk variasi lainnya adalah OUTER JOIN, perintah JOIN ini memungkinkan untuk menampilkan data yang tidak singkron diatara kedua tabel tersebut ditampilkan. Data yang tidak singkron nantinya akan diberikan nilai NULL. Ketidak singkronan ini dapat dari satu sisi tabel atau bahkan di kedua sisi tabel tersebut sehingga data NULL nya pun dapat muncul di sisi kiri maupun disisi kanan atau bahkan dikedua sisi tersebut. Penulisan query untuk OUTER JOIN ini dibentuk menjadi 3 bagian sbb: 1. LEFT JOIN 2. RIGHT JOIN 3. FULL JOIN Untuk menjalankan perintah OUTHER JOIN ini akan digunakan tabel Pengarang dan tabel Penerbit. Secara relasi kedua tabel ini tidak ada hubungan sama sekali. Dan hanya mungkin di relasikan bedasarkan kota yang ada di tabel pengarang dan tabel penerbit tersebut. Tabel 7-9 Pengarang KodePeng NamaPeng KotaTinggal Johnson White Menlo Park Marjorie Green Oakland Cheryl Carson Berkeley Michael O'Leary San Jose Dean Straight Oakland Meander Smith Lawrence Abraham Bennet Berkeley Ann Dull Palo Alto Burt Gringlesby Covelo Charlene Locksley San Francisco 128 Perancangan Basis data

143 Tabel 7-10 Penerbit NamaPen Kota New Moon Books Boston Binnet & Hardley Washington Algodata Infosistems Berkeley Five Lakes Publishing Chicago Ramona Publishers Dallas GGG&G München Scootney Books New York Lucerne Publishing Paris LEFT JOIN Bentuk umum penulisan LEFT JOIN adalah sbb: SELECT nama_kolom FROM nama_tabel_1 LEFT JOIN nama_tabel_2 ON relasi_tabel Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada diseblah kiri) walaupun dalam relasi tidak singkron dengan nama_tabel_2 (disebelah kanan). Ketika data tidak ditemukan pada nama_tabel_2, maka akan diberikan nilai NULL pada data tersebut. Berikut perintah LEFT JOIN yang akan menampilkan data pengarang yang nama kotanya sesuai dengan kota penerbit SELECT KodePeng, NamaPeng, Kota FROM Pengarang p LEFT JOIN Penerbit t ON p.kotatinggal=t.kota Perancangan Basis data 129

144 Tabel 7-11 Hasil Relasi Left Join KodePeng NamaPeng Kota Johnson White NULL Marjorie Green NULL Cheryl Carson Berkeley Michael O'Leary NULL Dean Straight NULL Meander Smith NULL Abraham Bennet Berkeley Ann Dull NULL Burt Gringlesby NULL Charlene Locksley NULL Penulisan klausa LEFT JOIN dapat juga dituliskan LEFT OUTER JOIN sehingga perintah SQL nya sbb: SELECT KodePeng, NamaPeng, Kota FROM Pengarang p LEFT OUTER JOIN Penerbit t ON p.kotatinggal=t.kota RIGHT JOIN Bentuk umum penulisan RIGHT JOIN adalah sbb: SELECT nama_kolom FROM nama_tabel_1 RIGHT JOIN nama_tabel_2 ON relasi_tabel Perintah RIGHT JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_2 (yang ada disebelah kanan) walaupun dalam relasi tidak singkron dengan nama_tabel_1 (disebelah kiri). Ketika data tidak ditemukan pada nama_tabel_1, maka akan diberikan nilai NULL pada data tersebut. 130 Perancangan Basis data

145 Berikut perintah RIGHT JOIN yang akan menampilkan data pengarang yang nama kotanya sesuai dengan kota penerbit SELECT KodePeng, NamaPeng, Kota FROM Pengarang p RIGHT JOIN Penerbit t ON p.kotatinggal=t.kota Tabel 7-12 Hasil Relasi Right Join KodePeng NamaPeng Kota NULL NULL Boston NULL NULL Washington Cheryl Carson Berkeley Abraham Bennet Berkeley NULL NULL Chicago NULL NULL Dallas NULL NULL München NULL NULL New York NULL NULL Paris Penulisan klausa RIGHT JOIN dapat juga dituliskan RIGHT OUTER JOIN sehingga perintah SQL nya sbb: SELECT KodePeng, NamaPeng, Kota FROM Pengarang p RIGHT OUTER JOIN Penerbit t ON p.kotatinggal=t.kota FULL JOIN Bentuk umum penulisan FULL JOIN adalah sbb: SELECT nama_kolom FROM nama_tabel_1 FULL JOIN nama_tabel_2 ON relasi_tabel Perintah FULL JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada disebalah kiri) dan akan menampilkan seluruh baris nama_tabel_1 (disebelah kanan) walaupun ada tidak singkron diantara keduanya. Perancangan Basis data 131

146 Ketika data tidak ditemukan pada nama_tabel_1 dan nama_tabel_2, maka akan diberikan nilai NULL pada data tersebut. Berikut perintah FULL JOIN yang akan menampilkan data pengarang yang nama kotanya sesuai dengan kota penerbit SELECT KodePeng, NamaPeng, Kota FROM Pengarang p FULL JOIN Penerbit t ON p.kotatinggal=t.kota Tabel 7-13 Hasil Relasi Full Join KodePeng NamaPeng Kota Johnson White NULL Marjorie Green NULL Cheryl Carson Berkeley Michael O'Leary NULL Dean Straight NULL Meander Smith NULL Abraham Bennet Berkeley Ann Dull NULL Burt Gringlesby NULL Charlene Locksley NULL NULL NULL Washington NULL NULL Chicago NULL NULL Boston NULL NULL Paris NULL NULL New York NULL NULL Dallas NULL NULL München 7.5 Subquery Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT, UPDATE dan DELETE atau dengan kata lain subquery adalah query dalam query. Subquery merupakan alternative dalam membuat perintah SQL yang menggunakan JOIN, dimana hal ini dibuat untuk meningkatkan performance 132 Perancangan Basis data

147 terhadap perintah query tersebut. namun demikian, tergantung kepada data jika kalau ingin dibandingkan mana yang lebih baik antara subquery dengan JOIN ini. Subquery dapat ditempatkan pada perintah SELECT setelah klausa Select, From, Where, Group BY dan Having. Umumnya perintah sub Query ini mengikuti format sebagai berikut: WHERE ekspresi [NOT] IN (subquery) WHERE ekspresi operator perbandingan [ANY ALL] (subquery) WHERE [NOT] EXISTS (subquery) Untuk melakukan percobaan terhadap perintah sub Query ini akan disediakn dua buah tabel yaitu tabel Penerbit, tabel Pengarang dan tabel Buku Tabel 7-14 Data Penerbit KodePen NamaPen Kota 0736 New Moon Books Boston 0877 Binnet & Hardley Washington 1389 Algodata Infosistems Berkeley 1622 Five Lakes Publishing Chicago 1756 Ramona Publishers Dallas 9901 GGG&G München 9952 Scootney Books New York 9999 Lucerne Publishing Paris Tabel 7-15 Data Buku Kode JudulBuku Jenis Kode Pen BU1032 The Busy Executive's Database Guide business 1389 BU1111 Cooking with Computers: business 1389 Surreptitious Balance Sheets BU2075 You Can Combat Computer Stress! business 0736 BU7832 Straight Talk About Computers business 1389 MC2222 Silicon Valley Gastronomic Treats mod_cook 0877 MC3021 The Gourmet Microwave mod_cook 0877 MC3026 The Psychology of Computer UNDECIDED 0877 Cooking PC1035 But Is It User Friendly? popular_comp 1389 PC8888 Secrets of Silicon Valley popular_comp 1389 PC9999 Net Etiquette popular_comp 1389 Perancangan Basis data 133

148 Tabel 7-16 Data Pengarang KodePeng NamaPeng KotaTinggal Johnson White Menlo Park Marjorie Green Oakland Cheryl Carson Berkeley Michael O'Leary San Jose Dean Straight Oakland Meander Smith Lawrence Abraham Bennet Berkeley Ann Dull Palo Alto Burt Gringlesby Covelo Charlene Locksley San Francisco Operator IN Subquery dengan menggunakan operator IN adalah akan me-list hasil dari subquery untuk dibandingkan dengan ekspresi where yang diberikan. Subquery akan dijalankan terlebih dahulu baru kemudian query pemanggilnya akan dijalankan. Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator IN SELECT NamaPen FROM Penerbit WHERE kodepen IN (SELECT kodepen FROM Buku WHERE jenis='business') Output yang dihasilkan dari perintah Query tersebut adalah: Tabel 7-17 Hasil Query Operator IN NamaPen New Moon Books Algodata Infosistems 134 Perancangan Basis data

149 Berdasarkan pada perintah query diatas, pertama kali akan menjalankan query untuk buku dahulu sehingga akan menghasilkan nilai 1389, 1389, 0736, Kemudian akan menjalankan perintah query pada Penerbit dengan kondisi KodePen didasarkan pada hasil query pertama. Perintah query ini dapat diterjemahkan sbb: SELECT NamaPen FROM Penerbit WHERE kodepen IN ( 1389, 1389, 0736, 1389 ) Subquery diatas pun seperti dijelaskan terdahulu bahwa dapat menggunakan perintah JOIN dengan bentuk sbb: SELECT DISTINCT NamaPen FROM Penerbit p INNER JOIN Buku b ON p.kodepen=b.kodepen AND jenis='business' Jika operator IN ditambahkan operator NOT maka akan menjadi NOT IN. hal ini akan memberikan nilai kebalikan dari hasil yang didapat dengan menggunakan perintah IN SELECT NamaPen FROM Penerbit WHERE kodepen NOT IN (SELECT kodepen FROM Buku WHERE jenis='business') Tabel 7-18 Hasil Query Operator Not IN NamaPen Binnet & Hardley Five Lakes Publishing Ramona Publishers GGG&G Scootney Books Lucerne Publishing Perancangan Basis data 135

150 Operator EXISTS Operator Exists ini akan melakukan pemeriksaan terhadap hasil subqery apakah menghasilkan baris-data atau tidak, jika subquery tersebut menghasilkan baris data maka akan mengembalikan nilai true dan sebaliknya jika tidak menghasikan data maka akan mengembalikan nilai false Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator EXISTS SELECT NamaPen FROM Penerbit p WHERE EXISTS (SELECT * FROM Buku b WHERE b.kodepen= p.kodepen AND jenis='business') Output yang dihasilkan dari perintah Query tersebut adalah: Tabel 7-19 Hasil Query Operator Exists NamaPen New Moon Books Algodata Infosistems Jika operator EXISTS ditambahkan operator NOT maka akan menjadi NOT EXISTS. hal ini akan memberikan nilai kebalikan dari hasil yang didapat dengan menggunakan perintah EXISTS SELECT NamaPen FROM Penerbit p WHERE NOT EXISTS (SELECT * FROM Buku b WHERE b.kodepen= p.kodepen AND jenis='business') Output yang dihasilkan dari perintah Query tersebut adalah: 136 Perancangan Basis data

151 Tabel 7-20 Hasil Query Operator Not Exists NamaPen Binnet & Hardley Five Lakes Publishing Ramona Publishers GGG&G Scootney Books Lucerne Publishing Operator Komporasi Subquery memungkinkan juga menggunakan operator komparasi yang terdiri dari =, < >, >, > =, <,! >,! <, or < =. Berbeda dengan operator sebelum penggunaaan operator ini subquery harus menghasilkan data tunggal yang menjadi parameter untuk query pemanggilnya. Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator komparasi = SELECT NamaPeng FROM Pengarang WHERE KotaTinggal = (SELECT Kota FROM Penerbit WHERE namapen='algodata Infosistems') Output yang dihasilkan dari perintah Query tersebut adalah: Tabel 7-21 Hasil Query Operator Komparasi NamaPeng Cheryl Carson Abraham Bennet Operator ANY dan ALL Penggunaan operator ini dipadukan dengan operator relasi sehingga nanti akan terbentuk >ANY, =ANY, <> ANY, >ALL dan <>ALL Perancangan Basis data 137

152 >ANY mengadung arti bahwa akan mengambil nilai lebih besarnya dari nilai terendah yang ada dalam list tersebut. contoh >ANY (1,2,3) maka nilai lebih besarnya adalah 1 >ALL mengandung arti bahwa akan mengambil nilai lebih besarnya dari nilai tertinggi yang ada dalam lsit tersebut. Contoh >ALL (1,2,3) maka nilai lebih besarnya adalah 3 =ANY pada dasarnya sama dengan fungsi operator IN yaitu akan menyamakan apa yang ada dala list sebagai hasil dari subquerynya. <>ANY tidak serta merta sama dengan NOT IN, hal ini berbeda karena <>ANY menghasilkan not = a or not = b, sementara NOT IN menghasilkan not = a and not = b. <>ALL pengertianya sama dengan NOT IN Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator <>ANY SELECT NamaPeng FROM Pengarang WHERE KotaTinggal <>ANY (SELECT Kota FROM Penerbit) Tabel 7-22 Hasil Query Operator ANY NamaPeng Johnson White Marjorie Green Cheryl Carson Michael O'Leary Dean Straight Meander Smith Abraham Bennet Ann Dull Burt Gringlesby Charlene Locksley 138 Perancangan Basis data

153 Rangkuman 1. Structure Query Language (SQL) menyediakan banyak fungsi-fungsi yang siap digunakan oleh penggunaya, baik pungsi untuk melakukan pertungan, fungsi penangan string, fungsi penagan tanggal dan fungsifungsi untuk proses agregasi data 2. Fungsi agregasi data akan berhubungan dengan klausa GROUP BY untuk membuat kelompok data jika terdapat kolom yang tidak diagregasi akan ditampilkan sebagai hasil query 3. Klausa GROUP BY mempunyai parameter untuk mengseksi data menggunakan HAVING 4. Membuat hubungan antar tabel dapat dilakukan dengan perpaduan antara FROM dan WHERE pada perintah select. 5. Selain itu hubungan antar tabel dapat menggunakan perintah JOIN 6. Perintah JOIN terdiiri dari peritah : a. Inner Join b. Outher Join i. Left Join ii. Right Join iii. Full Join 7. INNER JOIN ini mensyaratkan data di kedua belah tabel singkon, Data yang tidak singkron tidak akan ditampilkan sebagai hasil query tersebut 8. Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada diseblah kiri) walaupun dalam relasi tidak singkron dengan nama_tabel_2 (disebelah kanan) 9. Perintah RIGHT JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_2 (yang ada disebalah kanan) walaupun dalam relasi tidak singkron dengan nama_tabel_1 (disebelah kiri). 10. Perintah FULL JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada disebalah kiri) dan akan menampilkan seluruh baris nama_tabel_1 (disebelah kanan) walaupun ada tidak singkron diantara keduanya. Perancangan Basis data 139

154 11. Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT, UPDATE dan DELETE atau dengan kata lain subquery adalah query dalam query. Umumnya perintah sub Query ini mengikuti format sebagai berikut: a. WHERE ekspresi [NOT] IN (subquery) b. WHERE ekspresi operator perbandingan [ANY ALL] (subquery) c. WHERE [NOT] EXISTS (subquery) 12. Subquery menggunakan operator IN, Not IN, Exists, Not Exists, Any, All dan operator relasi 13. Subquery dengan menggunakan operator IN adalah akan me-list hasil dari subquery untuk dibandingkan dengan ekspresi where yang diberikan. 14. Operator Exists ini akan melakukan pemeriksaan terhadap hasil subqery apakah menghasilkan baris-data atau tidak, jika subquery tersebut menghasilkan baris data maka akan mengembalikan nilai true dan sebaliknya jika tidak menghasikan data maka akan mengembalikan nilai false 15. Operator komparasi yang terdiri dari =, < >, >, > =, <,! >,! <, or < =. Berbeda dengan operator sebelum penggunaaan operator ini subquery harus menghasilkan data tunggal yang menjadi parameter untuk query pemanggilnya. 16. Penggunaan operator ini dipadukan dengan operator relasi sehingga nanti akan terbentuk >ANY, =ANY, <> ANY, >ALL dan <>ALL 140 Perancangan Basis data

155 Latihan 1. Jelaskan kegunaan dari masing-masing fungsi agregasi 2. Berikan contoh perintah query yang menggunakan GROUP BY untuk menghitung jumlah mahasiswa laki-laki atau perempuan per angkatan 3. Jelaskan dan berikan contoh untuk klausa HAVING 4. Jelaskan perbedaan dari INNER JOIN dan OUTER JOIN dan berikan contohnya 5. Untuk kasus-kasus seperti apakah Left Join dan Right Join ini akan digunakan 6. Jelaskan karateristik operator Exists yang ada dalam sebuah subquery 7. Jelaskan perbedaan antara operator IN dan ANY dalam sebah subquery 8. Dengan menggunakan struktur basidata yang sudah dibentuk pada tugas sebelumnya maka buat perintah-perintah SQL : a. Menghitung jumlah karyawan berdasarkan golongan tertentu b. Total gaji seluruh karyawan berdasarkan pada golongan yang ada pada tabel gaji c. Menghitung kehadiran karyawan per bulan aktif d. Menampilkan golongan dan pangkat karyawan e. Menampilkan karyawan yang tidak hadir pada tanggal tertentu Perancangan Basis data 141

156 Kuis Benar Salah 1. Fungsi-fungsi aggregation tidak dapt digunakan untuk kondisi pencarian dalam Where 2. Hasil dari perintah select dengan menggunakan fungsi fungsi aggregation akan mengembalikan hanya satu baris data saja 3. Merelasikan antar tabel hanya dapat dilakukan dengan perintah Inner Join saja 4. Pengertian penulisan Left Join sama dengan Left Outer Join 5. Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada tabel yang ada disebelah kiri walaupun dalam relasi tidak singkron dengan tabel disebelah kanan 6. Penulisan alias tabel hanya dapat dilakukan dengan menabahkan keyword AS 7. Join tabel hanya dapat dilakukan untuk tabel yang dapat dihubungkan salah satu dari kolom data dikedua table 8. Full join adalah sama dengan menampilkan seluruh isi data dari kedua sisi table 9. operator exists pada sub query hanya memeriksa keberadaan baris data pada sub query tersebut dengan mengembalikan nilai true jika ada dan false jika tidak ada. 10. Operator <>ANY pengertianya sama dengan NOT IN 142 Perancangan Basis data

157 Pilihan Ganda Petunjuk: Pilihlah jawaban yang paling tepat! 1 Perhatikan penyataan berikut: 3. Fungsi agregasi menghasilkan 1 baris data saja 4. Kodisi filter untuk data pada agregasi tidak menggunaka Where tetapi Having A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah 2 Perhatikan penyataan berikut: 1. Perintah Join tidak ada dalam struktur penulisan Select 2. Outer Join akan menampilkan data Null pada data yang tidak ketemu di tabel pembandingnya A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah 3 Perhatikan penyataan berikut: 1. Fungsi agregasi menghasilkan 1 baris data saja 2. Kodisi filter untuk data pada agregasi tidak menggunaka Where tetapi Having A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah Perancangan Basis data 143

158 4 Pernyataan berikut ini : Perintah ini akan menghasilkan seluruh baris data pada tabel yang ada disebelah kiri walaupun dalam relasi tidak singkron dengan tabel disebelah kanan A. JOIN D. Full Join B. Left Join E. tidak ada jawaban C. Right Join 5 Pernyataan berikut ini : Subquery dengan menggunakan operator akan me-list hasil dari subquery untuk dibandingkan dengan ekspresi where yang diberikan. Subquery akan dijalankan terlebih dahulu baru kemudian query pemanggilnya akan dijalankan. A. operator IN D. operator any B. operator exists E. tidak ada jawaban C. operator not exists 6 Jika ada perintah SQL sbb: SELECT Nim, Nama, NamaJur FROM Mahasiswa, Jurusan WHERE Perintah yang harus diberikan pada Where.. A. where mahasiswa.kodejur = D. kodejur jurusan.kodejur B. kodejur=kodejur E. tidak ada jawaban C. m.kodejur = j.kodejur Untuk soal no 7: KodePeng NamaPeng Kota Johnson White NULL Marjorie Green NULL Cheryl Carson Berkeley Michael O'Leary NULL 144 Perancangan Basis data

159 7 Dengan menggunakan tabel diatas perintah subquery yang dibuat adalah: SELECT KodePeng, NamaPeng, Kota FROM Pengarang p Penerbit t ON p.kotatinggal=t.kota Perintah pada bagian kosong adalah A. Inner Join D. Right Join B. Left Join E. full Join C. Join On 8 Jika ada kondisi operator ANY sbb: >ANY (1,2,3,4) Yang dianggap nilai tersebarnya oleh perintah Any ini adalah: A. 1 D. 4 B. 2 E. >4 C. 3 9 Jika ada kondisi where kode <>ALL maka dapat diganti dengan operator: A. Not ANY D. ANY B. NOT IN E. ALL C. NOT ALL 10 Perintah SQL ini akan menimbulkan error SELECT KodeJur, COUNT(Nim) as Jumlah FROM Mahasiswa Untuk memperbaikinya maka perlu ditambahkan A. WHERE KodeJur D. ORDER BY KodeJur B. GROUP KodeJur E. salah semua C.GROUP BY KodeJur Perancangan Basis data 145

160 8 PENGENALAN ARSITEKTUR BASIS DATA Overview Sistem database merupakan satu kesatuan antara DBMS dan database nya. DBMS merupakan paket software yang digunakan untuk mengatur akses data ke database. Bagaimana struktur DBMS di dalamnya dan arsitektur sistem database diimplementasikan, akan diterangkan lebih detail dalam bab ini. Tujuan Mahasiswa memahami DBMS beserta komponen-komponen yang membangunnya. 146 Perancangan Basis data

161 8.1 Pendahuluan Sistem database merupakan satu kesatuan dari Database Management System (DBMS) dan database. DBMS adalah kumpulan dari program-program yang mengijinkan user untuk melakukan create, maintain, dan control terhadap semua kegiatan yang mengakses database. Tujuan utamanya adalah untuk menyediakan sistem yang aman, nyaman, dan efisien untuk user dalam mengakses dan menyimpan informasi. 8.2 Struktur DBMS Secara umum struktur DBMS terdiri dari beberapa modul yang masing-masing mempunyai tanggung jawab dalam membentuk struktur sistem secara keseluruhan. Beberapa fungsi dari DBMS mungkin telah diberikan oleh sistem operasi. Setiap produk DBMS mempunyai karakteristik sistem sendiri-sendiri. Struktur penyimpanan logic pada Oracle dan MS SQL Server agak berbeda. Struktur logic terkecil pada Oracle adalah block, sedangkan pada MS SQL Server adalah page. Perancangan Basis data 147

162 Gambar 8-1 Struktur DBMS secara umum Dua bagian utama dalam struktur DBMS ini adalah query processor dan storage manager. Query processor merupakan bagian yang merubah queri level tinggi menjadi instruksi level rendah. Komponen-komponen Query Processor adalah : DML compiler, menerjemahkan perintah DML pada suatu query ke dalam instruksi level rendah yang dimengerti oleh query evaluation engine. Embedded DML precompiler, mengkonversi perintah DML yang embed pada sebuah program aplikasi ke procedure call yang normal dalam bahasa host. DDL interpreter, menginterpretasikan perintah DDL dan mencatatnya dalam sekumpulan tabel yang mengandung metadata. 148 Perancangan Basis data

163 Query evaluation engine, mengeksekusi instruksi level rendah yang dihasilkan oleh DML compiler. Storage manager menyediakan antarmuka antara data level rendah yang tersimpan dalam basis data dan program aplikasi serta query yang diberikan ke sistem. Bagian ini terdiri dari: Manajer otorisasi dan integritas, menguji integritas dari constraint yang ada serta otoritas user untuk mengakses data. Manajer transaksi, meyakinkan basis data tetap pada kondisi konsisten (benar) saat terjadi kegagalan sistem serta meyakinkan bahawa eksekusi dari transaksi yang konkuren (terjadi bersamaan ) berlangsung tanpa adanya konflik. Manajer file, mengelola alokasi ruang pada disk penyimpanan struktur data yang digunakan untuk mewakili informasi yang disimpan pada disk. Manajer buffer, bertanggung jawab untuk mengambil data dari disk penyimpanan ke dalam memori utama serta menetukan data yang mana yang akan ditempatkan di memory 8.3 Produk-produk DBMS Produk-produk DBMS yang ada di pasaran sekarang ini cukup banyak dan beragam. Para pembuat software DBMS menawarkan fitur-fitur yang bervariasi. Contoh produk-produk DBMS yang telah banyak pemakainya diantaranya adalah ORACLE, DB2, MS SQL Server, MySQL, dan lain-lain. 8.4 Database Oracle Database Oracle merupakan salah satu produk DBMS yang dikembangkan oleh Oracle Corporation. Versi terakhir yang sudah direlease ke pasaran adalah Oracle versi Arsitektur Database Oracle Oracle server adalah DBMS yang menyediakan pendekatan menyeluruh dan terbuka pada information management. Dalam hal ini, Oracle server harus bisa mengatur data dalam jumlah yang banyak dalam sistem multi user, mencegah pengaksesan data oleh user yang tidak punya otoritas, serta melakukan recovery secara efisien apabila terjadi kegagalan pada sistem. Perancangan Basis data 149

164 Oracle server terdiri dari Oracle instance dan Oracle database, dimana Oracle Instance merupakan media untuk mengakses Oracle Database Struktur Database Oracle Database Oracle dibangun berdasarkan beberapa struktur yaitu memory, process, dan storage. Ketiga struktur ini merupakan komponenkomponen yang berinterrelasi satu dengan yang lainnya. Oracle database menggunakan struktur memory dan struktur proses untuk mengatur dan mengakses database. Semua struktur memory berada dalam main memory dari komputer dimana database server berada. Proses adalah job yang bekerja di memori dan merupakan suatu mekanisme dalam sistem operasi yang bisa mengeksekusi satu seri program. 150 Perancangan Basis data

165 Gambar 8-2 Struktur Database Oracle Oracle Instance Bila suatu database dijalankan pada database server, software Oracle akan mengalokasikan shared memory area yang disebut Sistem Global Area (SGA) dan mengaktifkan beberapa Oracle Background processes. Kombinasi dari SGA dan Oracle processes disebut Oracle instance. Bila instance telah di start, software Oracle akan menghubungkan instance dengan suatu database, dan prosesnya disebut mounting database. Sejak itulah database siap untuk dibuka sehingga bisa diakses oleh user yang mempunyai hak akses. Beberapa instance dapat dijalankan secara bersamaan pada komputer yang sama, dimana setiap instance mengakses masing-masing databasenya. Gambar 8-3 Oracle Instance Oracle Memory Structure Struktur memori dalam Oracle terdiri dari dua, yaitu: Sistem Global Area (SGA) : di-share oleh semua server dan Background process Perancangan Basis data 151

166 Program Global area (PGA) : Private untuk masing-masing server dan Background process. Satu PGA untuk masing-masing proses. Gambar 8-4 Oracle Memory SGA SGA merupakan area memori yang berisi data dan control information untuk instance, dimana struktur datanya meliputi : - Database buffer cache: Cache block data yang diambil dari database - Redo log buffer: Cache informasi redo, digunakan untuk recovery instance, sampai informasi ini ditulis ke penyimpanan fisik redo log files dalam disk - Shared pool: Cache beberapa program yang dapat di share oleh user - Large pool: merupakan area opsional yang menyediakan alokasi memori yang besar untuk proses yang besar, seperti operasi backup dan recovery, dan proses I/O server - Java pool: digunakan untuk semua session Java code dan data dalam Java Virtual Machine (JVM) - Streams pool: digunakan oleh Oracle Streams PGA Program Global Area atau Process Global Area (PGA) adalah area memori yang meliputi data dan control information untuk setiap proses. PGA dialokasikan ketika suatu proses dimulai dan akan di-dealokasikan ketika proses itu selesai. Satu PGA digunakan hanya oleh satu proses. 152 Perancangan Basis data

167 8.4.5 Oracle Processes Structure Gambar 8-5 Oracle Processes Oracle processes structure terdiri dari: User process : dimulai pada saat user meminta koneksi ke Oracle Server Server process: terhubung ke Oracle Instance, dimulai pada saat user mulai terhubungkan dengan Oracle Server Background process: dimulai pada saat Oracle Instance di-start. User Process User database yang akan mengakses informasi dari database harus melakukan koneksi dulu ke Oracle server. Ini dapat dilakukan dengan menggunakan tool, seperti SQL*Plus, dan user process dimulai. User process tidak berinteraksi langsung dengan Oracle server, tetapi melalui User Program Interface (UPI) yang meng-create session dan mengaktifkan server process. Server Process Ketika user telah terkoneksi, server process dimulai untuk menangani permintaan dari user process. Server process dapat berupa server process khusus atau server process yang digunakan bersama (shared server process). Perancangan Basis data 153

168 Dalam server yang khusus, server process melayani permintaan dari single user process. Ketika koneksi putus, server process juga selesai. Dalam shared server, server process melayani permintaan dari beberapa user process. Server process berkomunikasi dengan Oracle server menggunakan Oracle Program Interface (OPI). Background Process Background process merupakan bagian dari Oracle Instance, yang terdiri dari beberapa proses. Proses-proses yang sering digunakan adalah: - Sistem Monitor (SMON): melakukan crash recovery bila instance gagal di-start. - Process Monitor (PMON): melakukan process cleanup bila user process gagal. - Database Writer (DBWn): menulis blocks yang berubah dari database buffer cache ke data files dalam disk - Checkpoint (CKPT): meng-update semua data files dan control files database untuk memberi tanda checkpoint yang terakhir - LogWriter (LGWR): menulis redo log ke disk - Archiver (ARCn): meng-copi redo log files ke tempat penyimpanan bila log switch terjadi Oracle Storage Structure Oracle database mempunyai dua jenis struktur penyimpanan, yaitu struktur logic dan struktur fisik. Logical Structure Struktur logic dapat dilihat pada gambar di bawah ini dimana urutan terbesar adalah database dan yang terkecil adalah block. Satu database terdiri dari beberapa tablespace, dan setiap tablespace merupakan gabungan dari beberapa segment. Physical Structure Struktur fisik berupa data file, dimana satu atau lebih data file dibuat untuk setiap tablespace sehingga semua struktur logic akan tersimpan dalam struktur fisik. Untuk tablespace TEMPORARY, data file nya tersimpan dalam file temporer. 154 Perancangan Basis data

169 Struktur fisik juga meliputi file-file yang mendukung berjalannya Oracle database, yaitu: - Control files: berisi data tentang informasi struktur fisik database. File ini sangat penting, karena bila file ini tidak ada, kita tidak bisa mengakses database. - Data files: berisi data user atau aplikasi database. - Online redo log files: digunakan untuk recovery instance database. - Parameter file: digunakan untuk mendefinisikan bagaimana konfigurasi instance pada saat start-up - Password file: mengijinkan user untuk terhubung secara remote ke database dan untuk melakukan tugas administrasi. - Backup files: digunakan untuk recovery database. - Archive log files: berisi urutan perubahan data yang dibuat oleh instance. Bersama dengan data backup, digunakan untuk merecover data file yang hilang. Gambar 8-6 Oracle Storage Perancangan Basis data 155

170 8.5 Arsitektur Sistem database Arsitektur suatu database sangat bergantung kepada sistem komputer dimana database itu dijalankan. Kila tidak bisa membangun sistem database yang terdistribusi tetapi sistem komputernya tersentralisasi. Database functionality terdiri dari front-end dan back-end, dimana front-end terdiri dari tool seperti forms, report-writers, dan fasilitas graphical user Interface, sedangkan back-end mengatur struktur akses, evaluasi queri dan optimisasi, kontrol konkurensi dan recovery. Gambar 8-7 Database Functionality Antar muka (Interface) antara front-end dan back-end melalui SQL atau application program Interface(API). Berdasarkan sistem komputer yang dibangun, maka sistem database dapat diklasifikasikan sebagai berikut: - Centralized Sistems - Client-Server Sistems - Parallel Sistems - Distributed Sistems - Network Types 156 Perancangan Basis data

171 8.5.1 Centralized Sistems Gambar 8-8 Centralized Sistem Centralized Sistem (Sistem terpusat) berjalan pada sistem computer tunggal dan tidak berinteraksi dengan sistem yang lainnya. Sistem ini terdiri dari satu CPU dan beberapa device controllers yang dihubungkan melalui sistem bus, sehingga bisa mengakses shared memory. Sistem terpusat ini dapat dilakukan dengan single-user sistem atau multi-user sistem. Contoh dari Single-user sistem adalah personal computer atau workstation yang terdiri dari unit desk-top, single user, biasanya hanya mempunyai satu CPU dan satu atau dua hard disks. Sistem Operasinya hanya melayani satu user saja. Multi-user sistem didukung oleh beberapa disks, beberapa memory, multi CPU, dan OSnya bisa melayani multi-user. User terhubungkan ke sistem melalui terminal. Sistem multi-user ini sering disebut server sistem Client-Server Sistems Gambar 8-9 Client-Server Sistem Perancangan Basis data 157

172 Dalam sistem Client-Server, client dan server dihubungkan oleh network dimana server akan memproses permintaan dari client. Database functionality di client dan server dapat berupa front-end atau back-end. Server sistems dapat dikatagorikan ke dalam dua jenis, yaitu: - transaction server atau - data server Transaction Server Banyak digunakan dalam sistem database relasional Disebut juga query server sistems atau SQL server sistems clients mengirim permintaan ke sistem server dimana transaksi akan dieksekusi, dan hasilnya dikirim kembali ke client Permintaan ditulis dalam SQL, dan dikomunikasikan ke server melalui mekanisme remote procedure call (RPC) Data Server Digunakan dalam sistem database object-oriented Menggunakan LAN dengan koneksi yang sangat cepat antara client dan server Data dikirim dari server ke komputer client dimana pemrosesan data dilakukan, dan hasilnya dikirim kembali ke server Arsitektur ini membutuhkan full back-end functionality di komputer client Parallel Sistems Sistem database Parallel terdiri dari multiple processors dan multiple disks yang dihubungkan oleh network yang berinterkoneksi dengan cepat. Sistem ini dapat diukur performancenya berdasarkan: - throughput --- jumlah tasks yang bisa diselesaikan dalam interval waktu yang ditentukan - response time --- jumlah waktu yang digunakan untuk menyelesaikan suatu task Arsitektur sistem parallel ini terdiri dari : - Shared memory -- processors menggunakan satu memori bersama-sama - Shared disk -- processors menggunakan satu disk bersama-sama 158 Perancangan Basis data

173 - Shared nothing -- memory dan disk tidak digunakan bersamasama - Hierarchical merupakan campuran ketiga arsitektur di atas dengan shared nothing adalah level tertinggi. Gambar 8-10 Parallel Sistems Distributed Sistems Sistem terdistribusi menyimpan data secara tersebar di beberapa server database. Server-server ini dihubungkan melalui interkoneksi network. Data di server-server tersebut digunakan bersama-sama oleh user. Gambar 8-11 Distributed Sistem Perancangan Basis data 159

174 8.5.5 Network types Local-area networks (LANs) terdiri dari beberapa processors yang tersebar dalam area geografi yang kecil, seperti dalam suatu gedung atau beberapa gedung yang berdekatan Wide-area networks (WANs) terdiri dari beberapa processors yang tersebar dalam area geografi yang luas 160 Perancangan Basis data

175 Rangkuman 1. Database Sistems meliputi Database Management System (DBMS) yang berupa paket software dan database yang digunakan untuk menyimpan data. 2. DBMS mempunyai struktur dimana komponen utamanya adalah query processor dan storage manager 3. Oracle Database merupakan nama produk DBMS dimana satu Oracle server terdiri dari Oracle Instance dan Oracle Database. 4. Arsitektur Oracle Database terdiri dari tiga struktur, yaitu struktur memori, struktur proses, dan struktur penyimpanan. 5. Berdasarkan sistem komputer yang dibangun, maka sistem database dapat diklasifikasikan sebagai Centralized Sistems, Client-Server Sistems, Parallel Sistems, Distributed Sistems, dan Network Types. Perancangan Basis data 161

176 Kuis Benar Salah 1. DBMS adalah merupakan bagian dari sistem database 2. Server process dalam Oracle Database akan selalu tersedia selama instance nya berjalan. 3. Yang membedakan SGA dari PGA adalah ukuran(size) nya. 4. Satuan terkecil dalam struktur penyimpanan fisik Oracle adalah block. 5. Arsitektur sistem database yang membutuhkan full back-end functionality di komputer client adalah distributed sistems 6. Redo log buffer merupakan bagian dari struktur memori Oracle 7. Throughput ikut menentukan performansi dari parallel sistems. 162 Perancangan Basis data

177 Pilihan Ganda 1. Manakah pernyataan di bawah ini yang benar: a. Oracle database terdiri dari Oracle Server dan Oracle Instance b. Oracle Server terdiri dari Oracle Database dan Oracle Instance c. Oracle Instance terdiri dari Oracle Server dan Oracle Database d. Semua benar e. Semua salah 2. Yang merupakan produk DBMS adalah: a. Unix b. MS Window c. MySQL d. Linux 3. Yang tidak termasuk dalam struktur memori Oracle adalah: a. SGA b. PGA c. Server process d. Background process 4. Ukuran satuan terkecil tempat penyimpanan fisik pada Oracle adalah: a. Segmen b. Page c. Block d. Kbytes 5. Redo Log Buffer merupakan bagian dari: a. PGA b. SGA c. Server Process d. Background process Perancangan Basis data 163

178 6. Bila sebuah perusahaan mempunyai kantor-kantor cabang diseluruh Indonesia, maka arsitektur sistem database yang paling cocok adalah: a. Centralized sistems b. Client-server sistems c. Parallel sistems d. Network Types 7. Background process akan mulai berjalan bila: a. Dilakukan start pada Background process b. Dilakukan start terhadap instance Oracle c. User mulai terhubung ke database d. Semua salah 164 Perancangan Basis data

179 Latihan 1. Jelaskan komponen-komponen apa saja yang terdapat dalam struktur DBMS. 2. Jelaskan proses yang terjadi bila user mengakses database Oracle. 3. Dalam arsitektur sistem database, sebuntukan jenis-jenis dari sistem database. Perancangan Basis data 165

180 9 APLIKASI BASIS DATA Overview Basis Data Relasional telah digunakan selama lebih dari dua dekade. Telah banyak sekali aplikasi-aplikasi basis data relasional diterapkan dalam lingkungan komersial, dengan mendukung tugas-tugas seperti pengolahan transaksi di bank-bank, pasar modal, penjualan dan reservasi untuk beragam bisnis, inventori dan penggajian untuk hampir semua perusahaan. Kali ini kita akan membahas lebih jauh aplikasi-aplikasi baru, yang akhir-akhir ini banyak berkembang. Tujuan Mahasiswa mengetahui dan mengerti tentang aplikasi-aplikasi basis data yang akhir-akhir ini banyak berkembang seperti: 1. Sistem Pendukung Keputusan (Decision Support Sistem/DSS) 2. Basis Data Spasial (Spatial Database) 3. Basis Data untuk Multimedia (Multimedia Database) 4. Basis Data Bergerak (Mobile Database) 5. Sistem Pencarian Informasi (Information-Retrieval Sistem) 6. Sistem Informasi Terdistribusi (Distributed Information Sistem) 7. World Wide Web 166 Perancangan Basis data

181 9.1 Pendahuluan Basis Data Relasional telah digunakan selama lebih dari dua dekade. Telah banyak sekali aplikasi-aplikasi basis data relasional diterapkan dalam lingkungan komersial, dengan mendukung tugas-tugas seperti pengolahan transaksi di bank-bank, pasar modal, penjualan dan reservasi untuk beragam bisnis, inventori dan penggajian untuk hampir semua perusahaan. Kali ini kita akan membahas lebih jauh aplikasi-aplikasi baru, yang akhir-akhir ini banyak berkembang. Aplikasi-aplikasi tersebut meliputi Sistem Pendukung Keputusan (Decision Support System/DSS), aplikasi yang memanfaatkan Basis Data Spasial (Spatial Database), Basis Data untuk Multimedia (Multimedia Database) atau. Basis Data Bergerak (Mobile Database), demikian juga dengan Sistem Pencarian Informasi (Information-Retrieval Sistem) yang berkaitan dengan dokumen, Sistem Informasi Terdistribusi (Distributed Information Sistem) dan World Wide Web yang semakin luas pemakaiannya dalam dunia. Internet. Kesemua itu akan kita bahas satu per satu dalam bab terakhir buku ini. 9.2 Sistem Pendukung Keputusan (Decision-Support Sistem) Secara umum aplikasi-aplikasi basis data dapat kita bedakan kedalam dua kelompok, yaitu pemrosesan transaksi (transaction processing) dan pendukung keputusan (decision support). Berbagai penjelasan sebelumnya di buku ini, lebih banyak terkonsentrasi pada sistem pemrosesan transaksi, karena memang saat ini aplikasi demikian lebih luas penggunaannya di berbagai perusahaan/ organisasi. Aktivitas pemrosesan transaksi banyak sekali mengelola dan memproduksi data/informasi. Basis data di sebuah perusahaan perdagangan retail yang berisi data barang, pelanggan dan transaksinya dalam kurun walau tertentu misalnya, bisa mencapai ukuran gigabyte atau bahkan terabyte. Data transaksi yang harus dikelola untuk pedagang retail semacam ini bisa meliputi identifikasi pelanggan (seperti nomor kartu kredit atau nomor kartu langganan), barang-barang yang dibeli (yang biasanya diwakili oleh kode barang), jumlah uang yang dibayarkan, dan tanggal transaksi. Informasi detail tentang satuan barang yang dibeli dapat meliputi jenis barang, produsennya, nomor model, warna dan ukurannya. Sementara informasi detail yang berhubungan dengan pelanggan dapat meliputi sejarah kredit, pendapatan per tahun, tempat tinggal, usia dan bahkan latar belakang pendidikan. Basis data yang berukuran besar semacam itu dapat menjadi harta Perancangan Basis data 167

182 karun informasi yang jika diolah lebih lanjut dapat digunakan untuk membantu menghasilkan keputusan-keputusan bisnis, seperti item barang apa saja yang harus disediakan, atau potongan harga seperti apa yang bisa ditawarkan. Sebagai contoh, pedagang retail bisa memperhatikan serbuan tiba-tiba (yang menunjukkan adanya sebuah kecenderungan) dalam pembelian baju-baju model tertentu di tokonya, sehingga baju model tersebut cepat habis dalam kurun waktu yang singkat. Oleh karena itu pedagang dapat memulai penyimpanan banyak persediaan (stocking) untuk baju-baju tersebut di tokonya. Contoh lainnya, sebuah perusahaan asuransi kendaraan menyimpan data tentang kecelakaan kendaraan milik nasabahnya Serta penanganan bengkel yang ditunjuk untuk memperbaiki kerusakan yang terjadi. Perusahaan tersebut juga menanyakan kembali kepada nasabahnya bagaimana tingkat kepuasan mereka terhadap penanganan bengkel-bengkel yang ditunjuk tersebut. Selama jangka waktu tertentu, perusahaan asuransi telah memiliki data/informasi tentang hal itu, yang jika diproses lebih lanjut dapat dimanfaatkan untuk merekomendasikan bengkel mama saja yang dapat terus dijadikan partner perusahaan asuransi (berdasarkan tingginya tingkat kepuasan nasabah dan besarnya tagihan dari bengkel kepada perusahaan asuransi). Pada kedua kasus, perusahaan telah mengidentifikasi adanya pola dalam perilaku konsumen, dan menggunakan pola itu untuk membuat keputusan bisnis. Penyimpanan dan pengambilan data untuk mendukung pengambilan keputusan menghasilkan sejumlah isu penting sebagai berikut : Permasalahan yang tidak dapat diselesaikan oleh SQL. Meskipun banyak query yang digunakan untuk mendukung pengambilan keputusan dapat ditulis dalam SQL, tetapi ada pula. query yang tidak dapat diekspresikan dengan mudah atau bahkan sama sekali tidak dapat dinyatakan dalam SQL. Masalah performansi pengaksesan data. Bahasa-bahasa query basis data sebenarnya tidak cocok untuk kepentingan performansi dalam analisis data statistikal yang demikian rinci. Untuk itu, ada sejumlah program paket yang sudah jadi, seperti SPSS, yang dapat membantu dalam analisis data statistik. Program paket ini dapat dihubungkan dengan basis data, sehingga memungkinkan basis data berukuran besar disimpan dalam media penyimpanan dan diambil dengan efisien untuk kepentingan analisis. Penemuan Knowledge. Data yang demikian banyak dapat memberi makna tertentu (knowledge) bagi pemiliknya. Untuk keperluan itu, teknikteknik pencarian makna (knowledge) yang dibangun oleh komunitas Inteligensia Buatan (Artificial Intelligence) berusaha menemukan secara 168 Perancangan Basis data

183 otomatis aturan-aturan statistik dan pola-pola. data. Penggalian data (Data Mining) juga acap digunakan untuk mengkombinasikan gagasangagasan tentang penemuan knowledge tersebut dengan teknik-teknik implementasi yang efisien yang memungkinkan mereka digunakan pada basis data yang sangat besar. Isolasi Data. Perusahaan-perusahaan besar umumnya telah memilahmilah sumber-sumber data yang mereka perlukan. Sumber-sumber tersebut dapat menyimpan data dengan skema yang berbeda-beda. Demi alasan performansi (dan juga untuk alasan sekuriti), sumbersumber data umumnya tidak mengijinkan bagian-bagian lain dalam perusahaan untuk melakukan pengambilan data yang dibutuhkan. Penggudangan Data (Datawarehouse). Untuk menjalankan query-query secara efisien pada sumber data Yang terpisah-pisah, banyak perusahaan yang mulai membangun gudang-gudang data (data warehouses). Gudanggudang data ini menerima data dari banyak sumber dalam skema yang unik di sebuah lokasi. Kemudian, mereka menyediakan kepada pemakai, sebuah antar muka ke data tersebut Analisis Data Meskipun analisis statistikal yang kompleks sebetulnya merupakan urusan dari program-program paket untuk statistik, namun basis data harus mendukung bentuk-bentuk analisis data yang sederhana, yang umum digunakan. Karena data yang disimpan dalam basis data umumnya besar sekali, mereka perlu disatukan dan disimpulkan lebih dulu (summarizing) dalam beberapa bentuk jika kita harus menghasilkan informasi yang dapat dimanfaatkan oleh pemakai. Fungsi-fungsi agregasi umum digunakan untuk keperluan semacam ini. Fungsi agregasi dalam SQL relatif terbatas, karena itu sejumlah perluasan telah diimplementasikan oleh beberapa DBMS. Sebagai contoh, meskipun SQL hanya mendefinisikan sejumlah fungsi agregasi, banyak DBMS menyediakan sekumpulan fungsi yang lebih kaya, yang meliputi penentuan varians, median, modus dan sebagainya yang banyak dimanfaatkan dalam dunia statistik. Bahkan ada juga sistem Yang membolehkan para pemakainya untuk menambahkan sendiri fungsi-fungsi baru. Histogram juga sering digunakan untuk analisis data. Sebuah histogram membagi nilai-nilai yang diperoleh dari sebuah atribut ke dalam jangkauanjangkauan nilai, dan menghitung agregasinya, seperti total nilai untuk setiap jangkauan/kelompok nilai tersebut. Sebagai contoh, sebuah histogram untuk nilai-nilai gaji dapat menghitung sejumlah orang yang memiliki gaji untuk Perancangan Basis data 169

184 jangkauan nilai , , dan di atas Dapat dikatakan tidak mungkin menggunakan SQL standar untuk membentuk sebuah histogram secara efisien. Perluasan sintaks SQL yang memungkinkan fungsi-fungsi baru digunakan dalam klausa groupby - dapat memberikan solusi pada keinginan tersebut. Pada contoh pengelompokan gaji karyawan tersebut, kita dapat menerapkan klausa tersebut sebagai berikut : select kelompok_gaji, count(gaji) from karyawan group by N_tile (gaji, 6) as kelompok_gaji Pada contoh di atas, N_tile (gaji,6) membagi nilai-nilai dari gaji ke dalam 6 jangkauan (range) berturutan, dengan nilai jeda yang sama untuk setiap jangkauan. Dengan begitu, kelompok pertama akan memiliki nilai-nilai gaji terendah, sementara kelompok ke-6 akan berisis kelompok gaji tertinggi. Query di atas akan menghitung dan menghasilkan banyaknya karyawan untuk masing-masing kelompok gaji. Analisis statistik seringkali membutuhkan agregasi pada banyak atribut. Perhatikan sebuah aplikasi di mana sebuah toko ingin mengetahui baju jenis ape yang populer. Mari kita bayangkan bahwa baju dikelompokan berdasarkan warna dan ukurannya, dan bahwa kita memiliki sebuah tabel Pakaian dengan skema pakaian(wama, ukuran, jumlah). Untuk menganalisa tabel Pakaian berdasarkan warna (terang dan gelap) dan ukuran (S, M, L), seorang manajer dapat menginginkan untuk melihat data secara tabular sebagai berikut : Tabel 9-1 Contoh Cross-Tab S M L Total Terang Gelap Total Bentuk tabel di atas biasa dikenal dengan istilah cross-tabulation (crosstab), di mana data disusun dalam due dimensi, karena mereka didasarkan atas 2 atribut berbeda : ukuran dan warna. Secara umum, data dapat 170 Perancangan Basis data

185 direpresentasikan dalam bentuk array multidimensi (di mana atribut penentunya lebih dari 1), dengan sebuah nilai untuk tiap elemen dari array. Data semacam ini disebut data multidimensional. Data dalam sebuah cross-tab tidak dapat dihasilkan oleh sebuah query SQL, karena nilai-nilai totalnya diambil dari beberapa level berbeda. Kita juga dapat melihat dengan mudah bahwa cross-tab tidak sama dengan tabel relasional, seperti yang kita kenal selama ini. Kita dapat merepresentasikan data dalam bentuk relasional dengan menggunakan nilai khusus all untuk menyatakan subtotal, seperti yang ditunjukan di tabel berikut ini : Terang Terang Terang Terang Gelap Gelap Gelap Gelap all all all all Tabel 9-2 Tabel Relasional Warna Ukuran Jumlah S M L all S M L all S M L all Perhatikan pasangan (Terang, all, 53) dan (Gelap, all, 35). Kita bisa memperoleh pasangan ini dengan menghilangkan pasangan individual dengan nilai berbeda untuk ukuran, dan dengan mengganti nilai dari jumlah dengan sebuah agreasi sum. Ekspresi query-nya dapat kita nyatakan sebagai : select warna, sum(jumlah) from pakaian group by warna Kita dapat melakukan hal yang sama untuk mendapatkan subtotal untuk masing-masing ukuran. Dan akhirnya total untuk semua ukuran dan warna. Perancangan Basis data 171

186 Paling tidak, ada 3 ekspresi query berbeda yang harus kita berikan untuk mendapatkan semua informasi agregrasi yang mungkin. Tentu saja hal ini menjadi semakin tidak praktis untuk data multidimensional (atribut penentunya lebih dari 2). Walaupun kita dapat menghasilkan informasi seperti yang diperlihatkan di Gambar 14.2 dengan menggunakan SQL, tetapi melakukan hal itu memberikan kerumitan tersendiri. Query akan melibatkan penggunaan operasi unio, dan dapat menjadi panjang seiring dengan banyaknya atribut yang terlibat. Karena itu ada gagasan untuk memperkaya perintah SQL dengan operator cube. Sebagai contoh, berikut ini adalah query SQL yang akan menghasilkan tabel di atas. select warna, ukuran, sum(jumlah) from pakaian group by warna, ukuran with cube Penggalian Data (Data Mining) Secara sederhana Data Mining merujuk pada upaya pencarian informasi yang paling terkait, atau "menemukan pengetahuan", dari sejumlah besar data. Sebagaimana pencarian pengetahuan dalarn bidang Intelijensia Buatan (Artificial Intellligence), yang biasa disingkat dengan AI), Data Mining berusaha mendapatkan aturan-aturan dan pola-pola statistikal secara otomatis dari data. Akan tetapi, Data Mining berbeda dari sistem machine learning dalam AI karena Data Mining bekerja pada volume data yang besar sekali yang sebagian besar tersimpan di dalam disk. Pengetahuan yang ditemukan dari basis data dapat dinyatakan dengan sekumpulan aturan-aturan. Mula-mula kita menggambarkan struktur aturanaturan yang digunakan untuk merepresentasikan pengetahuan. Selanjutnya, kita pertimbangkan sejumlah klas data-mining, untuk menjelaskan kebutuhan untuk Data Mining. Kita dapat menemukan aturan-aturan dari basis data dengan menggunakan salah satu dari dua model berikut : Pada model pertama, pemakai dilibatkan secara langsung dalam proses pencarian pengetahuan. Pada model kedua, sistem bertanggung jawab untuk secara otomatis menemukan pengetahuan dari basis data, dengan mendeteksi polapola dan korelasi-korelasi dalam data. 172 Perancangan Basis data

187 Sistem pencarian-pengetahuan dapat pula merupakan gabungan dari kedua model, di mana sistem menemukan banyak aturan secara otomatis, sementara pemakai memandu proses dalam penemuan aturan. Dalam Data Mining, yang terpenting dan, sekaligus tersulit dari penjelasan di atas adalah bagaimana aturan-aturan (yang merepresentasikan pengetahuan) dari basis data tersebut dapat kita peroleh. Kesulitan ini seringkali membutuhkan intervensi dari pemakai (manusia). Pembahasan lebih jauh soal ini tidak akan dibahas dalam buku ini. Bagi yang tertarik lebih lanjut soal ini, bisa melihat literatur lain yang relevan, di samping juga mempelajari aspekaspek AI (Artificial Intelligence) Penggudangan Data (Data Warehousing) Perusahaan-perusahaan besar memiliki banyak lokasi, yang masingmasing dapat menghasilkan volume data yang besar. Sebagai contoh, jaringan perdagangan ritel yang besar memiliki toko-toko pada ratusan bahkan ribuan lokasi, begitu pula dengan perusahaan asuransi yang mungkin memiliki data dari ribuan cabang-cabangnya. Lebih jauh lagi, organisasi-organisasi besar memiliki struktur organisasi internal yang rumit, sebagai konsekuensi dari data yang berbeda di berbagai lokasi atau pemakaian beragam sistem operasi, dan dengan skema basis data yang juga berbeda. Sebagai contoh, data problem pabtik dan data keluhan pelanggan dapat dikelola dan disimpan secara berbeda oleh masing-masing cabang. Perbedaan tersebut bisa meliptiti platform (hardware dan software) yang digunakan, DBMS yang diterapkan hingga skema basis data yang dibentuk. Pengambil keputusan perusahaan membutuhkan akses ke informasi dari semua sumber-sumber itu. Mengatur query ke setiap sumber data secara individual akan menjadi sangat tidak efisien. sumber-sumber data boleh jadi hanya menyimpan data yang terakhir saja, padahal pengambil keputusan juga mungkin memerlukan akses ke data yang lalu (data histori). Sebagai contoh, perubahan pola pembelian dapat diketahui dengan membandingkan data pembelian tahun ini dengan data pembelian pada tahun lalu. Upaya Penggudangan Data (atau yang populer disebut sebagai Data Warehousing) diharapkan dapat memberikan solusi pada masalah semacam ini. Pada dasarnya Data warehouse merupakan gudang (atau arsip) dari informasi yang diperoleh dari banyak sumber, disimpan dalam skema basis data yang tunggal, di satu lokasi saja. Begitu diperoleh, data akan disimpan dalam waktu yang lama sehingga memungkinkan pengaksesan ke data historis. Karena itu, Data warehouse memberikan pemakai sebuah akses ke data yang Perancangan Basis data 173

188 terkonsolidasi, sehingga query untuk pengambilan keputusan menjadi lebih mudah untuk ditulis. Di sisi lain, dengan mengakses informasi dari sebuah data warehouse yang nantinya digunakan untuk dukungan pengambilan keputusan, pemakai dapat menjamin bahwa sistem pengolahan transaksi on-line tidak dipengaruhi oleh kerja aplikasi pendukung pengambilan keputusan (DSS). Gambar berikut ini menunjukkan arsitektur dari sebuah data warehouse, yang mengilustrasikan pengambilan data dan penyimpanan (konsolidasi) data hingga penggunaannya untuk pencarian (query) dan dukungan pada analisis data. sumber data Gambar 9-1 Arsitektur Data warehouse Ada sejumlah hal penting yang harus dipertimbangkan dalam pembangunan data warehouse : Kapan dan Bagaimana mendapatkan data. Secara umum ada dua pilihan dalam mendapatkan data dari sumber-sumber data ke data warehouse, yaitu sumber data yang secara aktif mengirimkannya (dengan memanfaatkan fungsi replikasi) ataupun data warehouse yang mengajukan permintaan (query ke setiap sumber). Kedua-duanya dapat dilakukan secara berkala (periodik), atau bisa juga berdasarkan permintaan (on request). Mengingat skema dari data warehouse umumnya berbeda dengan skema sumber data (sehingga diperlukan juga upaya konversi data), maka umumnya cara yang ditempuh untuk mendapatkan data adalah melalui permintaan (query) dari data warehouse. Frekuensi pengambilan data biasanya juga diatur secara berkala, di luar waktu sibuk, misalnya pada malam hari, agar tidak mengganggu pemrosesan transaksi utama di masingmasing sumber data. 174 Perancangan Basis data

189 Skema Konsolidasi yang digunakan. Sumber-sumber data yang telah dibentuk secara terpisah biasanya memiliki skema basis data yang berbeda. Bahkan, mereka bisa menggunakan organisasi basis data yang juga berbeda. Salah satu tugas dari sebuah warehouse adalah untuk membentuk skema data konsolidasi (gabungan), dan kemudian mengkonversi data yang didapat dari sumber ke skema konsolidasi tersebut sebelum data tersebut disimpan. Konsekuensinya, data yang disimpan dalam. warehouse bukanlah salinan yang persis dari data yang ada,di sumbernya. Bagaimana menjalarkan perubahan Pengubahan data pada sebuah tabel di sumber data harus pula dijalarkan ke data warehouse. Jika tabel-tabel di data warehouse sama persis dengan yang ada di sumber data, maka penjalaran perubahan bisa dilakukan secara langsung (bisa memanfaatkan prosedur basis data). Jika tidak sama (dan unaunanya memang demikian), maka propagasi (penjalaran) perubahan bisa ditunda hingga periode berikutnya dari pengumpulan data. Data apa yang direkapitulasi. Data mentah yang dihasilkan oleh sistem pengolahan transaksi bisa menjadi teramat besar untuk penyimpanan on-line di data warehouse. Karena itu, kita dapat memenuhi banyak query dengan hanya memelihara data rekapitulasi (summary) dengan memanfaatkan fungsi-fungsi agregasi terhadap tabel-tabel yang ada, ketimbang memelihara keseluruhan data dalam tabel. Namun demikian, kita harus memastikan bagaimana bentuk data yang akan disimpan di warehouse, dengan menyesuaikannya dengan peruntukannya nanti. 9.3 Basis Data Spasial (Spatial Databases) Spasial (dalam bahasa Inggris, Spatial) menunjukkan kata sifat yang berhubungan dengan ruangan, yang merupakan pengembangan dari kata benda "space" yang berarti "ruang". Singkatnya, untuk merujuk pada hal-hal yang berhubungan dengan ruang ataupun tempat, kata "spasial" dapat kita gunakan. Istilah spasial ini juga mencakup istilah Geografis, yang sudah cukup sering kita dengar/gunakan, yang merujuk pada hal-hal yang berhubungan dengan ilmu bumi. Saat ini cukup banyak aplikasi yang dimanfaatkan secara khusus untuk menangani hal-hal yang berhubungan dengan ruangan/tempat dan keilmubumian. Aplikasi ini menyediakan operasi-operasi spesifik sesuai dengan lingkup pemakaiannya, dan karena itu juga membutuhkan penanganan dan pengelolaan basis data yang juga spesifik (khusus). Basis Data Spasial ditujukan bagi penyimpanan data yang berkaitan dengan lokasi-lokasi dan ruang Perancangan Basis data 175

190 geometric, dan mendukung query dan penggunaan indeks yang efisien berdasarkan data lokasi/ruang tersebut. Sebagai contoh, kita ingin menyimpan sekumpulan poligon (bidang 2 dimensi dengan banyak sudut) dalam sebuah basis data, dan kemudian memberikan query untuk mencari semua poligon yang bersinggungan / berpotongan dengan poligon yang kita ketahui/berikan. Kita tidak dapat menggunakan struktur indeks yang baku, seperti B-tree atau hash, untuk menjawab query tersebut secara efisien. Basis Data Spasial akan menggunakan struktur indeks yang khusus, seperti R-tree untuk memenuhi query semacam itu. Ada dua jenis Basis Data Spasial yang penting diketahui : Basis Data Perancangan (Design Database) atau Basis Data CAD (Computer-Aided Design) yang digunakan untuk menyimpan data hasil perancangan untuk objek-objek yang dibuat manusia seperti bangunan, mobil, pesawat, dan lain-lain. Contoh lain dalam pemanfaatan Basis Data CAD adalah untuk menyimpan hasil rancangan IC (intergrated-circuit) untuk chips dan rancangan perangkat elektronika. Basis Data Geografis, yang digunakan untuk menyimpan data geografis seperti peta dan hasil pencitraan satelit. Basis Data Geografis sering pula disebut GIS (Geographic Information Sistem). Garis = {( ( } Segitiga = {( ( ( } 176 Perancangan Basis data

191 Polygon = {( ( ( ( ( } Gambar 9-2 Bentuk-bentuk Geografis. dan Representasinya Representasi Informasi Geometris Gambar 14.2 menggambarkan bagaimana berbagai bentuk geometrik dapat direpresentasikan dalam sebuah basis data. Di sini kita menekankan bahwa informasi geometrik dapat dinyatakan dalam berbagai cara berbeda, walaupun hanya sebagian saja yang akan kita bahas. Sebuah garis lurus dapat dinyatakan dalam koordinat dari kedua ujungnya. Sedang untuk sebuah garis lengkung, kita dapat membaginya dalam sejumlah garis lurus (segmen-segmen garis lurus) Yang sambung-menyambung, sehingga informasi yang disimpan untuk garis lengkung itu nantinya berupa koordinat dari ujung-ujung segmen garis lurus tersebut. Alternatif lain untuk merepresentasikan segmen-segmen garis (misalnya dalam sebuah peta) bisa juga berupa sudut kemiringan dan jarak dengan titik pusatnya (biasa juga disebut sebagai koordinat ' polar). Selanjutnya untuk sebuah poligon (dengan banyak rusuk/sudut), dapat kita representasikan dengan menginventarisir garis-garis rusuknya secara berurut, seperti pada Gambar Daftar dari rusuk poligon tersebut sesungguhnya menunjukkan batas area poligon (dalam hal.ini, merupakan poligon tertutup, di mana koordinat titik awal rusukrusuknya sama dengan koordinat titik akhirnya). Yang kita ilustrasikan di atas adalah untuk objek-objek 2 dimensi. Sementara representasi dari titik-titik dan segmen garis dalam ruang 3 dimensi mirip dengan representasi untuk ruang 2 dimensi, dengan tambahan koordinat kedalaman/ketinggian, yang biasa disimbolkan dengan koordinat z Basis Data Perancangan CAD (Computer-Aided Design) sudah lama digunakan hingga saat ini. Secara konvensional, CAD menyimpan data di memori (RAM) selama penyuntingan (editting) berlangsung, dan merekam datanya kembali ke file pada akhir pekerjaan penyuntingan tersebut. Problem Yang umum terjadi meliputi biaya Perancangan Basis data 177

192 (kompleksitas pernrograman -dan waktu) dalam mentransformasikan data dari satu bentuk ke bentuk lainnya (akibat proses penyalinan, pemotongan, pemindahan, pembesaran, pengecilan, dan sebagainya), dan kebutuhan pembacaan kembali keseluruhan file. Untuk perancangan yang berskala besar, seperti perancangan IC yang rumit, atau bahkan perancangan sebuah pesawat, adalah tidak mungkin untuk menyimpan seluruh data di dalam memori utama. Karena itu, ada kebutuhan untuk pembentukan basis data dari sistem CAD. Komponen-komponen perancangan direpresentasikan sebagai objek dan hubungan-hubungan di antara objek-objek tersebut, yang kesemuanya menunjukkan bagaimana perancangan terbentuk. Objek-objek yang disimpan dalam Basis Data Perancangan umumnya adalah objek-objek geometris (yang relatif teratur). Objek geometris 2 dimensi yang sederhana meliputi titik, garis, segitiga, persegi panjang ang dan secara umum. poligon. Objek-objek 2 dimensi yang lebih kompleks dapat dibentuk dari objek-objek sederhana tersebut dengan juga melibatkan operasi-operasi gabungan (unio), potongan (intersection) dan/atau pengurangan (difference). Sejalan dengan itu, objek-objek 3 dimensi yang kompleks juga dapat dibentuk dari objekobjek 3 dimensi yang lebih sederhana seperti bola, silinder, kubus, balok atau polihedron yang kemudian dikenai operasi-operasi yang sama, sebagaimana yang diilustrasikan di gambar 10.4 berikut ini. a. 2 silinder dengan Difference b. 2 balok dengan Unio Gambar 9-3 Objek-objek 3 Dimensi yang Lebih Kompleks Berbagai operasi-operasi spasial harus dapat dilaksanakan terhadap Basis Data Spacial. Sebagai contohnya, kita dapat melakukan pengambilan sebagian (cropping) dari perancangan objek yang berada dalam sebuah area yang disorot (boundary). Indeks satu dimensi semacam B-'-tree, seperti yang selama ini digunakan tidak memadai untuk membantu pelaksanaan operasi-operasi 178 Perancangan Basis data

193 spasial semacam itu. Karena itu, digunakan struktur indeks spasial yang multidimensi (2 dimensi atau 3 dimensi) Data Geografis Data geografis juga memiliki aspek spasial di alam, tetapi berbeda dengan data perancangan yang telah kita bahas dalam beberapa aspek. Peta dan hasil pencitraan satelit merupakan contoh-contoh umum dari data geografis. Peta dapat memberikan tidak hanya data lokasi - seperti batas wilayah, sungai, danau dan jalan - tetapi lebih jauh lagi memiliki informasi rinci yang berhubungan dengan tempat, seperti kemiringan, jenis tanah, penggunaan tanah, tingkat curah hujan dan lain-lain. Data geografis dapat dikelompokkan dalam 2 jenis: Data Raster. Pada kelompok ini, setiap objek tidak dilihat bentuk geometrisnya secara utuh, tetapi dipandang sebagai kumpulan titik (pixel). Karena itu data raster terdiri atas peta-peta bit atau pixel dalam 2 dimensi atau lebih. Contoh yang umum dari citra raster 2 dimensi adalah citra satelit untuk awan, di mana setiap pixel (yang berasosiasi dengan koordinat dan warna tertentu) menyimpan keberadaan titik awan secara geografis. Data raster dapat pula berwujud 3 dimensi - sebagai contoh, representasi temperatur pada berbagai ketinggian dalam area berbeda, yang lagi-lagi diukur dengan bantuan sebuah satelit. Waktu dapat pula menjadi komponen dimensi - contohnya, pengukuran temperatur di atas permukaan pada waktu-waktu pengukuran yang berbeda. Basis Data Perancangan umumnya tidak menyimpan data raster, karena besarnya kebutuhan penyimpanan data. Data Vektor. Data vektor dibentuk dari objek-objek geometric dasar, seperti titik, garis, segitiga dan berbagai poligon lainnya untuk objekobjek 2 dimensi dan silinder, elips, kubus dan polihedron lainnya untuk objek-objek 3 dimensi. Data peta sering direpresentasikan dalam format vektor. Sungai dan jalan dapat diwakili sebagai gabungan dari banyak segmen garis. Provinsi dan negara dapat dinyatakan sebagai poligon. Informasi topologic, seperti tinggi, dapat direpresentasikan sebagai sebuah permukaan yang dibagi dalam sejumlah poligon yang menutupi area dengan tinggi yang sama, dengan nilai ketinggian yang melekat pada tiap poligon. Perancangan Basis data 179

194 Gambar 9-4 Objek sebagai Data Raster dan Data Vektor Representasi Data Geografis Fitur-fitur geografis, seperti negara bagian atau danau yang besar, dapat direpresentasikan sebagai poligon yang kompleks (dengan banyak sisi/rusuk). Fitur-fitur lainnya, seperti sungai, dapat direpresentasikan baik sebagai garis lengkung (kurva) yang kompleks atau sebagai poligon yang kompleks, tergantung apakah kedalamannya relevan untuk juga disimpan atau tidak. Sementara informasi geografis yang berkaitan dengan area, seperti curah hujan yang berbentuk data raster (menunjukkan titik-titik hujan di berbagai kawasan), dapat direpresentasikan dalam bentuk array. Demi efisiensi ruang penyimpanan, array tersebut dapat disimpan dalam bentuk kompresi. Sebagaimana digambarkan di awal, kita dapat merepresentasikan informasi sebuah kawasan geografi dalam bentuk vektor, khususnya dengan menggunakan poligon, di mana setiap poligon mewakili kawasan yang nilai array-nya sama (ketinggian, curah hujan, temperatur, dan lain-lain). Representasi vektor lebih kompak daripada representasi raster untuk sejumlah aplikasi. la juga lebih akurat untuk sejumlah operasi. Penggambaran jalan misalnya, yang dibagi-bagi ke dalam pixel-pixel seringkali kurang akurat karena akan ada titik-titik jalan (antar pixel) yang kosong. Namun demikian, representasi vektor tidak cocok untuk aplikasi-aplikasi di mana data secara implisit memang sudah berbentuk raster, seperti hasil pencitraan satelit (foto satelit) Aplikasi Data Geografis Basis Data Geografis telah banyak dimanfaatkan, seperti pada sistem navigasi kendaraan, sistem informasi jaringan distribusi untuk instalasi publik (telepon kabel, listrik dan air), demikian juga sistem informasi yang banyak digunakan untuk ahli lingkungan dan perencanaan. 180 Perancangan Basis data

195 Sistem navigasi kendaraan memiliki informasi tentang jalan dan berbagai layanan untuk pengemudi. Informasi tentang jalan bisa meliputi bentuk jalan, batas kecepatan di jalan, kondisi jalan, koneksi antar jalan, juga apakah jalan search atau dua arch. Pada level yang sederhana, sistem seperti ini dapat digunakan untuk menghasilkan peta on-line untuk manusia. Dan dengan informasi-informasi tambahan yang relevan, pemakai dapat menggunakannya untuk perencanaan rute perjalanan atau untuk mengetahui lokasi-lokasi hotel, restoran, ATM dan pompa bensin di sekitar jalan/kawasan tertentu. Sistem navigasi kendaraan biasanya bersifat dinamis dan mobile (bergerak), dan secara fisik dipasang di dasbor kendaraan. Tambahan yang juga berguna untuk sistem informasi geografis bergerak ini adalah unit GPS (Global Positioning Sistem), yang menggunakan informasi pancaran (broadcast) dari satelit untuk menemukan lokasi objek tertentu dengan akurasi hingga puluhan meter. Dengan bantuan sistem semacam ini, seorang pengemudi tak perlu kuatir sampai tersesat, karena dengan bantuan GPS dan Basis Data Geografis kita dapat mengetahui secara tepat di mana kendaraan berada dan jalanjalan di sekitar kendaraan. Basis Data Geografis yang mengelola informasi tentang instalasi publik (listrik, air dan telepon kabel) menjadi sangat penting dewasa ini sejalan dengan peningkatan dan kompleksitas jaringan kabel/jaringan pipa di bawah tanah. Minimnya peta detail untuk masing-masing jaringan, bisa mengakibatkan pekerjaan untuk sebuah jaringan publik yang satu dapat merusak jaringan yang lain, yang tentu saja dapat menghasilkan gangguan pelayanan kepada pelanggan. Basis Data Geografis yang dilengkapi sistem pencarian lokasi, dapat dimanfaatkan untuk menghindari kemungkinan kerusakan yang tidak disengaja semacam ini di kemudian hari. 9.4 Basis Data untuk Multimedia (Multimedia Databases) Saat ini semakin marak pemakaian basis data untuk menyimpan data multimedia, seperti gambar, audio dan video. Umumnya, data multimedia tersebut disimpan di luar basis data, yaitu pada file-file terpisah. Dan di saat jumlah objek multimedia tersebut masih relatif kecil, maka fasilitas-fasilitas dalam lingkungan basis data menjadi tidak begitu bermanfaat dan relevan. Fungsionalitas basis data akan menjadi penting pada saat jumlah objek multimedia yang disimpan tersebut sudah semakin banyak. Isu-isu seperti perubahan, pencarian dan pengindeksan menjadi penting dan relevan. Objekobjek multimedia seringkali memiliki atribut-atribut deskriptif, seperti waktu pembuatan, nama pembuat dan jenis data multimedianya. Salah satu Perancangan Basis data 181

196 pendekatan dalam pembentukan basis data untuk objek-objek multimedia adalah dengan memanfaatkan basis data untuk menyimpan atribut-atribut deskriptif dan untuk menyimpan informasi track dari file di mana objek-objek multimedia tersebut disimpan secara fisik. Akan tetapi, menyimpan objek multimedia sendiri (gambar, audio, video) di luar basis data membuatnya lebih sukar untuk memberikan fungsionalitas basis data yang optimal, seperti pengindeksan. Hal itu juga dapat mengarah munculnya inkonsistensi, jika misalnya file-file yang informasi deskriptif dan lokasinya tersimpan di basis data sudah tidak ada atau telah dipindahkan. Karena itu sangat beralasan untuk menyimpan objek-objek ini di dalam basis data yang sama. DBMS Oracle menyediakan tipe data BLOB (singkatan dari Binary Large Object) dan DBMS Sybase menyediakan tipe data image untuk menyimpan data multimedia untuk jenis gambar. Beberapa isu yang harus diketahui jika data multimedia disimpan dalam sebuah basis data : Basis data (dan DBMS) harus mendukung penyimpanan objek-objek yang besar, karena data multimedia seperti video bisa membutuhkan ruang penyimpanan hingga beberapa GB (gigabyte). Pencarian dan pengambilan data berdasarkan kesamaan diperlukan dalam aplikasi-aplikasi basis data multimedia. Sebagai contoh, dalam sebuah basis data yang menyimpan citra sidik jari, sebuah query sidik jari dapat diberikan, yang menghasilkan daftar sidik jari yang cocok. Struktur indeks semacam B+-tree atau R-tree tidak cocok digunakan untuk keperluan ini, karena itu struktur indeks yang khusus untuk itu perlu dibuat. Pengambilan sejumlah tipe data, seperti audio dan video, juga membutuhkan syarat khusus yaitu data yang disimpan harus dapat diproses dan disajikan dalam kecepatan yang konstan. Data semacam ini biasa disebut data media kontinu (continuous-media data) Pengambilan Berbasis Kesamaan (Similarity-Based Retrieval) Dalam banyak aplikasi multimedia, data dalam basis data dideskripsikan hanya Sebagai pendekatan (aproksimasi) dari fakta yang sesungguhnya. Kita telah mengemukakan contoh sebelumnya tentang data sidik jari. Sangat tidak efisien dan tidak relevan untuk menyimpan semua fakta dalam sidik jadi. Yang perlu disimpan hanyalah bagian-bagian sidik jari yang penting yang kelak bisa menjamin pencarian secara akurat dan cukup cepat. Contoh lainnya adalah : Data Foto. Dua foto atau citra yang agak berbeda yang kemudian 182 Perancangan Basis data

197 direpresentasikan dalam basis data dapat dianggap sama oleh pemakai. Sebagai contoh, sebuah basis data digunakan untuk menyimpan rancangan merk dagang. Ketika sebuah rancangan merk dagang yang baru ingin didaftarkan, sistem basis data mula-mula dapat memeriksa semua merk dagang yang mirip rancangannya yang sebelumnya telah dientri, sehingga pendaftaran merk dagang yang baru dapat ditolak. Data Audio. Saat ini telah marak digunakan fasilitas antar muka (Interface) pemakai yang berbasis suara. Dengan fasilitas ini pemakai dapat memberikan perintah atau mengidentifikasi item data dengan suaranya. Masukan dari pemakai harus ditest untuk mencari kecocokan dengan perintah-perintah yang telah tersimpan di dalam sistem. Data Tulisan Tangan. Uji kemiripan diperlukan untuk menguji kesamaan tulisan tangan seseorang dengan data tulisan tangan yang telah tersimpan di basis data yang mungkin berasosiasi dengan perintah atau makna tertentu. Kemiripan seringkali bersifat subjektif dan amat tergantung definisi pemakai. Namun demikian, pengujian kemiripan cukup sukses untuk pengenalan suara dan tulisan tangan, karena data masukan dapat dibandingkan dengan data yang telah tersimpan dalam basis data, dan karena himpunan pilihan yang tersedia juga terbatas Data sinambung (Continuous-Media Data) Tipe data sinambung yang paling penting adalah data video dan audio. Sistem data sinambung ditandai dengan ukuran data yang sangat besar dan kebutuhan akan pengiriman data yang real-time. Data harus dikirim dengan cukup cepat agar tidak ada jeda (yang mengganggu) dalam penyajian audio dan penayangan video. Data harus dikirim dalam kecepatan. yang, memadai dan konstan yang tidak membuat sistem menjadi overflow (yang bisa membauat suara atau gambar ditayangkan terlalu cepat) Sinkronisasi antara aliran data yang berbeda harus dijaga. Hal ini diperlukan ketika misalnya suara dari seseorang (aspek audio) harus sinkron dengan gerakan bibir dari orang tersebut (aspek video). 9.5 Basis Data Bergerak (Mobility and Personal Databases) Basis Data komersial yang berukuran besar umumnya disimpan dan dikelola dalam fasilitas komputasi terpusat. Sementara pada aplikasi basis data terdistribusi, umumnya tetap ada basis data sentral yang didukung oleh jaringan yang handal. Namun dua trend teknologi yang berkembang akhir- Perancangan Basis data 183

198 akhir ini telah bersinergi membentuk aplikasiaplikasi yang membuat asumsi tentang kontrol dan administrasi terpusat tidak sepenuhnya benar : 1. Peningkatan penggunaan PC, terutama yang berbentuk komputer jinjing (laptop atau notebook) 2. Pembangunan infrastruktur komunikasi dijital nirkabel (wireless) yang relatif berbiaya rendah, yang menjadi dasar jaringan lokal nirkabel, jaringan paket digital dan teknologi lainnya. Komputasi bergerak (mobile) telah memberi banyak manfaat pada berbagai aplikasi. Para pebisnis yang banyak bepergian dapat menggunakan komputer jinjing yang memungkinkan mereka bekerja dan mengakses data selama perjalanan. Layanan kurir bisa menggunakan komputer bergerak untuk membantu penelusuran paket. Dan masih banyak lagi aplikasi dari komputer jinjing/bergerak semacam ini. Sementara komputasi nirkabel (dalam sebuah jaringan nirkabel) menciptakan situasi di mana mesin tidak harus memiliki lokasi alamat jaringan yang tetap. Hal ini memang memperumit pemrosesan query, karena akan menjadi sukar untuk menentukan lokasi optimal untuk membentuk hasil query. Dalam banyak kasus, lokasi dari pemakai juga sering menjadi parameter dari query. Sebagai contoh, sistem informasi perjalanan yang menyediakan data tentang hotel, panduan perjalanan dan sebagainya. Query terhadap data semacam itu didasarkan pada lokasi user, arah pergerakan dan bahkan kecepatannya Model Komputasi Bergerak Lingkungan komputasi bergerak terdiri atas komputer jinjing di satu sisi, yang bisa juga kita sebut sebagai stasiun bergerak (mobile host), dan jaringan komputer kabel yang saling terhubung di sisi yang lain. Umumnya mobile host berkomunikasi dengan jaringan kabel melalui komputerkomputer yang disebut stasiun pendukung bergerak (mobile support station). Setiap mobile support station mengelola mobile host dalam sebuah sel (area geografis di mana host tersebut terpantau). Mobile host dapat berpindah antar sel, yang ditandai dengan pemindahan (handoff) kontrol dari mobile support station yang satu ke mobile support station yang lain. Karena terbatasnya daya listrik, sebuah mobil host dapat meninggalkan, sebuah sel dan tiba-tiba tersambung kembali pada sel yang lainnya. Karena itu, pergerakan antar sel belum tentu di antara sel-sel yang bertetangga. Dalam sebuah area yang kecil, seperti dalam bangunan kantor, mobile host dapat terkoneksi dengan jaringan lokal nirkabel yang memberikan konektivitas yang 184 Perancangan Basis data

199 lebih hemat daripada dengan jaringan seluler yang berarea lebar. Dimungkinkan pula bagi mobile host yang berdekatan untuk saling berkomunikasi tanpa intervensi dari mobile support station Routing dan Pemrosesan Query Konsekuensi dari model komputasi bergerak adalah bahwa rute antara sepasang host dapat berubah-ubah setiap waktu jika satu dari dua host bersifat mobile. Fakta sederhana ini memberi dampak yang dramatis pada level jaringan, karena alamat jaringan yang berbasis lokasi tidak dapat digunakan lagi di dalam sistem. Konsekuensi lainnya dari model komputasi bergerak secara langsung mempengaruhi pemrosesan query ke basis data. Sebagaimana yang telah disebuntukan sebelumnya, strategi pemrosesan query terdistribusi akan tergantung juga pada biaya komunikasi. Pergerakan host tentu saja dapat mengubah biaya komunikasi ini secara dinamis, dan selanjutnya memperumit proses optimasi. Hal-hal lain yang juga harus dipertimbangkan adalah : Waktu pakai (user time), yang merupakan komoditas yang paling mahal dalam banyak aplikasi bisnis. Waktu koneksi (connection time), yang merupakan satuan biaya di mana biaya dibebankan oleh operator jaringan seluler. Volume data, yang menunjukkan satuan transfer data yang dikenai biaya oleh operator jaringan. Biaya berdasarkan waktu pakai, yang besarnya bervariasi tergantung kapan komunikasi dilangsungkan (biaya pada waktu sibuk dan pada waktu tidak sibuk berbeda). Energi host terbatas. Seringkali, daya baterai host harus pula dihemat dan diperhitungkan. Daya yang dibutuhkan untuk pengiriman data dan penerimaan data besarnya berbeda, seperti yang juga kita temui dalam komunikasi radio. 9.6 Sistem Pencarian Informasi (Information Retrieval) Sistem Pencarian Informasi (Information-Retrieval Sistem) merujuk pada sebuah sistem yang terhubung dengan banyak sumber data (yang umumnya tersimpan dalam dokumen/file) dan menyediakan sarana pada pemakai untuk melakukan pencarian informasi dengan menggunakan kata kunci pencarian (keyword). Sistem semacam ini sering dimanfaatkan oleh aplikasi pencarian data (search engine) di dunia Internet, seperti yang Perancangan Basis data 185

200 disediakan oleh yahoo.com, google.com, altavista.com dan lain-lain. Bidang pencarian informasi (information retrieval) sebenarnya telah dikembangkan sejalan dengan perkembangan dunia basis data. Karena itulah, pembahasan tentang Sistem Pencarian Informasi tidak bisa dilepaskan dari Sistem Basis Data yang menjadi pokok bahasan dalam buku ini. Dalam Sistem Pencarian Informasi, informasi disimpan dan diorganisasi dalam berbagai dokumen (file), dan diasumsikan bahwa ada banyak dokumen yang tercipta/tersedia. Proses pengambilan dokumen (yang diperlukan pemakai) diawali dengan pencarian dokumen-dokumen yang relevan, berdasarkan masukan dari user, yang umumnya berupa kata kunci (keyword) atau contoh dokumen. Salah satu contoh yang umum dari penerapan sistem semacam ini adalah katalog perpustakaan on-line. Data dalam sistem seperti ini diorganisasi sebagai kumpulan dokumen. Setiap entri dalam katalog perpustakaan merupakan sampel (bagian utama) dari dokumen. Seorang pemakai mungkin ingin mendapatkan dokumen atau kelompok dokumen tertentu. Dokumendokumen yang dicari tersebut biasanya diidentifikasi dengan menggunakan kata kunci, sebagai contoh "pemrograman pascal" dapat digunakan untuk mencari semua buku Yang menyinggung/membahas tentang pemrograman berbahasa Pascal. Ada sejumlah perbedaan antara model semacam ini dengan model yang digunakan dalam sistem basis data tradisional : Sistem Basis Data terbiasa dengan operasi perubahan (update), Yang diikuti dengan kebutuhan akan kendali konkurensi. Aspek ini dianggap kurang penting (jarang atau bahkan tidak pernah dilakukan) dalam Sistem Pencarian Informasi. Mirip dengan itu, Sistem Basis Data berhubungan dengan informasi terstruktur Yang diorganisasi dengan model data yang relatif kompleks (seperti dalam model relasional atau model berorientasi objek), sementara Sistem Pencarian Informasi umumnya menggunakan model yang lebih sederhana, di mana keseluruhan informasi diorganisasi sebagai kumpulan dokumen yang tidak terstruktur. Sistem Pencarian Informasi berhubungan dengan sejumlah isu yang belum sepenuhnya ditangani dalam Sistem Basis Data, seperti problem penyimpanan dan pengelolaan dokumen yang tidak terstruktur, pencarian dengan kata kunci (keyword) dan pengambilan dokumen berdasarkan tingkat relevansi dokumen terhadap query. 186 Perancangan Basis data

201 9.7 Pengindeksan Dokumen Struktur indeks yang efektif menjadi penting untuk mendapatkan pemrosesan query yang efisien dalam Sistem Pencarian Informasi. Sistem ini dapat mencari dokumen yang berisi keyword tertentu dengan memanfaatkan inverted index, yaitu indeks yang memetakan setiap keyword K, ke dalam himpunan S, yang menjadi pengenal (identifier) dokumen-dokumen yang mengandung K,. Untuk mendukung urutan relevansi berdasarkan kedekatan keyword, sebuah indeks dapat memberikan tidak hanya identifikasi dokumen, tetapi juga daftar lokasi ditemukannya keyword tersebut di dalam dokumen. Karena indeks demikian harus disimpan di dalam disk, organisasi indeks juga berusaha meminimalkan banyaknya operasi 1/0 dalam melakukan pengambilan kumpulan dokumen yang berisi keyword tersebut Browsing dan Hypertext Sistem informasi awalnya dibayangkan sebagai sebuah sistem katalog perpustakaan (yang hanya berisi data deskriptif dari dokumen), di mana dokumen-dokumen fisiknya (hardcopy) ditempatkan di luar sistem. Akan tetapi, sejalan dengan peningkatan kapasitas disk yang semakin besar, maka saat ini Sistem Pencarian Informasi juga dapat digunakan untuk menyimpan dokumennya sendiri (softcopy). Sebagai hasilnya, akan lebih banyak dokumen yang dapat dibuat, disimpan dan diakses secara online. Karena itulah, Sistem Informasi generasi sekarang memungkinkan pemakai untuk menampilkan dokumen yang tersimpan secara utuh dan real-time. Seorang anggota perpustakaan biasanya menggunakan katalog untuk mencari sebuah buku. Ketika dia mendapatkan buku tersebut dari raknya, bagaimanapun juga dia akan terdorong pula untuk mengamati (browse) bukubuku yang terletak di sekitar buku yang dicarinya. Perpustakaan biasanya menempatkan buku-buku yang sejenis berdekatan secara fisik satu sama lain. Untuk mengatur penempatan buku yang berkaitan tersebut, perpustakaan biasanya menggunakan pengelompokan (klasifikasi) yang hirarkis. Dengan cara ini, buku-buku yang berkenaan dengan matematika misalnya, dikelompokkan dan diletakkan berdekatan satu sama lain, begitu juga buku-buku yang berkaitan dengan komputer, buku-buku yang berhubungan dengan hukum, dst. Dalam batas-batas tertentu, topik matematika dan ilmu komputer juga memiliki hubungan yang cukup dekat, karena itu kelompok buku matematika dan kelompok buku ilmu komputer juga diletakkan berdampingan. Menjadi kurang wajar jika kelompok buku ilmu komputer ditempatkan di sebelah kelompok buku tentang busana. Bersama dengan kelompok buku-buku biologi, fisika, d1l, kumpulan buku matematika Perancangan Basis data 187

202 dan ilmu komputer bisa membentuk superklas yang sama, yaitu ilmu pengetahuan (science). Begitu juga pada level di bawahnya, boleh jadi untuk ilmu komputer terjadi juga pengelompokan yang lebih kecil (semacam sub kelompok) untuk buku-buku yang berkaitan dengan sistem operasi, pemrograman, basis data, dan sebagainya. Gambar 14.5 menunjukan pengelompokan hirarkis tersebut. Gambar 9-5 Pengelompokan Buku dalam Perpustakaan Tidak sebagaimana di perpustakaan, dalam sebuah Sistem Pencarian Informasi, tidak ada satu kebutuhan dan keuntungan yang signifikan untuk menempatkan dokumen-dokumen yang berkaitan dekat (secara fisik) satu sama lain. Kecepatan pengaksesan disk cukup cepat untuk bisa berpindah dari satu lokasi fisik dokumen yang satu ke lokasi dokumen yang lain. Akan tetapi, sistem semacam ini memerlukan pengorganisasian dokumen secara lojik yang memungkinkannya ditelusuri/diamati secara bersamaan. Dengan begitu, sistem juga dapat menggunakan pengklasifikasian hirarkis sebagaimana yang diterapkan pada sistem perpustakaan, agar ketika isi sebuah dokumen ditampilkan, maka deskripsi ringkas dari buku-buku yang berhubungan juga dapat diperlihatkan. Dalam sebuah Sistem Pencarian Informasi, tidak ada keharusan untuk mematuhi hirarki secara ketat. Sebuah buku yang berbicara tentang "analisa numerik" boleh jadi diklasifikasikan di bawah kelompok ilmu komputer dan sekaligus juga berada di bawah kelompok matematika. Buku-buku dari sebuah kelompok ditunjuk oleh sebuah kelompok dengan bantuan pointer, yang merupakan pengidentifikasi buku (identifier). Sebagai hasil dari fleksibilitas ini, sebuah buku tidak hanya dapat menjadi anggota dari dua kelompok berbeda, tapi juga sebuah sub kelompok bisa berada di bawah dua kelompok yang berbeda. Misalnya,sub kelompok 188 Perancangan Basis data

203 pernrograman yang berada di bawah kelompok ilmu komputer, juga dapat dipertimbangkan berada di bawah kelompok rekayasa. Dengan begitu, kita dapat menyatakan klasifikasi hirarki sebagai graph asiklik berarah (directed acyclic graph/dag), seperti yang ditunjukkan pada Gambar Pada gambar ini, kelompok buku Pe?nrograman dapat dicapai dan ditelusuri dari banyak arah. Gambar 9-6 Pengelompokan DAC dalam Sistem Pencarian Informasi Dalam menjawab sebuah query yang diberikan, Sistem Pencarian Informasi tidak hanya dapat inenarnpilkan dokumen-dokumen yang - berhubungan, tetapi bahkan juga menampilkan kelompok-kelompok hirarkis yang berhubungan. Selanjutnya pemakai dapat melihat semua buku (atau sub kelompok) yang menjadi anggota/bagian dari sebuah kelompok. 9.8 World Wide Web (WWW) Informasi pada Web disimpan di dalam sebuah dokumen. Dokumen dokumen ini yang menjadi unsur utama di dalam Web yang dapat dinyatakan dalam beberapa tipe. Tipe yang paling populer adalah dokumen hypertext yang disusun menurut bahasa khusus seperti Hypertext Mark Up Language (HTML). Dokumen HTML ini terdiri atas teks, spesifikasi jenis huruf dan instruksi format lainnnya, dan didalamnya juga terdapat link ke dokumen lainnya atau ke halaman lain pada dokumen yang sama dengan menggunakan suatu protokol yang disebut dengan Hypertext Transfer Protocol (HTTP). Dokumen dan lokasi antar dokumen ini diidentifikasi oleh sebuah alamat yang disebut Uniform Resourcer Locator (URL). Perancangan Basis data 189

204 9.8.1 WEB Sebagai Bentuk Aplikasi Basis Data Ketika banyak vendor DBMS memberikan solusi untuk berbagai konektifitas basis data, termasuk didalamnya konektifitas ke aplikasi berbasis web, hal ini membuat beberapa organisasi ingin bergerak untuk menggunakan aplikasi basis data berbasis web (Web-Based Application). Web-Based Application merupakan sebuah aplikasi yang memanfaatkan teknologi World Wide Web sebagai Interface-nya, yang berarti data yang diinginkan dapat diakses dan diubah dengan menggunakan sebuah Web Browser. Ini sangat menguntungkan sebuah perusahaan karena aplikasi ini dapat dijalankan di sembarang komputer, selama komputer tersebut memiliki Web Browser terpasang di dalamnya. Beberapa keuntungan lainnya dari Web-Based Applications ialah: 1. Data dapat diakses kapan saja dan dari mana saja asal terhubung dengan internet (availability tinggi). 2. Interoperability tinggi. 3. Mudah dipakai, pemakai cukup melakukan point & click, 4. Murah karena tools untuk melakukan browsing banyak tersedia dan gratis. Proses untuk aplikasi berbasis Web biasanya lebih banyak dilakukan di server. Hasil proses itulah yang kemudian dikirim ke client melalui HTTP dalam bentuk halaman-halaman Web. Selain Web server dan browser, aplikasi berbasis Web tidak jarang melibatkan basis data. Dalam kasus ini Web server dengan suatu mekanisme dapat mengakses basis data dan kemudian mengolah data lalu dikirim ke client. Dilihat dari kedekatan program aplikasi dengan penyimpanan data, sisitem ini dapat dikategorikan sebagai sistem three-tier. Dalam pemrograman three-tier, aplikasi dipecah menjadi tiga bagian, yaitu antarmuka pengguna, computational logic, dan penyimpanan data (basis data). Untuk aplikasi three-tier berbasis Web, browser di client berfungsi sebagai antarmuka pengguna, Web server akan melakukan computational logic, dan program basis data, berfungsi sebagai penyimpan data. Secara umum skema aplikasi three-tier berbasis Web dapat dilihat pada Gambar Pada gambar tersebut penomoran tier dihitung dari antarmuka pengguna. 190 Perancangan Basis data

205 Gambar 9-7 Arsitektur Web Adanya antar muka antara web dan basis data menjadi penting dikarenakan dua alasan yaitu : 1. Bersamaan dengan adanya pertumbuhan perdagangan elektronik atau E- Commerce, pengolahan transaksi harus dapat dihubungkan dengan web. Para pemakai berinteraksi dengan basis data secara tidak langsung melalui serangkaian interaksi dokumen HTML yang kemudian dikirim sebagai reaksi untuk server dan selanjutnya digunakan sebagai parameter oleh program di server untuk melakukan pengolahan transaksi tertentu pada basis data. 2. Keterbatasan yang dimiliki oleh dokumen HTML, seperti : a) Pemakaian dokumen web yang tetap tidak memungkinkan penampilan disesuaikan dengan keinginan pemakai, misalnya sebuah perusahaan mungkin menginginkan materi promosinya disesuaikan dengan keinginan pembeli. b) Pada saat data di suatu basis data mengalami perubahan, maka dokumen dokumen web yang melibatkan data yang sama menjadi tidak diperbaharui kembali jika tidak segera disesuaikan. Hal ini akan semakin merepotkan jika dokumen tersebut tersebar di sejumlah lokasi. Untuk mengatasi keterbatasan ini maka dibuatlah suatu dokumen web yang lebih dinamis dengan terlebih dahulu membuat antar muka web dengan basis data. Sehingga pada saat dokumen diminta oleh pemakai, sebuah program di web server akan dieksekusi untuk menjalankan operasi queri ke basis data dan membuat dokumen sesuai dengan hasil queri tersebut. Dengan mekanisme ini maka informasi yang diinginkan oleh pemakai dapat terefleksi dengan baik. Perancangan Basis data 191

206 Rangkuman 1. Secara umum aplikasi-aplikasi basis data dapat kita bedakan kedalam dua kelompok, yaitu pemrosesan transaksi (transaction processing) dan pendukung keputusan (decision support). 2. Secara sederhana Data Mining merujuk pada upaya pencarian informasi yang paling terkait, atau "menemukan pengetahuan", dari sejumlah besar data. 3. Dalam Data Mining, yang terpenting dan, sekaligus tersulit dari penjelasan di atas adalah bagaimana aturan-aturan (yang merepresentasikan pengetahuan) dari basis data tersebut dapat kita peroleh. 4. Data warehouse memberikan pemakai sebuah akses ke data yang terkonsolidasi, sehingga query untuk pengambilan keputusan menjadi lebih mudah untuk ditulis. 5. Basis Data Spasial ditujukan bagi penyimpanan data yang berkaitan dengan lokasi-lokasi dan ruang geometric, dan mendukung query dan penggunaan indeks yang efisien berdasarkan data lokasi/ruang tersebut. 6. Basis Data Geografis telah banyak dimanfaatkan, seperti pada sistem navigasi kendaraan, sistem informasi jaringan distribusi untuk instalasi publik (telepon kabel, listrik dan air), demikian juga sistem informasi yang banyak digunakan untuk ahli lingkungan dan perencanaan. 7. Salah satu pendekatan dalam pembentukan basis data untuk objekobjek multimedia adalah dengan memanfaatkan basis data untuk menyimpan atribut-atribut deskriptif dan untuk menyimpan informasi track dari file di mana objek-objek multimedia tersebut disimpan secara fisik. 8. Konsekuensi dari model komputasi bergerak adalah bahwa rute antara sepasang host dapat berubah-ubah setiap waktu jika satu dari dua host bersifat mobile. Konsekuensi lainnya dari model komputasi bergerak secara langsung mempengaruhi pemrosesan query ke basis data. 192 Perancangan Basis data

207 9. Sistem Pencarian Informasi (Information-Retrieval Sistem) merujuk pada sebuah sistem yang terhubung dengan banyak sumber data (yang umumnya tersimpan dalam dokumen/file) dan menyediakan sarana pada pemakai untuk melakukan pencarian informasi dengan menggunakan kata kunci pencarian (keyword). 10. Web-Based Application merupakan sebuah aplikasi yang memanfaatkan teknologi World Wide Web sebagai Interface-nya, yang berarti data yang diinginkan dapat diakses dan diubah dengan menggunakan sebuah Web Browser. Perancangan Basis data 193

208 Kuis Benar Salah 1. Suatu pola dari hasil pengolahan data dapat digunakan sebagai alat bantu pengambilan keputusan. 2. Bahasa query basis data sangat cocok untuk kepentingan performansi dalam analisis data statistikal yang rinci. 3. Data yang banyak tidak dapat memberi makna tertentu (knowledge) bagi pemiliknya. 4. Kita dapat dengan mudah membuat cross tab dengan menggunakan perintah query. 5. Frekuensi pengambilan data dari data sumber ke dalam datawarehouse biasanya juga diatur secara berkala, di luar waktu sibuk, misalnya pada malam hari. 6. Salah satu contoh aplikasi basis data spasial adalah google maps. 7. Fungsionalitas basis data akan menjadi penting pada saat jumlah objek multimedia yang disimpan tersebut sudah semakin sedikit. 8. Konsekuensi dari model komputasi bergerak adalah bahwa rute antara sepasang host dapat berubah-ubah setiap waktu jika satu dari dua host bersifat mobile. 9. Salah satu contoh yang umum dari penerapan sistem pencarian informasi ini adalah katalog perpustakaan on-line. 10. Dokumen-dokumen yang dikelola oleh sistem pencarian informasi pada umumnya telah terstruktur dengan baik. 194 Perancangan Basis data

209 Pilihan Ganda Berikut ini hal yang benar mengenai Sistem Pendukung Keputusan 1. (Decision Support Sistem), kecuali A. Selalu membutuhkan data transaksi yang besar D. Hanya merupakan alat bantu B. Membutuhkan model E. Salah semua C. Memiliki sifat tidak terstruktur 2. Berikut ini hal yang benar mengenai Data Mining, kecuali A. Bertujuan untuk menemukan knowledge D. Tidak pernah membutuhkan intervensi manusia B. Menggunakan metode tertentu E. Salah semua C. Mendeteksi pola 3. Tujuan dari pembangunan data warehouse kecuali A. Subject oriented D. Summarized B. Time series E. Salah semua C. Kemungkinan redundan Beberapa hal yang harus dipertimbangkan dalam membangun data 4. warehouse kecuali... A. Sumber data D. Jenis data B. Skema konsolidasi E. Jenis domain C. Mekanisme perubahan 5. Berikut ini hal yang benar mengenai Basis Data Spasial, kecuali Menangani hal-hal yang berhubungan dengan A. ruangan/tempat D. Menggunakan indeks R-tree B. Menggunakan indeks B-tree E. Salah semua C. Dapat diimplementasikan untuk sistem navigasi Perancangan Basis data 195

Basis Data Relational

Basis Data Relational Basis Data Relational Kebanyakan model yang digunakan adalah Model basis data relasional dengan menggunakan Relational Database Management System (RDBMS). RDBMS menyediakan layanan pengorganisasian data

Lebih terperinci

Perancangan Basis Data Relasional. (Entity Relationship Model) By : Hanung N. Prasetyo

Perancangan Basis Data Relasional. (Entity Relationship Model) By : Hanung N. Prasetyo Perancangan Basis Data Relasional (Entity Relationship Model) By : Hanung N. Prasetyo Database Model Definisi Pemodelan ER ER adalah salah satu pemodelan basis data ke dalam bentuk Entitas-Entitas dan

Lebih terperinci

By HendraNet Page 1 / 109

By HendraNet Page 1 / 109 BASIS DATA Page 1 / 109 DAFTAR ISI KATA PENGANTAR... iii DAFTAR ISI... iv Daftar Gambar... viii Daftar Tabel... x 1 PENGENALAN BASIS DATA... 1 1.1. Data dan Informasi... 2 1.2. Siklus Informasi... 2 1.3.

Lebih terperinci

SISTEM BASIS DATA II S A N T I W I D I A N T I

SISTEM BASIS DATA II S A N T I W I D I A N T I SISTEM BASIS DATA II S A N T I W I D I A N T I SISTEM Definisi sebuah tatanan yang terdiri atas sejumlah komponen fungsional (dengan tugas/fungsi khusus) yang saling berhubungan dan secara bersama-sama

Lebih terperinci

Definisi data dan informasi

Definisi data dan informasi Definisi data dan informasi Menurut Turban, Aronson, and Liang (2005) data dan informasi didefinisikan sebagai berikut: Data, merupakan sesuatu yang menyangkut barang, kejadian, aktivitas, dan transaksi

Lebih terperinci

INTERNET PROGRAMMING DATABASE

INTERNET PROGRAMMING DATABASE INTERNET PROGRAMMING DATABASE Muhmmad Zen Samsono Hadi, ST. MSc. zenhadi@eepis-its.edu POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Bahasan Sistem Database ER Diagram Database MySQL Internet Application Pendahuluan

Lebih terperinci

Pengenalan Basis Data

Pengenalan Basis Data Overview Pengenalan Basis Data Sistem Database ER Diagram Database MySQL Acep Irham Gufroni, M.Eng. Pemrograman Internet Teknik Informatika Univ. Siliwangi Internet Application Intro Menyimpan data dalam

Lebih terperinci

Relational Database & Pemodelan Data [Review]

Relational Database & Pemodelan Data [Review] Modul ke: 02 Alen Fakultas FASILKOM Relational Database & Pemodelan Data [Review] Pemrograman Basis Data & SQL Boby Hartanto, S.Kom,M.M. Program Studi Sistem Informasi Basis Data Relasional Pada pembuatan

Lebih terperinci

SOAL KUIS. 3. Data aktual yang disimpan pada tiap elemen atau atribute: a. Atribute d. Enterprise b. Data Value e. Tuple c. File

SOAL KUIS. 3. Data aktual yang disimpan pada tiap elemen atau atribute: a. Atribute d. Enterprise b. Data Value e. Tuple c. File Pertemuan 7 Quiz 1. Kumpulan data yang diorganisir menggunakan metode tertentu sehingga menghasilkan informasi yang berguna bagi pemakainya, pengertian dari: a. Arsip d. Basis Data b. Data e. Sistem c.

Lebih terperinci

Desain Database Relasional

Desain Database Relasional DIKLAT TEKNIS UMUM DESAIN PENGELOLAAN DATABASE MODUL Desain Database Relasional Oleh Dr. Khamami Herusantoso Sanyoto Gondodiyoto Widyaiswara Pusdiklat Keuangan Umum KEMENTERIAN KEUANGAN REPUBLIK INDONESIA

Lebih terperinci

SISTEM BASIS DATA By Novareza Klifartha

SISTEM BASIS DATA By Novareza Klifartha SISTEM BASIS DATA By Novareza Klifartha Konsep Sistem Basis Data SISTEM sebuah keterpaduan yang terdiri atas sejumlah komponen fungsional dengan satuan fungsi / tugas tertentu, yang saling berhubungan

Lebih terperinci

BAB II LANDASAN TEORI. konsep dasar dan definisi-definisi yang berkaitan dengan perangkat lunak yang

BAB II LANDASAN TEORI. konsep dasar dan definisi-definisi yang berkaitan dengan perangkat lunak yang BAB II LANDASAN TEORI Pada landasan teori ini diuraikan sejumlah teori untuk membantu dan memecahkan permasalahan yang ada. Beberapa landasan teori tersebut meliputi konsep dasar dan definisi-definisi

Lebih terperinci

MUHAMMAD ZEN S. HADI, ST. MSC.

MUHAMMAD ZEN S. HADI, ST. MSC. INTERNET PROGRAMMING Sistem Basis Data MUHAMMAD ZEN S. HADI, ST. MSC. Bahasan Sistem Database ER Diagram Database MySQL Internet Application Pendahuluan Menyimpan data dalam file biasa memiliki banyak

Lebih terperinci

BAB II LANDASAN TEORI. Data adalah deskripsi tentang benda, kejadian, aktifitas, dan transaksi, yang

BAB II LANDASAN TEORI. Data adalah deskripsi tentang benda, kejadian, aktifitas, dan transaksi, yang 9 BAB II LANDASAN TEORI 2.1.1 Pengertian Data Pengertian data adalah : Data adalah deskripsi tentang benda, kejadian, aktifitas, dan transaksi, yang tidak mempunyai makna atau tidak berpengaruh langsung

Lebih terperinci

Lessons. 1. Definisi Basis Data. 2. Sistem Basis Data. 3. Komponen Sistem Basis Data. 4. Abstraksi Data. 5. Bahasa Basis Data

Lessons. 1. Definisi Basis Data. 2. Sistem Basis Data. 3. Komponen Sistem Basis Data. 4. Abstraksi Data. 5. Bahasa Basis Data Basis Data 1 Referensi Raghu Ramakrisnan, Gherke, Database Management System, 3rd Edition, McGraw-Hill, 2001. Ramez Elmasri, Sam Navathe, Fundamentals of Database Systems, 4rd Edition, Addison Wesley Publishing

Lebih terperinci

Praktikum Basis Data 2. BAB 1 : Pendahuluan

Praktikum Basis Data 2. BAB 1 : Pendahuluan BAB 1 : Pendahuluan 1.1. Sasaran Memahami fitur-fitur Oracle9i Dapat menjelaskan aspek teori maupun fisik dari database relasional Menggambarkan Implementasi Oracle pada RDBMS dan ORDBMS 1.2. Oracle9i

Lebih terperinci

Pemrosesan data sebelum adanya basis data Perancangan sistemnya masih didasarkan pada kebutuhan individu pemakai, bukan kebutuhan sejumlah pemakai

Pemrosesan data sebelum adanya basis data Perancangan sistemnya masih didasarkan pada kebutuhan individu pemakai, bukan kebutuhan sejumlah pemakai Basis Data Pemrosesan data sebelum adanya basis data Perancangan sistemnya masih didasarkan pada kebutuhan individu pemakai, bukan kebutuhan sejumlah pemakai Duplikasi data Data yg sama terletak pada

Lebih terperinci

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub Sistem Basis Data; Tutorial Konseptual Oleh : Yakub Edisi Pertama Cetakan Pertama, 2008 Hak Cipta 2008 pada penulis, Hak Cipta dilindungi undang-undang. Dilarang memperbanyak atau memindahkan sebagian

Lebih terperinci

RENCANA PEMBELAJARAN SEMESTER

RENCANA PEMBELAJARAN SEMESTER RENCANA PEMBELAJARAN SEMESTER Mata kuliah : Data Management Semester : 2 Kode : SM421224 SKS : 4 Prodi : Manajemen Bisnis Telekomunikasi dan Informatika Dosen : Yudi Priyadi, S.T.,M.T. Capaian pembelajaran

Lebih terperinci

MAKALAH PERANCANGAN BASIS DATA MODEL DATA. Disusun oleh: Ainun Aisyiyah Iman Safuad Ismi Fadhilah

MAKALAH PERANCANGAN BASIS DATA MODEL DATA. Disusun oleh: Ainun Aisyiyah Iman Safuad Ismi Fadhilah MAKALAH PERANCANGAN BASIS DATA MODEL DATA Disusun oleh: Ainun Aisyiyah 2014001690 Iman Safuad 2014001726 Ismi Fadhilah 2014001729 AMIK Harapan Bangsa Surakarta 2015 MODEL DATA A. Pengertian Model Data

Lebih terperinci

PENGANTAR BASIS DATA

PENGANTAR BASIS DATA PENGANTAR BASIS DATA Obyektif : 1. Menjelaskan perbedaan antara file tradisional dan file manajemen basis data 2. Menjelaskan keuntungan dan kerugian apabila menggunakan file manajemen basis data 3. Memahami

Lebih terperinci

DUKUNGAN DATABASE DALAM PEMBANGUNAN SISTEM INFORMASI

DUKUNGAN DATABASE DALAM PEMBANGUNAN SISTEM INFORMASI C H A P T E R 6 DUKUNGAN DATABASE DALAM PEMBANGUNAN SISTEM INFORMASI Arif Basofi PENS 2015 Objectives Tujuan: 1. Memahami pentingnya database dalam pembangunan sistem informasi 2. Mengenal sistem pengorganisasian

Lebih terperinci

BAB II. 2.1 Model Data High Level Data Model (Conceptual Data Model)

BAB II. 2.1 Model Data High Level Data Model (Conceptual Data Model) BAB II PENGEMBANGAN SISTEM BASIS DATA Bab ini akan membahas lebih lanjut mengenai arsitektur sistem basis data dan pengembangan sistem basis data. Sistem basis data tidak berdiri sendiri, tetapi selalu

Lebih terperinci

PEMODELAN DATA (ER-D) Basis Data -1 / Dian Dharmayanti

PEMODELAN DATA (ER-D) Basis Data -1 / Dian Dharmayanti PEMODELAN DATA (ER-D) Basis Data -1 / Dian Dharmayanti OUTLINE Modeling Entity, Relationship, Attributes Mapping Cardinality Constraints Key ER Diagram Design Issues Modeling (Entitas) Entitas adalah sesuatu

Lebih terperinci

MEMAHAMI KONSEP DATABASE. Oleh : Yuhefizar, S.Kom

MEMAHAMI KONSEP DATABASE. Oleh : Yuhefizar, S.Kom MEMAHAMI KONSEP DATABASE Oleh : Yuhefizar, S.Kom Database Management System(DBMS) merupakan paket program (Software) yang dibuat agar memudahkan dan mengefisienkan pemasukan, pengeditan, penghapusan dan

Lebih terperinci

PERTEMUAN 2 DBMS & PERANCANGAN BASIS DATA

PERTEMUAN 2 DBMS & PERANCANGAN BASIS DATA PERTEMUAN 2 DBMS & PERANCANGAN BASIS DATA Jum at, 30 Sept. 2016 DATABASE MANAGEMENT SYSTEM (DBMS) DBMS adalah perangkat lunak yang memungkinkan pemakai untuk mendefinisikan, mengelola, dan mengontrol akses

Lebih terperinci

PENDAHULUAN. Alif Finandhita, S.Kom

PENDAHULUAN. Alif Finandhita, S.Kom PENDAHULUAN Alif Finandhita, S.Kom Basis data : Adalah sekumpulan data persistence yang saling terkait, menggambarkan suatu organisasi(enterprise). Sistem Basis data (DBS): Suatu sistem yang mengelola

Lebih terperinci

Pertemuan III Entity Relationship Diagram Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

Pertemuan III Entity Relationship Diagram Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT. Pertemuan III Entity Relationship Diagram Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Caca E. Supriana, S.Si.,MT. caca.e.supriana@unpas.ac.id id 2014 Entity Sets St Database dapatdimodelkan

Lebih terperinci

BAB II SISTEM BASIS DATA

BAB II SISTEM BASIS DATA SISTEM BASIS DATA BAB II SISTEM BASIS DATA Tujuan Mengerti yang dimaksud dengan Sistem Basis Data dan komponen-komponennya Mengetahui abstraksi data yang menunjukkan bagaimana para pemakai melihat data

Lebih terperinci

PENDAHULUAN. Alif Finandhita, S.Kom

PENDAHULUAN. Alif Finandhita, S.Kom PENDAHULUAN SISTEM BASIS DATA Suatu sistem penyusunan dan pengelolaan recordrecord dengan menggunakan komputer, dengan tujuan untuk menyimpan atau merekam serta memelihara data operasional lengkap sebuah

Lebih terperinci

Basis Data. Roni Andarsyah, ST., M.Kom Lecture Series

Basis Data. Roni Andarsyah, ST., M.Kom Lecture Series Basis Data DATABASE Roni Andarsyah, ST., M.Kom Lecture Series BASIS DATA INFOR MASI Pertanyaan?? Apa itu basis data? Markas / gudang, tempat berkumpul Apa itu data? Fakta yang mewakili suatu objek seperti

Lebih terperinci

SISTEM BASIS DATA (PENDAHULUAN) Alif Finandhita,S.Kom, M.T.

SISTEM BASIS DATA (PENDAHULUAN) Alif Finandhita,S.Kom, M.T. SISTEM BASIS DATA (PENDAHULUAN) Alif Finandhita,S.Kom, M.T. alif.finandhita@email.unikom.ac.id Definisi Sistem Basis Data SISTEM BASIS DATA Suatu sistem penyusunan dan pengelolaan record-record dengan

Lebih terperinci

Satuan Acara Perkuliahan

Satuan Acara Perkuliahan Satuan Acara Perkuliahan Mata Kuliah : Sistem Basis Data Kode Mata Kuliah / SKS: KK-1057 / 3 SKS Semester : Ganjil / Genap Dosen : Dini Yuristia, S.T. Hari, jam, ruang : Deskripsi Mata Kuliah Mata kuliah

Lebih terperinci

BAB III 3. LANDASAN TEORI. manajemen dan individu lain terhadap kejadian-kejadian internal dan eksternal

BAB III 3. LANDASAN TEORI. manajemen dan individu lain terhadap kejadian-kejadian internal dan eksternal BAB III 3. LANDASAN TEORI 3.1. Konsep Dasar Sistem Informasi Sistem informasi dapat dikatakan seperti suatu sistem yang terdapat pada suatu organisasi yang merupakan kumpulan dari individu, teknologi,

Lebih terperinci

Definisi Basis Data (1)

Definisi Basis Data (1) Chapter 1 Definisi Basis Data (1) BASIS + DATA Representasi dari fakta dunia yang mewakili suatu obyek yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Markas / tempat

Lebih terperinci

6 PENGANTAR MANAJEMEN DATA

6 PENGANTAR MANAJEMEN DATA 6 PENGANTAR MANAJEMEN DATA 6.1 Pengertian Basis Data Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi atau perusahaan senantiasa berhubungan dengan basisi data. Perangkat komputer

Lebih terperinci

Konsep Basis Data (Lanjut)

Konsep Basis Data (Lanjut) Konsep Basis Data (Lanjut) http://www.brigidaarie.com Bahasa Basis Data bahasa yang digunakan oleh user untuk berkomunikasi/berinteraksi dengan DBMS yang bersangkutan Contoh : SQL, dbase, QUEL dsb Bahasa

Lebih terperinci

Materi 2 PERANCANGAN BASIS DATA (PBD) 3 SKS Semester 5 S1 Sistem Informasi UNIKOM 2014 Nizar Rabbi Radliya

Materi 2 PERANCANGAN BASIS DATA (PBD) 3 SKS Semester 5 S1 Sistem Informasi UNIKOM 2014 Nizar Rabbi Radliya Materi 2 PERANCANGAN BASIS DATA (PBD) 3 SKS Semester 5 S1 Sistem Informasi UNIKOM 2014 Nizar Rabbi Radliya nizar.radliya@yahoo.com Nama Mahasiswa NIM Kelas Kompetensi Dasar Memahami sistem basis data dan

Lebih terperinci

Sistem Basis Data BAB 8 MODEL DATA DAN ENTITY RELATIONSHIP MODEL. Komponen model data dapat dikategorikan menjadi 3 (tiga) bagian yang meliputi:

Sistem Basis Data BAB 8 MODEL DATA DAN ENTITY RELATIONSHIP MODEL. Komponen model data dapat dikategorikan menjadi 3 (tiga) bagian yang meliputi: BAB 8 MODEL DATA DAN ENTITY RELATIONSHIP MODEL 8.1. Model Data Model data adalah sekumpulan konsep yang terintegrasi untuk mendiskripsikan data, hubungan antar data dan batasan batasannya dalam suatu organisasi.

Lebih terperinci

DESAIN DATABASE. Pertemuan 06 3 SKS

DESAIN DATABASE. Pertemuan 06 3 SKS Materi 1. Era Informasi 2. Strategi dan Peluang Yang Kompetitif 3. Database dan Database Warehouse 4. Desain Database 5. Sistem Pendukung Keputusan dan Sistem Cerdas 6. E-Commerce DESAIN DATABASE Pertemuan

Lebih terperinci

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI. SISTEM BASIS DATA 1 WAHYU PRATAMA, S.Kom., MMSI. PERTEMUAN 2 SBD 1 Lingkungan Basis Data Arsitektur Basis Data. Data Independence. Konsep DBMS, Komponen DBMS, Fungsi DBMS dan Bahasa yang digunakan didalam

Lebih terperinci

Pengantar Basis Data SISTEM BASIS DATA I. WAN H. Manihuruk, S.kom

Pengantar Basis Data SISTEM BASIS DATA I. WAN H. Manihuruk, S.kom Pengantar Basis Data SISTEM BASIS DATA I WAN H. Manihuruk, S.kom Outline Database DBMS Levels of Abstraction Data Models Database Language Database Kumpulan file / tabel / arsip yang saling berhubungan

Lebih terperinci

BAB III LANDASAN TEORI. organisasi yang merupakan kombinasi dari orang-orang, fasilitas, teknologi,

BAB III LANDASAN TEORI. organisasi yang merupakan kombinasi dari orang-orang, fasilitas, teknologi, BAB III LANDASAN TEORI 3.1 Konsep Dasar Sistem Informasi Sistem informasi dapat didefinisikan sebagai suatu sistem di dalam suatu organisasi yang merupakan kombinasi dari orang-orang, fasilitas, teknologi,

Lebih terperinci

Entity Relationship Model

Entity Relationship Model Entity Relationship Model Outline Pendahuluan Entitas Atribut Batasan Keys Hubungan Pendahuluan Model data E-R didasarkan pada persepsi bahwa dunia nyata merupakan sekumpulan dari sejumlah obyek dasar

Lebih terperinci

PERANCANGAN BASIS DATA

PERANCANGAN BASIS DATA BAB IV PERANCANGAN BASIS DATA Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat dimanipulasi (diolah) menggunakan perangkat lunak (program aplikasi)

Lebih terperinci

BAB 3 BAHASA BASIS DATA (DATABASE LANGUAGE)

BAB 3 BAHASA BASIS DATA (DATABASE LANGUAGE) 1 BAB 3 BAHASA BASIS DATA (DATABASE LANGUAGE) DBMS merupakan perantara bagi pemakai dengan basis data dalam Disk. Cara berkomunkasi / berinteraksi antara pemakai dengan basis data diatur dalam suatu bahasa

Lebih terperinci

RENCANA PEMBELAJARAN

RENCANA PEMBELAJARAN Disusun Oleh Diperiksa Oleh Disetujui Oleh Tanggal Berlaku Megawaty, M.Kom A. Haidar Mirza, S.T., M.Kom M. Izman Herdiansyah, S.T., M.M., Ph.D. Mata Kuliah : Praktikkum Basis Data Semester : 3 Kode : Sks

Lebih terperinci

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Mata Kuliah : Perancangan Basis Data Bobot Mata Kuliah : 3 Sks GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Deskripsi Mata Kuliah : Proses perancangan basis data, pendefisian kebutuhan data, representasi

Lebih terperinci

LINGKUNGAN BASIS DATA

LINGKUNGAN BASIS DATA LINGKUNGAN BASIS DATA TUJUAN PEMBELAJARAN Menjelaskan tingkat arsitektur basis data Menjelaskan komponen DBMS, fungsi DBMS serta bahasa yang digunakan dalam DBMS Menjelaskan perbedaan model data berbasis

Lebih terperinci

BAB V. dimengerti, mudah dipelihara, mudah memprosesnya, dan mudah untuk dikembangkan sesuai kebutuhan baru

BAB V. dimengerti, mudah dipelihara, mudah memprosesnya, dan mudah untuk dikembangkan sesuai kebutuhan baru BAB V NORMALISASI 1. Pengertian Normalisasi adalah suatu teknik yang menstrukturkan data dalam cara-cara tertentu untuk membantu mengurangi atau mencegah timbulnya masalah yang berhubungan dengan pengolahan

Lebih terperinci

Materi 2 BASIS DATA 3 SKS Semester 4 S1 Sistem Informasi UNIKOM 2016 Nizar Rabbi Radliya

Materi 2 BASIS DATA 3 SKS Semester 4 S1 Sistem Informasi UNIKOM 2016 Nizar Rabbi Radliya Materi 2 BASIS DATA 3 SKS Semester 4 S1 Sistem Informasi UNIKOM 2016 Nizar Rabbi Radliya nizar.radliya@yahoo.com Nama Mahasiswa NIM Kelas Memahami konsep dasar basis data. Pengenalan Basis Data 1. Konsep

Lebih terperinci

Database. Pertemuan ke-1

Database. Pertemuan ke-1 Database Pertemuan ke-1 Definisi Basis Data (1) BASIS DATA?? Definisi Basis Data (1) DATA?? Informasi?? BECA NINA 769819 Nina dengan NPM 769819 Tertabrak BECA Informasi BECA 769819 NINA Data Definisi Basis

Lebih terperinci

1. Definisi Basis Data 2. Elemen Basis Data. 3. Model Basis Data 4. Terminologi dalam Basis Data

1. Definisi Basis Data 2. Elemen Basis Data. 3. Model Basis Data 4. Terminologi dalam Basis Data PENJELASAN UMUM MATA KULIAH Kode Mata Kuliah : MKB-36422 Mata Kuliah : Komputer Terapan 3 Semester : 3 (Tiga) S K S : 3 (Tiga) Jam per minggu : 5 (Lima) Program Studi : D4 Akuntansi Manajerial Jurusan

Lebih terperinci

SATUAN ACARA PERKULIAHAN MATA KULIAH PENGANTAR BASIS DATA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI JURUSAN TEKNIK KOMPUTER (D3) KODE: IT014318

SATUAN ACARA PERKULIAHAN MATA KULIAH PENGANTAR BASIS DATA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI JURUSAN TEKNIK KOMPUTER (D3) KODE: IT014318 SATUAN ACARA PERKULIAHAN MATA KULIAH PENGANTAR BASIS DATA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI JURUSAN TEKNIK KOMPUTER (D3) KODE: IT0438 Minggu PENDAHULUAN Tentang Matakuliah Pengantar Basis

Lebih terperinci

SISTEM BASIS DATA. Pendahuluan. Gentisya Tri Mardiani, S.Kom.,M.Kom

SISTEM BASIS DATA. Pendahuluan. Gentisya Tri Mardiani, S.Kom.,M.Kom SISTEM BASIS DATA Pendahuluan Gentisya Tri Mardiani, S.Kom.,M.Kom Sistem Basis Data Sistem Basis Data merupakan suatu sistem yang terdiri dari kumpulan file yang saling berhubungan dan memungkinkan dilakukan

Lebih terperinci

Konsep Dasar Basis Data

Konsep Dasar Basis Data Konsep Dasar Basis Data Basis Kumpulan Data fakta tentang obyek, orang dan lain-lain yang dinyatakan dengan nilai (angka, simbol dll) Chou : Basis data adalah kumpulan informasi bermanfaat yang diorganisasi

Lebih terperinci

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Pertemuan / Minggu Pokok Bahasan / Tujuan Instruksional Umum (TIU) Sub Pokok Bahasan dan Sasaran Belajar / Tujuan Instruksional Khusus (TIK) Tehnik Pembelajaran Media Pembelajaran Evaluasi Referensi 1

Lebih terperinci

representasi dari fakta dunia yang mewakili suatu obyek yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya

representasi dari fakta dunia yang mewakili suatu obyek yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya BASIS DATA representasi dari fakta dunia yang mewakili suatu obyek yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya DEFINISI BASIS DATA 1. Himpunan kelompok data (arsip)

Lebih terperinci

SATUAN ACARA PERKULIAHAN MATA KULIAH SISTEM BASIS DATA 1 (MI) KODE / SKS KK / 2 SKS

SATUAN ACARA PERKULIAHAN MATA KULIAH SISTEM BASIS DATA 1 (MI) KODE / SKS KK / 2 SKS Minggu Pokok Bahasan ke dan TIU 1. 1. PENGENALAN BASIS DATA Basis Data Sub Pokok Bahasan dan Sasaran Belajar 1.1 Perbedaan sistem file tradisional dengan sistem file basis data dan keterbatasannya 1.2

Lebih terperinci

Abstraksi Data (Arsitektur DBMS)

Abstraksi Data (Arsitektur DBMS) Abstraksi Data (Arsitektur DBMS) Abstraksi data merupakan tingkatan / level bagaimana melihat data dalam sebuah sistem basis data. Basis data merepresentasikan pandangan yang berbeda kepada: pengguna (user),

Lebih terperinci

RENCANA PEMBELAJARAN

RENCANA PEMBELAJARAN ISO 91 : 28 Written by Checked by Approved by valid date Megawaty. M.Kom A. Haidar Mirza, S.T., M.Kom M. Izman Herdiansyah, S.T., M.M., Ph.D. Subject : Basis Data Semester : 3 Code : Credit : 2 credit

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI BAB III LANDASAN TEORI 3.1 Konsep Dasar Sistem Informasi 3.1.1 Sistem Menurut Sari Murdowati (1998; 1), definisi sistem merupakan sekumpulan komponen terintegrasi untuk mencapai suatu tujuan. Sedangkan

Lebih terperinci

BAB III LANDASAN TEORI. Jasa akan selalu melekat pada sumbernya atau pada penjualnya. Dengan

BAB III LANDASAN TEORI. Jasa akan selalu melekat pada sumbernya atau pada penjualnya. Dengan BAB III LANDASAN TEORI 3.1 Jasa Menurut Kotler (1997:83), jasa adalah setiap tindakan atau kegiatan yang dapat ditawarkan oleh satu pihak kepada pihak lain, yang pada dasarnya tidak berwujud dan tidak

Lebih terperinci

P7 Perancangan Database

P7 Perancangan Database P7 Perancangan Database SQ http://sidiq.mercubuana-yogya.ac.id Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta Tujuan Mahasiswa mengetahui & memahami konsep

Lebih terperinci

Model Relational. S# Nama Status Kota S1 Hanato 20 Bandung S2 Andi 10 Jakarta S3 Shy 25 Surabaya S4 Tina 20 Medan

Model Relational. S# Nama Status Kota S1 Hanato 20 Bandung S2 Andi 10 Jakarta S3 Shy 25 Surabaya S4 Tina 20 Medan Model elational Pendahuluan E. F. Codd A elational Model of Data for large shared data bank 1970 Model relasional terkait dengan 3 aspek : struktur data, integritas data dan manipulasi data. DBMS (Sistem

Lebih terperinci

Pengenalan Database 1-7 -

Pengenalan Database 1-7 - Konsep Sistem Informasi A Pengenalan Database 1-7 - KSI A. Pengenalan Database -1- Missa Lamsani Hal 1 Pre Test Menurut Anda apa itu database? Menurut Anda, seberapa penting peran databse dalam suatu aplikasi

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB LANDASAN TEORI.1 Defenisi Pangkalan Data Pangkalan data atau Database merupakan kumpulan dari item data yang saling berhubungan satu dengan yang lainnya yang diorganisasikan berdasarkan sebuah skema

Lebih terperinci

ER-DIAGRAM (ENTITY RELATIONSHIP DIAGRAM)

ER-DIAGRAM (ENTITY RELATIONSHIP DIAGRAM) BASIS DATA I/2011-GANJIL ER-DIAGRAM (ENTITY RELATIONSHIP DIAGRAM) Oleh Satrio Agung Wicaksono, S.Kom., M.Kom 21 September 2011 BASIS DATA I/2011-GANJIL 1 Model Entity Relationship Model Entity Relationship

Lebih terperinci

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa SISTEM BASIS DATA Oleh : Devie Rosa Anamisa Pengertian Sistem Basis Data Sistem Keterpaduan yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersama-sama bertujuan untuk

Lebih terperinci

SISTEM BASIS DATA. Pendahuluan. Gentisya Tri Mardiani, M.Kom

SISTEM BASIS DATA. Pendahuluan. Gentisya Tri Mardiani, M.Kom SISTEM BASIS DATA Pendahuluan Gentisya Tri Mardiani, M.Kom Sistem Basis Data Sistem Basis Data merupakan suatu sistem yang terdiri dari kumpulan file yang saling berhubungan dan memungkinkan dilakukan

Lebih terperinci

KONSEP SISTEM INFORMASI B BAB 1 PENGANTAR BASIS DATA

KONSEP SISTEM INFORMASI B BAB 1 PENGANTAR BASIS DATA KONSEP SISTEM INFORMASI B BAB 1 PENGANTAR BASIS DATA BASIS DATA Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan.

Lebih terperinci

BAB III LANDASAN TEORI. organisasi yang pada saat dilaksanakan akan memberikan informasi bagi pengambil

BAB III LANDASAN TEORI. organisasi yang pada saat dilaksanakan akan memberikan informasi bagi pengambil 11 BAB III LANDASAN TEORI 3.1 Sistem Informasi Menurut (Ladjamudin, 2005), Sistem informasi adalah sekumpulan prosedur organisasi yang pada saat dilaksanakan akan memberikan informasi bagi pengambil keputusan

Lebih terperinci

BAB II TINJAUAN PUSTAKA. Pada tinjauan perusahaan ini akan dibahas mengenai sejarah berdirinya

BAB II TINJAUAN PUSTAKA. Pada tinjauan perusahaan ini akan dibahas mengenai sejarah berdirinya 8 BAB II TINJAUAN PUSTAKA 2.1. Tinjauan Perusahaan Pada tinjauan perusahaan ini akan dibahas mengenai sejarah berdirinya perusahaan, struktur organisasi serta uraian tugas dari masing masing bagian yang

Lebih terperinci

SISTEM BASIS DATA (Lanjutan) :

SISTEM BASIS DATA (Lanjutan) : SISTEM BASIS DATA (Lanjutan) : BAB III : Basis Data Relasional Pengertian : Pada model relasional, basis data disusun dalam bentuk tabel dua dimensi yang terdiri atas baris (record) dan kolom (field).pertemuan

Lebih terperinci

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi BAB 1 PENDAHULUAN 1.1 Latar Belakang Di era globalisasi ini, perkembangan teknologi informasi sudah merupakan satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi merupakan suatu kebutuhan

Lebih terperinci

SATUAN ACARA PERKULIAHAN(SAP)

SATUAN ACARA PERKULIAHAN(SAP) Nama Mata Kuliah Kode Mata Kuliah Bobot Kredit Semester Penempatan : Kedudukan Mata Kuliah : SATUAN ACARA PERKULIAHAN(SAP) : SISTEM BASIS DATA : TI029 : 3 SKS Mata Kuliah Prasyarat : - Penanggung Jawab

Lebih terperinci

KONSEP BASISDATA. Kholid Fathoni, S.Kom., M.T.

KONSEP BASISDATA. Kholid Fathoni, S.Kom., M.T. KONSEP BASISDATA Kholid Fathoni, S.Kom., M.T. Lessons 1. Pengertian Database 2. Sistem Pengorganisasian Database 3. Abstraksi Data 4. Bahasa Basis Data 5. Istilah dalam Database Pengertian Database Hampir

Lebih terperinci

Basis Data. Bab 1. Sistem File dan Basis Data. Sistem Basis Data : Perancangan, Implementasi dan Manajemen

Basis Data. Bab 1. Sistem File dan Basis Data. Sistem Basis Data : Perancangan, Implementasi dan Manajemen Bab 1 Sistem File dan Sistem : Perancangan, Implementasi dan Manajemen Pengenalan Konsep Utama Data dan informasi Data - Fakta belum terolah Informasi - Data telah diproses Manajemen data Basis data Metadata

Lebih terperinci

ARSITEKTUR SISTEM BASIS DATA

ARSITEKTUR SISTEM BASIS DATA BAB I ARSITEKTUR SISTEM BASIS DATA Arsitektur system basis data memberikan kerangka kerja bagi pembangunan basis data. 1.1 LEVEL ARSITEKTUR BASIS DATA Menurut ANSI/SPARC, arsitektur basis data terbagi

Lebih terperinci

Mahasiswa mampu menjelaskan fungsi data management, business process management dalam suatu perancangan SIM suatu organisasi.

Mahasiswa mampu menjelaskan fungsi data management, business process management dalam suatu perancangan SIM suatu organisasi. Dibuat oleh: Yudi Priyadi (Prodi Manajemen Bisnis Telekomunikasi & Informatika) CP-MK: 1. Mahasiswa mampu melakukan analisis penerapan data management pada suatu organisasi/industri, melalui pembuatan

Lebih terperinci

BASIS DATA MODEL BASIS DATA

BASIS DATA MODEL BASIS DATA BASIS DATA MODEL BASIS DATA APA ITU MODEL BASIS DATA? Model database menunjukkan struktur logis dari suatu basis data, termasuk hubungan dan batasan yang menentukan bagaimana data dapat disimpan dan diakses.

Lebih terperinci

PENGANTAR BASIS DATA

PENGANTAR BASIS DATA PENGANTAR BASIS DATA Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang menjadikan alasan

Lebih terperinci

Model Model Basis Data

Model Model Basis Data Membahas: 1. Model-Model Basis Data 2. Perancangan Data Base 3. Metode pengembangan basis data 4. Jenis-jenis relationship 5. E-R Diagram Model Model Basis Data Model model basis data menyatakan hubungan

Lebih terperinci

Desain Data Base. Proses Desain Data Base

Desain Data Base. Proses Desain Data Base DESAIN DATA BASE Desain Data Base Proses Desain Data Base Analisis Persyaratan Desain Data Base Konseptual Desain Data Base Logika Perbaikan Skema Desain Data Base Fisik Desain Aplikasi dan Keamanan Analisis

Lebih terperinci

Sistem Basis Data. Ayu Nuriana Sebayang, S.Kom, M.Kom

Sistem Basis Data. Ayu Nuriana Sebayang, S.Kom, M.Kom Sistem Basis Data Ayu Nuriana Sebayang, S.Kom, M.Kom Pertemuan 1 1. Introduction 2. Sistem Basis Data 3. Tujuan Pemanfaatan Basis Data 4. Pengguna Basis Data 5. Komponen Sistem Basis Data 6. Abstraksi

Lebih terperinci

Basis Data 1 Sistem Basis Data

Basis Data 1 Sistem Basis Data Basis Data 1 Sistem Basis Data Arif Basofi, S.Kom Information Technology, PENS - ITS References: 1. Raghu Ramakrisnan, Gherke, Database Management System, 3rd Edition, McGraw-Hill, 2001. 2. Ramez Elmasri,

Lebih terperinci

SATUAN ACARA PERKULIAHAN (SAP)

SATUAN ACARA PERKULIAHAN (SAP) SATUAN ACARA PERKULIAHAN (SAP) Nama Mata Kuliah : Perancangan Basis Data Kode Mata Kuliah : MI 026 Bobot Kredit : 3 SKS Semester Penempatan : III Kedudukan Mata Kuliah : Mata Kuliah Keahlian Berkarya Mata

Lebih terperinci

Windhu Purnomo FKM UA 2013

Windhu Purnomo FKM UA 2013 BASIS DATA Windhu Purnomo FKM UA 2013 BASIS DATA (James Martin) Sekumpulan data yang saling berhubungan, yang disimpan bersama-sama pada suatu media, tanpa ada kerangkapan data sehingga memudahkan untuk

Lebih terperinci

Model Relational. Dian Dharmayanti

Model Relational. Dian Dharmayanti Model Relational Dian Dharmayanti Pendahuluan Relation Properti Relasi Basis Data Relasional Key Konversi Model E-R ke Relasional Transformasi kedalam skema relasi Pendahuluan Model relasional terkait

Lebih terperinci

PERANCANGAN BASIS DATA

PERANCANGAN BASIS DATA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR www.bl.ac.id PERANCANGAN BASIS DATA KREDIT : 3 SKS SYARAT : SISTEM BASIS DATA 2 PERTEMUA KE-1 HAL : 1 Proses Perancangan Basis Data APERANCANGAN DATABASE

Lebih terperinci

BAB III LANDASAN TEORI. Flippo (1984) mendefinisikan sebagai berikut: Penarikan calon pegawai

BAB III LANDASAN TEORI. Flippo (1984) mendefinisikan sebagai berikut: Penarikan calon pegawai BAB III LANDASAN TEORI 1. 3.1 Rekrutmen Flippo (1984) mendefinisikan sebagai berikut: Penarikan calon pegawai atau tenaga kerja adalah proses pencarian tenaga kerja yang dilakukan secara seksama, sehingga

Lebih terperinci

BAB II DASAR TEORI. 2.1 Konsep Dasar Sistem Aplikasi Pengertian Sistem. Pengertian sistem adalah kumpulan dari elemen-elemen yang berinteraksi

BAB II DASAR TEORI. 2.1 Konsep Dasar Sistem Aplikasi Pengertian Sistem. Pengertian sistem adalah kumpulan dari elemen-elemen yang berinteraksi BAB II DASAR TEORI 2.1 Konsep Dasar Sistem Aplikasi 2.1.1 Pengertian Sistem Pengertian sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu. Suatu sistem mempunyai

Lebih terperinci

Modul Praktikum Basis Data 4 Relasi Table

Modul Praktikum Basis Data 4 Relasi Table Modul Praktikum Basis Data 4 Relasi Table Pokok Bahasan Membuat hubungan beberapa table. Edit Relational Menghapus relational Melakukan pengolahan data dari table yang terintegrasi dalam ERD. Studi Kasus

Lebih terperinci

BASIS DATA BASIS DATA. Definisi Basis Data (1)

BASIS DATA BASIS DATA. Definisi Basis Data (1) BASIS DATA STMIK-AUB SURAKARTA Definisi Basis Data (1) BASIS DATA representasi dari fakta dunia yang mewakili suatu obyek yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya.

Lebih terperinci

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN SEKOLAH TINGGI MANAJEMEN INFORMAA KOMPUTER JAKARTA S SATUAN ACARA PERKULIAHAN Mata : Sistem Basis Data Kode Mata : MI - 16303 Jurusan / Jenjang : S1 SISTEM INFORMASI Tujuan Instruksional Umum : Mahasiswa

Lebih terperinci

Pendahuluan. Semester Genap Th Ajaran 2012/2013. Budi Susanto UKDW. Sistem Basis Data. Sistem Basis Data. Teknik Informatika

Pendahuluan. Semester Genap Th Ajaran 2012/2013. Budi Susanto UKDW. Sistem Basis Data. Sistem Basis Data. Teknik Informatika Pendahuluan Semester Genap Th Ajaran 2012/2013 Budi Susanto 2 Materi Perkuliahan Konsep dan arsitektur sistem basis data (#1) Blok Pembangunan Basis Data (#2) Pemodelan Basis data (#3, #4) Normalisasi

Lebih terperinci

Perancangan Basis Data

Perancangan Basis Data NORMALISASI DATA Perancangan Basis Data Tujuan dilakukan perancangan suatu basis data yaitu supaya kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam

Lebih terperinci

BAB II LANDASAN TEORI. Sistem merupakan salah satu faktor yang sangat penting dalam suatu

BAB II LANDASAN TEORI. Sistem merupakan salah satu faktor yang sangat penting dalam suatu BAB II LANDASAN TEORI 2.1 Konsep Dasar Sistem Sistem merupakan salah satu faktor yang sangat penting dalam suatu kegiatan, baik dalam kegiatan sekolah ataupun dalam suatu kegiatan sehari-hari. Dalam suatu

Lebih terperinci

Abstrak BAB I PENDAHULUAN

Abstrak BAB I PENDAHULUAN Abstrak Seiring dengan perkembangan jaman, teknologi mengalami perkembangan yang sangat pesat, khususnya dalam bidang komputer sangat membantu manusia dalam melakukan pekerjaan sehingga mendapatkan hasil

Lebih terperinci

markas / tempat berkumpul / tempat bersarang / gudang

markas / tempat berkumpul / tempat bersarang / gudang Definisi Basis Data (1) BASIS DATA representasi dari fakta dunia yang mewakili suatu obyek yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. markas / tempat berkumpul

Lebih terperinci