Oleh
Wiyli Yustanti, S.Si, M.Kom
Jurusan Teknik Elektro
Fakultas Teknik Universitas Negeri Surabaya
1. Tujuan
a. Peserta dapat menjelaskan tentang konsep basis data
b. Peserta dapat membuat model ER Diagram
c. Peserta dapat melakukan mapping ER Diagram kedalam basis data
d. Peserta dapat membuat query untuk mengolah basis data
e. Peserta dapat membuat aplikasi sistem basis data
2. Materi
A. Pendahuluan
Saat ini hampir semua perusahaan/unit usaha beralih ke komputer untuk menangani bisnisnya. Semua data-data yang dimiliki perusahaan tidak lagi disimpan dalam bentuk kertas-kertas melainkan disimpan didalam komputer. Data-data yang disimpan didalam komputer meliputi dokumen-dokumen, surat-surat, maupun data transaksi yang dilakukan perusahaan.. Data-data tersebut disimpan dalam file-file terpisah dengan ekstensi seperti .doc, .xls, dan lain-lain. Dari sekian banyak data ternyata ada beberapa data yang sebenarnya saling berhubungan namun disimpan dalam file-file yang sama sekali berbeda, meskipun sebenarnya data-data ini dipakai untuk keperluan yang sama. Dengan perkembangan teknologi yang terjadi saat ini data-data yang saling berhubungan tersebut disimpan dalam suatu sistem yang disebut dengan basis data/database untuk mempermudah pengelolaanya. Adapun contoh penerapan basis data adalah dengan mencoba mencermati pertanyaan-pertanyaan yang mungkin sering kita jumpai di lingkungan kita, misalnya :
- Berapa jumlah siswa yang mengikuti mata diklat Sistem Basis Data ?
- Siapa saja nama siswa dari kelas A1?
- Berapa nilai rata-rata yang diperoleh oleh ssiwa kelas 1 ?
- Siapa saja dosen yang mengajar mata diklat pemrograman basis data ?
- Siapa saja yang mendapatkan nilai A untuk mata diklat Matematika di kelas A1 ?
Untuk menjawab pertanyaan tersebut kita perlu waktu yang lama jika data tersebut disimpan dalam file-file yang terpisah ataupun bahkan jika masih disimpan dalam bentuk kertas-kertas (manual), tetapi bisa jadi jawaban atas pertanyaan-pertanyaan tersebut akan dapat diperoleh dalam hitungan detik jika kita melibatkan basis data/database. Contoh tersebut hanya merupakan salah satu contoh penerapan database. Kemudian, contoh lain dapat kita simak pada kasus berikut :
Perusahaan Panama Motor merupakan perusahaan yang cukup terkenal di bidang penjualan sepeda motor secara kredit. Usaha ini sudah berjalan hampir 9 tahun dengan pelanggan yang sangat banyak. Sesekali Pak Ridwan, pemiliknya, mendapat pertanyaan dari para pelanggan via telepon, seperti, ” Halo Pak Ridwan. Masih ingat saya ? Saya pak Budi, saya mau melunasi kredit saya besok pagi, berapa yang harus saya bayar?, termasuk dendanya, karena saya sudah dua bulan ini tidak mengangsur berhubung ada keperluan di luar kota.” Tentu saja pak Ridwan tidak dapat menjawab pertanyaan pak Budi dengan segera. Ia harus menyampaikan pertanyaan itu ke salah seorang staffnya dan kemudian staff tersebut harus membuka laci, mencari kartu piutang, menghitung angsuran yang belum dibayar, dendanya sampai besok pagi dan juga potongan pelunasannya. Serentetan pekerjaan ini sudah tentu memakan waktu dan menuntut ketelitian perhitungan. Seringkali juga pak Ridwan ingin tahu bagaimana komposisi keterlambatan pembayaran piutangnya dan staffnya baru bisa menyajikannya setelah beberapa hari.
Lalu terlintas pada benak pak Ridwan, ”Seandainya saya dengan cepat bisa tahu informasi hutang pelanggan, tentu akan lebih baik. Saya bisa memperoleh informasi piutang seluruh debitur dengan cepat, tanpa perlu meminta bantuan staff saya. Saya cukup menghadap ke komputer dan segera memperoleh informasi yang saya butuhkan.”
Pak Ridwan bukanlah seorang pemrogram dan tidak tahu sama sekali bahasa pemrograman. Oleh karena itu beliau meminta tolong seorang pakar komputer. Yang beliau ungkapkan adalah pemikiran-pemikiran yang sering muncul dalam benaknya, termasuk untuk mencari tahu nilai yang harus dibayarkan seseorang yang hendak melunasi hutangnya. Berdasarkan kebutuhan pak Ridwan, sang pakar membuat suatu program komputer, yang biasa disebut sebagai program aplikasi atau aplikasi saja. Program tersebut mempunyai banyak kemampuan termasuk mencetak faktur pembayaran angsuran. Program in melibatkan database untuk menyimpan data-data seperti data pelanggan, data penjualan, data pembayaran angsuran, jenis motor yang dijual dan sebagainya.
B. Konsep/Isi
1) Sistem Basis Data
Dari studi kasus pada perusahaan Panama Motor diatas muncul pertanyaan di benak kita “Apa sih yang disebut dengan basis data/database?”. Untuk menjawab pertanyaan tersebut mari kita simak penjelasan berikut.Database dapat diibaratkan sebagai sebuah lemari arsip yang didalamnya terdapat rak-rak untuk menyimpan berkas-berkas seperti berkas pegawai, berkas pelanggan, berkas penjualan dan lain sebagainya. Untuk mempercepat proses pencarian pemilik akan melakukan pengurutan berkas. Selain itu untuk mendapatkan data di tiap kelompok maka pemilik akan mengelompokkan berkas/datanya. Misal pemilik ingin mengetahui berapa orang jumlah pegawai di tiap bagian/divisi, maka pemilik akan mengelompokkan data pegawai berdasarkan divisinya dan kemudian menghitung jumlahnya. Ilustrasi database dengan lemari dapat digambarkan pada gambar 1 dengan tabel 1.
Meskipun database dapat diilustrasikan seperti lemari, namun perlu diingat bahwa ada beberapa perbedaan yang terjadi antara penyimpanan konvensional (dengan lemari) dengan penyimpanan digital dalam database. Perbedaan itu antara lain meliputi bahwa di lemari data pelanggan (NoPelanggan, nama, alamat) dapat terdapat di data pegawai dan di data penjualan, sementara di database yang ada di data pelanggan adalah NoPelanggan, nama, dan alamat, sementara di data penjualan yang ada hanya Nopelanggan saja. Berkas yang disimpan di lemari adalah berkas secara fisik (kertas dan data) sementara di database yang disimpan adalah datanya saja
Adapun beberapa definisi basis data menurut berbagai referensi adalah :
a. Basis data merupakan mekanisme yang digunakan untuk menyimpan informasi atau data. Informasi adalah sesuatu yang kita gunakan sehari-hari untuk berbagai alasan. Dengan basisdata, pengguna dapat menyimpan data secara terorganisasi. Setelah data disimpan, informasi harus mudah diambil. Kriteria dapat digunakan untuk mengambil informasi. Cara data disimpan dalam basis data menentukan seberapa mudah mencari informasi berdasarkan banyak kriteria. Data pun harus mudah ditambahkan kedalam basisdata, dimodifikasi dan dihapus. (Stephen dan Plew,2000).
b. Kemudian, definisi lain diambil dalam buku Silberschatz,dkk (2002) yang mendefinisikan basis data sebagai kumpulan data yang berisi informasi yang sesuai untuk sebuah perusahaan. Sistem manajemen basis data (DBMS) adalah kumpulan data yang saling berhubungan dan kumpulan program untuk mengakses data. Tujuan utama sistem manajemen basis data adalah menyediakan cara menyimpan dan mengambil informasi basis data secara mudah dan efisien.
c. Ramakrishnan dan Gehrke (2003) merupakan kumpulan data, umumnya mendeskripsikan aktivitas satu organisasi atau lebih yang berhubungan. Misalnya, basis data universitas mungkin berisi informasi mengenai mahasiswa, fakultas, mata kuliah, ruang kuliah, proses registrasi mahasiswa dan sebagainya.
Gambar 1. Ilustrasi Gambar Lemari Arsip Perusahaan Panama Motor
Tabel 1. Tabel ilustrasi database dengan lemari
No | Istilah di lemari | Istilah di Database |
1. | Lemari | Database |
2. | Rak | Tabel |
3. | Arsip (isi data) | Record (baris) |
4. | Item data (contoh : nip) | Field (kolom) |
Secara sederhana, basis data dibentuk oleh dua kata yaitu, basis dan data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang/berkumpul. Sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, suara atau kombinasinya. Dengan demikian basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti :
a. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.
b. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.
c. Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.
Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data/arsip. Sedangkan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan data/arsip. Perbedaanya hanya terletak pada media penyimpanan yang digunakan.Jika lemari arsip menggunakan lemari dari besi atau kayu, sedangkan basis data menggunakan media penyimpanan elektronik seperti disk atau hardisk. Perbedaan media ini yang selanjutnya melahirkan perbedaan – perbedaan lain yang menyangkut jumlah dan jenis metoda/cara yang dapat digunakan dalam upaya penyimpanan. Yang sangat ditonjolkan dalam basis data adalah pengaturan/pemilahan/pengelompokan /pengorganisasian data yang akan kita simpan sesuai fungsi/jenisnya. Pemilahan/ pengelompokan ini dapat berbentuk sejumlah file/tabel terpisah atau dalam bentuk pendefinisian kolom-kolom/field-dield data dalam setiap tabel.
Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi/tugas khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu. Sebuah kendaraan dapat mewakili sebuah sistem yang terdiri atas komponen starter (untuk memulai pengapian), komponen pengapian (untuk pembakaran BBM yang membuat torak bekerja), komponen penggerak/torak (untuk menggerakkan roda), komponen pengereman (untuk memperlambat/mengehntikan gerakan torak), komponen pelistrikan ( unutk mengaktifkan speedometer, lampu dan lain-lain) yang secara bersama-sama melaksanakan fungsi kendaraan secara umum, yakni sebagai sarana transportasi.
Basis data hanyalah sebuah objek yang pasif/mati. Ia ada karena ada pembuatnya. Ia tidak akan pernah berguna jika tidak ada pengelola/penggeraknya. Yang menjadi pengelola/penggeraknya secara langsung adalah program/aplikasi (software). Gabungan keduanya yakni basis data dan pengelolanya) menghasilkan sebuah system. Karena itu, secara umum sebuah system basis data merupakan system yang terdiri atas kumpulan file (table) yang saling berhubungan (dalam sebuah basis data di sebuah system komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi file-file(table-tabel) tersebut.Sebuah sistem basis data , secara lengkap terdiri darikomponen-komponen utama sebagai berikut :
a. Perangkat Keras (Hardware)
Perangkat keras yang biasanya terdapat dalam sebuah sistem basis data adalah :
a) komputer (satu untuk sistem yang stand alone atau lebih dari satu untuk sistem jaringan)
b) memori sekunder yang online (hardisk)
c) memori sekunder yang offline (removable disk) untuk keperluan backup data
d) media/perangkat komunikasi (untuk sistem jaringan)
b. Sistem Operasi (Operating System)
Sistem operasi merupakan program yang mengaktifkan/memfungsikan sistem komputer, mengnendalikan seluruh sumber daya (resource) dalam komputer dan melakukan operasi-operasi dasar dalam komputer. Sistem operasi yang banyak digunakan seperti : MS-DOS, MS-Windows 98,XP,NT, Linux, Unix, Macintosh dan sebagainya.
c. Basis Data (Databases)
Database adalah kumpulan data-data dalam bentuk tabel-tabel yang saling berhubungan yang disimpan dalam media perangkat keras komputer (contohnya harddisk) yang dapat diambil lagi sebagai informasi. Elemen-elemen penyusun database antara lain :
a) Tabel, merupakan kumpulan record dengan format field yang sama. Satu tabel biasanya merepresentasikan data satu objek maupun satu kejadian yang terjadi dalam sebuah sistem. Contoh tabel pegawai menyimpan data-data mengenai objek pegawai, tabel transaksi pembelian menyimpan data-data mengenai kejadian pembelian, dsb.
b) Field / kolom, merupakan bagian terkecil dari tabel yang digunakan untuk menyimpan item informasi. Contoh field NIP digunakan untuk menyimpan item informasi yang berupa nomor induk pegawai. Field nama digunakan untuk menyimpan nama pegawai, Field tanggal_transaksi digunakan untuk menyimpan item tanggal transaksi yang dilakukan pada suatu transaksi, dsb.
c) Record/baris, merupakan sekumpulan field yang berhubungan erat, yang menggambarkan satu informasi.
d) Primary key/kunci primer adalah suatu field yang nilainya unik dan digunakan sebagai kunci yang membedakan record satu dengan record lainnya. Contoh tabel pegawai primary keynya adalah Field NIP dalam artian antara data pegawai satu dengan pegawai yang lain NIPnya tidak akan pernah sama sehingga NIP adalah unik dan digunakan sebagai primary key. Primary key suatu tabel bisa terdiri dari satu field, gabungan dua field atau lebih.
e) Relationship/ hubungan, merupakan hubungan antara satu tabel dengan tabel yang lain.
f) Query, digunakan untuk menyaring dan menampilkan data yang memenuhi kriteria tertentu dari satu tabel atau lebih. Query dapat dibuat dengan menggunakan bahasa SQL maupun dengan desain query.
g) DBMS, singkatan dari DataBase Manajemen Sistem yang merupakan kumpulan program untuk membuat dan merawat/mengelola database. Misalnya Oracle, Foxpro, Visual Foxpro, dBase, dsb.
h) Sistem Database, merupakan gabungan database dengan manajemen database.
Gambar 2. Sistem Basis Data
DATABASE |
Tabel 1 |
Tabel 2 |
Tabel 3 |
Tabel 4 |
Tabel 5 |
Tabel 6 |
Gambar 3. Representasi Database
Gambar 3 menggambarkan tentang struktur database yang terdiri dari beberapa tabel. Dalam RDB (Relational Database) antara satu tabel dengan tabel yang lain berhubungan. Contoh menggambaran tabel, field dan record dapat dilihat pada Gambar 3. berikut.
Field |
Record |
NIP | NAMA | ALAMAT | KODE_UNIT_KERJA | |
131025899 | Istianah | Jl. Bulaksari 17 Surabaya | 3 | |
132589756 | Abdul Muizz | Jl. Rambutan 23 Sidoarjo | 2 | |
457891256 | Imanuel | Jl. Ketintang Barat 10 Surabaya | 2 | |
895798974 | Insan Abadi |
| 1 |
KODE_UNIT_KERJA | NAMA_UNIT_KERJA |
1 | Keuangan |
2 | Tata Usaha |
3 | Personalia |
Gambar.4 Ilustrasi table, record dan field
d. Sistem (Aplikasi/Perangkat Lunak) Pengelola Basis Data (DBMS)
Pengelolaan basis data secara fisik tidak dilakukan oleh pemakai secara langsung, tetapi ditangani oleh sebuah perangkat lunak (sistem) yang khusus. Perangkat lunak inilah (disebut DBMS) yang akan menentukan bagaimana data diorganisasi, disimpan, diubah dan diambil kembali. Ia juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, pemaksaan keakuratan/konsistensi data, dan sebagainya. Perangkat lunak yang termasuk dalam DBMS seperti dBase III+, Fox Base, MS-Acces, Borland-Paradox, Borland Interbase, MS-SQL Server, Oracle, Informix, Sybase dan sebagainya. Dalam Sistem Manajemen Data baik di perusahaan yang menggunakan komputer maupun yang tidak menggunakan komputer terdapat 3 operasi dasar yang harus dilakukandan dikelola dengan baik, yaitu :
a) Data Entry (pemasukan data). Sistem harus menyediakan suatu struktur untuk menyimpan data. Sistem harus mengijinkan pemeriksaan, perubahan, dan koreksi terhadap data, dalam rangka memelihara validitas informasi. Sebagai contoh formulir pendaftaran adalah struktur data yang dibuat dengan kertas dan tinta. Hasil pemasukan data disimpan dalam database.
b) Data Organization (pengolahan data). Setelah data tersimpan dalam sistem diperlukan program dengan fungsi-fungsi yang powerfull untuk mengorganisasi dan mengubah data. Termasuk didalamnya, pengurutan data, pemilihan data dan perhitungan matematis.
c) Report Generation (Pembuatan laporan). Dari waktu ke waktu, informasi dalam database perlu disusun dan disimpulkan. Hasil penyusunan kesimpulan ini dituangkan dalam laporan. Isi laporan biasanya meliputi seluruh database, tidak hanya sebagian. Informasi untuk laporan dihasilkan dengan menggunakan query. Selain itu informasi dalam laporan seringkali ditransformasikan dalam beberapa cara. Laporan tidak hanya merefleksikan isi database, tetapi juga memperlihatkan analisanya. Pembuatan neraca adalah salah satu contoh report generation.
e. Pemakai (User)
Ada beberapa jenis/tipe pemakai terhadap suatu sistem basis data yang dibedakan berdasarkan cara mereka berinteraksi terhadap sistem.
a) Programmer Aplikasi. Pemakai yang berinteraksi dengan basis data melalui bahasa pemrograman pengolahan basis data ( Data Manipulation Language), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (Pascal, C++, Basic dan lain-lain).
b) User Mahir (Causal User). Pemakai yang berinteraksi dengan system tanpa menulis modul program. Mereka menyatakan dengan query ( unutk akses data ) dengan bahasa query yang telah disediakan oleh suatu DBMS.
c) User Umum (End User/Naive User). Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan suatu program aplikasi permanen (executable program) yang telah ditulis/disediakan sebelumnya.
d) User Khusus (Specialized User). Pemakai yang menulis aplikasi basis data non konvensional, tetapi unutk keperluan-keperluan khush, seperti aplikasi AI (Artificial Intelligent), Sistem Pakar, Pengolahan Citra, dan lain-lain, yang bias saja mengakses basis data dengan/tanpa DBMS yang bersangkutan.
Untuk sebuah sistem basis data yang stand alone, maka pada suatu saat hanya ada satu pemakai yang dapat bekerja. Sedang untuk sistem basis data dalam jaringan, maka pada suatu saat ada banyak pemakai yang dapat berhubungan (menggunakan) basis data yang sama. Pilihan untuk stand alone (single user) atau jaringan (multi user) tergantung pada kebutuhan pemakai, perangkat keras yang tersedia, sistem operasi yang digunakan, serta DBMS yang dipilih.
f. Aplikasi (perangkat lunak) lain bersifat optional
Aplikasi lain ini bersifat optional, artinya, ada tidaknya tergantung pada kebutuhan kita. DBMS yang kita gunakan lebih berperan dalam pengorganisasian data dalam basis data, sementara bagi pemakai basis data (khususnya yang menjadi end-user/naive user) dapat dibuatkan/disediakan program khusus/lain untuk melakukan pengisian, pengubahan dan pengambilan data. Program ini ada yang sudah disediakan bersama dengan DBMS-nya, ada juga yang harus dibuat sendiri dengan menggunakan aplikasi lain yang khusus untuk itu (development tools).
2) ER Diagram
Salah satu tujuan dari DBMS adalah unutk menyediakan fasilitas/antar muka (interface) dalam melihat/menikmati data (user friendly/user oriented) kepada pemakai/user. Untuk itu, sistem tersebut akan menyembunyikan detail tentang bagaimana data disimpan dan dipelihara. Karena itu , seringkali data yang terlihat oleh pemakai sebenarnya berbeda dengan yang tersimpan secara fisik. Abstraksi data merupakan tingkatan/level dalam bagaimana melihat data dalam sebuah sistem basis data. Level dari abstraksi data secara visual dapat diperhatikan pada gambar 5.
Gambar 5. Level Abstraksi Data
Ada tiga level abstaksi data yaitu :
a. Level Fisik (Physical Level)
Merupakan level terendah dan menggambarkan bagaimana data sebenarnya disimpan. Tingkatan fisik menggambarkan secara rinci struktur data tingkat rendah yang kompleks. User melihat data sebgai gabungan dari struktur dan datanya sendiri. Pada level ini berurusan dengan data sebagai teks, angka atau bahkan melihatnya sebagai himpunan bit data (deskripsi record), alokasi ruang penyimpanan untuk data dan indeks, penempatan record data, teknik kompresi dan enkripsi data.
b. Level Logika/Konseptual ( Logical/Conceptual Level)
Merupakan level berikutnya dalam abstraksi data yang menggambarkan data apa yang sebenarnya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain (relationship data). Berisi struktur logika databse yang hanya dapat dilihat oleh administrator database (DBA). Pemakai pada level ini dapat mengetahui misal data pegawai disimpan dalam beberapa tabel seperti tabel pribadi, tabel pendidikan, tabel pekerjaan, tabel keluarga dan sebagainya. Tingkat konseptual ini menyatakan entitas, atribut dan relasinya, konstrain-konstrain terhadap data, informasi semantiks data, informasi kemanan dan integritas data.
c. Level Pandangan (View Level)
Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak pemakai dalam system basis data tidak akan terlibat dengan semua data/informasi yang ada/disimpan. Para pemakai umumnya hanya membutuhkan sebagian data/informasi dalam basis data yang kemunculannya diatur oleh aplikasi end-user. Misalnya data hari yang disimpan dalam bentuk kode ( 1 untuk senin, 2 untuk selasa dan seterusnya) yang kemudian ditampilkan bukan dalam bentuk kode 1,2,3 dan seterusnya, akan tetapi sudah dalam bentuk Senin, Selasa, Rabu dan seterusnya.
Untuk mengimplementasikan konsep level abstraksi data didalam sistem basis data, salah satu pendekatan yang dilakukan adalah melalui penggambaran model relasi data didalam sebuah diagram yang disebut Entity Relationship Diagram ( ER-Diagram). ER Diagram menggambarkan data pada tingkatan level logika (konseptual). Database dapat dianggap sebagai kumpulan relasi atau entitas. Istilah-istilah yang perlu dipahami terlebih dahulu untuk membuat sebuah model konseptual dalam bentuk ER Diagram dapat dilihat pada tabel 2 dibawah ini.
Tabel 2. Simbol – simbol pada ER- Diagram
Nama Objek | Simbol | ||||
| Entity | ||||
| Weak Entity ( Entiti Lemah) | ||||
| Relationship (relasi) | ||||
| Identifying Relationship ( relasi dengan entiti lemah) | ||||
| Attribute | ||||
| Key Attribute (atribut kunci) | ||||
| Multivalue attribute | ||||
| Composite Attribute | ||||
| Derived Attribute | ||||
| Total Participation dari E2 pada relasi R | ||||
| Cardinality ratio 1 : N untuk E1 : E2 didalam relasi R | ||||
| Structural constraint (min, max) on participation dari E pada relasi R |
Entitas adalah “sesuatu” atau “objek” di dunia nyata yang dapat dibedakan dari objek lain, sebagai contoh adalah kursi, orang tertentu, buku dan sebagainya. Entitas bisa berupa objek kongkrit ( orang, buku) dan bisa juga berupa objek abstrak (pinjaman, jadwal). Setiap entitas memiliki atribut, sebagai gambaran misalnya entitas orang memiliki nama dan alamat. Himpunan Entitas (Entity Set) adalah sSekelompok entitas yang sejenis dan berada dalam lingkup yang sama. Entitas menunjuk kepada pada individu suatu objek sedangkan himpunan entitas menunjuk pada rumpun (family) dari individu tersebut, contoh semua orang yang memiliki rekening di Bank (nasabah), semua pelanggan, mahasiswa atau dokter. Untuk memperjelas gambaran entitas perhatikan gambar 6.
Gambar 6. Himpunan Entitas Cutomer
Setiap Entitas memiliki atribut yang mendeskripsikan karakteristik (properti) dari Entitas tersebut sebagai contoh :
Customer = (Customer-Id, Customer-Name, Customer-Street, Customer-City)
Setiap Atribut akan memiliki nilai (values). Sedangkan batas-batas nilai yang diperbolehkan bagi suatu atribut disebut sebagai Domain (Value Set). Ada beberapa jenis atribut yaitu :
a. Simple dan Composite attributes
· Atribut Simple : Atribut sederhana yang tidak dapat dibagi dalam beberapa bagian
· Atribut Komposit : Atribut yang dapat dibagi lagi dalam beberapa bagian, contoh atribut nama dapat terdiri dari nama depan dan nama belakang
b. Single-valued dan multi-valued attributes
· Atribut Single-valued : Atribut yang memiliki paling banyak satu nilai untuk setiap baris data
· Multi-valued attributes : Atribut yang dapat diisi dengan lebih satu nilai tetapi jenisnya sama. Contoh : Nomor Telp, Alamat
c. Derived attributes
· Atribut Turunan : Atribut yang diperoleh dari pengolahan dari atribut lain yang berhubungan. Contoh : Umur, IP
Relasi adalah hubungan antara beberapa entitas
Contoh :
Hayes | depositor | A-102 |
Entitas customer | Relasi | Entitas account |
Himpunan relasi adalah kumpulan semua relasi yang merupakan relasi matematik antara n ≥ 2 entitas,dari himpunan-himpunan entitas yang ada :
{(e1, e2, … en) | e1 Î E1, e2 Î E2, …, en Î En}
dimana : (E1, E2,…, E3) adalah entitas
(e1, e2, …, en) adalah relasi
Contoh :(Hayes, A-102) Î depositor
Gambar 7. Himpunan Relasi Borrower
Derajat Relasi menunjukan banyaknya himpunan entitas yang saling berelasi. Himpunan relasi melibatkan dua himpunan entitas disebut Binary (atau ber-derajat 2). Secara umum himpunan relasi dalam sistem basis data adalah binary. Himpunan relasi memungkinkan untuk melibatkan dua himpunan entitas. Relasi antara lebih dari dua entitas jarang terjadi. Sebagai contoh : Jika employee suatu Bank boleh memiliki pekerjaan (Job) pada beberapa cabang (Branch) dengan pekerjaan yang berbeda pada cabang yang berbeda. Maka akan terjadi relasi ternary (berderajat-3) antara himpunan entitas employee, Job dan Branch. Selain derajat relasi, juga terdapat istilah yang disebut sebagai pemetaan kardinalitas relasi. Pemetaan kardinalitas relasi menggambarkan banyaknya jumlah maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain.Paling banyak digunakan dalam menjelaskan himpunan relasi biner. Untuk Himpunan relasi biner pemetaan kardinalitasnya
dapat merupakan salah satu dari tipe2 berikut :
1. Satu ke Satu (One to one)
2. Satu ke Banyak (One to many)
3. Banyak ke Satu (Many to one)
4. Banyak ke Banyak (Many to many)
Gambar 8. Tipe Relasi Himpunan
Untuk relasi ini beberapa elemen di A dan B boleh tidak dipetakan terhadap entitas manapun.
Untuk menggambarkan simbol tipe relasi didalam sebuah ER-Diagram, perhatikan gambar dibawah ini.
One to One
Gambar 9. Relasi One to One
Makna dari relasi ini adalah bahwa satu orang dosen hanya diperbolehkan mengepalai satu jurusan. Begitu juga sebaliknya satu jurusan hanya boleh dikepalai oleh satu orang dosen.
Many to Many
Gambar 10. Relasi Many to Many
Relasi diatas memiliki arti bahwa seorang mahasiswa dapat mengikuti banyak mata kuliah dan sebaliknya sebuah mata kuliah bisa diikuti oleh banyak mahasiswa.
Penulisan atribut sebuah entiti dapat juga ditulis didalam notasi kamus data seperti berikut
ini :
Gambar 11. ER- Diagram dan Kamus Data
Kamus Data
· Mahasiswa = {Nim, Nama_mhs, Alamat_mhs, Tgl_lahir}
· Kuliah = {Kode_kul, nama_kul, sks, semester}
· Dosen = {nama_dos, alamat_dos}
· Mempelajari = {nim, kode_kul, indek_nilai}
· Mengajar = {kode_kul, nama_dos, waktu, Tempat}
Relasi Himpunan entitas tidak harus dalam bentuk yang berbed label “mengepalai”, “mempelajari” dan “ mengikuti” disebut Roles (peran), yang menspesifikasi bagaimana entitas mahasiswa berinteraksi melalui relasi mempelajari terhadap entitas mata kuliah. Peran dalam ER diagram diindikasikan dengan memberikan label (nama) pada garis yang menghubungkan relasi dengan entitas. Label peran bersifat optional dan digunakan untuk mengklarifikasi semantik suatu relasi.
Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Secara konsep, Masing-masing entitas (nilainya) berbeda, perbedaannya terlihat pada isi dari masing-masing atributnya. Oleh karena itu, dibutuhkan suatu atribut yang memiliki nilai yang menjadi pembeda dengan entitas lain.Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. Ada 3 macam key yang dapat diterapkan pada suatu relasi :
a. Super Key,merupakan satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik.
b. Candidate Key,merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik
c. Primary Key,merupakan salah satu dari candidate key yang terpilih. Pemilihan primary key dari sejumlah candidate key umumnya didasari oleh :
· Key tersebut lebih sering (lebih natural) untuk dijadikan sebagai acuan
· Key tersebut lebih ringkas
· Jaminan keunikan key tersebut lebih baik
Sebagai ilustrasi :
Customer = (Customer-Id, Customer-Name, Customer-Street,Customer-City)
Super Key :
– Customer-Id, Customer-Name, Customer-Street, Customer-City
– Customer-Id, Customer-Name, Customer-Street
– Customer-Id, Customer-Name
– Customer-Id
Candidate Key :
– Customer-Id
Primary Key :
– Customer-Id
Himpunan entitas yang tidak memiliki primary key disebut himpunan entitas lemah. Keberadaan entitas lemah bergantung pada eksistensinya dalam sebuah relasi terhadap entitas
lainnya.Identifikasi relasinya menggunakan simbol double diamond. Diskriminator (atau key parsial) dari himpunan entitas lemah adalah atribut-atribut yang dapat membedakan entitas-entitas yang ada di himpunan entitas lemah. Primary key dari himpunan entitas lemah dibentuk dari primary key himpunan entitas (kuat) dimana enititas lemah bergantung, serta diskriminator dari entitas lemah itu sendiri. Penggambaran himpunan entitas lemah menggunakan dobel persegi panjang.Diskriminator dari himpunan entitas lemah digambarkan
menggunakan garis bawah yang terputus-putus. Sebagai contoh perhatikan gambar 12.
Loan |
Loan - payment |
Payment |
Loan_number |
ammount |
payment_number |
Payment_date |
Payment_ammount |
Gambar 12. Himpunan entitas lemah
payment-number merupakan diskriminator himpunan entitas payment dan primary key untuk payment adalah (loan-number, payment-number). Primary key dari entitas kuat tidak secara
eksplisit tersimpan dalam entitas lemah,karena hal tersebut secara implisit merupakan identifikasi relasi. Jika loan-number secara eksplisit tersimpan,payment mungkin merupakan entitas kuat, tapi kemudian relasi antara payment dan loan akan diduplikasikan oleh relasi secara implisit oleh atribut loan-number common to payment and loan.
Dalam mendesain Entity Relasionship pemetaan kardinalitas akan berpengaruh terhadap bagaimana data tersebut akan digambarkan. Untuk memahami dengan lebih jelas bagaimana membuat ER-Diagram, berikut ini akan diberikan sebuah contoh kasus .
1. COMPANY terdiri dari sejumlah DEPARTMENTS. Setiap departments mempunyai satu nama yang unik, nomor yang unik, dan seorang pegawai (employee) ada yang bertindak sebagai manajer dari department. Tanggal mulai kerja dari manager juga dicatat dalam database ( tanggal pengangkatan sebagai manager). Suatu department dapat tersebar disejumlah lokasi.
2. Suatu DEPARTMENT dapat memgendalikan sejumlah PROJECT. Setiap project mempunyai satu nama yang unik, nomor yang unik dan satu lokasi tertentu.
3. Data pegawai (EMPLOYEE) yang perlu dicatat berupa nama, social security number (SSN), address, salary,sex dan birthdate.
4. Seorang pegawai ditempatkan di suatu department tetapi dapat bekerja di sejumlah project yang tidak harus dikendalikan oleh department dimana pegawai tersebut ditempatkan.
5. Jumlah jam perminggunya dari pegawai yang bekerja pada suatu project perlu dicatat, selain itu perlu juga dicatat supervisor langsung dari setiap pegawai.
6. Untuk tujuan atau keperluan asuransi pegawai, maka perlu dicatat anggota keluarga dari setiap pegawai. Data yang dicatat berupa nama anggota keluarga, sex, birthdate dan hubungan keluarga (relationship).
Informasi diatas didapatkan dari proses analisis kebutuhan data di sebuah perusahaan (Company). Hasil ER-Diagram dari kasus diatas adalah :
Gambar 13. ER- Diagram dari Basis Data Company
3) Transformasi ER-Diagram
Setelah diperoleh model relasi dari sebuah konsep basis data, maka langkah selanjutnya adalah melakukan tranformasi ( mapping) dari model menjadi sebuah tabel yang siap dibuat didalam perangkat lunak untuk menyimpan basis data. Secara umum, langkah-langkah untuk melakukan transformasi adalah sebagai berikut :
a. Untuk setiap entitas skema relasi R yang menyertakan seluruh Simple Atribute dan Simple Attribute dari Composite Attribute yang ada, pilih salah satu atribut kunci sebagai Primary Key..
b. Untuk setiap Entitas Lemah, buatlah skema relasi R dengan mengikutsertakan seluruh Simple Attribute. Tambahkan Primary Key dari entitas kuatnya (Owner Entity type) yang akan digunakan sebagai Primary Key bersama-sama Partial Key dari Entitas Lemah.
c. Untuk setiap relasi binary 1:1, tambahkan Primary Key dari sisi yang lebih ”ringan” ke sisi (entitas) yang lebih ”berat”. Suatu sisi dianggap lebih ”berat” timbangannya apabila mempunyai partisipasi total. Tambahkan juga Simple Attribute yang terdapat pada relasi tersebut ke sisi yang lebih ”berat”. Apabila kedua partisipasi adalah sama total atau sama-sama partial, maka kedua entitas tersebut boleh digabung menjadi satu skema relasi.
d. Untuk setiap relasi binary 1:N yang tidak melibatkan entitas lemah, tentukan mana sisi yang lebih ”berat”. Sisi dianggap lebih ”berat” timbangannya adalah sisi-N. Tambahkan Primary Key dari sisi yang ”ringan” ke skema relasi sisi yang lebih ”berat”. Tambahkan juga seluruh simple attribute yang terdapat pada relasi biner tersebut.
e. Untuk setiap relasi binary M:N, buatlah skema relasi baru R dengan atribut seluruh simple attribute yang terdapat pada relasi biner tersebut. Tambahkan primary key yang terdapat pada kedua sisi ke skema relasi R. Kedua Foreign Key yang didapat dari kedua sisi tersebut digabung menjadi satu membentuk Primary Key dari skema relasi R.
f. Untuk setiap Multivalued Attribute, buatlah skema relasi R yang menyertakan atribut dari multivalue tersebut. Tambahkan Primary Key dari relasi yang memiliki multivalued tersebut. Kedua atribut tersebut membentuk Primary Key dari skema relasi R.
g. Untuk setiap relasi n-ary dengan n>2, buatlah skema relasi R yang menyertakan seluruh Primary Key dari entitas yang ikut serta. Sejumlah n Foreign Key tersebut akan membentuk Primary Key untuk skema relasi R. Tambahkan seluruh Simple Attribute yang terdapat pada relasi n-ary tersebut.
Selanjutnya sebagai contoh akan dilakukan mapping dari gambar 13. Hasil mappingnya adalah sebagai berikut :
Gambar 14. Mapping ER- Diagram Basis Data Company
4) Normalisasi
Suatu rancangan database disebut jelek jika data yang sama tersimpan di beberapa tempat (file atau record), ketidakmampuan untuk menghasilkan informasi tertentu dan terjadi kehilangan informasi. Misal suatu skema relasi :
CABANG (nama_cabang,aset,kota)
PINJAM (nama_cabang,nomor_hutang,nama_customer,jumlah)
Alternatif rancangan untuk skema database tersebut adalah :
UTANG (nama_cabang, aset, kota,nomor_hutang,nama_customer, jumlah)
Rancangan ini akan mengakibatkan terjadinya perulangan Informasi (data redundancy) yaitu pada attribute asset dan kota. Infomasi yang berulang hanya memboroskan ruang penyimpanan dan menyulitkan pada waktu proses updating data. Alternatif lain dari rancangan database berikut :
PINJAM (nama_cabang, nomor_utang, nama_customer,jumlah)
TABUNG(nama_cabang, nomor_tabungan, nama_customer,saldo)
Adalah :
PIN_TAB(nama_cabang,nama_customer,nomor_utang,jumlah,nomor_tabungan,saldo)
Dengan rancangan database seperti di atas akan timbul NULL VALUE, yaitu jika seseorang hanya pinjam saja atau jika hanya menabung saja.
Kehilangan informasi bisa terjadi bila pada waktu merancang database kita melakukan proses dekomposisi yang keliru. Misalnya suatu skema relasi :
UTANG (nama_cabang, aset, kota, nomor_hutang, Nama_customer,jumlah)
Dekomposisi menjadi dua buah skema relasi:
JUML(jumlah, nama_customer)
PINJ(nama_cabang, nomor_hutang,jumlah)
Diberikan query “Dapatkan nama cabang dimana Ali melakukan transaksi hutang”. Apa yang terjadi dengan informasi yang dihasilkan? Mengapa hasilnya seperti itu?. Tujuan normalisasi adalah mengeliminasi duplikasi informasi, memudahkan pengubahan struktur tabel, memperkecil pengaruh perubahan struktur database dan lain-lain. Bentuk normalisasi yang sering digunakan adalah 1st NF, 2nd NF, 3rd NF, dan BCNF
1st Normal Form (1NF)
Suatu relasi (tabel) R disebut 1st NF jika dan hanya jika semua attribute value-nya atomic (tidak boleh ada attribute yang composit & multivalue). 1NF berbentuk tabel yang bersifat flat dan tidak repeating group, multivalued dan composite atribut dan seringkali terjadi duplikasi.
Syarat 1NF: Dari bentuk unnormalize ke normal pertama (1NF).
Contoh :
Bentuk Tabel Asal Bentuk 1NF
Gambar 15. Normalisasi 1 NF
Sebuah tabel dikatakan memiliki bentuk tidak normal apabila :
a. Mempunyai penggandaan field yang sejenis
Contoh : Tabel dibawah adalah tabel siswa mengambil mata kuliah (MK)
SISWA
Tabel siswa diatas mempunyai 3 field yang sejenis, yaitu MK1,MK2 dan MK3. Sehingga tabel diatas adalah termasuk tabel tidak normal (unnormalized).
b. Elemen datanya memungkinkan untuk null (tidak berisi)
Contoh :
Ini adalah tabel yang mencatat no SIM dari siswa yang mempunyai SIM
SISWA_SIM
Tampak dalam tabel diatas bahwa elemen data dari no SIM si-Amin dan si-Bayu adalah null atau tidak berisi nilai. Sehingga tabel di atas adalah termasuk unnormalized.
Suatu tabel dikatakan berada pada bentuk normal I jika ia tidak berada pada bentuk unnormalized table. Jadi disini akan terjadi proses pentransformasi dari tabel bentuk unnormalized ke bentuk normal I. Prosesnya dinamakan normalisasi I (1NF).
Contoh :
Kalau tabel pada contoh (a) diatas kita normalisasi I, maka hasilnya akan didapatkan seperti ini :
SISWA
Kalau pada contoh (b) diatas kita normalisasi I, maka hasilnya akan didapatkan seperti ini :
2nd Normal Form (2NF)
Bentuk normal tahap kedua (2NF) terpenuhi jika pada sebuah tabel, semua atribut yang tidak termasuk dalam primary key memiliki keterganungan fungsional terhadap primary key secara penuh. Sebuah tabel dikatakan tidak memenuhi 2BF jika ketergantungannya hanya bersifat parsial ( hanya tergantung pada sebagian dari primary key).
Syarat 2st Normal Form (2NF):
a. Memenuhi kriteria tabel Normal I (1NF)
b. Di dalam tabel tersebut tidak ada redudansi /pengulangan data.
c. Field-field yang bukan PK adalah dependent (bergantung) pada PK.
Contoh :
Bentuk tabel sehari-hari :
Bentuk 2NF
Gambar 16. Normalisasi 2 NF
3rd Normal Form (3NF)
Suatu relasiR disebut normal ke tiga (3rd NF) jika berada dalam bentuk normal ke dua (2nd NF) dan tidak dijumpai adanya ketergantungan transitif (transitive dependency). Kebergantungan transitif (transitive dependency) adalah ketergantungan fungsional antara 2 (atau lebih) atribut bukan key (kunci).
Syarat 3NF:
a. Harus berada dalam bentuk normal ke dua (2NF).
b. Ketergantungan field-field yang bukan PK adalah harus secara mutlak (full-dependent). Artinya harus tidak ada transitive dependency (ketergantungan secara transitif).
Contoh :
Tabel di atas sudah masuk dalam bentuk Normal II. Akan tetapi kita lihat bahwa field Nama dan Nilai di atas fulldependent terhadap NRP yang bertindak sebagai PK. Berbeda dengan field Keterangan di atas yang dependent kepada NRP akan tetapi tidak mutlak. Ia lebih dekat ketergantungannya dengan field Nilai. Karena field Nilai dependent kepada NRP dan field Keterangan dependent kepada Nilai, maka field Keterangan juga dependant kepada NRP. Ketergantungan yang demikian ini yang dinamakan transitive-dependent (dependent secara transitif atau samar/tidak langsung). Oleh karena jika dilakukan normalisasi III maka hasilnya adalah sebagai berikut :
Contoh lain untuk normalisasi bentuk ke 3 (3NF) adalah :
Tabel Bentuk Normal Ke Dua (2NF) , dengan ketergantungan fungsional pada tanda panah: PENJUALAN
Pada tabel diatas, kita lihat terdapat ketergantungan transitif, yaitu wilayah yang secara fungsional bergantung pada Nama_Sales, sedang Nama_Sales bergantung pada No_Pelanggan. Sehingga terdapat beberapa anomali pembaharuan pada relasi Penjualan diatas:
a. Anomali Penyisipan (Insert): Pada saat memasukkan data tenaga penjualan baru,maka data No_Pelanggan dan data lain juga harus dimasukkan.
b. Anomali Penghapusan (Delete): Pada saat dilakukan penghapusan No_Pelanggan = 2522, maka informasi tentang tenaga penjualan juga akan ikut terhapus.
c. Anomali Modifikasi (Update): Pada saat dilakukan update data tenaga penjual, maka harus dilakukan peng-update-an pada semua baris (row) pada tabel, hal ini sangat tidak efisien.
Hasil normalisasi kedalam bentuk 3 NF adalah :
Gambar 17. Normalisasi 3 NF
Boyce-Codd Normal Form (BCNF)
Secara praktis, tujuan rancangan database adalah cukup sampai pada 3NF. Akan tetapi untuk kasus-kasus tertentu kita bisa mendapatkan rancangan yang lebih baik lagi apabila bisa mencapai ke BCNF. BCNF ditemukan oleh R.F. Boyce dan E.F. Codd. Suatu relasi R dikatakan dalam bentuk BCNF: jika dan hanya jika setiap atribut kunci (Key) pada suatu relasi adalah kunci kandidat (candidate key). Kunci kandidat (candidate key) adalah atribut-atribut dari entitas yang mungkin dapat digunakan sebagai kunci (key) atribut.
BCNF hampir sama dengan 3NF, dengan kata lain setiap BCNF adalah 3NF.
Contoh :
Bentuk tabel dalam 2 NF
Bentuk tabel dalam BCNF
Gambar 18. Normalisasi BCNF
5) Aljabar Relasional
Operator dasar didalam aljabar relasional terdiri atas 5 (lima) operasi, yaitu: SELECT, PROJECT, CARTESIAN PRODUCT, UNION dan SET-DIFFERENCE.
a. SELECT (sF)
F adalah ekspresi yang terdiri dari operand atau atribut, operator pembanding, operator logika ( ˄ (and), ˅ (or), ¬ (not) ).
Bentuk Umum : sF (R)
Artinya : Himpunan tupel (baris) R yang memenuhi kondisi F
Contoh :
b. PROJECTION (π)
c. CARTESIAN PRODUCT (X)
Jika R dan S adalah relasi dengan jumlah atribut (arity) K1 dan K2,maka R X S adalah himpunan tupel dengan arity (K1 + K2). Berikut ini adalah gambaran operasi cartesian product.
d. UNION (
R
e. SET-DIFFERENCE ( - )
R – S adalah himpunan tupel-tupel pada R, tetapi tidak di S.
Selain operator dasar diatas, didalam sistem basis data juga terdapat operator tambahan yang akan digunakan untuk melakukan proses pengolahan data didalam basis data. Operasi tambahan tersebut adalah INTERSECTION, JOIN dan DIVISION.
f. INTERSECTION (∩)
Operasi ini donotasikan dengan: R ∩ S. Hasilnya adalah berisi nilai yang memenuhi baik pada tupel (baris) R danS (sebagai irisan). Bisa dicari dari operasi dasar: R – ( R - S).
g.
Operasi JOIN dinotasikan dengan , yang digunakan untuk menggabungkan tuple-tuple dari dua relasi menjadi single tuples.- JOIN sering disebut juga THETA-JOIN.- Untuk menyederhanakan SELECTION pada hasil CARTESIAN PRODUCT.
Notasi JOIN:
Skema mirip dengan Cross Product, hanya diberikan kondisi tertentu.- Lebih sedikit tupel yang dihasilkan, dibandingkan dengan menggunakan operator Cross-Product, karena komputasinya lebih efisien.
h. JOIN – EQUI JOIN
Kasus khusus dari condition join dimana kondisi c hanya berisi kesamaan (nilai yang sama dari kedua relasi). Skema hasil hampir sama dengan cross-product, tapi hanya berisi
satu copy field yang mempunyai kesamaan dari field yang sudah ditentukan.Natural join adalah Equi-join pada semua fields.
i. DIVISION (/)
Tidak mendukung operator primitif, tapi sangat berguna untuk mengekspresikan query seperti ini : Cari semua pelaut (sailors) yang telah memesan semua kapal boat (boats).
Misal A memiliki 2 fields yaitu x dan y; sedangkan B hanya memiliki 1 field yaitu y.
Misal. A/B berisi semua tuple x (sailors) dimana untuk setiap tuple y (boat) dalam B, terdapat tuple xy dalam A. Pada umumnya, x dan y dapat menjadi anggota fields; y adalah daftar fields dalam B, dan x
Contoh :
6) Structure Query Language (SQL)
DBMS merupakan perantara bagi pemakai dengan basis data yang tersimpan dalam hardisk. Cara berinteraksi/berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat disebut sebagai bahasa basis data yang terdiir dari sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali/diproses oleh DBMS untuk melakukan suatu aksi/pekerjaan tertentu. Contoh-contoh bahasa basis data adalah SQL, dBase, QUEL dan sebagainya. Sebuah bahasa basis data biasanya dapat dipilah kedalam 2 bentuk yaitu :
a. Data Definition language (DDL), Struktur/skema basis data yang menggambarkan/ mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yang disebut DDL. Dengan bahasa inilah dapat membuat table baru, membuat indeks, mengubah table, menentukan struktur penyimpanan ytabel dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan table yang disimpan dalam file khusus yang disebut kamus data (data dictionary). Kamus data nerupakan suatu metadata(superdata) yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses dalam suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses. Contoh :
create table rekening
(no_rekening char(10),
saldo integer)
b. Data Manipulation Language (DML), merupakan bentuk bahasa basis data yang berguna unutk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi dapat berupa :
· Penyisipan/penambahan data baru kedalam suatu basis data
· Penghapusan data dari suatu basis data
· Pengubahan data dari suatu basis data
· Pengambilan informasi yang disimpan dalam suatu basis data
Pada level fisik harus didefinisikan algoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi, yang dipentingkan bukan hanya efisiensi akses, tetapi juiga efisiensi interaksi antara manusia (pemakai) dengan system (kemudahan permintaan akses). DML merupakan bahasa yang bertujuan untuk memudahkan pemakai unutk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 jenis DML yaitu :
· Prosedural, yang mensyaratkan agar pemakai menentukan data apa yang diinginkan serta bagaimana cara mendapatkannya.
· Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutjan bagaimana cara mendapatkannya.
Dalam DML ini dikenal dengan istilah query, yaitu pernyataan meminta pengguna mengambil informasi. Bagian DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah bahasa query sering disamakan dengan istilah bahasa manipulasi data. Sebagai contoh, perhatikan bahasa berikut ini :
Select mhs_nrp, mhs_nama From mahasiswa Where mhs_nama like "M*"
Bahasa user yang meminta pada database untuk menyediakan suatu data yang diperlukan adalah tipe bahasa khusus yang disebut dengan Structured Query Language, atau disingkat dengan SQL atau "sequel." SQL adalah bahasa fungsional, yaitu suatu bahasa yang memungkinkan user untuk menentukan tipe dari sesuatu yang ingin mereka dapatkan. Bahasa fungsional tersebut tidak sama dengan bahasa pemrograman yang lain semisal C++ atau COBOL. Bahasa-bahasa tersebut disebut sebagai bahasa ‘prosedural’ karena membutuhkan penulisan program atau prosedur untuk mendapatkan suatu informasi.Sebaliknya, SQL secara eksplisit mendefinisikan hasil akhir yang diinginkan, sedangkah metode untuk mendapatkan data tersebut dilakukan sendiri oleh database. Pemilihan data dapat dilakukan dengan menggunakan contoh kode seperti berikut :
SELECT * FROM emp WHERE empid = 39334;
Statement SQL diatas meminta untuk menyediakan semua data dari table EMP dimana nilai yang diminta ada pada kolom EMPID yang berisi nilai 39334.Beberapa SQL command atau perintah SQL yang harus diketahui adalah :
- CREATE DATABASE, untuk membuat sebuah database.
- DROP DATABASE, untuk menghapus sebuah database.
- CREATE TABLE, untuk membuat sebuah table.
- ALTER TABLE, untuk memodifikasi sebuah table.
- DROP TABLE, untuk menghapus sebuah table.
- SELECT, untuk menampilkan data dari database.
- UPDATE, untuk memodifikasi data dari database.
- INSERT INTO, untuk menambah data di database.
- DELETE, untuk menghapus data dari database.
Sedangkan perintah SQL untuk tingkat lanjut ada cukup banyak. Command tingkat lanjut ini berguna untuk mengolah data dengan cara yang lebih rumit dan kompleks.
CREATE DATABASE COMMAND
Sebelum bekerja dengan database, anda harus membuat dulu sebuah database yang akan menjadi obyek pekerjaan anda.
Syntaxnya :
CREATE DATABASE database_name |
Setelah membuat database dengan command seperti di atas, tidak secara otomatis database anda berisi tabel-tabel. Database anda dalam keadaan kosong. Anda harus membuat tabel-tabel seperti yang akan dijelaskan pada bagian selanjutnya.
DROP DATABASE COMMAND
Jika anda ingin menghapus sebuah database, gunakan perintah berikut ini :
DROP DATABASE database_name |
Jika anda menggunakan perintah di atas, maka seluruh database dan tabel yang ada di dalamnya akan terhapus.
Catatan : untuk Access, anda tidak diperbolehkan menggunakan perintah DROP DATABASE. Jika anda menggunakan perintah ini, aplikasi anda akan kacau. Jika anda ingin menghapus database dari Access, anda bisa menghapus file mdb yang telah dibuat oleh Access.
CREATE TABLE COMMAND
Selanjutnya anda dapat membuat table dengan perintah berikut :
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ....... ) |
Contohnya :
CREATE TABLE Person ( LastName varchar, FirstName varchar, Address varchar, Age int ) |
Anda juga bisa membatasi ukuran masing-masing field utnuk menghasilkan file database yang lebih kecil :
CREATE TABLE Person ( LastName varchar(30), FirstName varchar, Address varchar, Age int(3) ) |
Untuk tipe datanya, anda dapat melihat lagi di bagian pertama materi kuliah ini.
ALTER TABLE COMMAND
Perintah ALTER TABLE dapat anda gunakan jika anda ingin memodifikasi struktur table yang anda buat. Artinya, jika anda ingin menambahkan sebuah atau beberapa field baru dalam tabel yang sudah anda buat, atau anda ingin menghapus satu atau beberapa field yang sudah anda buat, anda dapat menggunakan perintah ini.
Syntaxnya :
Untuk menambah field baru :
ALTER TABLE table_name ADD column_name datatype (size)
Untuk menghapus field yang sudah ada :
ALTER TABLE table_name DROP COLUMN column_name |
DROP TABLE COMMAND
Untuk menghapus sebuah table, perintahnya seperti berikut ini :
DROP TABLE table_name |
Catatan : Perlu diingat, bahwa jika anda menghapus sebuah table, maka seluruh data yang ada di dalamnya akan ikut terhapus.
SELECT COMMAND
Untuk menampilkan data dari sebuah database, anda dapat menggunakan perintah SELECT. Bentuk baku dari perintah ini adalah :
SELECT column_name_1, column_name_2, dst FROM table_name |
Jika anda ingin menampilkan semua data dalam sebuah table tanpa memilih salah satu field, maka anda dapat menggunakan perintah berikut :
SELECT * FROM table_name |
SELECT DISTINCT STATEMENT
SELECT DISTINCT Statement digunakan untuk menampilkan data dari satu atau beberapa field (column) dari sebuah tabel. Namun perbedaan antara SELECT dengan SELECT DISTINCT terletak pada hasilnya.
Perhatikan contoh table ORDERS berikut ini :
Company | OrderNumber |
Sega | 3412 |
W3Schools | 2312 |
Trio | 4678 |
W3Schools | 6798 |
Jika anda menggunakan perintah SELECT seperti ini :
SELECT Company FROM Orders |
maka hasil yang didapat akan seperti ini :
Company |
Sega |
W3Schools |
Trio |
W3Schools |
Tapi jika anda menggunakan perintah SELECT DISTINCT seperti ini :
SELECT DISTINCT Company FROM Orders |
Maka hasilnya akan seperti ini :
Company |
Sega |
W3Schools |
Trio |
Perhatikan bahwa dengan perintah SELECT, data “W3Schools” akan ditampilkan 2 kali sesuai data yang ada, sedangkan dengan perintah SELECT DISTINCT, maka data “W3Schools” hanya ditampilkan 1 kali. Jadi perintah SELECT DISTINCT tidak akan menghasilkan data yang identik atau kembar.
WHERE CLAUSE
Anda juga dapat menambahkan sebuah kondisi pada perintah SELECT untuk menampilkan data yang lebih spesifik.
Syntax baku dari perintah WHERE adalah :
SELECT column FROM table WHERE column operator value |
di mana operator yang dimaksud adalah :
Operator | Description |
= | Equal |
<> atau != | Not equal |
> | Greater than |
< | Less than |
>= | Greater than or equal |
<= | Less than or equal |
BETWEEN | Between an inclusive range |
LIKE | Search for a pattern |
Perhatikan table PERSONS di bawah ini :
LastName | FirstName | Address | City | Year |
Hansen | Ola | Timoteivn 10 | Sandnes | 1951 |
Svendson | Tove | Borgvn 23 | Sandnes | 1978 |
Svendson | Stale | Kaivn 18 | Sandnes | 1980 |
Pettersen | Kari | Storgt 20 | Stavanger | 1960 |
Jika anda menggunakan perintah SELECT dengan atribut WHERE seperti berikut ini :
SELECT * FROM Persons WHERE City='Sandnes' |
Maka hasilnya akan ditampilkan seperti ini :
LastName | FirstName | Address | City | Year |
Hansen | Ola | Timoteivn 10 | Sandnes | 1951 |
Svendson | Tove | Borgvn 23 | Sandnes | 1978 |
Svendson | Stale | Kaivn 18 | Sandnes | 1980 |
Perhatikan, bahwa yang ditampilkan adalah data yang berasal dari kota “Sandnes” sesuai dengan kondisi yang diberikan pada perintah di atas. Perhatikan untuk tulisan tanda petik (“) yang digunakan, berikut ini penulisan yang benar:
Untuk nilai berupa text :
Syntax yang benar : SELECT * FROM Persons WHERE FirstName='Tove'
Syntax yang salah : SELECT * FROM Persons WHERE FirstName=Tove
Untuk nilai berupa angka :
Syntax yang benar : SELECT * FROM Persons WHERE Year>1965
Syntax yang salah : SELECT * FROM Persons WHERE Year>'1965' |
LIKE CLAUSE
Statemen LIKE dapat anda tambahkan pada perintah SELECT untuk memberikan suatu kondisi yang menyerupai sesuatu.
Syntax bakunya adalah :
SELECT column FROM table_name WHERE column LIKE conditions |
Dalam perintah ini, digunakan tanda “%” untuk menunjukkan sesuatu yang belum diketahui.
Perhatikan contoh berikut ini :
SELECT * FROM Persons WHERE FirstName LIKE 'O%' |
Perintah di atas ini akan menampilkan semua data yang FirstName-nya berawalan dengan huruf “O”.
SELECT * FROM Persons WHERE FirstName LIKE '%a' |
Sedangkan contoh di atas akan menghasilkan semua data yang FirstName-nya berakhiran dengan huruf “a”.
SELECT * FROM Persons WHERE FirstName LIKE '%la%' |
Sedangkan perintah di atas ini akan menghasilkan semua data yang FirstName-nya memiliki huruf “la” di tengahnya.
ORDER BY STATEMENT
Statement ORDER BY digunakan untuk mengurutkan tampilan data berdasarkan satu atau beberapa field secara urut dari awal ke akhir (ascending) atau dari akhir ke awal (descending).
Syntaxnya adalah sebagai berikut :
SELECT column_1, column_2, dst FROM table_name ORDER BY column_1, column_2, dst ASC/DESC |
Atau anda juga dapat menggabungkannya dengan clause yang lain, seperti WHERE dan LIKE seperti berikut ini :
SELECT column_1, column_2, dst FROM table WHERE column_2 LIKE conditions ORDER BY column_1 ASC |
Perhatikan contoh table ORDERS berikut ini :
Company | OrderNumber |
Sega | 3412 |
ABC Shop | 5678 |
W3Schools | 2312 |
W3Schools | 6798 |
Misalnya anda punya perintah seperti ini :
SELECT Company, OrderNumber FROM Orders ORDER BY Company |
Maka hasilnya akan seperti ini :
Company | OrderNumber |
ABC Shop | 5678 |
Sega | 3412 |
W3Schools | 6798 |
W3Schools | 2312 |
Perhatikan, bahwa jika anda tidak memberikan tanda ASC atau DESC, maka hasilnya akan ditampilkan secara ASC (urut dari awal ke akhir, atau dari kecil ke besar).
Anda juga dapat menggabungkan beberapa kondisi sekaligus. Perhatikan contoh berikut ini :
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC |
Hasilnya akan seperti ini :
Company | OrderNumber |
W3Schools | 2312 |
W3Schools | 6798 |
Sega | 3412 |
ABC Shop | 5678 |
Perhatikan bahwa hasilnya menunjukkan bahwa di field company akan urut secara descending, dan di field ordernumber akan urut secara ascending.
AND dan OR STATEMENT
Statement AND atau OR dapat digunakan untuk menggabungkan 2 kondisi yang berbeda untuk dijalankan dalam perintah WHERE.
Perhatikan contoh table PERSONS berikut ini :
LastName | FirstName | Address | City |
Hansen | Ola | Timoteivn 10 | Sandnes |
Svendson | Tove | Borgvn 23 | Sandnes |
Svendson | Stephen | Kaivn 18 | Sandnes |
Misalnya anda mempunyai perintah seperti ini :
SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson' |
Maka hasilnya akan seperti ini :
LastName | FirstName | Address | City |
Svendson | Tove | Borgvn 23 | Sandnes |
Atau anda punya contoh perintah seperti ini :
SELECT * FROM Persons WHERE firstname='Tove' OR lastname='Svendson' |
Maka hasil yang akan ditampilkan adalah seperti ini :
LastName | FirstName | Address | City |
Svendson | Tove | Borgvn 23 | Sandnes |
Svendson | Stephen | Kaivn 18 | Sandnes |
Anda juga dapat menggabungkan statement AND dan OR secara bersamaan, misalnya :
SELECT * FROM Persons WHERE (FirstName='Tove' OR FirstName='Stephen') AND LastName='Svendson' |
Maka hasilnya akan seperti ini :
LastName | FirstName | Address | City |
Svendson | Tove | Borgvn 23 | Sandnes |
Svendson | Stephen | Kaivn 18 | Sandnes |
UPDATE COMMAND
Perintah UPDATE digunakan untuk memodifikasi data (record) yang ada dalam sebuah table.
Syntaxnya :
UPDATE table_name SET column_name = new_value WHERE column_name = old_value |
Perhatikan contoh table PERSONS berikut ini :
LastName | FirstName | Address | City |
Nilsen | Fred | Kirkegt 56 | Stavanger |
Rasmussen | Ani | Storgt 67 | |
Misalnya anda punya perintah seperti ini :
UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen' |
Maka hasilnya adalah seperti ini :
LastName | FirstName | Address | City |
Nilsen | Fred | Kirkegt 56 | Stavanger |
Rasmussen | Nina | Storgt 67 | |
Perhatikan bahwa record yang sebelumnya adalah “Ani” berubah menjadi “Nina” setelah perintah dijalankan.
INSERT INTO COMMAND
Perintah INSERT INTO digunakan untuk menambahkan data baru pada sebuah table, bukan untuk memodifikasi data dalam salah satu field saja.
Syntaxnya :
INSERT INTO table_name (column1, column2, dst) VALUES (column1_value, column2_value, dst) |
Perhatikan table PERSONS di bawah ini :
LastName | FirstName | Address | City |
Pettersen | Kari | Storgt 20 | Stavanger |
Untuk menambahkan data yang baru, anda dapat menggunakan perintah INSERT INTO. Berikut contohnya :
INSERT INTO Persons (LastName, FirstName, Address, City) VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes') |
Atau perintah seperti ini :
INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes') |
Perhatikan bahwa karena isi field berupa text, maka value yang ada diberi tanda petik (‘ ‘) yang menandakan text atau string. Hasilnya adalah sebagai berikut :
LastName | FirstName | Address | City |
Pettersen | Kari | Storgt 20 | Stavanger |
Hetland | Camilla | Hagabakka 24 | Sandnes |
Anda juga dapat menambahkan data pada field tertentu saja, namun tetap membuat baris yang baru (bukan mengganti data yang lama).
Perhatikan table PERSONS berikut ini :
LastName | FirstName | Address | City |
Pettersen | Kari | Storgt 20 | Stavanger |
Hetland | Camilla | Hagabakka 24 | Sandnes |
Misalnya anda punya perintah seperti ini :
INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67') |
Maka hasilnya adalah :
LastName | FirstName | Address | City |
Pettersen | Kari | Storgt 20 | Stavanger |
Hetland | Camilla | Hagabakka 24 | Sandnes |
Rasmussen | | Storgt 67 | |
Perhatikan bahwa data yang baru tidak menggantikan posisi data yang lama, melainkan menempati baris yang baru dengan 2 field yang dikosongkan isinya.
DELETE COMMAND
Perintah DELETE digunakan untuk menghapus data dari sebuah table. Fungsi menghapus ini akan dijalankan berdasarkan kondisi yang diberikan. Karena itu perlu anda ingat untuk selalu memberikan sebuah kondisi agar data yang terhapus benar-benar data yang ingin anda hapus.
Perintah ini tidak bisa menghapus hanya isi field tertentu saja. Seluruh field dalam satu rangkaian baris akan dihapus jika kondisi yang ditetapkan terpenuhi.
Syntaxnya :
DELETE FROM table_name WHERE column_name = value |
Perhatikan contoh table PERSONS berikut ini :
LastName | FirstName | Address | City |
Nilsen | Fred | Kirkegt 56 | Stavanger |
Rasmussen | Nina | Stien 12 | Stavanger |
Misalnya anda punya perintah seperti ini :
DELETE FROM Person WHERE LastName = 'Rasmussen' |
Maka hasilnya akan seperti ini :
LastName | FirstName | Address | City |
Nilsen | Fred | Kirkegt 56 | Stavanger |
Perhatikan bahwa seluruh data milik Rasmussen akan dihapus.
Jika anda ingin menghapus semua baris yang ada, anda dapat menggunakan perintah berikut ini :
DELETE FROM table_name atau DELETE * FROM table_name |
Maka seluruh data dalam table itu akan terhapus semuanya.
C. Rangkuman Materi
Basis data dibentuk oleh dua kata yaitu, basis dan data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang/berkumpul. Sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, suara atau kombinasinya. Dengan demikian basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti (1).Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah, (2).Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan dan (3).Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.
Basis data juga dapat dianggap sebagai kumpulan relasi atau entitas, sehingga untuk menggambarkan sebuah sistem basis data, data dibuat sebuah model diagram yang disebut sebagai Entity Relationship Diagram (ER-Diagram). Didalam ER-Diagram terdapat simbol-simbol yang terlibat didalam proses basis data yaitu entitas, relasi, atribut dan nilai dari suatu atribut.
Setelah memahami konsep basis data dan cara membuat model basis data relasional melalui ER-Diagram, selanjutnya dilakukan proses tranformasi ER-Diagram ke dalam tabel (model fisik dari basis data). Proses transformasi ini harus memperhatikan aturan mapping yang ditentukan oleh jenis relasi antar entitas. Hasil tranformasi yang benar akan menghasilkan tabel yang telah memenuhi syarat-syarat normalisasi.
Cara berinteraksi/berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat disebut sebagai bahasa basis data yang terdiri dari sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali/diproses oleh DBMS untuk melakukan suatu aksi/pekerjaan tertentu. Bahasa ini disebut dengan bahasan Structure Query Language (SQL). Syntax SQL ada dua jenis, yaitu SQL untuk Data Definition Language (DDL) dan sebagai Data Manipulation Language (DML).
3. Kegiatan
Berikut ini diberikan gambaran sistem kepegawaian perusahaan konveksi Maju Mulia adalah suatu perusahaan yang bergerak dalam bidang konveksi dan berdomisili di daerah Banyuwangi, Jawa Timur. Perusahaan ini membuat baju seragam yang kemudian dipasarkan ke berbagai daerah lain di Jawa Timur. Perusahaan ini mempunyai banyak tenaga penjahit. Para pegawai ada yang menjahit di konveksi ini dan ada yang menjahit di rumah masing-masing. Pegawai akan mendapatkan upah sesuai dengan banyaknya jahitan yang dikerjakan. Ada beberapa tipe seragam dan harganya lain-lain. Pegawai menerima gajinya ketika pekerjaan yang dikerjakan selesai. Konveksi Maju Mulia memerlukan suatu aplikasi yang dapat menangani penggajian pegawainya.Adapun proses-proses yang harus ditangani dalam sistem penggajian ini adalah :
a. Pencatatan data pegawai.
b. Pencatatan jenis-jenis seragam
c. Pencatatan pengambilan jahitan oleh pegawai
d. Pengembalian Jahitan
e. Penggajian.
f. Laporan yang harus dibuat adalah :
g. Laporan Daftar Pegawai
h. Laporan Pengambilan dan pengembalian jahitan per pegawai
i. Slip Gaji
Lakukan kegiatan berikut :
1. Buat database db_kepegawaian dengan menggunakan Microsoft Acces dengan tabel – tabel yang harus dibuat adalah sebagai berikut :
Tabel Pegawai :
Nama Field | Tipe | Lebar | Keterangan |
Peg_NIP | Text | 8 | Untuk menyimpan NIP Pegawai |
Peg_nama | Text | 50 | Untuk menyimpan nama Pegawai |
Peg_alamat | Text | 50 | Untuk menyimpan alamat Pegawai |
Peg_JK | Text | 1 | Untuk menyimpan Jenis Kelamin Pegawai, berisi L atau P |
Peg_TglMasuk | Date/Time | | Untuk menyimpan Tgl pegawai mulia bekerja |
Peg_noTelp | Text | 15 | Untuk menyimpan NO Telp Pegawai |
Tabel Seragam :
Nama Field | Tipe | Lebar | Keterangan |
Srg_kode | Text | 4 | Menyimpan Kode Seragam |
Srg_nama | Text | 50 | Menyimpan Nama Seragam |
Srg_jenis | Text | 50 | Menyimpan Jenis seragam |
Srg_upahPerPotong | Currency | | Menyimpan nilai nominal upah perpotong |
Tabel Ambil_Jahitan :
Nama Field | Tipe | Lebar | Keterangan |
Ambil_kode | Text | 50 | Menyimpan Kode Pengambilan |
Ambl_NIP | Text | 8 | Menyimpan NIP pegawai yang mengambil jahitan |
Ambil_Tgl | Date/Time | | Menyimpan tanggal pengambilan |
Tabel Pengambilan_Detail
Nama Field | Tipe | Lebar | Keterangan |
Det_kode | Text | 50 | Menyimpan kode pengambilan detail |
Det_kodeAmbil | Text | 50 | Menyimpan kode pengambilan |
Det_kodeSrg | Text | 4 | Menyimpan kode seragam yang diambil |
Det_jumlah | Number | | Menyimpan jumlah seragam yang diambil |
Det_tglKembali | Date/Time | | Menyimpan tgl pengembalian jahitan |
2. Buatlah relationship yang mungkin dari tabel- tabel tersebut
3. Isilah tabel – tabel tersebut dengan beberapa record
4. Buatlah query yang dibutuhkan untuk membuat data input dan laporan yang sesuai dengan data yang diperlukan perusahaan
4. Latihan
1. Perhatikan gambar ER-D dibawah ini. Model ER-D dibawah ini merupakan model untuk system perbankan.Jelaskan setepat mungkin proses yang dapat digambarkan oleh ER-D.
2. Berdasarkan gambar ER-D diatas :
a. Sebutkan semua entity yang terdapat dalam ER-Diagram tersebut
b. Apakah ada Weak Entity ? Jika ada, sebutkan nama entitinya dan partial key-nya
c. Sebutkan semua relasi pada entity lemah yang ada dan beri nilai (min, max) untuk setiap relasi itu.
d. Bagaimana hasil maping dari ER-Diagram tersebut kedalam skema relasi.
3. Perhatikan skema relasi dari aplikasi basis data katalog dari sebuah Toko Buku ABC.
BUKU( ID#, Judul, P#, J#)
JENIS_BUKU( J#,Harga,Diskon%)
PENGARANG(P#,Nama)
Diasumsikan bahwa setiap buku memiliki diskon yang berbeda-beda. Harga merupakan harga satuan dari setiap buku.Total merupakan totalbiaya order.
- Jika BUKU, JENIS_BUKU dan PENGARANG dilakukan JOIN ( digabungkan). Maka bagaimana hasil dari skema relasi (table) yang baru ?
- Tunjukkan Fungsi Dependencies ( ketergantungan antara atribut dengan keynya) dari jawaban a.
- Termasuk kedalam bentuk normal berapa jawaban a ? ( 1NF atau 2 NF atau 3NF?)
- Jelaskan mengapa jawaban c, berikan asumsi-asumsi yang menjelaskan jawaban c.
4. Diagram Perhatikan ER- Diagram dari model relasi dalam Microsoft Acces berikut.
SELECT Mahasiswa.Mhs_nrp, Mahasiswa.Mhs_nama, Mahasiswa.Mhs_angkatan, Mahasiswa.Mhs_kelas FROM Mahasiswa WHERE (((Mahasiswa.Mhs_nrp)=[Masukkan NRP : ])); |
a.
SELECT * FROM dosen WHERE (((dosen.Dsn_nama) Like "V*")); |
b.
SELECT dosen.Dsn_Nip AS [Dosen Wali], Count(Mahasiswa.Mhs_nrp) AS [Jumlah Mahasiswa] FROM dosen INNER JOIN Mahasiswa ON dosen.Dsn_Nip = Mahasiswa.Mhs_NipWali GROUP BY dosen.Dsn_Nip ORDER BY Count(Mahasiswa.Mhs_nrp) DESC; |
SELECT Mahasiswa.Mhs_nama, DaftarMataKuliah.DMK_Matkul, DaftarPesertaKuliah.DPK_Nihuruf FROM DaftarMataKuliah INNER JOIN (DaftarJadwalPelajaran INNER JOIN (Mahasiswa INNER JOIN DaftarPesertaKuliah ON Mahasiswa.Mhs_nrp = DaftarPesertaKuliah.DPK_NrpPeserta) ON DaftarJadwalPelajaran.Djp_kodejadwal = DaftarPesertaKuliah.DPK_KodeJadwal) ON DaftarMataKuliah.DMK_KodeMatKul = DaftarJadwalPelajaran.DJP_KodeMK WHERE (((Mahasiswa.Mhs_nama)="Lahuri")); |
c.
d.
5. Referensi
Elmasri & Navathe (2000), “Fundamentals of Database Systems 3rd ed”, Addison-Wesley
gan boleh minta softcopy file dalam bentuk ms word?
BalasHapustlg gan kirim ke email saya sandiwbo.sw@gmail.com
terimakasih sebelumnya