P. 1
6507477-Erd-Penggajian

6507477-Erd-Penggajian

|Views: 316|Likes:
Published by Jane Cess

More info:

Published by: Jane Cess on May 16, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/08/2015

pdf

text

original

Strategi Perancangan Dan Pengolahan Basis Data

Kusrini, M.Kom.

Penerbit ANDI Yogyakarta

e-Book

Hak Cipta 2007

KATA PENGANTAR

Bismillahirrohmanirrokhim. Puji syukur penulis hatur kehadirat Allah SWT, atas limpahan rahmat-nya sehingga buku Strategi Perancangan dan Pengolahan Basis Data dapat terwujud. Buku ini dapat ditulis dengan baik atas dukungan dari berbagai pihak. Untuk itu penulis sampaikan rasa terima kasih kepada seluruh pihak yang telah memberi dukungan.

Buku ini didesain sedikit berbeda dari buku-buku lainnya, karena buku ini selain memaparkan basis data secara teori juga memberikan contoh-contoh praktis dan implementasi yang sesungguhnya. Kasus yang penulis angkat merupakan contoh nyata kasus basis data yang memang penulis gunakan dalam pengembangan system informasi.

Harapan penulis, biku ini dapat memberi tuntunan konseptual yang praktis basi mereka, baik praktisi maupun mahasiswa dalam memahami basis data. Buku ini digunakan sebagai buku pegangan bagi para pengajar, baik jurusan Manajemen informatika, Teknik Informatika, maupun Ilmu Komputer.

Penulis menyadari, isi maupun cara penyampian buku ini masih jauh dari sempurna. Untuk itu penulis mengharapkan saran dan kritik yang bersifat membangun dari para membaca sehingga penulis bias mengembangangkan buku ini menjadi lebih baik.

Terima kasih.

Yogyakarta, September 2006

Penulis

-1-

e-Book

Hak Cipta 2007

DAFTAR ISI
KATA PENGANTAR.................................................................................... DAFTAR ISI................................................................................................... BAB I KONSEP DASAR BASIS DATA.................................................. A. Pendahuluan............................................................................. B. Definisi Basis Data.................................................................. C. Tujuan Basis Data.................................................................... D. Manfaat/Kelebihan Basis Data................................................ E. Operasi Dasar Basis Data........................................................ F. Soal Latihan............................................................................. BAB II KONSEP DASAR SISTEM BASIS DATA................................... A. Sistem ...................................................................................... B. Sistem Basis Data..................................................................... C. Soal Latihan............................................................................. BAB III ARSITEKTUR SISTEM BASIS DATA.................................... A. Arsitektur Basis Data............................................................... B. Soal Latihan.............................................................................. BAB IV MODEL-MODEL DATA............................................................. A. Model-Model Data................................................................... B. Soal Latihan............................................................................. BAB V ENTITY RELATIONSHIP DIAGRAM.................................... A. Konsep Entity Relationship Diagram...................................... B. Tahap Pembuatan Entity Relationship Diagram..................... C. Soal Latihan............................................................................ BAB VI IMPLEMENTASI ENTITY RELATIONSHIP DIAGRAM.. A. Tahap Implementasi................................................................ B. Tipe Data File.......................................................................... C. Soal Latihan............................................................................. BAB VII NORMALISA DAN DENOMARLISASI................................. A. Normalisa................................................................................ B. Denomarlisa............................................................................ -2iii V 1 1 2 2 5 9 10 11 11 11 13 15 15 16 17 17 20 21 21 25 31 33 33 35 36 39 39 46

e-Book

Hak Cipta 2007 C. Soal Latihan............................................................................ 47 49 49

