BAB I PENDAHULUAN A. Deskripsi Nama Modul Ruang Lingkup : Data Base Manajmen Sistem 1. DBMS dan Kegunaannya 2. Komponen Utama DBMS 3. Abstraksi Data 4. Model Basis Data 5. Macam-macam perintah DBMS Kaitan Modul Modul ini merupakan modul ketiga yang berfungsi menyegarkan kembali pemahaman mahasiswa tentang konsep database Modul ini akan mencapai sasaran pembelajaran secara lebih efektip jika ditunjang dengan bacaan dengan fokus pada topik “Perancangan basis data”. Pemahaman tentang konsep database diharapkan membentuk main set mahasiswa tentang pentingnya taksonomi data dalam sistem organisasi sebagai proses yang sangat menentukan kualitas sistem informasi. B. Sasaran Pembelajaaran Modul Setelah mempelajari modul ini mahasiswa diharapkan: - Dapat menjelaskankan konsep database dan merancang sistem database organisasi sebagai infra struktur arsitektur sistem informasi 42 BAB II MATERI PEMBELAJARAN 1. DBMS dan Keuntungannya Definisi DBMS pada sejumlah literatur sangatlah bervariasi. Secara umum, DBMS diartikan sebagai suatu program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh data informasi dengan praktis dan efisien. Dibandingkan dengan sistem yang berbasis kertas, DBMS memiliki 4 keunggulan: o Kepraktisan: Sistem yang berbasis kertas akan menggunakan kertas yang sangat banyak untuk menyimpan informasi, sedangkan DBMS menggunakan media penyimpan sekunder yang berukuran kecil tetapi padat informasi. o Kecepatan : Mesin dapat mengambil atau mengubah data jauh lebih cepat dari manusia. o Mengurangi kejemuan : Orang cenderung menjadi bosan kalau melakukan tindakan-tindakan berulang yang menggunakan tangan (misalnya harus mengganti suatu informasi). o Kekinian : Informasi yang tersedia pada DBMS akan bersifat mutakhir dan akurat setiap saat. Kekurangan sistem pemrosesan berkas yang diatasi dengan basis data telah diuraikan pada bagian terdahulu. Secara lebih detail, keuntungan basis data terhadap sistem pemrosesan berkas adalah dalam hal: o Kemubaziran data terkurangi, o Integritas data, o Independensi data, o Konsistensi data, o Berbagi data, o Sekuritas data, dan o Penggunaan data lebih mudah. 43 Masalah kemubaziran data, integritas data, independensi data, berbagi data, dan konsistensi data telah dijelaskan pada bagian terdahulu. Kebanyakan DBMS menyediakan mekanisme pengaturan sekuritas terhadap basis data berdasarkan wewenang pengguna. Sebagai contoh, si A hanya boleh membaca suatu data, tetapi si B boleh mengubahnya. Sekuritas data sangat penting pada basis data, yaitu untuk menghindari pengaksesan data sensitif oleh orang yang tidak berhak. Di dalam lingkungan basis data, data lebih mudah digunakan. Pada beberapa DBMS tersedia fasilitas query yang memudahkan pengguna untuk memperoleh informasi. Pengguna yang tidak memiliki kemampuan pemrograman pun dengan mudah bisa menggunakan fasilitas query tersebut. Bagi pemrogram aplikasi, pembuatan program aplikasi juga dapat dilakukan dengan mudah, jauh lebih mudah dibandingkan dengan kalau menggunakan bahasa-bahasa konvensional seperti COBOL dan PORTRAN. Alhasil, keadaan ini dapat meningkatkan produktivitas pemrograman. 2. Komponen Utama DBMS Komponen utama DBMS dapat dibagi menjadi 4 macam: 1. perangkat keras, DBMS 2. data, 3. perangkat lunak, dan 4. pengguna. Program Aplikasi Pengguna Akhir Program Aplikasi Perangkat - lunak Data Perangkat - keras Gambar 1 Komponen-komponen utama sistem basis data 44 Perangkat Keras Perangkat keras berupa komputer dan bagian-bagian di dalamnya, seperti prosesor, memori, dan harddisk. Komponen inilah yang melakukan pemrosesan dan juga untuk menyimpan basis data. Data Data di dalam basis data mempunyai sifat terpadu (integrated) dan berbagi (shared). o Terpadu berarti bahwa berkas-berkas data yang ada pada basis data saling terkait, tetapi kemubaziran data tidak akan terjadi atau hanya terjadi sedikit sekali. Sebagai contoh, berkas PEGAWAI terdiri atas nama, alamat, bagian, dan gaji pegawai, serta atribut-atribut lainnya dan berkas PELATIHAN menyatakan kursus atau pelatihan yang diikuti oleh para pegawai. PEGAWAI PELATIHAN NAMA NAMA ALAMAT KURSUS BAGIAN GAJI ... ... Gambar 2 Berkas-berkas pada basis data bersifat terpadu: duplikasi terhindari Pada saat mencatat pelatihan yang diikuti oleh seseorang, tentu saja data seperti bagian tempat pegawai bekerja tidak perlu disertakan, karena informasi mengenai hal ini bisa diperoleh dari tabel PEGAWAI. Dengan demikian, kemubaziran dapat dihindari. o Berbagi Data Berbagi data berarti bahwa data dapat dipakai oleh sejumlah pengguna. Lebih tegas lagi, sesuatu data dapat diakses oleh sejumlah pengguna dalam waktu bersamaan. Sifat ini biasa terdapat pada sistem multiuser (kebalikan dari sistem yaitu sistem single-user, yakni sitem yang hanya memungkinkan satu orang yang bisa mengakses suatu data pada suatu waktu). 45 Perangkat Lunak Perangkat lunak, dalam hal ini DBMS, berkududukan antara basis data (data yang disimpan dalam harddisk) dan pengguna. Perangkat lunak inilah yang berperan melayani permintaan-permintaan pengguna. Pengguna Pengguna dapat diklasifikasikan menjadi 3 kategori: 1. pengguna akhir 2. pemrogram aplikasi, dan 3. administrator basis data. Pemrogram aplikasi adalah orang yang membuat program aplikasi yang menggunakan basis data. Program aplikasi yang dibuat tentu saja sesuai dengan kebutuhan pengguna. Pengguna akhir dapat dibagi menjadi 2 macam: 1. pengguna aplikasi, dan 2. pengguna interaktif. Pengguna aplikasi adalah orang yang mengoperasikan program aplikasi yang dibuat oleh pemrogram aplikasi. Pengguna interaktif adalah orang yang dapat memberikan perintah-perintah berbasa tinggi pada antarmuka basis data yang tersedia (misalnya dengan menggunakan perintah SELECT, INSERT dan sebagainya) atau melakukan perintah-perintah melalui antarmuka berbasis menu. Administrator basis data (DBA/Database Administrator) adalah orang yang bertanggung-jawab terhadap pengelolaan basis data. Secara lebih detail tugas DBA adalah sebagai berikut: o Mengidentifikasi basis data o DBA menentukan isi basis data o Menentukan sekuritas basis data. Setiap pengguna diberi hak akses terhadap basis data secara tersendiri. Tidak semua pengguna bisa menggunakan data yang bersifat sensitif. Penentuan hak akses disesuaikan dengan wewenang pengguna dalam organsasi. 46 o Memantau kinerja sistem Secara periodik DBA memantau kinerja DBMS. Termasuk dalam hal ini adalah pemantauan waktu tanggapan selama beban puncak. Informasi yang diperoleh dapat digunakan untuk menentukan perlu tidaknya pengembangan sistem perangkat keras di masa mendatang ataupun melakukan perubahan organisasi di dalam basis data. o Merencanakan backup dan recovery DBA-lah yang membuat panduan, prosedur serta standar untuk melakukan pencadangan data (backup) terhadap basis data. Begitu juga untuk proses pemulihan data (recovery) bila terjadi kerusakan data pada sistem. o Mengikuti perkembangan produk DBA juga bertanggung jawab terhadap perkembangan produk (versi DBMS yang baru, tool, dan perangkat pendukung) sehingga dapat memberikan usulan kepada organisasi untuk melakukan hal-hal yang dipandang perlu, seperti melakukan pelatihan kepada pemrogram aplikasi. 3. Abstraksi Data Untuk mendukung kepraktisan, DBMS menyediakan pandangan abastrak terhadap data bagi pengguna. DBMS berusaha menyembunyikan detail tentang bagaimana data disimpan dan dipelihara. Namun tentu saja hal ini dilakukan dengan sedapat mungkin mengusahakan data agar dapat diakses secara efisien. Abstraksi data dalam DBMS biasa dibagi menjadi tiga lapis, yaitu lapis fisis,lapis, konseptual, dan lapis pandangan. Lapis fisis merupakan lapis terendah dalam abstraksi data. Lapis ini menjelaskan bagaimana data sesungguhnya disimpan. Pada lapis inilah struktur data dijabarkan secara rinci. Lapis konseptual bersifat lebih tinggi daripada lapis fisis. Lapis ini menjabarkan data apa saja yang sesungguhnya disimpan pada basis data, 47 dan juga menjabarkan hubungan-hubungan antardata. Level ini biasa dipakai oleh DBA. Lapis pandangan merupakan lapis tertinggi pada abstraksi data. Pada lapis ini pengguna hanya mengenal struktur data yang sederhana, yang berorientasi pada kebutuhan pengguna. Data yang dikenal oleh masingmasing pengguna bisa berbeda-beda dan barangkali hanya mencakup sebagian dari basis data. Pandangan 1 Pandangan 2 Pandangan 3 Lapis Konseptual Lapis Fisis Gambar 3 Tiga lapis abstraksi data Gambaran struktur data bertipe record seperti berikut: Pegawai = RECORD Nama : STRING; Alamat : STRING; Bagian : STRING; Gaji : LongInt; END: Pada contoh ini rekaman bernama Pegawai berisi empat buah medan data (Nama, Alamat, Bagian, dan Gaji). Setiap medan memiliki nama, dan setiap nama memiliki tipe data. Pada level fisis, Pegawai dapat dijabarkan sebagai blok data yang terletak pada lokasi berurutan (dalam satuan byte). Pada lapis konseptual, masing-masing rekaman dijabarkan dengan definisi tipe data. Pada lapis pandangan, pengguna tertentu hanya boleh mengakses data tertentu. Sebagai contoh, seseorang yang menangani penggajian tentu saja berhak megetahui gaji seseorang dan bahkan mengubahnya, tetapi orang yang bekerja di bagian lain tentu tidak boleh melihatnya. 48 4. Model Basis Data Model basis data menyatakan hubungan antar rekaman yang tersimpan dalam basis data. Beberapa literatur menggunakan istilah struktur data logis untuk menyatakan keadaan ini. Model dasar yang paling umum ada 3 macam, yaitu: 1. hirarkis 2. jaringan, dan 3. relasional. Model yang lebih baru dikembangkan oleh sejumlah periset, yang dapat disebut sebagai sistem pascarelasional [3]. Beberapa di antaranya merupakan pengembangan dari pendekatan relasional, sedangkan yang lain benar-benar menggunakan pendekatan yang sama sekali berbeda. Beberapa nama yang sedang dikembangkan oleh para periset, antara lain: DBMS deduktif, DBMS pakar, DBMS semantik, DBMS berorientasi objek, DBMS relasional universal. Beberapa produk sistem berorientasi objek telah beredar di pasar, antara lain OpenODB (Hewlett-Packard Corporation) dan ObjectStore (Object Design Corporation). Beberapa produk di lingkungan PC juga menuju ke arah ini. 4.3 Model Hirarkis Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang dibalik. Model ini menggunakan pola hubungan orangtua-anak. Setiap simpul (biasa dunyatakan dengan lingkaran atau kotak) menyatakan sekumpulan medan. Simpul yang terhubung ke simpul pada level di bawahnya disebut orang tua. Setiap orangtua bisa bisa memiliki satu (hubungan 1:1) atau beberapa anak (hubungan 1:M), tetapi setiap anak hanya memiliki satu orangtua. Simpul-simpul yang dibawahi oleh simpul orangtua disebut anak. Simpul orangtua yang tidak memiliki orangtua disebut akar. Simpul yang tak memiliki anak disebut disebut daun. 49 A B C F D G H E I J K L M Adapun hubungan antara anak dan orangtua disebut cabang. Gambar 4 memperlihatkan contoh model hirarkis, yang terdiri atas 4 level dan 13 simpul. Level 1 ................................................ Level 2 .......... Level 3 ................ Level 4 ............................................................................................ Gambar 4 Contoh model hirarkis. Pada contoh di atas, A berkedudukan sebagai akar, dan berkedudukan sebagai orangtua dari simpul B, C, D, dan E. Keempat simpul yang disebutkan belakangan ini disebut sebagai anak simpul A. C juga bisa berkedudukan sebagai orangtua, yaitu orangtua F dan G. Adapun simpul F, G, H, I, J, L, dan M disebut sebagai daun. Contoh yang lebih konkret dapat dilihat pada Gambar 5. Gambar ini memperlihatkan hubungan dosen dan kelas yang diampu, serta mahasiswa yang mengikuti kelas masing-masing. Dosen Siti Nurbaya Pengantar Basis Data Rud i Asti Dosen Ashadi Pemrogram an COBOL Din a Din a Edi Matematik a1 Ita Edi Gambar 5. Contoh model hirarkis 50 Contoh produk DBMS yang menggunakan model hirarkis adalah IMS (Information Management System), yang dikembangkan oleh dua perusahaan IBM dan Rockwell International Corporation. 4.2. Model Jaringan Model jaringan distandarisasikan pada tahun 1971 oleh Data Base Task Group (DBTG). Itulah sebabnya disebut model DBTG.Model ini juga disebut model CODASYL (Conference on Data Systems Languages), karena DBTG adalah bagian dari CODASYL. Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul anak bisa memiliki lebih dari satu orangtua. Oleh karena sifatnya yang demikian, model ini bisa menyatakan hubungan 1:1 (satu orangtua punya satu anak), 1:M (satu orangtua punya banyak anak), maupun N:M (Beberapa anak bisa mempunyai beberapa orangtua). Pada model jaringan, orangtua disebut pemilik dan anak disebut anggota. Gambar 6 merupakan model jaringan yang didasarkan oleh model hirarkis pada Gambar 5. Dosen Siti Nurbaya Pengantar Basis Data Rud i Asti Dosen Ashadi Pemrograman COBOL Din a Edi Matematika 1 Ita Ita Gambar 6. Model jaringan Pada produk DBMS yang menggunakan model jaringan adalah CAIDMS/DB, dari Computer Associates International Inc. (sebelumnya dikenal sebagai 51 IDMS – Integrated Database Management System – yang dikembangkan oleh Cullinet Software Inc.). 4.3 Model Relasional Model relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna, serta merupakan yang paling populer saat ini. Model ini menggunakan sekumpulan tabel berdimensi dua (yang disebut relasi atau tabel), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. Relasi dirancang sedemikian rupa sehingga dapat menghilangkan kemubaziran data dan menggunakan kunci tamu untuk berhubungan dengan relasi lain. Contoh produk DBMS yang menggunakan model jaringan adalah CAIDMS/DB, dari Computer Associates International Inc. (sebelumnya dikenal sebagai IDMS – Integrated Data base Management System – yang dikembangkan oleh Cullinet Software Inc.) DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Database Management System). Gambar 7 memperlihatkan istilah relasi, dan atribut dan padanannya dengan istilah-istilah lain yang populer di kalangan pemrograman dan sejumlah pengguna (terutama yang bekerja dengan SQL). Model Relasional Pemrograman Pengguna Relasi Berkas Tabel Tupel (baris) Rekaman Baris Atribut Medan Kolom Gambar 7. Padanan istilah relasi, tupel dan atribut. Meskipun relasi dikatakan sama dengan tabel, relasi pada sejumlah literatur sering disebut saat membicarakan struktur logis dan tabel adalah nama yang sering disebut pada basis data fisi. Pada buku ini, istilah tabel terkadang digunakan untuk menggantikan relasi, atau sebaliknya. 52 Gambar 8. merupakan bentuk relasional berdasarkan contoh model hirarkis dan jaringan di depan. Nama_Dosen Kelas Mahasiswa Siti Nurbaya Pengantar Basis Data Rudi Siti Nurbaya Pengantar Basis Data Asti Siti Nurbaya Pengantar Basis Data Dina Siti Nurbaya Pemrograman COBOL Dina Siti Nurbaya Pemrograman COBOL Edi Ashadi Matematika I Ita Ashadi Matematika I Edi Gambar 8. Model relasional Pada prakteknya, relasi pada Gambar 8. akan dinormalisasikan sehingga akan berbentuk beberapa tabel yang saling terhubung. Contoh model relasional seperti ini dapat dilihat pada Gambar 9. Pada gambar ini terdapat sebuah relasi. Relasi yang terbawah menggunakan kunci tamu berupa mahasiswa (NO_MHS) dan kode matakuliah (KODE_MK) untuk menghubungkan diri ke kedua relasi di atasnya. Dengan kata lain, berdasarkan data pada relasi terbawah, informasi seperti nama mahasiswa (NAMA_MHS) dan matakuliah (NAMA_MK) bisa diperoleh. NO_MHS NAMA_MHS 55 Ahmadi 56 Rina 57 Budi KODE_MK NAMA_MK DB001 Pengantar Basis Data DB002 Basis Data Lanjut PI001 Teknik Multimedia NO_MHS KODE_MK NILAI 55 DB001 A 55 PI001 B 56 DB001 B 57 DB001 A 57 DB002 A Gambar 9 Beberapa relasi pada model relasional 53 Ada beberapa sifat yang melekat pada suatu relasi: 5. Tak ada tupel (baris) yang kembar. 6. Urutan tupel tidaklah penting (tupel-tupel dapat dipandang dalam sebarang urutan) 7. Setiap atribut memiliki nama yang unik 8. Letak atribut bebas (urutan atribut tidak penting) 9. Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua tupel. Pada model relasional, jumlah tupel suatu relasi disebut kardinalitas dan jumlah atribut suatu relasi disebut derajat (degree) atau terkadang disebut arity. Relasi yang berderajat dua disebut binary dan relasi yang berderajat tiga disebut ternary. Relasi yang berderajat n disebut n-ary. Istilah lainnya yang terdapat pada model relasional adalah domain. Domain adalah himpunan nilai yang berlaku bagi suatu atribut. Sebagaimana dikatakan di depan, tupel-tupel yang terdapat pada suatu relasi tidak ada yang kembar. Sesungguhnya bagian yang menyebabkan tidak adanya tupel yang kembar adalah yang disebut kunci primer. Sebagai contoh, pada relasi yang terlihat pada Gambar 10, kunci primer adalah gabungan dari atribut NO_MHS dan KODE_MK. Kunci gabungan semacam ini disebut kunci komposit. 54 Domain NILAI A B C D E Relasi NO_MHS KODE_MK NILAI 55 DB001 A 55 PI001 B 56 DB001 B 57 DB001 A 57 DB002 A Kardinalitas Sebuah Tupel Atribut Gambar 10. Relasi tupel, atribut, dan berbagai istilah lainnya. Contoh produk DBMS terkenal yang menggunakan model relasional antara lain adalah: DB2 (IBM), Rdb/VMS (Digital Equipment Corporation), Oracle (Oracle Corporation), Informix (Informix Corporation), Ingres (ASK Group Inc.), Sybase (Sybase Inc.), Di lingkungan PC, produk-produk berbasis relasional yang cukup terkenal antara lain adalah: Keluarga R:Base (Microrim Corporation), antara lain berupa R:base 5000, Keluarga dBASE (Ashton-Tate, sekarang bagian dari Borland International), antara lain dBASE III Plus, dBASE IV, serta Visual dBASE. Microsoft SQL (Microsoft Corporation). Visual FoxPro (Microsoft Corporation). 55 5. Macam Perintah DBMS Semua DBMS paling tidak mempunyai dua macam perintah yang digunakan untuk mengelola dan mengorganisasikan data, yaitu: 1. Bahasa Definisi Data (DDL/Data Definition Language), dan 2. Bahasa Manipulasi Data (DML/Data Manipulation Language). Selain kedua macam perintah di atas, pada kebanyakan DBMS sekarang juga terdapat perintah yang tergolong DCL (Data Control Language) yang berkaitan denga pengaturan sekuritas terhadap basis data. 5.1 Bahasa Definisi Data DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) untuk mengidentifikasikan skema ke DBMS. Skema adalah deskripsi lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data. Tugas utama skema adalah menjabarkan struktur basis data kepada DBMS. Secara lebih detail, beberapa hal yang perlu dijabarkan pada DBMS: Nama basis data, Nama seluruh berkas pada basis data, Nama rekaman dan medan, Deskripsi berkas, rekaman, dan medan, Nama medan kunci, Nama indeks dan medan yang menjadi indeks. Indeks merupakan suatu mekanisme yang lazim digunakan pada basis data, yang memungkinkan pengambilan data dapat dilakukan dengan cepat. Hal-hal lain seperti penentuan: ukuran basis data, dan rutin validasi dan penyunting yang dilekatkan pada berkas dalam basis databersifat spesifik terhadap DBMS yang digunakan. 56 DDL juga dipakai untuk mendefinisikan subskema. Subskema adalah pandangan (view) bagi pengguna terhadap basis data. Subskema merupakan himpunan bagian dari skema. Dengan kata lain, subskema bisa mencakup sebagian atau seluruh bagian skema. Bila suatu item tak tercantum dalam subskema seseorang pengguna, maka item tersebut tak tersedia bagi pengguna bersangkutan. Subskema dapat menjadi mekanisme, pengamanan sistem basis data, yakni dengan mengatur hak pengaksesan item-item dalam basis data. DDL juga digunakan untuk menciptakan, mengubah, dan menghapus basis data. Skema dapat dibayangkan sebagai suatu kerangka yang tidak tergantung nilai. Berbagai nilai yang valid dapat diterapkan pada kerangka. Skema bersifat relatif tetap, sementara nilai-nilainya dapat berubah dari suatu saat ke saat yang lain. Skema NAMA ALAMA T Subskema NAMA BAGIAN BAGIAN GAJI Gambar 11. Subskema adalah himpunan bagian dari skema Basis Data Skema Subskem a Subskem a Pengguna 1 Pengguna 2 Subskem a Pengguna N ..... 57 Gambar 12.Basis data beserta skema dan sejumlah subskema Sebuah basis data hanya bisa mempunyai sebuah skema, tetapi bisa memiliki banyak subskema, tergantung oleh jumlah pengguna basis data, sebagaimana diperlihatkan Gambar 12. 5.2 Bahasa Manipulasi Data (DML) DML adalah perintah-perintah yang digunakan untuk mengubah, memanipulasi, dan mengambil data pada basis data. Tindakan seperti mengahpus, mengubah, dan mengambil data menjadi bagian dari DML. DML pada dasarnya dibagi menjadi dua: Prosedural, yang menuntut pengguna data apa saja yang diperlukan dan bagaimana cara mendapatkannya. Nonprosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya. DML nonprosedural menawarkan kemudahan bagi pengguna dalam mempelajarinya dan juga dalam menggunakannya daripada DML prosedural. Namun, karena pengguna tidak tahu cara mendapatkan data, DML non prosedural terkadang kurang efisien dibandingkan DML prosedural, untuk masalah tertentu. Ada dua cara untuk mengakses data pada basis data. Pertama, dengan mengetikkan perintah yang ditujukan kepada DBMS untuk memanipulasi suatu rekaman atau suatu data. Biasanya, DBML yang digunakan bersifat nonprosedural. Kedua, melalui program aplikasi yang menerbitkan instruksi-instruksi internal (disebut pernyataan melekat/embedded statement) ke DBMS untuk mengambil data dan memberikan hasil ke program. Pada bentuk kedua ini, bahasa perograman yang digunakan bisa saja berupa bahasa-bahasa pemrograman konvensional seperti C, COBOL, dan FORTRAN yang menggunakan pendekatan prosedural, atau menggunakan bahasa yang spesifik terhadap DBMS. Bahasa pemrograman seperti COBOL, C, dan FORTRAN yang digunakan untuk membuat aplikasi dapat mengakses data pada basis data disebabkan oleh 58 tersedianya antarmuka bahasa host (yang merupakan bagian DBMS). Model antarmuka ini diperlihatkan pada Gambar 13. Program Aplikasi COBOL DBMS Antarmuka Bahasa host Basic data Gambar 13 Antarmuka bahasa host Instruksi yang merupakan bagian dari DML dikodekan pada program dan kelak dikonversikan oleh antarmuka bahasa host ke dalam suatu kode khusus . Kode khusus inilah yang menjadi penghubung antara program aplikasi dan DBMS. Kode berikut memperlihatkan contoh program dalam bahasa host yang berupa COBOL pada lingkungan VAX/VMS (Digital equipment Corporation) yang menggunakan pernyataan melekat (embedded statement) – pernyataan yang diawali kata EXEC SQL – untuk mengakses data pada basis data Rdb/VMS. IDENTIFICATION DIVISION. PROGRAM-ID.TESSQL. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. * EXEC SQL INCLUDE SECTION. * EXEC SQL INCLUDE SQLCA END-EXEC. * 01 NIP PIC X(6). 01 NAMA PIC X(25). 01 ALAMAT PIC X(35). 01 KOTA PIC X(15). 01 SAKLAR PIC 9. 88 AKHIR VALUE 1. * PROCEDURE DIVISION. PROGRAM-UTAMA. EXEC SQL DECLARE DATABASE FILENAME SQL_PEGAWAI ENDEXEC. EXEC SQL WHENEVER NOT FOUND GO TO AKHIR-DATA END-EXEC. * 59 DISPLAY ‘NIP – NAMA – ALAMAT – KOTA’ EXEC SQL DECLARE TMP CURSOR FOR SELECT NIP, NAMA, ALAMAT, KOTA FROM PEGAWAI END-EXEC. EXEC SQL OPEN TMP END-EXEC. PERFORM AMBIL-DATA UNTIL AKHIR. AMBIL-DATA. EXEC SQL FETCH TMP INTO :NIP, :NAMA, :ALAMAT, :KOTA END-EXEC. DISPLAY NIP, ‘ ‘, NAMA, ALAMAT, KOTA. AKHIR-DATA. DISPLAY ‘*** Akhir data’ STOP RUN. Secara khusus, bagian DML ada yang disebut dengan DQL (Dalam literatur terkadang DQL dibedakan dengan DML). DQL sering hanya disebut bahasa query. DQL adalah fasilitas yang memungkinkan pengguna dengan pengetahuan komputer yang terbatas ataupun tidak mengetahui bahasa pemrograman dapat meminta informasi terhadap basis data. Sebagai contoh, pengguna dapat memberikan perintah: SELECT NIP, NAMA, ALAMAT, TGL_MASUK FROM KARYAWAN ; WHERE TGL_MASUK < “01/01/1983” Untuk memperoleh informasi NIP, NAMA, ALAMAT, TGL_MASUK pada tabel KARYAWAN, khusus untuk rekaman dengan TGL_MASUK kurang dari 1 Januari 1983. Perlu diketahui, contoh di atas berlaku pada Visual dBASE dan Visual FoxPro, sedangkan pada DBMS lain ada kemungkinan sedikit berbeda (dalam hal tata aturan penulisan perintahnya). Bahwa query jauh lebih efisien daripada bahasa-bahasa pemrograman Query sesungguhnya berarati pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam bentuk asli, karena telah populer di kalangan pengguna DBMS di Indonesia. konvensional seperti COBOL, C, dan BASIC, karena jumlah instruksi yang diperlukan lebih sedikit. Sebagai perbandingan, kode setara dengan perintah query di atas dalam bahasa COBOL adalah seperti berikut 60 OPEN INPUT KARYAWAN BACA_BERULANG. READ KARYAWAN IF TGL _MASUK GREATER THAN OR EQUAL “01/01/1983” GO TO BACA –BERULANG. DQL juga dapat berupa suatu antarmuka yang memudahkan pengguna dalam memperoleh informasi dari basis data. Salah satu antarmuka DQL adalah QBE (query by example), sebagaimana diperlihatkan pada gambar 13. Gambar 13. Salah satu model query by example Contoh di depan menggunakan fasilitas query milik Visual dBASE 5.5. Dengan mengisikan data seperti pada gambar di atas (yaitu <{01/01/1983}) pada kolom TGL_MASUK, maka akan didapatkan rekaman-rekaman dengan isi TGL_MASUK kurang dari tanggal 1 Januari 1983. Dengan kata lain, query di atas dipakai untuk memperoleh data pegawai yang masuk ke perusahaan sebelum tanggal 1 Januari 1983. Dengan menggunakan antarmuka seperti ini, pengguna tidak perlu tahu kaidah perintah SELECT, sebagaimana pada contoh di depan. 61 Contoh program Visual FoxPro yang memperlihatkan penggunaan DDL, DML, dan DQL dapat dilihat di bawah ini. Perlu diketahui, pernyataan yang di awali dengan simbol * merupakan komentar. * --------------------------------------------------------------------------------------* Program: TESSQL.PRG * * Contoh program yang menggunakan DDL, DML dan DQL * * Perangkat lunak: Visual FoxPro * --------------------------------------------------------------------------------------* Mematikan konfirmasi SET SAFETY OFF * DDL – Menciptakan basis data bernama AKADEMIS CREATE DATABASE AKADEMIS * DML – Membuka basis data OPEN DATABASE AKADEMIS * DDL – Menciptakan tabel MAHASISWA CREATE TABLE MAHASISWA (; NIM CHAR (6), ; NAMA CHAR (25), ; TGL_LAHIR DATE, ; KODE_JUR CHAR (2) ) * DDL – Menciptakan tabel JURUSAN CREATE TABLE JURUSAN (; KODE_JUR CHAR (2), ; NAMA_JUR CHAR (20)) * DML – Menambahkan empat baris data ke MAHASISWA INSERT INTO MAHASISWA ; VALUES (‘950001’, ‘RIDWAN SAIDI’, {06/01/1977}, ‘TK’) 62 INSERT INTO MAHASISWA ; VALUES (‘950002’, ‘ASTI PRATIWI’, {12/07/1977}, ‘TK’) INSERT INTO MAHASISWA VALUES (‘950003’, ‘SITA DIAN UTAMI’, {05/03/1978}, ‘TI’) INSERT INTO MAHASISWA VALUES (‘950004’, ‘FARDI EFENDI’, {01/01/1977}, ‘TK’) * DML- Menambahkan dua baris data ke JURUSAN INSERT INTO JURUSAN ; VALUES (‘TI’, ‘Teknik Informatika’) INSERT INTO JURUSAN ; VALUES (‘TK’, ‘Teknik Komputer’) * DQL – Menampilkan isi seluruh tabel MAHASISWA dan * dilengkapi dengan nama jurusan yang diambil * dari tabel JURUSAN SELECT NIM, NAMA, TGL_LHR, NAMA_JUR ; FROM MAHASISWA, JURUSAN; WHERE MAHASISWA. KODE_JUR = JURUSAN.KODE_JUR * DML: Menutup basis data MAHASISWA CLOSE DATABASES * DDL – Menghapus basis data AKADEMIS dan seluruh tabel * yang terkait DELETE DATABASE AKADEMIS DELETETABLES * --- Akhir TESSQL.PRG 63