BAB VIII BAHASA BASIS DATA............................................................ A. Bahasa Basis Data.................................................................. B. Bahasa Basis Data untuk Mengimplementasikan Rancangan Basis Data............................................................................... C. Definisi Skema dalam SQL.................................................... D. Soal Latihan............................................................................ BAB IX MANIPULASI DATA............................................................... A. Bahasa Basis Data.................................................................. B. Modifikasi Data….................................................................. C. Penghapusan Data................................................................... D. Soal Latihan…….................................................................... BAB X MENGEKSEKUSI DATA........................................................ A. Struktur Data…….................................................................. B. Operasi Himpunan................................................................. C. Fungsi Agregasi…................................................................. D. Soal Latihan……................................................................... BAB XI QUERY ANTAR TABEL……………………………………. A. Join Anta Tabel….................................................................. B. Query dengan Dua Buah Tabel.............................................. C. Menggunakan Alias............................................................... D. Perkalian Kartesian................................................................ E. Equijoin................................................................................. F. Self Join………..................................................................... G. Inner Join dan Quter Join....................................................... H. Query Bersarang (Nested Query............................................ I. Keanggotaan Himpunan......................................................... J. Perbandingan Himpunan........................................................ K. Soal Latihan…….................................................................. DAFTAR PUSTAKA................................................................................. GLOSSARIUM…………………………………………………………..

50 51 61 63 63 64 67 69 71 74 77 79 82 83 83 83 84 84 85 85 86 89 89 89 90 91 93

-3-

pengarang atau kriteria lain dapat mudah dilakukan dengan basis data. Banyak aplikasi yang dibuat dengan berlandaskan pada basis data antara lain: semua transaksi perbankan. mencari jumlah stok yang tersedia. mencari jumlah stok penjualan. Misalnya transaksi antar cabangpada sebuah perbankan secara online. PENDAHULUAN Pemrosesan basis data sebagai perangkat andalan sangat diperlukan oleh berbagai institusi dan perusahaan. menghasilkan informasi dengan cepat dan tepat sehingga membantu pengambilan keputusan untuk segera memutuskan suatu masalah berdasarkan informasi yang ada. pembelian dan pencatatan data barang pada perusahaan dagang. Basis data dapat mempercepat upaya pelayanan kepada pelanggan. dan sebagainya. Beberapa informasi pada perusahaan retail seperti jumlah penjualan. barang apa yang paling lakudijual pada bulan ini. aplikasi pemesanan dan penjadwalan penerbangan. adanya aplikasi pencarian data buku berdasarkan judul. Kehadiran basis data dapat meningkatkan daya saing perusahaan tersebut. Dengan memanfaatkan teknologi jaringan. kemampuan basis data dapat dapat dioptimalkan. -4- . dan berapa laba bersih perusahaan dapat diketahui dengan mudah dengan basis data. pencatatan data pegawai beerta akrifitasnya termasuk operasi penggajian pada suatu perusahaan. aplikasi pemrosesan penjualan. Basis data dapat meningkatkan daya guna perangkat computer yang mungkin tadinya hanya untuk keperluan game atau pengetikan dengan aplikasi office. Dalam pengembangan sstem informasi diperlukan basis data sebagai media penyimpanan data. Pencarian data peminjam yang terlambat mengembalikan juga mudah dilakukan sehingga bisa dibuat aplikasi pembuatan surat berdasarkan informasi yang tersedia. Pada perpustakaan. proses regristasi dan pencatatan data mahasiswa pada perguruan tinggi. Begitu banyak yang dapat diperoleh dengan pemanfaatan basis data.e-Book Hak Cipta 2007 BAB I KONSEP DASAR BASIS DATA A.

seperti digambarkan dalam Tabel 1. Pada ku\edua data tersebut kita tempat ada atribut nama. 2. Untuk mencapai tujuan. 1.deretan karakter. Tujuan adanya redundansi dan inkonsistensi data Redudansi terjadi jika suatu informasi disimpan di beberapa tempat. Basis data dapat didefinisikn dalam berbagai sudut pandang seperti berikut: 1. dan atribut lainnya. Himpunan kelompok data yang saling berhubungan yang diorganisasikan sedemikian rupa sehingga kelak dapat dimanfaatkan dengan cepat dan mudah.2 berikut: Tabel 1.1 dan Tabel 1.e-Book B. DEFINISI BASIS DATA Hak Cipta 2007 Basis data adalah kumpulan data yang saling berelasi. dan lain-lain.1 Mahasiswa Mahasiswa NIM 101 102 Nama Agung Ratna Alamat Klaten Bantul -5- . atau symbol). 3. nama. dan nilai. syarat sebuah basis data yang baik adalah sebagai berikut. alamat. TUJUAN BASIS DATA Basis data bertujuan untuk mengatur data sehingga diperoleh kemudahan. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik. ada data mahasiswa yang memuat NIM. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa tanpa pengulangan (redundancy) yang tidak perlu. untuk memenuhi kebutuhan. ketepatan. orang. dan kecepatan dalam pengambilan kembali. mata kuliah. nama. Data dinyatakan dengan nilai (angka. sementara kita punya data lain tentang data KHS mahasiswa yang isinya yang terdapat NIM. Misalnya. Data sendiri merupakan fakta mengenai obyek. C.

2. dan harga total 7000.1 dan Tabel 1. Jelas informasi ini menyesatkan. Akibat dari redudansi adalah inkonsistensi data atau data yang tidak konsisten. laporan penjualan. Contoh lain dari redundasi yang berakibat pada inkonsistensi seperti itu yaitu pada data Pembelian.2 KHS KHS NIM 102 101 102 102 Nama Ratna Agung Endang Endang Mata Kuliah Basis Data Sruktur Data Struktur Data Agama Hak Cipta 2007 Nilai A C B A Jika terjadi keadaan seperti pada Tabel 1. Kita bias secara langsung melihat data dari software DBMS-nya. pada table mahasiswa. Misalnya terjadi jumlah pembelian 5. Redudansi juga mungkin terjadi pada table yang sama. informasi nama seorang mahasiswa disimpan diberbagai tempat. Kita tidak tahu informasi mana yang dapat dipercaya. -6- . NIM 102 bernama ratna pada baris pertama. Informasi ini juga menyesatkan. Selain itu. dimana pada data tersebut disimpan informasi jumlah pembelian. harga satuan. pengguna cukup mengguna fasilitas pencarian ataupun laporan. Misalnya program aplikasi untuk kasir yang terhubung dengan basis data . Dengan fasilitas ini. Kesulitan Pengaksesan Data Basis data memiliki fasilitas untuk melakuakan pencarian informasi dengan menggunakan Query taupun dari tool untik melihat tabelnya. Yang tersedia pada program aplikasi untuk mendapatkan informasi stok. tetapi pada baris ke 3 dan 4 nama endang. perhatikan table 1.1 dan Tabel 1. dan lain-lain.2. 2. Maka data tersebut diatas masih mengandung redudansi yang harus dihindari pada perancangan dasis data. Sebagai contoh.e-Book Tabel 1. baiss data bias dihubungkan dengan program aplikasi sehingga memudahkan pengguna dalam mengakses informasi. harga satuan 1000. dan harga total. padahal diketahui bahwa harga total merupan hasil perkalian dari jumlah pembelian dengan harga satuan.

Basis data bisa memberikan solusi terhadap permasalahan-permasalahan tersebut diatas. Tentu saja pengaksesan oleh pengguna-pengguna ini disesuaikan dengan hak aksesnya. Ada juga orang mencatat dengan mengelompokan nama berdasarkan abjad. Tapi masalah baru muncul ketika jumlah data untuk sekelompokan data abjad teretentu telalu banyak sedangkan kelompok abjad yang lain masih terlalu sedikit. data yang terurut. Dengan meletakkan basis data pada bagian server yang bisa diakses kesemua pengguna dari banyak klient. Metode pencatat dilakukan dilakukan dengan menuliskan data setelah catatan terakhir. Sebagai contoh sederhana ketika kita ingin mencatat data alamat dan telepon dari kolega kita. 3. Dalam metode ini. sebagai data. tidak selamanya kata kunci yang diketahui adalah dari nama. Dalam hal pencarian. selain itu. kesulitan akan kita temui ketika informasi yang kita ingin cari dengan kata kunci sebagagian namanya. informasi yang diperolah dari kumpulan data bisa berupa keseluruhan data. tetapi bisa saja yang diketahui adalah nomer teleponnya. tetapi cukup dalam satu kelompok saja. ada banyak ruang tidak terpakai jika memberikan ruang yang sama untuk setiap kelompok. Misalnya sebuah perguruan tinggi memiliki data tentang mahasiswa.e-Book Hak Cipta 2007 Dalam basis data. Hal ini akan lebih mempermudah pencarian karena kita tidak perlu membaca keseluruhan data. Misalnya kita akan mencari alamat Anto. Sebagai orang akan menggunakan buku alamat. kita sudah menyediakan akses kesemua pengguna dari computer klient ke sumber informasi yaitu basis data. data denga filter tertentu. Ketika kita menginginkan informasi alamat seseorang kita akan mencari karena informasi yang tersaji tidak terurut. Multiple User Basis data memungkinkan pengguna data bersama-sama oleh banyak pengguna pada saat yang bersamaan atau pada saat yang berbeda. pembayaran. sedangkan yang ingin kita cari adalah alamat dan namanya. Bagian Akademi akan bisa mengakses -7- . dan lain-lain yang diletakan dalam sebuah basis data. sementara yang tercatat dalam buku catatan adalah Mardianto. Tentu saja kita tidak akan dapat menemukannya dalam kelompok data dengan huruf depan A. Hal ini merupakan masalah baru dari pencatatan data dengan buku. ataupun data summary.

Pemusatan control data karena cukup dengan satu basis data unutk banyak keperluan. tetapi cukup satu saja sehingga ini akan -8- . maka tidak perlu kita meng-update semua data dimasing-masing bagian tetapi cukup hanya disatu basis data. 4. dan perpustakaan. 2. D. MANFAAT/KELEBIHAN BASIS DATA Banyak memanfaat yang dapat kira peroleh dengan menggunakan basis data. Efesiensi ruang penyimpanan (space) Dengan pemakain bersama. kita tidak perlu menyediakan tempat penyimpanan diberbagai tempat. Basis data memiliki kemampuan dalam mengelompokan. Hal ini sangat dimungkinkan dengan penyimpanan data dalam basis data. mengurutkan bahkan perhitungan dengan metematika. Bagian Keuangan akan diijinkan mengakses data pembayaran mahasiswa. Misalnya data mahasiswa dalam suatu perguruan tinggi. Untuk data-data yang diperlukan oleh banyak orang/bagian. tetapi cukup dengan satu basis data untuk dipakai bersama. bagian kemahasiswaan. diantaranya: bagian akademik. Tidak harus semua bagian ini memiliki catatan dan semua bagian bisa mengakses data tersebut sesuai dengan keperluannya. Tidak perlu dilakukan pencatatan dimasing-masing bagian. Dengan perancangan yang benar. pengontrolan terhadap data juga cukup dilakuan di satu tempat saja. Manfaat/kelebihan basis data diantaranya adalah: 1. Kebersamaan pemakai Sebuah basis data dapat digunakan oleh banyak user san banyak aplikasi. Kecepatan dan kemudahan (speed) Dengan menggunakan basis data pengambilan informasi dapat dilakukan dengan cepat dan mudah. sementara mahasiswa hanya bisa melihat status akademi/keuangan yang berhubungan dengan dirinya saja.e-Book Hak Cipta 2007 data-data akademi mahasiswa. 3. Jika ada perubahan data alamat mahasiswa misalnya. bagian keuangan. dibutuhkan oleh banyak bagian. maka penyajian informasi akan dapat dilakukan dengan cepat dan mudah.

Tabel 1. data ini bisa dibagi menjadi 3.e-Book Hak Cipta 2007 menghemat ruang penyimpanan data yang dimilikioleh sebuah organisasi. maka data seorang mahasiswa akan kita tulis 5 kali dan data tiap mata kuliah akan ditulis 4000kali. Table 1. Dengan teknik perancangan basis data yang benar. Tabel 1.4.1 tentang data KRS. Alamat. Nama. seperti tampak pada Table 1. dan Tabel 1.3. Andaikandata bernilai 1 byte (diabaikan tipe datanya) maka kita akan membutuhkan ruang penyimpanan sebesar jumlah field x jumlah mhs x jumlah matkul (7x4000x5 = 140000) Dengan basis data yang dirancang dengan benar. Perhatikan Tabel 1. Jurusan. Kode. dimanan yang dicata adalah: NM.4 Mahasiswa NM 1 1 1 2 2 3 Nama Anto Anto Anto Fika Fika Fika Jurusan SI SI SI MI MI MI Alamat Klaten Klaten Klaten Bantul Bantul Bantul -9- .3 KRS NM 1 1 1 2 2 3 Nama Anto Anto Anto Fika Fika Fika Jurusan SI SI SI MI MI MI Alamat Klaten Klaten Klaten Bantul Bantul Bantul Kode A B C A B C Nama Matkul Agama Bahasa Calculus Agama Bahasa Calculus SKS 3 4 2 3 4 2 Jika kita memiliki data 4000 mahasiswa dengan rata-rata setiap mahasiswa mengambil 5 mata kuliah.2. NamaMatkul dan SKS. kita akan menyederhanakan penyimpanan sehingga tidak semua data harus disimpan. Misalnya ada data pengambilan mata kuliah oleh mahasiswa.

dapat menekan keakuratan dalam pemasukan/penyimpanan data.2 sebesar jumlah kolom x jumlah mahasiswa (4 x 4000 = 16000). dan lain-lain. Untuk mata kuliah seperti tampak pada table 1. dan Tabel 1.3. Dari table 1. . keunikan data.e-Book Tabel 1. Keakuratan (Accuracy) Penerapan secara ketat aturan tipe data.3 sebesar jumlah kolom x jumlah matkul (3 x 5 = 15).10 - .6 KRS NM 1 1 1 2 2 3 Kode A B C A B C Kita membutuhkan ruang penyimpanan untuk table mahasiswa seperti tampakpada table 1. hubungan antara data. domain data. 5.1 sebesar 140000.2.4. jelas relasi antar table pada basis data bias memperkecil rungan penyimpanan. Bila dibandingkan dengan penyimpanan data pada table 1. Dan untuk KRS seperti tampak pada table KRS sebesar jumlah kolom X jumlah mahasiswa X jumlah matkul (2 x 4000 x 5 = 40000). dibutuhkan sebesar 16000+15+40000 = 56015 byte. Tabel 1.5 Mata kuliah Hak Cipta 2007 Kode A B C NamaMatkul Agama Bahasa Calculus Sks 3 4 2 Tabel 1.

perubahan ini hanya perlu dilakukan pada level DBMS tanpa harus membongkar kembali program aplikasinya. 10. Data yang ada berupa data barang. sehingga pembuatan aplikasi tidak perlu mengurusi penyimpanan data. 9. 11. Ketersediaan (availability) Hak Cipta 2007 Dengan basis data kita dapat mem-backup data.e-Book 6. Basis data bisa diberikan passwordnya untuk membatasi orang yang mengaksesnya. Hal ini mengingat pertumbuhan transaksi suatu organisasi dari waktu ke waktu membutuhkan media penyimpanan yang semakin besar. Keamanan (Security) Kebanyakan DBMS dilengkapi dengan fasilitas manajemen pengguna diberikan hak akses yang berbeda-beda sesuai dengan pengguna dan posisinya. Pemakain secara langsung Basis data memiliki fasilitas untuk melihat datanya secara langsung dengan tool yang disediakan oleh DBMS. Kebebasan data (Data Independence) Jika sebuah program telah selesai dibuat. Kemudahan dalam pembuatan program aplikasi baru Pengguna basis data merupakan bagian dari perkembangan teknologi. 12. tetapi cukup mengatur interface untuk pengguna. Kelengkapan (Completenenss) 8. memilah-milah data mana yang masih diperlukan dan data mana yang perlu kita simpan ke tempat lain. langsung ke tabel ataupun menggunakan query. User view Basis data penyediaan pandangan yang berbeda-beda untuk tiap-tiap pengguna.11 - . Misalnya kita memiliki data-data dari perusahaan yang bergerak dibidang retail. Untuk melihat data. atau database administrator. penjualan. dan ternyata ada perubahan isi/struktur data. dan pembelian. Biasanya yang menggunakan fasilitas ini adalah user yang sudah ahli. Ada . 7. Maka dengan basis data. Dengan adanya basis data pembuatan aplikasi bisa memanfaatkan kemampuan dari DBMS.

2. E. 5. Berikan contoh kasus terjadinya redudansi data dan jelaskan mengapa redudansi basis data harus dihindari! 3. Pembuatan basis data Penghapusan basis data Pembuatan file/table Penghapusan file/table Pengubahan table Penambahan/pengisian Pengambilan data Penghapusan data F. Beri penjelasan kelebihan menggunakan basis data dibandingan dengan menggunakan pencatatan melalui buku atau menggunakan program aplikasi Microsoft Exel! . berbeda dengan pelanggan yang hanya melihat data keberadaan barang dan harga jual tetapi tidak berhak memasukan atau merubah data. kasir.e-Book Hak Cipta 2007 beberapa jenis pengguna yang memerlukan informasi terkait dengan data perusahaan tresebut. 3. Sementara itu dia berhak untuk memasukan data penjualan . bagian gudang.12 - . Salah satu tujuan basis data adalah menghilangkan redudansi data. yaitu : 1. OPERASI DASAR BASIS DATA Beberapa operasi dasar basis data. 8. Tidak semua data boleh diakses oleh semua pengguna. 7. Basis data mampu memberikan layanan organisasi seperti ini. Sementara itu bagian akutansi berhak melihat keuntungan dari tiap-tiap barang untuk menganalisa data akutansinya. bagian akutansi dan manajer. Jelaskan karasteristik dari basis data! 2. Mereka adalah pelanggan. 4. SOAL LATIHAN 1. Misalnya kasir dia hanya boleh berhak melihat informasi nama barang dan harga jualnya. 6.

komponen penggerak.13 - . karena tidak dapat dilayani dan dilakukan oleh Sistem Operasi. mahasiswa. Contoh dari perangkat keras computer yaitu : mouse. Sebgai contoh. yaitu untuk membuat kendaraan tersebut bias dikendarai dengan nyaman dan aman. komponen pengerem. mamajemen memori. B. SISTEM Sistem adalah sebuah tatanan yang terdiri dari atas sejumlah komponen fungsional (dengan tugas/fungsi khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu. Sistem operasi (Operating system atau perangkat lunak untuk mengolah basis data. Komponen-komponen system basis data meliputu : 1. monitor. System ini bertujuan untuk menghasilkan mahasiswamahasiswa yang memiliki kemampuan dibidang ilmunya. SISTEM BASIS DATA Sistem basis data merupakan perpaduan antara basis data dan system manajemen basis data (SMBD). komponen pengapian.e-Book Hak Cipta 2007 BAB II KONSEP DASAR SISTEM BASIS DATA A. Sistem operasi merupakan suatu software system yang bertugas untuk melakukan control dan manajemen hardware serta operasi-operasi dasar sistem termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web. lampu. Sistem Operasi akan melakukan layanan inti umum tersebut seperti akses ke disk. scadulling task. dan antar muka user. dan lain-lain. Dengan demiikian masing-masing software tidak perlu lagi memerlukan tugas-tugas inti umum tersebut. kurikulum. Perangkat keras(Hardware) sebagai pendukung operasi pengolah data. dan lain-lain. . Perangkat keras komputer adalah semua bagian fisik komputer. yang terdiri dari dosen. keyboarg. Contoh lain yaitu system perguruan tinggi. system kendaraan terdiri dari komponen starter. 2. Komponen-komponen tersebut memiliki tujuan yang sama. Secara umum. komponen kelistrikan – speedometer. dan lain-lain.

DBMS mengeksekusi operasi-operasi yang diperlukan untuk memenuhi permintaan user.e-Book Hak Cipta 2007 Contoh dari sistem operasi yang sudah ada sekarang ini. Interbase. Window 2000. Misalnya seorang kasir memasukan data penjualan kedalam basis data dengan menggunakan aplikasi kasir. Window NT. yaitu : DOS. 3. dan struktur penyimpanan. Aplikasi . MySQL. dan lain-lain. Beberapa jenis penggunaan basis data. c. Paradox. 6. c. Contoh dari DBMS ini yaitu antara lain Microsoft SQL Server 2000.14 - . orang yang mengkodekan aplikasi dengan bahasa pemrograman. d. 5. DBMS menerima request dari user dan menganalisa request tersebut. bias any disebut SQl. yaitu : a. Pemakai (User) Pemakai merupakan orang atau system yang akan mengakses dan merubah isi basis data. 4. Window XP. User Umum/End User : orang yang memakai basis data dengan menggunakan perantara program aplikasi. Oracle. Basis data (Database) sebagai inti dari system basis data. DBMS memeriksa skema eksternal user. Macintost. Database Management System (DBMS) DBMS adalah software yang menangani semua akses ke basis data. Window 98. b. Aplikasi lain Aplikasi lain merupakan software yang dibiat untuk memberikan interface kepada user sehingga lebih mudahdan terkontrol dalam mengakses basis data. skema konseptual. Microsoft Acces. Linux. d. pemetaan konseptual/internal. dan lain-lain. b. pemetaan eksternal/konseptual. User Mahir : orang yang mampu menggunakan basis data secara langsung dengan menggunakan DBMS. User melakukan pengaksesan basis data untuk informasi yang diperlukannya menggunakan suatu bahasa manipulasi data. Secara konsep apa yang terjasi adalah sebagai berikut : a. Programer Aplikasi . User Khusus : bisa berupa sistem lain.

e-Book Hak Cipta 2007 lain ini merupakan komponen tambahan dalam system basis data yang sifatnya opsional. Sebutkan elemen-elemen yang menyusun system basis data! . C. Apa perbedaan basis data dan system basis data? 2.15 - . SOAL LATIHAN 1.

2. Pada level ini biasanya desainer basis data membuat rancangan dalam bentuk diagram-diagram/model. Pemakai tidak mempedulikan kerumitan dalam struktur level fisik lagi. garis. Yang dimaksud dengan user/pengguna disini adalah programmer. Level Konseptual/Logika Level ini menggambarkan data apa yang disimpan dalam basis data dan hubungan ini memperhatikan data apa sebenarnya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain. eng user. COBOL. Ada 3 level arsitektur sistem basis data. Setiap user mempunyai ’bahasa’ yang sesuai dengan kebutuhannya. dan hubungan secukupnya. atau DBA. . Misalnya kita memiliki data mahasiswa. Level Fisik/Internal Level fisik merupakan level paling rendah yang menggambarkan bagaimana data disimpan secara fisik. ARSITEKTUR SISTEM BASIS DATA Arsitektur sistem basis data memberikan kerangka kerja bagi para pengembang system basis data. antara lain : a. Pada level eksternal ini. End User : bahasa yang digunakan adalah bahasa query atau menggunakan fasilitas yang tersedia pada program aplikasi. 3. Programmer : bahasa yang digunakan adalah bahasa pemrograman seperti C. user dibatasi pada kemampuan berangkat keras dan perangkat lunak yang digunakan aplikasi bahasa basis data. b. atau PL/I. yaitu : 1.e-Book Hak Cipta 2007 BAB III ARSITEKTUR SISTEM BASIS DATA A. Penggambaran cukup dengan memakai kotak. Level Pandangan Pengguna (User View level)/Eksternal Level ini merupakan level abraksi data tertinggi yang menggambarkan hanya sebagaian saja yang dilihat dan dipakai dari keseluruhan database. Pada level fisik data mahasiswa dipandang dengan memperhatikan bahwa dalam data tersebut ada atribut Nama yang disimpan pada media penyimpanan (disk) sepanjang 20 byte. Hal ini disebabkan beberapa pengguna database tidak membutuhkan semua ini database.16 - .

B. 2. View level View 1 View 1 … View n Dosen Physical level Gambar 3.e-Book Hak Cipta 2007 Gambar di bawah ini menunjukan level-level yang ada dalam arsiktektur sistem basis data.17 - . SOAL LATIHAN 1. tetapi secara menyeluruh bagaimana data direpresentasikan sesuai dengan keadaan yang dihadapi sehari-hari oleh pengguna. Hal ini dimaksudkan menghindari kerumitan teknik penyimpanan dan pengelolaan data dari pandangan pengguna awam. jelaskan bagaimana pengguna awam memandang data dalam sistem basis data ! jelaskan kegunaan dari level konseptual dalam arsiktektur sistem basis data! . Sebagai contoh pada level user view.1 Arsiktektur Sistem Basis Data Abstraksi data dalam arsiktektur sistem basis data memberikan pandangan terhadap data secara berbeda-beda tergantung dari levelnya. bayangan mengenai data tidak lagi memperhatikan bagaimana data disusun dan disimpan dalam disk.

Setiap object berisi : • Nilai yang disimpanan dalam variable instant. Diagram E_R terdiri dari: • Kotak persegi panjang. mempunyai atribut Nim. Kelas disini mirip dengan abstrak pada bahasa pemrograman. Bermacam-macam model data terbagi dalam dua kelompok besar. b. • Garis. dan konsistensi konstrain. Setiap entitas mempunyai atribut yang membedakannya dengan entitas lainnya. Menyatakan hubungan antar rekaman yang tersimpan dalam basis data. menggambarkan himpunan entitas. dan Tanggal lahir. disebut relasi.e-Book Hak Cipta 2007 BAB IV MODEL-MODEL DATA A. disebut entitas dan hubungan antar objek tersebut. Alamat. • Metode. Permodelan data dengan model E_R menggunakan diagram E_R. operasi yang berlaku pada object yang bersangkutan • Objel-objek yang memiliki tipe nilai dan metode yang dikelompokan dalam satu kelas. Relasi-relasi antar data. menggambarkan atribut-atribut entitas. 1. Contoh : entitas Mahasiswa. yang menghubungkan antar objek dalam diagram E-R. Object-oriented Model Model berorientasi object berbasiskan kumpulan object. .18 - . semantik data. dimana variable ”melekat” dengan objek itu sendiri. Entitas adalah objek didunia yang bersifat unik. • Diamond. Entity-Relation Model E-R model didasarkan atas persepsi terhadap dunia nyata yang terdiri dari sekumpulan object. MODEL-MODEL DATA Yang dimaksud dengan model data adalah sekumpulan tool konseptual untuk mendeskripsikan data. a. • Elip. menggambarkan hubungan antar hubungan antar entitas. object-based logical models yang termasuk dalam kelompk ini di antaranya adalah entity-reletionship model dan Object-oriented model. yaitu Object-based logical models dan record based logical models. Nama.

Simpul yang mempunyai anak tersebut akar. model hierarki. 2.e-Book Hak Cipta 2007 • Sending a massage. adalah model relasional. yang termasuk dalam kelompok object-based logical model adalah Semantic data model dan Functional data model. bisa banyak anak tetapi anak hanya mempunyai satu orangtua. Setiap simpul menyatakan sekumpulan medan. a. . dan simpul yang tidak punya anak disebut daun. dikembangkan oleh IBM dan Rockwell International Corporation. Setiap tebel terdiri dari atas kolom-kolom dan setiap kolom mempunyai nama yang unik. Record-based models Beberapa model yang termasuk dalam model ini. Model relasional Model relational menggunakan kumpulan tabel-tabel untuk mempresentasikan data-data dan relasi antar sata-data tersebut.19 - . Menggunakan pola hubungan orangtua-anak. Setiap orang tua hanya mempunyai satu anak. sebuah objek dapat mengakses data sebuah yang lain hanya dengan memanggil metode dari objek tersebut. model jaringan. Selain kedua model diatas. Contoh DBMS yang menggunakan model hierarki : Informasi Management System. Model heirarki Model ini menyerupai pohon yang dibalik. Hubungan antar orangtua dan anak disebut cabang. Berikut adalah contoh model basis data dengan menggunakan model hierarki untuk domain masalah pengajaran diperguruan tinggi. b. Simpul yang terhubung dengan level yang dibawahnya disebut orangtua.

Contoh DBMS yang menggunakan model jaringan yaitu CAIDMS/DB dan Integreted Database Management System yang dibangan oleh Cullinet Software Inc. Berikut ini adalah contoh medel basis data dengan menggunakan jaringan. Model jaringan Data dalam jaringan direpresentasikan daengan sekumpulan record (Pascal) dan rlasi antar data dorepresentasikan oleh record dan pointer.e-Book Hak Cipta 2007 Perguruan Tinggi STMK AMKOM Yogyakarta Mata kuliah Matakuliah Matakuliah Basis Data Sistem Pakar Struktur Data Dosen Dosen Dosen Dosen Dosen Kusrini Andi Sunyoto Kusrini Kusrini Kusrini Gambar 4. . Record-record diorganisasikan sebagai graft. sedangkan anak disebut sebagai anggota.20 - . Model ini hampir sama dengan model hierarki. Istilah orangtua dalammodel jaringan disebut sebagai pemilik.1 Contoh model basis data hierarki c. Perbedaannya pada model ini satu anak bisa mempunyai lebih dari 1 orangtua.

Model relasional b.e-Book Hak Cipta 2007 Perguruan Tinggi STMK AMKOM Mata kuliah Matakuliah Matakuliah Basis Data Sistem Pakar Struktur Data Dosen Dosen Dosen Hanill al Fatta Andi Sunyoto Kusrini Gambar 4. Gambarkan kasus tersebut diatas dengan : a. perhatikan ilustrasi kasus berikut : sebuah perusahaan retailer memiliki domain usaha jual beli barang. Barangbarang yang diperjual belikan dikelompokan menjasi 2 kelompok. meskipun seorang distbutor dimungkinkan untuk menjual beberapa jenis barang sekaligus. jelaskan perbedaan dari model data yang berbasis obyek dan model data yang berbasis record! 2. yaitu busana dan bahan makanan.21 - . SOAL LATIHAN 1. Setiap pelanggan dimungkinkan untuk melakukan pembelian beberapa pelanggan. Tetapi setiap hanya dibeli dari seorang distributor. Model jaringan . Model hierarki c.2 Contoh model basis data jaringan B.

Misal : Kumpulan orang yang menyimpan uang pada suatu bank dapat didefinisikan sebagai entity set nasabah. dan attribut. Kumpulan orang yang belajar diperguruan tinggi didefinisikan sebagai mahasiswa. Relationship set adalah sekumpulan relasi yang mempunyai tipe yang sama. Atribut dalam ERD dilambangkan dengan bebtuk elips. Sebuah entiti adalah sebuah ”benda” (thing) atau ”objek” (objek) didunia nyata yang dapat dibedakan dari objek lainnya.3 Lambang Entity Set .1 Lambang Entity Set Relationship adalah hubungan diantara beberapa entiti.2 Lambang Entity Set Atribut merupakan sebutan untuk mewakili suatu entity. Terdapat tiga notasi dasar yang bekerja pada model E-R yaitu : entity sets. Entity set dilambangkan dengan bentuk persegi panjang . Kesamaan tipe ini dapat dilihat dari attribut/property yang dimiliki oleh setiap entity. relationship sets.e-Book BAB V ENTITY RELATIONSHIP DIAGRAM Hak Cipta 2007 A. seperti tampak pada gambar : Gambar 5.3 Gambar 5. Entity sets adalah sekumpulan entiti yang mempunyai tipe yang sama. Gambar 5. Seperti pada gambar 5. Relationship set digambar dengan diamond seperti tampak pada gambar dibawah ini. KONSEP ENTITY RELATIONSHIP DIAGRAM Perancangan basis data dengan menggunakan model entity relationship adalah dengan menggunakan Entity Relationship Diagram (ERD).22 - .

2. c.e-Book Hak Cipta 2007 Ada beberapa istilah yang harus dipahami sebelum merancang basis data dengan menggunakan model entity relationship diagram.1 yang memenuhi persyaratan sebagai kandidat key adalah atribut NIM. atribut Nama dan Alamat. 1. Demikian pula atribut alamat. sebuah atribut haruslah memenuhi perdyaratan . Atribut Nama tidak bisa menjadi superkey karena memungkinkan lebih dari 1 baris yang memiliki nilai sama. dan Jurusan. Untuk bisa menjadi kandidat key. Dari contoh pada superkey dari tabel Mahasisea pada tabel 5. Nama. Kunci relasi terdiri dari satu atau lebih atribut-atribut relasi.23 - . Diantaranya yaitu . Sebagai ilustasi diberikan tabel mahasiswa berikut : Tabel 5. Alamat. sebuah kandidat key adalah superkey yang paling sedikit jumlah atributnya. Alamat dan Jurusan.1 Tabel Mahasiswa NIM 1001 1002 1003 1004 Nama Rita Aini Rita Iko Alamat Yogya Magelang Jurusan MI MI SI TI Dari tabel tersebut yang memungkinkan menjadi superkey adalah atibut NIM. Tidak memiliki subset yang juga merupakan kunci relasi Tidak dapat bernilai null Dengan kata lain. suatu atribut harus memenuhi persyaratan sebagai berikut : a. atribut NIM. Kunci relasi (relation key) kunci utama (primary key) Nilai dari kunci relasi harus mengidentifikasikan sebuah baris yang unik didalam sebuah rekasi. Agar menjadi sebuah primary key. Kandidat Key Merupakan kumpulan atribut minimal yang membedakan setiap baris data dalam tabel secara unik. Atribut Nama dan Jurusan. Atribut Alamat dan Jurusan serta Atribut Nama. atibut NIM dan Jurusan. Superkey Satu atau lebih atribut (kump atribut) yang dapat membedakan setiap baris data dalam tabek secara unik. atribut jurusan. atribut NIM dan Nama. Untuk satu nilai hanya mengidentifikasikan satu baris dalam satu relasi (unik). atribut NIM dan Alamat. 3. b.

Hubungan satu ke satu (one to one) yaitu satu entity dalam A dihubungkan dengan maksimum satu entity.2 Tabel hobby Hobby Nama Hiking Climbing Renang Keterangan Suka naik gunung itu lho Dari tabel 5. . Foreign Key (FK) Istilah Fk juga banyak digunakan dalam perancangan. Maka kode_nilai disebut sebagai kunci alternatif.1 NIM adalah kunci relasinya. Kardinalitas pemetaan meliputi : a. Kunci alternatif dibuat ketika tidak ada satu pun atribut dalam sebuah relasi yang bisa mewakili relasi teresebut. atau ada yang bisa menjadi kandidat key tetapi tidak cukup efektif untuk digunakan sebagai primary key. Sebagai contoh berikut ini adalah sebuah relasi Hobby . 4. Dalam contoh tabel mahaiswa pada pada Tabel 5. tetapi diadakan dan dijadikan primary key.24 - . 5. b. Hubungan satu ke banyak (one to many) yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam entity dalam B dihubungkan dengan maksimum satu entity dalam A. Kunci Alternatif (alternate Key) Kunci yang tidak ada didunia nyata.e-Book Hak Cipta 2007 sebagai kandidat key. Karena kita tidak pernah tahu kalau Hiking tersebut dipilih sebagai kunci utama. Komposit Key Primary key yang terdiri dari lebih dari 1 atribut 6. Sebuah Fk adalah sekumpulan atribut dalam suatu rlasi (misal A) sedemikian sehingga kumpulan atribut ini bukan kunci A tetapi merupakan kunci dari relasi lain. Kardinalitas Pemetaan Kardinalitas pemetaan atau rasio kardinalitas menunjukan jumlah entity yang dihubungkan ke satu entity lain dengan suatu relationship sets. Tetapi untuk lebih efektif mungkin aja perancang basisdata akan memberikan kunci alternatif berupa kode_hobi. Tabel 5. Kode tersebut tidak pernah ada dalam dunia nyata.2 kandidat key pada tabel tersebut adalah Nama. 7.

3. Menentukan atribut-atribut key dari masing-masing himpunan entitas. Jurusan. Nama. Untuk entitas Mahasiswa. Alamat. atribut yang terlibat adalah : Kode_Matakul. Langkah pertama adalah membuat ERD awal untuk mendapat sebuah rancangan database yang minimal dapat mengakomodasi kebutuhan penyimpanan data sistem yang sedang mempertimbangkan anomali-anomali dan aspek-aspek efesiensi. PK dari entita Dosen : NIP. Misalnya entitas yang terlihat adalah : Mahasiswa. Hak Cipta 2007 Hubungan banyak ke satu (many to one) satu entity dalam A dihubungkan dengan maksimum satu entity B. Nama. SKS.. 4. Untuk entitas Dosen. . Menentukan PK dari setiap entitas yang ada. Nama. kinerja.e-Book c. akan diberikan kasus perancangan basis data dalam Sistem Informasi Akademik. atribut yang terlibat adalah : NIP. Matakuliah. dan flekibilitas. d. Adapun langkah-langkahnya adalah sebagai berikut. Untuk lebih memudahkan ilustrasi. Berikut akan dijelaskan tahap-tahap pembuatan ERD awal. B. 2. Untuk entitas Matakulaih.25 - . Hubungan banyak ke banyak (many to many) satu entity dalam A dihubungkan dengan sejumlah entity dalam entity dalam B dihubungkan dengan sejumlah entity dalam A. atribut yang terlibat yaitu : NIM. Alamat. PK dari entitas Matakuliah : Kode_Matkul. TAHAP PEMBUATAN ENTITY RELATIONSHIP DIAGRAM Secara umum ada 2 langkah dalam membuat ERD. Dosen. PK dari entitas Mahasiswa : NIM. Mengidentifikai dan menetapkan seluruh himpunan entitas 9entity) yang akan terlihat. 1. Mengidentifikasi dan menetapkan seluruh himpunan relasi di antara himpunan entitas-himpunam entitas yang ada beserta foreign key-nya. satu entity dalam B hubungkan dengan sejumlah entity dalam A.

e-Book Hak Cipta 2007 Dosen dengan mata kuliah berelasi secara langsung dengan relasi mengajar.5 berikut ini : alamat Dosen Nama Dosen Kod_Matkul Kod_Matkul SKS Dosen Mengajar Matakuliah NIP NIP Nama Mengik ut Kod_Matkul NIP NIP NIM Mahasiswa Jurusan Dosen alamat Dosen Nama Dosen Gambar 5. Entity Mahasiswa berhubungan dengan relasi Matakuliah sekaligus beralasi dengan dosen. Dimana sebuah entity berelasi dengan yang lain. Selain Dosen dan Matakuliah yang dihubungkan dengan Relasi Mengajar. Atribut yang diberi garis bawah ganda seperti atribut NIP dan Kode_Matkul pada relasi Mengajar merupakan Foregein Key. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi .4 ada beberapa atribut yang digaris bawahi yang atribut NIP pada Entity Dosen dan Kode_Matkul pada Entity Matakuliah.26 - .5 Relasi Agregasi 5. Himpunan relasi mengajar antara Dosen dan Mata kuliah bisa dilihat pada gambar 5. Adi tidak hanya dosennya tetapi langsung dengan mata kuliahnya secara spesifik. alamat Nama Kod_Matkul SKS Dosen Mengajar Matakuliah NIP NIP Nama atribut pada gambar 5. yaitu Entity Mahasiswa. yaituu deosen mengajar mata kuliah.4 dibawah ini. masih ada satu Entity yang masih berelasi dalam sistem ini. tetapi relasi antara Mahasiswa dengan kedua entity yang lain saling bekaitan (bersamaan). Relasi seperti ini disebut dengan agragasi. Mahasiswa mengikuti suatu matakuliah yang diajarkan oleh seorang dosen. Jika digambar akan tampak seperti pada gambar 5.

dimana satu dosen dapat mengajar banyak mata kuliah dan datu mata kuliah bisa diajarkan oleh banyak dosen. sehingga tidak perlu digambarkan semua atributnya dalam gambaran ERD-nya. Demikian pula relasi antara Mahasiswa dengan RELASI Mengajar yang menghubungkan antara Entity Dosen dengan Matakuliah.27 - . alamat Dosen Nama Dosen Kod_Matkul Kod_Matkul SKS Dosen Mengajar Matakuliah NIP NIP Nama Mengik ut Kod_Matkul NIP NIP NIM Mahasiswa Jurusan Dosen alamat Dosen Nama Dosen Gambar 5. Setelah ERD lengkap dengan kardanilitasnya selesai dibuat. Cara penulisan kamus data yaitu dengan menyebutkan Entity diikuti dengan atribut-aributnya. memiliki kardinilitas Banyak ke Banyak. Berikut ini adalah gambar ERD setelah ditentukan derajat kardinilitasnya.e-Book Hak Cipta 2007 Relasi anatara dosen dengan matakuliah memiliki kardinalitas banyak ke banyak atau many to many. Nama. Langkah selanjutnya yang perlu dipikirkan adalah optimasi dilakukan untuk 3 tujuan yaitu meningkatkan : Efesiensi Kinerja Fleksibilitas . Alamat} Dalam kamus data NIP diberi garis bawah untuk menambahkan bahwa NIP merupakan primary key dari entiti Dosen. Misal Entity Dosen akan ditulis sebagai berikut : Dosen : { NIP.6 Dengan derajat kardinalitas Penggambaran ERD dapat pula dilengkapi dengan kamus data.

misalnya NIM 02. Hal lain yang bisa dilakuakn dalam usaha optomasi adalah melakukan dekomposisi atau pemecahan tabel. dan seterusnya. Pemilihan domain atribut yang lebih luas. Nama. jenis kode ini diberikan secara urut. Bliok pertama 02 bermakna tahun angkatan 2002. Blok. Sebuah contoh kasus generelasi adalah sebagai berikut. berarti relasi ini hanya berlaku untuk datu periode waktu daja. Jika masing-masing jenis anggota direpresentasikan dalam sebuah relasi maka jika ada penambahan jenis anggota. 3. misalnya karyawan. optimasi dilakukan dengan cara berikut : Penambahan atribut. Sebagai contoh :relasi mengajar jika hanya memiliki atribut NIP dan Kode_Matkul. entity/relasi ini akan lebih fleksibel penggunaannya. Jenis kode ini berupa karakter atau angka sebagai simbol. Blok ke 2 berisi kode jurusan yang menggambarkan nomer urutan mahaiswa pada tahun dan jurusan terebut. dan Alamat. maka harus . Mengingat panjang data nama hobi cukup banyak.11. Tetapi ditambahkan dan dijadikan sebagai primery key. Sebelum tahun 2002. Mnemonic. dimana dalam relasi tersebut hanya tersiri dari nama_hobi. kode tersebut memiliki 3 bagian yang masing-masing memiliki makna tersendiri.e-Book Hak Cipta 2007 Untuk meningkatkan efesiensi dan kinerja. maka relasi ini dapat menampung data untuk beberapa periode waktu. ada 3 bentuk pengkodean yang bisa diberikan yaitu : Sekuensial. terkadang perlu dipertimbangkan untuk menambahkan kode_hobi yang sebenarnya hal ini ada dalam dunia nyata. Sebagai contoh dalam relasi hobi. dalam optimasi ERD terkadang diperlukan pemberian kunci alternatif (alternate key) yaitu atribut yang sebenarnya tidak ada didunia nyata. Namun jika ditambahkan atribut Tahun dan semester. Misalnya L dan P pada jenis kelamain yang aartinya laki-laki dan perempuan. Generelasi. Dengan ditambahkan atribut pada entity/relasi diharapkan. Dalam hal peningkatan fleksibilitas. Masing-masing dari kedua entitas tersebut memiliki atribut IdAnggota. banyak system yang yang dibangun dengan rancangan lebar atribut tahun adalah 2 digit. Diberikan 2 entitas Dosen dan Mahasiswa sebagai anggota dalam sistem perpustakaan. Sebagai contoh adalah pemilih lebar data untuk atribut tahun. 2.2341. Dalam hal pengkodean. untuk tahun 1989 hanya ditulis 98. Ddengan demikian untuk tahun 1982 hanya ditulis 82. Jenis pengkodean ini terdiri dari beberapa bagian. Misalnya untuk kode pembelian terurut dari 1.28 - .

. 3. cari hubungan diantara entitas dari latihan soal nomor 1 5. TglPinjam 1/1 06 3/2 06 IdBuku1 A01 D34 IdBuku2 B54 A43 Relasi pada tabel 5. pilih primary key entitas dari laithan soal nomor 1 4. tentukan hubungan kardinilitas dari hubungan antar entitas pada latihan soal nomor 4 .3 Relasi Sirkulasi berorientasi kolom Id_Ang 1 3 .3 berikut.. relasi ini tidak dapat digunakan.. pihak manajemen tidak diijinkan untuk mengubah kebijakan. sebuah relasi sirkulasi pada sistem perpustakaan yang berbentuk. Tetapi jika generelasi . Entitas yang telibat 2. dan Alamat dan ditambah dengan jenis.3 diatas berlaku untuk perpustakaan yang memilki kebijakan meminjam buku 2 eksemplar untuk tiap peminjaman yang terjadi. Nama. seperti tampak pada tabelo 5. C. Perubahan stuktur entitas dari yang berorientasi kolom baris ke orientasi baris. Tabel 54 Relasi Sirkulasi berorientasi baris Id_Ang 1 1 3 3 . Sebagai contoh.e-Book Hak Cipta 2007 ditambahkan relasi baru. Identitas : 1. Atau untuk perpustakaan yang sama.. Tabel 5. SOAL LATIHAN TglPinjam 1/1 06 1/1 06 3/2 06 3/2 06 IdBuku A01 B54 D34 A43 Nerikut adalah sebuah kasus dalam perusahaan reatail yang memiliki lingkungan kerja penjualan dan pembelian barang. seluruh relasi dari anggota perpustakan dijadikan sebuah relasi anggota dengan atriut IdAnggota.29 - . Untuk perpustakaan yang memiliki kebijakan lain. sebutkan atribut-atribut yang terlibat pada entitas dari laithan nomor 1.

b.e-Book BAB VI IMPLEMENTASI ENTITY RELATIONSHIP DIAGRAM Hak Cipta 2007 A. Diagram ER à basis data. Entity à table-tabke/file-file data Atribut à field Transformasi dasar : 1.1 berikut : . 3. yang memiliki fiekd tepatnya (foreigen key) yang berasal dari key-key kedua himpunan entitas yang dihubungkan. Adapun langkah-langkah untuk mengimplementasikan Entity Relationshp diagram adalah sebagai berikut : transformasi dari model data yang telah dibuat ke skema basis data sesuai dengan DBMS yang dipilih. Derajat 1-1 : penggunaan field key dua kali pada satu table dengan nama dan fungsi berbeda. Derajat 1-N : dibentuk tabel baru yang mendapatkan field dari atribut relasi dari atribut relasi yang ditambah dengan atribut key dari himpunan entitasnya. Sebgai contoh akan diberikan ER Diagram seperti tertera pada Gambar 6. Relasi dengan derajat 1-N yang menghubungkan 2 buah himpunan entitas juda akan direpresentasikan dalam bentuk pencntuman atau pemberian atribut key dari himpunan entitas pertama (yang derajat 1) ke himpunan ke 2 (yang derajat N). 5. TAHAP IMPLEMENTASI Tahap Implementasi merupakan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder. 4. Relasi dengan derajat N-N yang menghubungkan 2 buah himpunan entitas akan diwujudkan dalam bentuk table khusus. Relasi dengan derajat 1-1 yang menghubungkan 2 buah himpuna entitas akan direpresentasikan dalam bentuk penambahan atribut-atribut relasi ke salah satu tabel yang memiliki kedua himpunan entitas.30 - . Setiap himpunan entiatas akan diimplementasikan sebagai sebuah table 2. Relasi tunggal a.

Field-fieldnya : KD_Jurusan. relasi yang derajat kardinalitasnya banyak ke banyak adalah : Relasi Mengajar. Field-fieldnya : NIP. Kode_Matkul. Tabel Mahasiswa. Relasi ini diubah menjadi tabel Mengajar dengan field : NIP. Mengubah relasi antara entitas dengan derajat kardinalitas banyak ke banyak enjadi table baru. Tabel Jurusan. Dari gambar 6. Mengubah entitas menjadi tabel dengan fieldnya adalah atribut dari entitas tersebut. Alamat. Dengan demikian tabel yang berbentuk pada tahap ini adalah : Tabel Dosen. Relasi ini diubah menjadi tabel mengikuti dengan nilai field : NIM.1 Entity Relationship Diagram Adapun langkah implementasinya adalah sbagai berikut : 1.31 - . Nama. Field-fieldnya : Kode_Matkul. Tabel Matakuliah. SKS. Relasi ini diubah menjadi tabel Prasyarat dengan field : kode_Matkul. yang menghubungkan antara Matakuliah dengan Matakulaiah. NIP . Fieldnya-fieldnya : NIM. Kode_Matkul. yang menghubungkan antar Mahasiswa dengan Relasi Mengajar. Nama. 2.e-Book alamat Dosen Hak Cipta 2007 Nama Dosen Kod_Matkul Kod_Matkul SKS Dosen Mengajar Matakuliah NIP Prayarat NIP Nama Mengik ut Kod_Matkul NIP NIP NIM Mahasiswa alamat Dosen Nama Dosen Nama Dosen Jurusan Kod_Jurusan Kod_Jurusan I Mengik ut NIM Gambar 6. yang menghubungkan antar Dosen dengan Matakuliah. Relasi Prasyaratan. Alamat. Nama.1. Nama. Kode_Matkul_Prasyarat Relasi Mengikuti.

e-Book Hak Cipta 2007 Menambahkan fild pada entity yang dihubungkan oleh relasi dengan derajat satu ke banyak.Data Biner Blob C. Relasi ini mengakibatkan penambahan field Kode_Jurusan sebagai primary key dari entiti jurusan yang berserajat satu ke entiti mahasiwa yang berderajat banyak. SOAL LATIHAN Tentukan implementasi basis data secara fisik berupa file. Nama. Dosen {NIP. relasi yang berderajat satu ke derajat banyak adalah relasi memiliki yang menghubugkan antar jurusan dengan mahasiswa. Dengan demikian tabel mahasiswa memiliki field : Nim.Data Uang o Money/currency . TIPE DATA FIELD Tipe-tipe data field beserta aturan penamaan tertanggung pada DBMS-nya.Data Bilangan Nyata o Singel (4 byte) o Double (8 byte) . Data Bilangan Bulat (interger) o Byte (1 byte) o Small interger (2 byte) o Long interger (4 byte) . Data Numerik : Bilangan bulat (interger) atau Bilangan Nyata (real). Hobbi} Mahasiswa 2. Alamat} . B. Nama.1.Data Teks o Character (fixed) o Variable Character (non fixed) . Mahasiswa {NIM. dan Kode_Jurusan. primary key. dan foreign key dari ER-Diagram berikut : 1.32 Memiliki Hobbi . Nama} Hobbi {Kode. Dari gambar 6. Secara umum macam-macam tipe field : Data Angka : Numerik atau Alfanumerik. field.

33 - . Alamat} Mahasiswa Dokter Matakuliah Pasangan BAB VII . Dokter {KodeDokter. Mahasiswa {NIM. Nama} Matakuliah {Kode. Matakuliah.e-Book Hak Cipta 2007 Dosen Pembimbing 3. Nama. SKS} Mengikuti o 4.

. kesalahan juga dapat terjadi ketika kita harus melakukan update ke seluruh tempat yang menyimpan informasi tersebut. Alasan utama dari normalisasi database minimal sampai dengan bentuk normal ketiga adalah menghilang kemungkinan adanya ”insertion anomalies”. ”delection anomalies”. ”insertion anomalies” adalah sebuah kesalahan dalam penempatan informasi entry data baru ke seluruh tempat dalam data base dimana informasi tersebut perlu disimpan. Sedang kan dalam melakukan update satu informasi. Dalam database yang telah dinormalisasi. TEKNIK NORMALISASI Salah satu topik yang cukup kompleks dalam dunia manajemen database adalah proses untuk menormaslisasi tabel-tabel dalam database relasional.e-Book NORMALISASI DAN DENORMALISASI Hak Cipta 2007 A. penghapusan suatu informasi hanya perlu dilakuakan dalam satu tempat dalam database tersebut. 2. 3. Dengan normalisasi kita ingin mendesain database relasional yang terdiri dari tabeltabel berikut : 1. Memilki sedikit mungkin redudansi. Berisi data yang diperlukan. Kesalahan ini disebut dengan ”update anomaly”. Mengakomodasi banyak nilai untuk tipe data yang diperlukan.34 - . Dalam database yang tidak perlu normalisasi. 5. Tipe-tipe kesalahan terebut sangat mungkin terjadi pada database yang tidak normal. Menghindari kemungkinan kehilangan data secara tidak disengaja/tidak diketahui. dan ”update anomalies”. prses dimasukkan ke dalam satu tempat. Mengsfisienkan update. 4. ”Delection anomalies” adalah sebuah kesalahan dalam penghapusan suatu informasi dalam database harus dilakukan dengan penghapusan informasi tersebut dari beberapa tempat dalam database. Bab ini akan membahas mengenai bentuk-bentuk normalisasi dan teknik-teknik yang digunakan dalam melakukan normalisasi.

Yang dimaksudkan dengan ketergantungan fungsional/fungcional depedency adalah : Diberikan sebuah tabel /relasi T. Dalam perperspektif normalisasi sebuah databae dikatakan baik jika setiap tabel yang membentuk basis data sudah berada dalam keadaan normal.Menambah data/insert . jika : a.e-Book Hak Cipta 2007 Normalisasi merupakan cara pendekatan dalam membangun desain logika basis dataa relasional yang tidak secara langsung berkaitan dengan model data. BENTUK-BENTUK NORMALISASI a. Tidak melanggar Boyce Code Normal FORM (BCNF). Bentuk normal tahap pertama (1 st Normal Form) Definisi : Sebuah table disebut 1NF jika : Tidak ada baris yang duplikat dalam abel tersebut Masing-masing cell bernilai tunggal . Bentuk tidak normal bentuk ini merupakan kumpulan data yang akan direkam. dapat saja tidak lengkap dan keharusan dan terduplikasi. Atribut B dari T bergantung secara fungsi pada atribut A dari T jika dan hanya jika setiap nilai B dari T punya hubungan dengan tepat satu nilai A dalam T (dalam setiap satu waktu) Beberapa kondii yang diuji pada proses normalisasi .Membaca/retrieve 3. tetapi dengan menerapkansejumlah aturan dan kreteriastandar untuk menghasilkan struktur tabel yang normal. Terpeliharanya ketergantungan funtional pada saat perubahan data (dependency preseervation) c.Menghapus/delete . maka dekomposisinya dijamin aman (lossless-join decomposition) b. Jika ada dekomposisi/penguraian tabel. tidak ada keharusan megikuti format tertentu. b. Data dikumpulkan apa adanya sesuai keadaannya. Suatu tabel dikatakan normal. .Mengedit/mengupdate .35 - . jika tidak bisa minimal tidak melanggar bentuk normalisasi ketiga.

maka solusinya adalah dengan mendekomposisikan tabel Kuliah menjadi : § § Tabel Kuliah (kode_kul. nim dan nilai. meskipun kunci tersebut merupakan kombinasi dari semua kolom. c. sks. ruang). Bentuk normal kedua akan dicontohkan berikut. jika ketergantungannya hanya bersifat parsial (hanya tergantungan pada sebagaian dari primary key). yaitu nama_mhs. nama_kul. Primary key pada tabel nilai adalah [kode_kul. Karena atribut nama_mhs ini haya memiliki keterbgantungan parsial pada primary key secara utuh (hanya tergantung pada nim. semester. maka solusinya adalah dengan mengkomposisikan tabel Kuliah menjadi : Tabel kuliah tersebut tidak memenuhi normalisasi pertama. nama_dos) Tabel Jadwal(kode_kul. d. misalnya kita tambahkan sebuah atribut yang bersifat redundan.>nama_mhs. waktu. Penambahan atribut baru (nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru yaitu nim .nim]. maka tabel nilai ini dianggap melanggar 2NF. karena terdapat atribut waktu yang tergolong dalam atribut bernilai banyak. Bentuk normal kedua ini dianggap belum memadai karena meninjau sifat ketergantungan atribtu terhadap primary key saja. Misal tabel nilai terdiri dari atribut kode_kul. karena terdapat atribut waktu yang tergolong ke dalam atribut bernilai banyak. Bentuk normal tahap kedua (2 nd normal form) Bentuk Normal Kedua (2NF) terpenuhi jika pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara uth. Jika pada tabel Nilai.e-Book Hak Cipta 2007 Catatan : permintaan yang menyatakan tidak ada baris yang duplikat dalam sebuah tabel berarti tabel tersebut memiliki sebuah kunci.36 - . padahal nim hanya bagian dari primary key). Sebuah tabel dikatakan tidak memenuhi 2NF. Agar tabel tersebut dapat memenuhi 1NF. Agar tabel tersebut dapat memenuhi 1NF. Berikut ini akan dicontohkan normalisasi pertama. Bentuk normal tahap ketiga (3 rd normal form) .

CONTOH KASUS . karena terdapat ketergantungan fungsional baru yang muncul baru pada tabel tersebut. yaitu : Alamat_jalan nama_kota . Bentuk ini tidak memenuhi 3NF. Bentuk normal tahap keempat dan kelima penerapan aturan normalisasi sampai bentuk normal ketiga sudah memadai untuk menghasilkan tabel berkualitas baik. adapun bentuk normal tahap kelima merupakan nama lain dari Project Joiin Normal Form (PJNF). Bentuk Normal keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued dependencey) pada suatu tabel yang merupakan pengembangan fungsional .e-Book Hak Cipta 2007 sebuah tabel dikatakan memenuhi bentuk normal ketiga (3NF). Jika tabel Mahasiswa didekomposisikan menjadi tabel Mahasiswa dan tabel Alamat. e. f.> A.> kode_pos Dalam hal ini (alamat_jalan. yaitu : Alamat_jalan nama_kota . atriibut alamat_mhs dipecah kedalam alamat_jalan. alamat_kota dank ode_pos. nama_kota merupakan superkey (sekaligus sebagai promari key) dari tabel Alamat tersebut. Hal ini dapat dibuktikan dengan memeriksa dua ketergantungan fungsional pada alamat tersebut. nama_kota) bukan super key sementara kode_pos juga bukan bagian dari primary key pada tabel Mahasiswa.X haruslah super key pada tabel tersebut . karena (alamat_jalan. tetapi nama_kota merupakan bagain dari primary key dari tabel alamat. dimana A mewakili semua atribut tunggal didalam tabel yang tidak ada di dalam X.> nama_kota Ketergantungan fungsional yang pertama tidak melanggar 3NF.37 - .Atau A merupakan bagian dari primary key pada tabel tersebut Misalkan pada table Mahasiswa. jika untuk setiap ketergantungan fungsional dengan notasi X .> kode_pos Kode_pos . Karena telah memenuhi 3NF. Boyce Code Normal Form (BCNF) § § Memenuhi 1 st NF Relasi harus bergantung fungsi pada atribut superkey 3. terdapat pula bentuk normal keempat (2NF) dan kelima (5NF). maka : . maka tabel tersebut tidak perlu di_dekomposisikan lagi. Demikian juga dengan ketergantungan fungsional yang kedua meskipun (kode_pos) bukan merupakan superkey. Namun demikian. maka telah memenuhi 3NF.

.A03 Nama brg ACModel 1.e-Book Hak Cipta 2007 Berikut akan diberikan contoh proses perancangan database dengan tteknik normalisasi. Senopati 12 yk Kode Suplier : G01 Nama Suplier : Gober Nustra Kode Nama Brg B01 A03 Kursi Meja Tanggal : 07/10/04 Nomor : 004 Jml 50000 3250000 Total Faktur 3750000 Jatuh Tempo 17/10/04 Bentuk tidak ternormalisasi Kd Fak Kd Sup Nama Sup Gobel Nustra Angkasa Kd Brg A01. . Ayo Bersama Jl.Kursi 09/10/05 . Tgl .38 - . A02 B01. Ayo Bersama Jl. AC Model2 07/10/04 . Dokumen dasar : Faktur Pembelian Barang PT..... Senopati 12 yk Kode Suplier : G01 Nama Suplier : Gober Nustra Kode Nama Brg A01 A02 AC model 1 AC model 2 Tanggal : 07/10/04 Nomor : 004 Jml 10000000 4500000 Total Faktur 14500000 Jatuh Tempo 15/10/04 Faktur Pembelian Barang PT. Qty 10 5 Harga 1000000 900000 Qty 5 7 Harga 100000 250000 004 G01 006 A03 Meja..

Jtempo KodeSup. 4500000 500000. Qty. Tgl 07/10/40 07/10/40 09/10/05 09/10/05 J. Harga à Tgl.... . 250000 Jml 10000000. 900000 100000... . … … ...Redundancy : jumlah ß hasil perhitungan qty * harga Bentuk 2nd NF : KdFaktur KdFaktur Bentuk BCNF : KodeFaktur KdSup KdFaktur KodeBrg à Tgl.tempo 15/10/04 15/10/04 17/10/05 17/10/05 qty 10 5 5 7 Hrg 1000000 900000 100000 250000 Kelemahan : .Update : mengganti satu nama supplier à lainnya jadi tidak benar .7 3750000 Bentuk Normal 1 Kd Fak 004 004 004 004 Kd Sup G01 G01 G01 G01 Nama Sup Gobel Nustra Gobel Nustra Angkasa Angkasa Kd Brg A01 A02 B01 B03 Nama brg AC Model 1 AC Model2 Meja Kursi . . Harga à NamaBrg .5 Hrg 1000000.insert : ingin memasukan supplier tanpa transaksi? .. . NamaSup à NamaBrg.Delete : menghapus transaksi à supplier terhapus . J.. .e-Book . 3250000 Hak Cipta 2007 Tot 14500000 17/10/05 5.39 - ..... KodeSup à NamaSup à Qty... Jtempo.. ..tempo 15/10/04 qty 10..

Tabel rekapitulasi C. DENORMALISASI Hak Cipta 2007 1. Pross pelanggaran terahadap konsep normalisasi disebut dengan denormalissi adalah untuk meningkatkn kinerja sistem (performasi). Duplikasi adalah penyimpanan nilai-nilai yang lebih 1 kali untuk menggambarkan fakta yang beda. Duplikasi terkadang memang diperlukan dalam basis data.e-Book B. 3.atribut yang terderiviasi ànilai pada aribut ini bisa diolah dari nilai-nilai yang sudah ada tabel lain. Apel Merah No 27A Yogyakarta Nama Basis Data Struktur Data Agama Kalkulus : : 12 2.Pemeliharaan integritas membutuhkan waktu lebih banyak.Dapat menimbulkan inkonsistensi data (melemahkan integritas data).40 - .membutuhkan ruang penyimpanan yang besar. . . Redudancy terjadi ketika terjadi penyimpanan fakta yang sama lebih dari 1 kali. AKIBAT DENORMALISASI Denormalisasi dapat mengakibatkan adanya redudancy. KONSEP DENORMASLISASI Normalisasi hanya merupakan kebijakan standart perancangan basis data yang masih boleh dilanggar. .92 SKS 3 4 2 3 Jenjang Jurusan Th. DAN BENTUK BCNF) DENGAN DOKUMEN DASAR SEBAGAI BERIKUT : TRANSKIP NILAI PERGURUAN TINGGI XYZ NIM Nama Alamat : : : 110A213 Nindita Adi Swatika Jl. Masuk : : : S1 Sistem Informasi 2002 Kode Matkul BD SD A K Total SKS IPK Tahun Pengambilan 2002 2003 2002 2003 Semester Pengambilan 2 1 2 1 Nilai A B D C . NORMAL 2. SOAL LATIHAN 1.Atribut yang berlabihan : Atribut terkodekan atribut gabungan Atribut tumpang tindih Atribut bermakna ganda . BUATLAH RANCANGAN BASIS DATA DENGAN MENGGUNAKAN TEKNIK NORMALISASI (BENTUK TIDAK NORMAL 1. 2. Kelemahan redudancy : . BENTUK-BENTUK DENORMALISASI Berikut ini adalah bentuk-bentuk denormalisasi : . Redudancy perlu dibedakan dengan duplikasi.

Jelaskan alasannya! .e-Book 2.41 - . berikan contoh keadaan/tabel yang perlu denormalisasi. apa alasan dilakukannya denomarlisasi? Hak Cipta 2007 3.

foreign key. Vrsi aslinya pertama kali dikembangkan oleh IBM San Jose Research Laboratory.42 - . Bahasa ini aslinya disebut Suquel. menghapus data (DELETE). Terdapat macam-macam versi SQL. SQL mrupakan bahasa data relasional standart. dan lain-lain. Data-Manipulasi Language (DML) DML merupakan bahasa query yang digunakan untuk melakukan pengolahan terhadap data yang ada didalam sebuah database. Oleh karena itu diperkenalkan SQL sebagai bahasa query yang lebih marketable. SQL mempunyai kemampuan untuk mendefinisikan struktur data. Bahasa Sequel berkembang dan berubah menjadi SQL (Structural Query Language). default.e-Book BAB VIII BAHASA BASIS DATA Hak Cipta 2007 A. Contoh konstrain yang diimaksud disini adalah promery key. the American National Standart Institute (ANSI) dan the International Standart Organization (ISO) mengumumkan sebuah standart SQL yang disebut 86. Pengolahan yang dimaksudkan disini diantaranya adalah memasukan data kedalam table (INSERT). SQL menggunakan kombinasi aljabar relasional & kalkulus relasional. Data Definition Language (DDL) DDL memberikan perintah untuk mendefinisikan dan memodifikasi database dan strukturnya termasuk konstrain-konstrain yang ada di suatu table. mengubah data (UPDATE). Meskipun SQL adalah bahasa query terhadap basis data. dan mengambi data (SELECT) dari satu atau beberapa table. Sampai sekarang bahasa yang menjadi standart adalah SQL 92. BAHASA BASIS DATA Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih mudah dipahami dan mudah digunakan (user-friendly). . Pada tahun 1986. unique. yaitu : 1. modifikasi data dalam basis data dan menentukan konstrain sekuriti. null. diimplementasikan pada Sytem R Project pada awal 1970-an. 2. Bahasa SQL mempunyai dua bagian. index.

d) Real. Idf erupakan file history.1 Tabel tipe domain standart SQL-92 Tipe Char (n) Vachar (n) Int Smallint Numeric (p. DEFINISI SKEMA DALAM SQL Berikut ini adalah perintah-perintah SQL yang contohnya diimplementasikan dalam software SQL server 2000.Idf File dengan ekstensi . Maksimum panjang n. Floating-poin dan double-precision floating point Floating—point number e Tipe kalender Tipe hari dalam jam. menit. Tabel 8. Membuat database CREATE DATABASE SPBD . mdf dan SPBD_Log. yaitu di C:\Program Files\Microsoft SQL Server\MSSQL\Data\ Dengan nama SPBD. bisa dibuat cript seperti dibawah ini : . 1. Standart SQL-92 mendukung bermacam-macam tipe domain built-in yang dapat dilihat pada tabel 8. BAHASA BASIS DATA UNTUK Hak Cipta 2007 MENGIMPLEMENTASIKAN RANCANGAN BASIS DATA Pada bahasan sebelumnya. Double Precision Float (n) Date Time Keterangan Tipe karakter dengan panjang yang tetap (n) (fixed-lengthcharacter) Tipe karakter dengan panjang bervariasi. Apabila diinginkan lokasi database yang berbeda.1. Didalam SQL juga dikenal bahasa definisi data atau sering dengan definition language. Scipt tersebut akan menghasilkan pembuatan database dilokasi default dari SQL Server 2000. Interger Small interger P menunjukkan jumlah digit bilangan dan d menunjukan jumlah digit dibelakang titik desimal.e-Book B.43 - . dan detik D. sudah dijelaskan SQL untuk mengakses data dan untuk manipulasi data.mdf bersisi data dari database tersebut sedangkan file dengan ekstensi .

DROP DATABSE SPBD . MAXSIZE = 10. didalam banyak DBMS pembuatan dan penghapusan database biasanya dapat menggunakan fasilitas GUI yang disediakan DBMS tersebut.mdf . Dalam query dibawah ini belum didefinisikan primary key dan konstrain yang lain. FILENAME = D : \spbd. FILENAME = D : \spbd. 2. Keyboard size merupakan besar awl dari file ketika database dibuat. Mebuat Tabel Berikut ini adalah contoh query untuk membuat table mahasiswa dengan atributnya adalah ThAng.mdf dan history di D:\spbd. 3. FILEGROWTH = 2 ) LOG ON ( NAME = spbdlog . CREATE TABLE MAHASISWA ( THAN INTERGER. Maxsize merupakan nilai maximum dari databasenya sedangkan filegrowth merupakan nilai maksimum nilai pertambahan ukuran database ketika ukuran sudah mencapai ukuran yang didefinisikan sebelumnya. dan Alamat. FILEGROWTH = 1MB ) . Nim.ldf .44 - .e-Book CREATE DATEBASE SPBD ON PRIMARY ( NAME = spbd.ldf. Nama. MAXSIZE = 10 MB. Sebagai catatan . SIZE = 1. SIZE = 1MB. . Hak Cipta 2007 Scipt tersebut diatas akan membuat sebuah database dengan nama SPBF pada disk local dengan dua buah file. yaitu file data di D:\spbd. Menghapus database Sintak query untuk menghapus database sebagai berikut : DROP DATABASE nama_database Berikut ini adalah contoh query untuk menghapus database SPBD.

NAMA VARCHAR ( 30 ) not null . ALAMAT VARCHAR ( 80 ) ) default YOGYA ) . NIM.45 - . NAMA VARCHAR ( 30 ) . CREATE TABLE MAHASISWA ( THAN INTERGER not null . 6. ALAMAT VARCHAR ( 80 ) ) . Field ThAng. Field ThAng. Apabila tidak didefinisikan. pada saat ini pembuatan tabel. 5. Menghapus tabel Untuk menghapus sebuah tabel dapat dituliskan perintah query berikut ini : DROP TABLE MAHASISWA . sedangkan field Alamat tidak . Mendefinisikan Nilai Default Nilai default adalah nilai/data yang otomatis diberikan oleh sistem untuk suatu field ketika ada penambahan baris/record. nilai defaualt dari suatu atribut adalah null. Dalam query tersebut diatas. Tabel tersebut memiliki 4 buah fielf yang bermakna ThAng. Namun. Query tersebut diatas mendefinisikan pembuatan tabel dengan 4 field. terkadang dibutuhkan pula kostrain untuk mendefinisikan suatu atribut yang harus disi (not null). akan dibuat sebuah tabel dengan nama mahasiswa. Nama dan Alamat. Nama dan Alamat. NAMA VARCHAR ( 30 ) not null . berikut contoh bentuk query-nya : CREATE TABLE MAHASISWA ( THAN INTERGER not null .e-Book NIM INTERGER. Untuk melakukannya. Mendefinisikan null/not null Secara default. sementara nilai pada field tersebut tidak diisi oleh user. Untuk mendifinisikan nilai default dapat dilakukan dengan membuat qury dengan bentuk seperti dibawah ini. suatu atribut boleh bernilai kosong (null)/tidak diisi ketika pengguna menambah data. Hak Cipta 2007 4. tetapi field Alamat boleh tidak isi. yaitu : ThAng. NIM harus diisi ketika ada penambahan data baru. NIM. ALAMAT VARCHAR ( 80 ) ) . dan Nama harus diisi ketika akan menambah data baru. Karena memilki kostrain not null. NIM.

misalnya kita ingin membuat table KHS dengan atribut NIM. PRIMARY KEY ( NIM ) ) . Mendefinisikan Primary Key Primary key adalah satu atau lebih atribut yang terpilih sebagai wakil dari suatu tabel apabila akan direlasikan dengan tabel yang lain. Ada 3 cara yang dapat dilakukan dalam pembuatan primary key. dan Nilai dengan primary key NIM dan Matkul. NAMA VARCHAR ( 30 ) not null primary key . Cara ini dilakukan bersama-sama pada saat dilakukan pembuatan table. maka sistem secara otomatis akan mengisi field tersebut dengan ’YOGYA’. yaitu NIM : CREATE TABLE MAHASISWA ( THAN INTERGER not null . Berikut ini adalah contoh query untuk membuat table mahasiswa dengan primary key atribut tunggal. Maka atribut query-nya adalah sebagai berikut : CREATE TABLE KHS ( NIM INTERGER not null . ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) . Didefinisikan dibelakang atribut yang terpilih sebagai primary key.46 - . primary key boleh atribut tunggal ataupun kumpulan atribut. NAMA VARCHAR ( 30 ) not null . Namun jika tidak diisi. 7. Contoh yang lain. b. Hanya saja pada cara ini. ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) . Berikut ini adalah contoh pembuatan tabel mahasiswa dengan primary key NIM : CREATE TABLE MAHASISWA ( THAN INTERGER not null . . juga dilakukan pada saat pembuatan tabel. NIM INTERGER not null . Cara kedua dilakukan dengan mendefinisikan konstrain primary key pada bagian akhir pendefinisikan tabel. cara ini tidak dapat mengimplementasikannya. yaitu : a. NIM INTERGER not null . Cara kedua seperti cara pertama. Matkul. Apabila atribut yang terpilih sebagai primary key lebih dari satu ( komposit key ).e-Book Hak Cipta 2007 harus diisi.

NILAI CHAR ( 80 ) ) default ’ B ’ ) . Namaum khusus untuk pendefinisian primary key dengan cara ketiga ini. kostrain primary key HARUS diberikan nama. MATKUL ) ) . tetapi primary key belum didefinisikan. Cara Hak Cipta 2007 terakhir untuk mendefinisikan primary key adalah dengan menambahkan query khusus pendefinisisan kotrain primary key cara ini bisa dilakukan pada saat table sudah dibuat. c.e-Book MATKUL VARCHAR ( 4 ) not null . Sebenarnya semua konstrain didalam database memilki nama. nama tersebut akan diberikan secara otomatis oleh siste. Atribut yang dipilih sebagai primary key harus terdefinisian terlebih dahulu dalam pembuatan table sebelumnya dan memiliki konstrain not null pada atribut tersebut. Sebagai contoh. PK_MHS merupakan nama konstrainnya sedangkan NIM merupakan atribut yang terpilih sebagai primary key. sementara kita merasa masih harus didefinisikan primary key-nya maka kita bisa menambahkan query berikut tanpa melakukan penghapusan tabel terlebih dahulu. ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) . NIM INTERGER not null . . kita juga bisa mendefinisikan primary key yang berupa atribut tunggal atau komposit key. Setelah query dijalankan dan tabel sudah terbuat. apabila kita sudah membuat tabel mahasiswa dengan 4 atribut tanpa primary key dengan query berikut : CREATE TABLE MAHASISWA ( THAN INTERGER not null . Dengan cara ini nama kostrain PK_MHS dapat kita gunakan untuk menghapus konstrain tersebut dengan cara berikut : ALTER TABLE MAHASISWA DROP CONSTRAIN PK_MHS . tetapi apabila tidak didefinisikan. PRIMARY KEY ( NIM . Mahasiswa pada query diatas adalah nama table yang ingin ditambahi primary key. Dengan cara ini.47 - . NAMA VARCHAR ( 30 ) not null . ALTER TABLE MAHASISWA ADD CONSTRAIN PK_MHS PRIMARY KEY (NIM) .

sedangkan primary key dari kelas adalh IdKelas.1 Relasi antar table Untuk mengimplementasikan foreign key pada table kelas. Ada dua cara untuk mendefinisikan foreign key pada suatu table. Misalnya kita membuat 3 buah table mahasiswa.48 - . Sementara pada table kelas terdapat foreign key kode yang merujuk pada atribut kode pada mata kuliah. mata kuliah. KODE CHAR ( 2 ) NOT NULL REFERENCES MATAKULIAH ( KODE ) . Sebagai contoh. cara pertama dengan mendefinisikan pada saat pembuatan table. Mendefinisikan Foreign Key Hak Cipta 2007 Untuk mendefiniskan Foeign Key harus dipastikan bahwa table dan atribut yang dirujuk (table induk dari foreign key) sudah didefinisikan terlebih dahulu. maka table induk dari foreign key yang ada pada table tersebut (mahasiswa dan dosen) harus diimplementasikan terlebih dahulu. dan primary keynya adalah NIP dan pada table Mata kuliah primary key-nya adalah Kode. KELAS PK KELAS PK PK IDKELAS KODE NIP KODE MATAKULIAH SKS PK KELAS PK NIP NAMA Gambar 8. perhatikan pendefinisian foreign key pada table Kelas berikut : CREATE TABLE KELAS ( IDKELAS INTERGER NOT NULL PRIMARY KEY.e-Book 8. Selain itu table tersebut juga memiliki foreign key NIP yang merujuk pada atribut NIP pada dosen.

Sementara apabila foreign key lebih dari satu atribut atau didefinisikanssesudah table terimplementasi. segala perubahan data pada table induk dimana data tersebut sudah dipakai pada table yang ada foreign key-nya tersebut maka data pada table yang ada foreign key akan menyesuaikan/mengikuti perubahannya. Pendefinisian foreign key dengan cara kedua ini mempunayi keuntungan dalam memodifikasi/menghapus foreign key NIP pada table kelas yang diberi namaFK_Kelas2 dapat dilakukan dengan langkah sebagai berikut : ALTER TABLE KELAS DROP CONTRAINT FK_KELAS . NIP INTERGER NOT NULL REFERENCES DOSEN ( NIP ) ON UPDATE CASCADE ON DELETE NO ACTION ) .e-Book ON UPDATE CASCADE ON DELETE NO ACTION . maka dapat didefinisikan dengan query berikut : ALTER TABLE KELAS ADD CONSTRAINT FK_KELAS1 FOREIGN KEY (KODE) REFERENCES MATAKULIAH (KODE) ON UPDATE CASCADE ON DELETE NO ACTION .49 - . ALTER TABLE KELAS ADD CONSTRAINT FK_KELAS2 FOREIGN KEY (NIO) REFERENCES DOSEN (NIP) ON UPDATE CASCADE ON DELETE NO ACTION . ada variable status ON UPDATE dan ON DELETE yang isisnya bisa CAScade atau NO ACTION. Sebagai contoh data table DOSEN ditujukan pada table 8. CASCADE maksudnya.3 berikut : . Dalam pendefinisian konstrain foreign key. Hak Cipta 2007 Cara ini digunakan hanya untuk foreign key yang bukan komposit key (hanya satu atribut saja).2 dan data KELAS ditujukan pada table 8.

maka pengeditan tidak diijinkan. jika sebuah data pada table induk sudah dirujuk pada table yang ada foreign key-nya (seperti NIP 2 dan 1 pada table dosen sudah dirujuk oleh NIP pada table kelas) maka pada table induknya tidak ijinkan untuk dilakukan pengubahan/penghapusan.2 Tabel Dosen Hak Cipta 2007 NIP 1 2 3 NAMA Ani Eka Ratih Tabel 8. maka penghapusan tidak diijinkan.50 - . Sementara jika definisi ON DELETE NO ACTION. maka semua NIP yang bernilai 1 pada table Kelas juga terhapus. Misalnya diinginkan menghapus NIP 1 pada tabel dosen. Jika didefinisikan ON DELETE CASCADE. data terkait pada tabel yang ada foreign key-nya tersebut harus dihapus terlebih dahulu. maka yang terjadi ketika NIP 1 di table dosen dihapus. Jika didefinisikan ON UPDATE CASCADE. Sementara itu nilai NO ACTION maksudnya adalah.e-Book Tabel 8. maka sebelum penghapusan/pengubahan.3 Tabel Kelas IDKELAS 1 2 3 KODE 1 2 2 NIP 2 2 1 Dengan NIP pada kelas merupakan foreign key yang merujuk ke NIP pada table Dosen. Jika tepaksa diinginkan pegnubahan/penghapusan pada tabel induk yang sudah dirujuk dengan foreign key yang didefinisikan dengan ON UPDATE NO ACTION atau ON DLETE NO ACTION. jika didefinisikan ON UPDATE CASCADE maka ketika NIP 2 di table dosen diubah menjadi 5 maka semua NIP pada table kelas yang bernilai 2 akan berubah menjadi 5. . maka harus dilakukan penghapusan data dengan NIP 1 pada table Kelas terlebih dahulu.

DOSEN PK PK MATAKULAH PK NIP NAMA KODE MATAKULIAH SKS PK KELAS PK IDKELAS KODE NIP PK KRS PK PK PK NIM IDKELAS NILAI MAHASISWA THANG NIM NAMA ALAMAT PK Gambar 8.e-Book Hak Cipta 2007 Berikut diberikan contoh sebuah rancangan database pada gambar 8. NAMA VARCHAR ( 30 ) not null .2 dan diimplementasikan dengan query dibawahnya secara lengkap. .51 - . ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) . NIM INTERGER not null .2 Rancangan Database CREATE TABLE MAHASISWA ( THAN INTERGER not null .

e-Book Hak Cipta 2007 ALTER TABLE MAHASISWA ADD CONSTRAIN PK_MHS PRIMARY KEY (NIM) . REFERENCES DOSEN (NIP) ON UPDATE CASCADE ON DELETE NO ACTION . IDKELAS INTERGER NOT NULL . CREATE TABLE DOSEN ( NIP INTERGER NOT NULL PRIMAARY KEY . CREATE TABLE MATAKULIAH ( KODE CHAR ( 2) NOT NULL PRIMARY KEY . CREATE TABLE KHS ( NIM INTRGER NOT NULL . SKS INTERGER DEFAULT 2 ) . MATAKULIAH VARCHAR ( 30 ) NOT NULL . REFERENCES MAHASISWA (NIM) ON UPDATE CASCADE . ALTER TABLE KELAS ADD CONSTRAIN FK_KELAS2 FOREIGN KEY (NIP) . KODE CHAR ( 2 ) NOT NULL . ALTER TABLE KRS ADD CONSTRAIN FK_KRS1 FOREIGN KEY (NIM) . CREATE TABLE KELAS ( IDKELAS INTERGER NOT NULL PRIMARY KEY . NAMA VARCHAR ( 30 ) NOT NULL ) . NIP INTERGER NOT NULL ) .52 - . NILAI INTERGER DEFAULT 0 . REFERENCES MATAKULIAH (KODE) ON UPDATE CASCADE ON DELETE NO ACTION . ALTER TABLE KELAS ADD CONSTRAIN FK_KELAS1 FOREIGEN KEY (KODE) . PRIMARY KEY (NIM. IDKELAS ) ) .

dimana dalam query tersebut akan dilakukakan pengubahan tipe kolom alamat menjadi varchar (255). Dalam pengubahan suatu kolom tidak perlu disebutkan tipe kolom awal tetapi cukup tipe barunya saja. REFEREBCES KELAS (IDKELAS) ON UPDATE CASCADE ON DELETE NO ACTION . . 10. Hak Cipta 2007 9.53 - . kolom alamat tidak bia diubah menjadi tipe interger apabila telah berisi nonangka. Sebagai contoh. Manambah Kolom Terkadang penembahan kolom baru diperlukan pada table yang telah dibuat. dapat dilakukan seperti contoh query berikut dimana dalam query tersebut akan dilakukan penghapusan kolom jkel pada table mahasiswa. ALTER TABLE KRS ADD CONSTRAIN FK_KRS2 FOREIGN KEY (NIP) . Terkadang pengubah tipe kolom tidak dapat dilakukan pada kolom yang telah berisi data yang tidak kompotibel. Menghapus Kolom Jika diinginkan untuk menghapus suatu kolom yang sudah tidak diperlukan disuatu table. ALTER TABLE MAHASISWA ALTER COLOM ALAMAT VARCHAR ( 255 ) . 11. Berikut adalah contoh query untuk melakukan penambahan kolom/field pada tabel mahasiswa yang sudah diimplementasikan sebelumnya.e-Book ON DELETE NO ACTION . Mengubah Tipe Kolom Mengubah suatu tipe kolom dapat dilakukan seperti contoh query di bawah ini. seperti huruf dan simbol/tanda baca. ALTER TABLE MAHASISWA ADD JKEL CHAR ( 1 ) . ALTER TABLE MAHASISWA DROP COLOM JKEL .

5. KodeBarang. dan Jumlah.54 - .1. 3. 4. Harga. Satuan. File Nama dan Satuan tidak boleh berisi NULL. Didefinisikan bahasa basis data untuk pembuatan tabel barang dengan field : Nama. Tambahkan field KodeBarang ebagai primary key pada tabel di latihan soal no. Tambahkan table pembelian pada soal nomor 3 dengan field KodeBarang dan didefinisikan sebagai foreign key yang merujuk pada field KodeBarang dan table Barang. dan berikan penjelasan! 2. . definisikan sebuah table pembelian dengan field : Tanggal.e-Book D. SOAL LATIHAN Hak Cipta 2007 1. Hapus field KodeBarang dari table pada laithan soal nomer 3. Pilih tipe-tipe yang paling sesuai untuk field-field tersebut. dan Keterangan.

Contoh : Penyisipan data mahasiswa ke table mahaiswa..nilai_n) .. Atau INSERT INTO table_name (kolom_1. nilai_2.. jumlah dan urutan kolom yang akan diisis harus sesuai dengan jumlah dan urutan struktur tabel mahasiswa.55 - .VALUES. Maharani ) .e-Book BAB 1X MANIPULASI DATA Hak Cipta 2007 Data manipulasi language (DML) merupakan bahasa query yang berdasarkan pada aljabar relasi dan kalkulus relasi tuple.. Pada cara pertama. 204. . INSERT INTO mahasiswa VALUE (2003. Syntax : INSERT INTO nama_tabel VALUE (nilai_1. 204. penghapusan dan modifikasi. seluruh kolom yang didefinisikan tidak null (not null) harus selalu diisi dala proses penyisipan data. Atau INSERT INTO mahasiswa ( thmasuk. VALUE (nilai_1...kolom_n) . kolom_2. nama kolom yang akan diisikan tidak disebutkan. Selain itu. A. Dengan cara ini. . Maharani ) . niai_n) . Penulisan query untuk menyisipkan data dapat dilakukan dengan 2 cara. Termasuk dalam perintah ini adalah penyisipan. nama kolom yang diisi tida harus sesuai dengan struktur tabel mahasiswa tetapi antara jumlah dan urutan kolom yang disebutkan harus dengan jumlah dan urutan pada bagiann value... .. nilai_2. nim. PENYISIPAN DATA ( INSERTION) Perintah SQL untuk measukan data ke dalam tabel adalah INSERT INTO.. nama ) VALUE (2003. Lain halnya dengan cara kedua.

Syntaks : UPDATE nama_tabel1 SET Kolom_1 = nilai_baru_1 . § Mengubah semua baris. diinginkan untuk mengganti nilai dalam tabel tanpa harus mengganti semua nilai dalam tabel tersebut. Untuk tujuan ini dapat digunakan statement UPDATE. . 1. § Mengubah beberapa kolom sekaligus § Mengubah beberapa baris.56 - . Mengubah kolom tertentu untuk baris tertentu Mislkan kita ingin mengubah kolom nama menjadi Anita Marani dalam tabel mahasiswa yang nim-nya = 200.. Data hasil : NIM 200 ThMasuk 1999 Nama Anita Mariani . Kolom_2 = nilai_baru_2 . UPDATE juga dapat digunakan untuk mengubah data yang terdapat pada baris tertentu. MODIFIKASI DATA Hak Cipta 2007 Dalam situasi tertentu.e-Book B. Data semula : NIM 200 ThMasuk 1999 Nama Nita Mariani Perintah SQL : UPDATE mahasiswa SET nama = ’ Anita Mariani ’ WHERE nim = 200 .. Kolom_3 = nilai_baru_n [Whare kondisi] Ada empat hal yang bisa kita lakukan untuk mengubah data dengan UPDATE : § Mengubah sebuah kolom untuk baris tertentu.

Data hasil : NIM 200 ThMasuk 2000 Nama Anita Mariani 3. Mengubah beberapa kolom sekaligus Hak Cipta 2007 Misalkan diinginkan untuk mengubah beberapa data seorang mahasiswa Data semula : NIM 200 ThMasuk 1999 Nama Anita Mariani Perintah SQL : UPDATE mahasiswa SET nama = ’ Anita Mariani ’ . maka yang akan diubah juga hanya satu baris saja. Namun bila kondisinya terpenuhi oleh beberapa baris. thmasuk = 2000 . Mengubah beberapa baris Untuk membatasi baris baris yang akan diubah.57 - . Apabila kondidinya memenuhi syarat untuk satu baris saj. Kondisi yang disertakan di belakang klausa WHERE akan menentukan berapa banyak baris yang akan diubah. Contoh : Perubahan thmasuk mahasiswa yang semula 2001 menjadi 2002. WHERE nim = 200 . maka semua baris yang memenuhi akan ikut diubah.e-Book 2. kiata perlu menggunakan klausa WHERE. Data semula : NIM 200 201 202 234 323 324 325 ThnMasuk 1999 1999 2000 2000 2000 2000 2000 Nama Nita Mariana Fitri Lutfia Farhan Saleh Romi Amanda Emilia Fery Aryanto Miranda Jamil .

Mengubah semua baris Untuk mengubah semua baris. Dengan perintah diatas.58 - . Contoh : UPDATE mahasiswa SET thmasuk = 2003 .e-Book 400 425 426 2001 2001 2001 Astrina Damayanti Gogon Nandito Ananda Miranti Hak Cipta 2007 Contoh : UPDATE mahasiswa SET thmasuk = 2002 WHERE thmasuk = 2001 Data hasil : NIM 200 201 202 234 323 324 325 400 425 426 ThnMasuk 1999 1999 2000 2000 2000 2000 2000 2002 2002 2002 Nama Nita Mariana Fitri Lutfia Farhan Saleh Romi Amanda Emilia Fery Aryanto Miranda Jamil Astrina Damayanti Gogon Nandito Ananda Miranti 4. kita tidak perlu menuliskan klausa WHERE sebagai pembatas. maka seluruh baris dalam tabel mahasiswa pada kolom thmasuk akan diisi dengan 2003 .

Relasi kedua tabel tersebut tampak pada gambar 9.1. Yang dapat dihapus (delete) hanyalah tuple bukan nilai pada suau atribut tertentu. PENGHAPUSAN DATA (DELETION) Hak Cipta 2007 Untuk menghapus baris-baris yang terdapat pada suatu tabel dapt digunakan pernyataan DELETE. Tetapi sifat relai on delete on cascade. aka pada sifat relasi on delete no action penghapusan data mahaisawa dengan NIM 200 tidak bisa dilakukan.1 dan 10.1 Relasi tabel Mahasiswa dan KRSTeori Ada dua penggolongan dalam menghapus tabel : § Menghapus beberapa baris § Menghapus semua baris 1.59 - .ete no action. Tetapi jika sifatrelasinya on delete cascade akan penghapusan suatu data master akan mengakibatkan terhapusnya data pada tabel yang mereferensi (detail). Menghapus beberapa baris Seperti pada bagian modifikasi data. Penghapusan data pada suatu tabel yang menjadi referensi (master) dari tabel lain tidak dapat dilakukan apabila sifat relasinya on de. penghapusan data pada baris-baris tertentu memerlukan klausa WHERE sebagai pembatasan baris dengan kondisi bagaimana yang akan dihapus. Mahasiswa PK NIM ThMasuk Nama PK Mahasiswa Kelas PK.e-Book C. Sebagai contoh adalah pada relasi antar tabel mahasiswa dengan tabel KRSTeori.6. karena sedang digunakan pada tabel KRSTeori.FK1 KodeKul PK. maka penghapusan data mahasiswa dengan NIM 200 akan mengakibatkan penghapusan semua data ada KRSTeoti dengan NIM 200. Sintaks : DELETE FROM nama_tabel [WHERE kondisi] . Contoh : Menghapus data KRSTeori yang memiliki kelas-nya – ’A’ .FK2 NIM Nilai Gambar 9. dalamrelasi mereka NIM pada tabel tersebut tampak pada tabel 10.

SOAL LATIHAN Perhatikan table mahasiswa berikut : NIM 1 2 Nama Ana Jamaica frinsca Edi mailoloho Alamat Klaten Yogya . Contoh : Penghapusan seluruh isi dari table mahasiswa berikut : DELETE FROM mahasiswa . tidak diperlukan adanya pembatasan kondisi sehingga sintaknya tidak memerlukan klausa WHERE.e-Book Data semula : Kelas A A B B A A B A A KodeKul SD SD SD SD SPBD SPBD SPBD PT PT NIM 200 201 200 234 323 324 234 234 202 Nilai 23 43 65 85 35 76 45 87 45 Hak Cipta 2007 Perintah SQL : DELETE FROM KRHTeori WHERE Kelas = A Data hasil : Kelas B B B KodeKul SD SD SPBD NIM 200 234 234 Nilai 65 85 45 2. Menghapus semua baris Untuk menghapus semua baris dalam suatu table.60 - . D.

Buatlah bahasa SQL untuk menghapus data mahasiswa yang beralamat di klaten. sebutkan isi table mahasiswa jika dijalankan perintah SQL berikut : update ahasiswa Set Nama = ’Jamaica Endrina ’ Where NIM = 3 .e-Book 3 4 5 Edna jurica Emilia Anastasia Famili Yogya Klaten yogya Hak Cipta 2007 1. Tunjukan hasilnya! . buatlah bahasa SQL untuk menambahan mahasiswa dengan NI 6 dan Nama Edmon. 2. 3.61 - .

e-Book BAB X MENGAKSES DATA Hak Cipta 2007 Untuk membantu memahami pemahaman mengenai SQL. Fk2 Fk Kelas KodeKu NIP NIP Lab PK NIP Nama Gambar 10. Fk2 PK. Fk2 Kelas KodeKul NIM PK Mahasiswa NIM KRSTeori PK PK.62 - . Fk2 PK. Fk2 Fk Kelas KodeKu KuliahTeori Dosen PK. Fk1 PK.1 Isi tabel Mahasiswa NIM 200 201 202 234 323 324 ThnMasuk 1999 1999 2000 2000 2000 2000 Nama Nita Mariana Fitri Lutfia Farhan Saleh Romi Amanda Emilia Fery Aryanto . perhati9kan relasi basis data berikut : KRSPraktikum PK PK. Fk1 PK.1 Relasi antar tabel Dengan asumsi isi dari tabel-tabel dala basis data adalah sebagai berikut : Tabel 10. Fk2 Kelas KodeKul NIM Nilai ThnMasuk Nama Nilai Matakuliah PK KodeKul Kuliah SKSTeoril SKSPraktek KuliahPraktikum PK.

2 Isi tabel Dosen NIP 066 067 068 056 Nama Kusrini.Kom Erik H.Kom Suyanto.S.3 Isi tabel Matakuliah KodeKul SD SPBD MM PT Kuliah Struktur data Bais Data Multimedia Pengenalan Pascal SKSTeori 2 2 2 0 SKSPraktek 1 2 0 2 Tabel 10. M. S.4 Isi tabel KuliahTeori Kelas A B A B A KodeKul SD SD SPBD SPBD MM NIP 066 067 068 066 056 Tabel 10.63 - . S.5 Isi tabel KuliahPraktikum Kelas A B A B A KodeKul SD SD SPBD SPBD MM NIP 068 066 066 067 067 Lab I I I II II .e-Book 325 400 425 426 2000 2001 2001 2001 Miranda Jamil Astrina Damayanti Gogon Nandito Ananda Miranti Tabel 10. MM Tabel 10.Kom Hak Cipta 2007 Khusnawi.

.. Klausa Form berhubungan dengan operasi Cartesian-product dari aljabar relasional. Operasi ini mencatat semua relasi yang di”scan” dalam evaluai suatu query.6 Isi tabel KRSTeori Kelas A A B B A A B B A KodeKul SD SD SD SD SPBD SPBD SPBD SPBD MM NIM 200 202 234 323 200 234 324 323 324 Hak Cipta 2007 Nilai 40 80 50 30 15 100 25 34 65 Tabel 10. Operasi ini digunakan untuk mendaftar semua atributyang diinginkan sebagai hasil suau query. Operasi ini terdiri dari sebuah predikat yang menyangkut atribut-atribut relasi yang muncul dalam klausa from. dan where.7 Isi tabel KRSTeori Kelas A A B B A A B A A KodeKul SD SD SD SD SPBD SPBD SPBD PT PT NIM 200 201 200 234 323 324 234 234 202 Nilai 23 43 65 85 35 76 45 87 45 A. Klausa opersi ini terdiri dari sebuah predikat seleksi dari aljabar relasional. Kolom_n . STRUKTUR BAHASA Struktur dasar dari ekspresi SQL terdiri dari tiaga klausa. Kolom_2 .64 - . Sebuah query SQL biasanya mempunyai bentuk : Select kolom_1 . Klausa Select berhubungan dengan operasi proyeksi dari aljabar relasional. . form. yaitu : select.e-Book Tabel 10.

KRSTeori K Where M.e-Book Form Tabel_1 . / dan operasi terhadap konstanta atau atribut dari tuple. Untuk menampilkan semua kolom dari suatu tabel. -. Tabel_2 . K. Query-nya : Select nama form Mahasiswa Hasil dari query terebut adalah sebuah relasi sebuah atribut tunggal dengan nama nama. K. 2. Oleh karenanya itu SQL memungkinkan terjadinya duplikasi tersebut.65 - . Klausa Where Contoh query : ”temukan semua NIM dari relasi mahasiswa yang namanya Gogon Nandito”. maka dapat disisipkan perintas distinct setelah select. … Tabel_n Where Kondisi 1. Dari contoh di atas. Jika tuple yang terduplikasi diinginkan hilang maka query diatas ditulis ulang sebagai berikut : Klausa select dapat juga mengandung operasi aritmatika yaitu operator : +.Nilai * M. Tapi dalam prakteknya untuk menghilangkan duplikasi tuple sangat memakan waktu.KodeKul = K. maka query-nya akan mencatat setiap nama_mhs setiap kali nama_mhs tersebut ditentukan dalam relasi Mahasiswa. Misalnya untuk menampilkan semua kolom pada tabel mahasiswa. Klausa Select Hak Cipta 2007 Contoh : ” tentukan nama-nama mahasiswa dari relasi Mahasiswa”. bisa digunakan * sebagai pengganti penyebutan nama-nama kolomnya.NIM.KodeKul. *. Contoh query berikut : Select K.SKSTeori Form MataKuliah M. Bahasa query formal bersifat matematis dimana relasi adalah sebuah himpunan sehingga tuple-tuple yang telah muncul tidak akan muncul lagi (tidak akan terjadi duplikasi tuple).KodeKul SQL-92 juga menyediakan tipe data spesial seperti tipe date dan memungkinkan beberapa fungsi aritmatika untuk beroperasi pada tipe-tipe ini. Query-nya ditulis sebgai berikut : Select NIM . Untuk kasus diatas jika diinginkan untuk menghilangkan duplikasi.

ditulis sebagai berikut : Select * Form Mahasiswa Where NIM between 210 and 400 Query tersebut akan menghasilkan daftar sebagai berikut : ThMasuk 2000 2000 2000 2000 2001 NIM 234 323 324 325 400 Nama Romi Amanda Emilia Fery Aryanto Miranda Jamil Astrina Damayanti 3. dan not dalam klausa where. Contoh : untuk menentukan data mahasiswa yang nim-nya antara 210 dan 400.e-Book Form Mahasiswa Where nama = `Gogon Nandito’ Hak Cipta 2007 SQL menggunakan konektivitas logika and. dapat ditulis sebagai berikut : . or. tentukan NIM dan Namanya”. Operasional rename dalam SQL menggunakan klausa as dengan bentuk : Nama lama as nama baru Contoh : jika atribut dengan nama ThMasuk akan diganti dengan nama Angkatan. Dalam SQL ditulis : Select NIM. Operasi Rename / Alias SQL menyediakan mekanisme operasional rename untuk relasi dan atribut. Contoh : ”contoh semua data yang masuk pada tahun 2001. Nama Form Mahasiswa Where ThMasuk = 2001 4.66 - . SQL juga memiliki perintah between untuk menentukan apakah suatu nilai lebih kecil dari pada atau sama dengan suatu nilai dan lebih besar dari pada atau sama dengan suatu nilai lain. Klausa Form From digunakan untuk menyebutkan nama tabel sumber data yang akan diambil.

e-Book Select Nama. ThMasuk as Angkatan Form Mahasiswa Where NIM = 234 Qurey tersebut akan menghasilkan daftar sebagai berikut : Nama Romi Amanda Angkatan 2000 Hak Cipta 2007 B. Intersect identik dengan expect (tidak) identik ~ pada aljabar relasional. ”SD” . Untuk mendapatkan semua mata kuliah yang ditawarkan di kuliah praktikum Select KodeKul from KuliahPraktikum Hasilnya : ”PT” . ”SPBD”. intersect. dan except. “SD” dan “SPBD” . OPERASI HIMPUNAN Operasi-operasi himpunan pada SQL-92 meliputi : union. Operasi Union Operasi ini digunakan untuk menggabungkan hasil dari beberapa query. Untuk mendapatkan semua mata kuliah yang ditawarkan dikuliah teori atau praktikum.67 - . Select KodeKul from KuliahTeori Hasilnya : ”MM” . c. (Select KodeKul from KuliahTeori) Union (select KodeKul from KuliahPraktikum) Hasilnya : “MM” . Union identik dengan U (gabungan ). ”SD” dan ”SPBD”. (irisan) dan 1. “PT” . Untuk mendapatkan semua mata kuliah yang ditawarkan di kuliah teori. b. Tabel 1 Tabel 2 Contoh : a.

dimana yang ditampilkan adalah yang memenuhi kedua query tersebut. Jika diinginkan duplikasi tetap ada ditulis intersect all. Operasi Intersect Operasi intersect digunakan ketika diinginkan hasil dari 2 query. Operasi Except Operasi except digunakan untuk menampilkan hasil dari 2 buah query dimana. Tabel 1 .e-Book Hak Cipta 2007 Operasi union akan menampilkan semua hasil pencarian pada seleksi pertama dan seleksi kedua secara unik. ”SPBD”. ”SD” dan ”SPBD”. sehingga query-nya menjadi : (Select KodeKul from KuliahTeori) Intersect all (select KodeKul from KuliahPraktikum) Sehingga hasilnya menjadi ”SD”. akan ditampilkan daftar mata kuliah yang ditawarkan baik dikuliah teori maupun di kuliah praktikum. Jika diinginkan adanya akan ditulis ulang dengan bentuk : (Select KodeKul from KuliahTeori) Union all (select KodeKul from KuliahPraktikum) 2. Bentuk query-nya akan menjadi : (Select KodeKul from KuliahTeori) Intersect (select KodeKul from KuliahPraktikum) Hasil dari query tersebut adalah : ”SD dan ”SPBD” Operai intersect secara otomatis menghilangkan duplikasi. Apabila terdapat duplikasi maka yang akan ditampilkan hanya salah satu.68 - Tabel 2 . 3. Tabel 1 Tabel 2 Dengan menggunakan Contoh 1 dan 2 pada Bab 7. hasil yang akan ditampilkan adalah semua hasil query pertama yang tidak terdapat dalam hasil query kedua.

akan mengembalikan nilai tekecil dari suatu atribut. Input untuk avg. untuk mendapatkan rata-rata nilai mahasiswa yang ikut kuliah teori. Yang termasuk operator dari kata avarage. FUNGSI-FUNGSI AGREGASI Operator agregasi merupakan salah satu bahasan penting materi SQL dalam perbandingan dengan relasi aljabar. Bentuk umum dari fungsi agregasi adalah : Select avg I min I max I sum I count (nama_kolom) From nam_tabel [Where kondisi] Contoh : 1. akan mengembalikan nilai besar dari suatu artibut. Jika diinginkan ada. Sementara untuk operator count dapat bertipe non-numerik. Dalam relasi aljabar.e-Book Hak Cipta 2007 Contoh : untuk mendapatkan semua mahasiswa yang mengikuti kuliah teori tetapi tidak mengikuti kuliah praktikum. ditulis : (select KodeKul from KuliahTeori) except (select KodeKul from KuliahPraktikum) Dari query tersebut akan dihasilkan : ”MM” Operasi except secara otomatis menghilangkan duplikasi. maka tulis : except all. C. Sum mengembalikan jumlah item dari suatu atribut. semua kondidsi dinilai satu saat : satu kondisi selalu merupakan sbuah predikat yang dinilai pada masing-masing tuple secara terpeisah laiinnya. akan mengembalikan nilai rata-rata dari suatu atribut. Min berasal dari kata minimum. gunakan sintaks berikut : . min dan max harus bertipe numerik. sum. Fungsi-fungs diatas telah tersedia.69 - . Max berasal dari kata maximum. Misalnya ingin diketahui jumlah peserta yang ikut kuliahteori. atau rata-rata nilai mahasiswa pada suatu mata kuliah. Sering terjadi diinginkan untuk menilai sebuah properti yang tergantung pada sekelompok tuple.

.. kolom_2. untuk mendapatkan jumlah peserta kuliah teori... Bentuk umum dari klausa ini menjadi : Select kolom_1..kolom_n Contoh : Untuk mencari jumlah peserta kuliah teori yang dikelompokan berdasarkan mata kuliahnya : Select KodeKul.kolom_n [. Bentuk umum dari klausa ini adalah : Select kolom_1.. maka dapat digunakan pada klausa having setelah group by. Nama atribut/kel.. kolom_2.kolom_n [. Artinya tuple-tuple yang mempunyai nilai yang sama pada semua atribut dalam bahasa klausa group-by dimasukan dalam satu group/kelompok.. . maka gunakan klausa group bye. Atribut dalam bahasa klausa group by digunakan untuk membentuk gruop/kelompok.70 - . . gunakan sitaks berikut : Select count (* ) From KRSTeori Jika fungsi agregasi ingin diterapkan pada kelompok himpunan tuple. avg I min I max I sum I Count (kolom_n+1)] From nam_tabel [Where kondisi] Group by kolom_1. avg I min I max I sum I Count (kolom_n+1)] .. kolom_2..e-Book Select avg (nilai) From KRSTeori Hak Cipta 2007 2. Count ( * ) as Jumlah From KRSTeori Group by KodeKul Query tersebut akan menghasilkan : KodeKul MM SD SPBD Jumlah 1 4 4 Jika suatu fungsi diterapkan pada group/kelompok yang dibentuk oleh group by.

e-Book From nam_tabel [Where kondisi] Group by kolom_1, kolom_2, ....kolom_n Having avg I min I max I sum I Count (kolom_n+1) Contoh :

Hak Cipta 2007

Untuk menampilkan mata kuliah teori yang mempunyai rata-rata nilai mahasiswanya diatas 45, gunakan sintaks berikut : Select KodeKul, avg (Nilai ) as Nilai From KRSTeori Group by KodeKul Having avg (Nilai) > 45 KodeKul MM SD Nilai 65 50

Atau : Select KodeKul From KuliahTeori Group by KodeKul Having avg (Nilai) > 75 Hasilnya : Nilai 65 50

Having memiliki fungsi hampir sama dengan where, yaitu sama-sama memberi batasan dari tuple yang akan ditampilkan. Namun ada perbedaan antara where dengan having. Where digunakan untuk membatasi pada level tuple, sedangkan having memberi batasan pada level group. Fungsi agregasi count sering digunakan untuk menghitung jumlah tuple dalam suatu relasi. Notasi fungsi ini dalam SQL adalah count ( * ). Jadi untuk mentukan jumlah tuple dalam relasi mahasiswa, ditulis : Select count ( * ) from mahasiswa

- 71 -

e-Book D. SOAL LATIHAN

Hak Cipta 2007

Dengan menggunkan table yang memiliki relasi seperti tergambar pada Gambar 10.1 dan data pada table 10.1 sampai 10.7, buatlah query untuk : 1. Menampilkan seluruh data mahasiswa dari tabel mahasiswa. 2. Menempilkan alamat asal mahasiswa (unik). 3. Menampilkan jumlah kelas teori berdasarkan mata kuliah.

BAB XI QUERY ANTAR TABEL

A. JOIN ANTAR TABEL Ada kalanya diperlukan suatu informasi yang merupakan gabungan dari beberapa tabel. Misalnya diinginkan data NIM (tabel Mahasiswa), nama (tabel Mahasiswa). Kodekul (tabel krsteori).

- 72 -

e-Book
NIM NAMA 324 Fery Arianto 200 Nita Mariani 202 Farhan Saleh 200 Nita Mariani 234 Romi Amanda 234 Romi Amanda 323 Emilia 323 Emilia 324 Fery Aryanto KODEKUL MM SD SD SPBD SPBD SD SD SPBD SPBD

Hak Cipta 2007
NILAI 65 40 80 15 100 50 30 34 25

B. QUERY DENGAN DUA BUAH TABEL Untuk menghasilkan informasi seperti tertera pada table 11.1 diperlukan query dengan 2 buah table, yaitu table mahasiswa dan table KrsTeori. Adapun bentuk query-nya adalah sebagai berikut : SELECT mahasiswa.NIM , Mahasiswa.nama , From mahasiswa , krsteori Where mahasiswa.NIM = krsteori.NIM Bentuk umum query 2 buah table atau lebih adalah sebagai berikut : SELECT Tabel1. Kolom1 , Tabel1.Kolom2 , ..., Tabel1.Kolomn , Tabel2.Kolom1 , Tabeln.Kolom2 , ..., Tabel2.Kolomn , ... Tabeln.Kolom1 , Tabeln.Kolom2 , ..., Tabeln.Kolomn FROM Tabel1 , Tabel2 , ..., Tabeln Where kondisi ;

C. MENGGUNAKAN ALIAS Nama tabel yang digunakan dalam query antar tabel bisa diberikan nama alias. Bentuk pemberian nama alias : SELECT alias1.kolom , alias2.kolom FROM tabel1 alias1 , tabel2 alias2 WHERE kondisi ;

- 73 -

e-Book

Hak Cipta 2007

Dalam hal ini, kondisi bisa menggunkan alias juga. Sebagai contoh, perhatikan perintah dibawah ini : SELECT m.NIM , m.nama k.kodekul , k.nilai FROM mahasiswa m , krsteori k WHERE m.NIM = m..NIM

D. PERKALIAN ALIAS Bentuk paling sederhana dari penggabungan dua buah table akan membentuk perkalian kartesian (cartesian product) atau biasa juga disebut cross join atau full join. Hal ini diperoleh kalu klausa WHERE tidak disebutkan. Sebagai contoh, perkalian kartesian adalah sebagai berikut : SELECT * FROM mahasiswa , krsteori Pada prakteknya, operasi seperti ini jarang berguna dan dapat menimbulkan proses yang sangat lama sekiranya masing-masing tabel mengandung data yang besar.

E. EQUIJOIN Yang disebut dengan adalah penggabungan antar tabel yang menggunakan operator sama dengan ( = ) pada kondisi dalam klausa WHERE untuk membandingkan satu kolom dengan kolom lainya. Contoh-cotoh diatas tadi merupakan contoh equijoin.

F. SELF-JOIN Self-join merupakan upaya penggabungan ari tabel yang sama. Misalnya, untuk memperoleh pasangan nama mahasiswa yang NIM-nya < = 300 dengan mahasiswa dengan NIM > 300 seperti tertera a\pada query berikut : SELECT x . nama , y . nama FROM mahasiswa x , mahasiswa y WHERE x . nim < = 300 And y . nim > 300 Hasil dari query tersebut adalah seperti tercantum dibawah ini : NAMA Nita Mariani Fitri Lutfia NAMA Emilia Emilia

- 74 -

75 - . kodekul FROM dosen d . d . nama . nip .e-Book Farhan Saleh Romi Amanda Nita Mariani Fitri Lutfia Farhan Saleh Romi Amanda Nita Mariani Fitri Lutfia Farhan Saleh Romi Amanda Nita Mariani Fitri Lutfia Farhan Saleh Romi Amanda Nita Mariani Fitri Lutfia Farhan Saleh Romi Amanda Nita Mariani Fitri Lutfia Farhan Saleh Romi Amanda Emilia Emilia Fery Arianto Fery Arianto Fery Arianto Fery Arianto Miranda Jamil Miranda Jamil Miranda Jamil Miranda Jamil Astrina Damayanti Astrina Damayanti Astrina Damayanti Astrina Damayanti Gogon Nandito Gogon Nandito Gogon Nandito Gogon Nandito Ananda Mirtani Ananda Mirtani Ananda Mirtani Ananda Mirtani Hak Cipta 2007 G. Untuk melihat perbedaan kedua macam equijoin ini. dilakukan qurey berikut : Contoh Inner Join : SELECT d . INNER JOIN DAN OUTTER JOIN Equijoin seringkali dibedakan menjadi dua kategori. k . yaitu inner wquijoin (atau disingkat inner join) dan outer equijoin (atau disingkat outer join). nip . nip = k . kuliahpraktikum k WHERE d .

Kom 66 Kusrini.Kom 66 Kusrini.Kom 67 Erik Hadi Saputra. nip . S. M. nip Hasilnya : NIP NAMA 65 Suyanto. M. S. S. kodekul FROM dosen d . k . nip . nama .Kom Hak Cipta 2007 KODEKUL PT SD SD SPBD SPBD Contoh Left Join : SELECT d . d .Kom 66 Kusrini.Kom 66 Kusrini. k . S.Kom KODEKUL NULL SD SPBD PT SD SPBD Contoh Right Join : SELECT d . S. kodekul FROM dosen d . RIGHT JOIN kuliahpraktikum k ON d .e-Book Hasilnya : NIP NAMA 67 Erik Hadi Saputra.Kom 68 Khusnawi.Kom 67 Erik Hadi Saputra. S. M.Kom KODEKUL PT SD SD SPBD SPBD . M. S. M. d . nip = k . M.Kom 67 Erik Hadi Saputra. S.Kom 66 Kusrini.Kom 68 Khusnawi. MM 67 Erik Hadi Saputra. LEFT JOIN kuliahpraktikum k ON d . nama . nip = k .76 - . nip Hasilnya : NIP NAMA 67 Erik Hadi Saputra. S.Kom 68 Khusnawi.Kom 66 Kusrini.

Kom 68 Khusnawi. MM 67 Erik Hadi Saputra. nip ON K . matakuliah m WHERE d . nip Hasilnya : NIP NAMA 65 Suyanto.Kom 66 Kusrini. Meskipun ada data tersebut tetap ditampilkan dengan pasangan dengan NULL. d . d . KodeKul Sementara pada outer join. nip = k . nip . Pada full join. M. M. FULL JOIN kuliahpraktikum k ON d . baik kiri maupun kanan statement full join dengan paaangannya. S.e-Book Contoh Full Join : SELECT d .Kom 66 Kusrini. KodeKul = M . informasi yang ditampilkan adalah berasal dari dua tabel yang berisi data sesuai dengan syarat dibelakang on (tidak boleh null). k . semua informasi yang ditampilakan adalah data dari tabel sebelah kanan statement right join beserta pasangannya dari tabel sebelah kiri. kuliahpraktikum k . M . kodekul . Kuliah FROM dosen d . Dalam inner join penambahan tabel dapat dilakukan seperti pada contoh berikut ini : SELECT d . Berikut adalah contoh join 3 tabel dengan manggunakan right join : . Dengan kata lain semua data dari tabel kiti mendapat pasangan data dari tabel sebelah kanan.77 - . Bagi data yang tidak memiliki pasangan akan diberi pasangan dengan NULL. Dengan menggunakan right join. join hanya dapat dilakukan terhadap 2 tabel.Kom 67 Erik Hadi Saputra. nip . kodekul FROM dosen d . nama . Apabila diinginkan untuk menjoin terlebih dari 2 tabel. nip = k . Inner join bisa dilakukan terhadap lebih dari dua tabel. maka 2 tabel pertama harus di-join terlebih dahulu untuk kemudian hasil join tersebut dianggap sebagai satu tabel dan dapat di-join habis. S. nama . S. k .Kom Hak Cipta 2007 KODEKUL NULL SD SPBD SD PT SPBD Dengan menggunakan inner join. informasi yang ditampilakan adalah dari kedua tabel.

KEANGGOTAAN HIMPUNAN Untuk melakuakan test keanggotaan himpunan digunakan in dan not in. nip = k . I. nama .e-Book SELECT d . nip . KodeKul H. dan kardinalitas himpunan. k . PERBANDINGAN HIMPUNAN Perhatikan query berikut : “Temukan nim mahasiswa yang mendapatkan nilai SPBD lebih dari nilai dari nilai SPBD yang diperoleh mahasiswa dengan NIM 200”. kodekul . Kuliah Hak Cipta 2007 FROM ( dosen d . Query-nya nim SELECT nim FROM krsteori WHERE nilai > all ( SELECT nilai FROM krstoeri WHERE nim = 200 AND kodekul = ‘SPBD’ ) AND kodekul = ‘SPBD’ . perbandingan himpunan. nip ) Right Join Matakuliah M ON K . Right Join kuliahpraktikum k . matakuliah m ON d . d . SELECT nip . M . KodeKul = M . QUERY BERSARANG (NESTED QUERY) Subquery tersarang biasanya digunakan untuk melakukan test keanggotaan himpunan.78 - . nama FROM mahasiswa WHERE nim in ( SELECT in FROM krstoeri ) J. Contoh : Untuk mendapatkan semua nim dan nama mahasiswa yang nimnya terdaftar dalam krsteori.

7. 3. NAMA.1 s/d 10. Nama. buatlah quey untuk : 1. terdiri dari : NIM. SOAL LATIHAN Hak Cipta 2007 Dengan menggunakan tabel yang memiliki relasi seperti tergambar pada Gambar 10. 2. KodeKul. Tampak data mahasisawa beserta indeks prestasi komulatif (IPK) dengan tampilan : NIM. .1 dan data pada Tabel 10. Menampilan data mahasiswa yang mengambil mata kuliah teori yang diambil. Nilai. SD.79 - . IPK. Menampilkan data mahasiswa beserta mata kuliah teori yang diambil. SKS.e-Book K.

Korth.Basis data. . Penerbit Informatika.Graw Hill Kristanto. Yogyakarta : Penerbitan ANDI. Penerbit Erlangga. Database Processing : Dasar-dasar. 1994.. Konsep dan Perancangan Database.M 2005.80 - . Database System Concepts. D.e-Book DAFTAR PUSTAKA Fatansyah.Penuntun Praktis Belajar SQ. Hak Cipta 2007 Kadir. H. Desain dan Implementasi.F. & Silberschats A. Bandung .Yogyakarta: Penerbit ANDI. C. 1999. A 2002. Kroenke. 1991.. H.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->