MODUL PRAKTIKUM PERANCANGAN BASIS DATA Disusun Oleh : Team Penyusun Modul BINA SARANA INFORMATIKA JAKARTA 2009 Membuat Basis Data dan Mendesain tabel di Microsoft Access 1.1. Pendahuluan Pengertian Basis data Basis Data (Data Base) dapat dibayangkan sebagai sebuah lemari arsip. Jika kita memiliki sebuah lemari arsip dan berwenang untuk mengelolanya.atau kumpulan informasi yang terorganisasi dan disajikan untuk tujuan khusus.Prinsip utama basis data adalah pengaturan data/arsip.sedangkan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan data/arsip.Sedangkan sistem basis data merupakan perpaduan antara basis data dan sistem manajemen basis data (DBMS).DBMS adalah software yang menangani semua akses ke basis data Contoh dari DBMS yaitu Microsoft SQL, Server2000,Oracle,Mysql,Interbase,Paradox,Microsoft Access ,dan lain-lain. Komponen-komponen basis data antara lain : 1.Entitas Entitas digunakan untuk menerapkan integritas pada tingkat Entity(Tabel),agar setiap Instances (Record/Baris) pada suatu Entity bersifat Unique yang disebut sebagai Primary Key sehingga dapat dibedakan antara yang satu dengan yang lain. Contoh : 2.Atribut Setiap Entitas pasti memiliki Atribut yang mendeskripsikan karakteristik dari Entitas tersebut.penentuan/pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model data.Penetapan atribut bagi sebuah entitas umumnya memang didasarkan pada fakta yang ada.tetapi tidak selalu seperti itu.istilah atribut sebenarnya identik dengan pemakaian kolom data. Contoh : a.Entitas pelanggan atributnya kd_pelanggan,nm_pelanggan,alamat,notelpon 2 1.2.Normalisasi Dalam perancangan sebuah basis data perlu dilakukan secara cermat agar dihasilkan data yang kompak dan efisien dalam penggunaan ruang penyimpanan,cepat dalam pengaksesan dan mudah dalam manipulasi data.Salah satu cara yang dapat dilakukan dalam merancang basis data seperti ini adalah dengan melakukan normalisasi. Normalisasi adalah proses penyusunan tabel-tabel yang tidak redudan(dobel),yang dapat menyebabkan anomali pada saat terjadi operasi manipulasi data seperti tambah,ubah,dan hapus.Anomali yaitu proses basis data yang memberikan efek samping yang tidak diharapkan (misalnya menyebabkan ketidakkonsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus). Bentuk-bentuk normalisasi a.Bentuk tidak normal bentuk ini merupakan kumpulan data yang akan direkam ,tidak ada keharusan mengikuti format tertentu,dapat saja tidak lengkap dan terduplikasi.data dikumpulkan apa adanya sesuai keadaannya. b.Bentuk normal tahap pertama (1st Normal Form) sebuah table disebut 1NF jika : tidak ada baris yang duplikat dalam tabel tersebut masing-masing cell bernilai tunggal c.Bentuk normal tahap kedua (2nd normal form) Bentuk Normal Kedua(2NF) terpenuhi jika pada sebuah tabl semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh. d.Bentuk normal tahap ketiga Menghilangkan anomali-anomali hasil dari ketergantungan fungsional e.Bentuk Normal tahap keempat f.BCNF(Boyce code Normal Form) 3 4 5 Normal 3(3nf) Supplier barang Kd_supp* Nm_supp transaksi Kd_brg* Nm_brg Hrg No_fak* Tgl J_tempo Tot Kd_supp** detail Qty Jml No_fak** Kd_brg** 6 1.3 Implementasi Perancangan Basis data Mengenal Lingkungan Kerja Ms. Access 2003 Microsoft Access (atau Microsoft Office Access) adalah sebuah program aplikasi basis data dengan model relasional. Aplikasi ini menggunakan mesin basis data Microsoft Jet Database Engine, dan juga menggunakan tampilan grafis yang intuitif sehingga memudahkan pengguna. Versi terakhir adalah Microsoft Office Access 2007 yang termasuk ke dalam Microsoft Office System 2007. Microsoft Access dapat menggunakan data yang disimpan di dalam format Microsoft Access, Microsoft Jet Database Engine, Microsoft SQL Server, Oracle Database, atau semua kontainer basis data yang mendukung standar ODBC. Susunan/ hierarki pada access character Field Record File Database 1.4. Membuat Basis Data Di access 1. Mengaktifkan Ms. Access Klik menu Start all program Ms. Office 2. Membuat Database Klik file New Pilih pada task pane Tampil Jendela File New Database Ketikan nama database Klik Tombol Create Kemudian tampil Jendela Database Ms. Access Blank Database 7 Objects yang berada pada jendela database yaitu sebagai berikut : Tables Merupakan objek utama dalam sebuah file database sekaligus objek pertama yang harus dibuat karena didalam tabel inilah seluruh data-data yang dibutuhkan disimpan Queries Merupakan objek yang berfungsi untuk menampilkan, mengubah dan menganalisa data. Forms Merupakan objek yang digunakan untuk menampilkan data yang tersimpan dalam tabel (untuk pembuatan user interface) Reports Merupakan objek yang digunakan untuk merangkum dan mencetak data atau suatu laporan secara efektif. Pages Page merupakan objek yang digunakan untuk mengakses data diweb secara langsung (online). Macros Merupakan objek yang digunakan untuk mengoptimasi sekaligus menghemat waktu yang diperlukan dalam pembuatan aplikasi database. Dengan kata lain Macro adalah kumpulan beberapa perintah, yang tersusun dalam sebuah daftar. Modules Merupakan objek yang digunakan untuk menuliskan kode program atau prosedur yang dapat digunakan untuk progaram aplikasi. 8 Praktikum : Buatlah database dengan nama Koperasi 3. Membuat Tabel Klik tab tables pada objects create table in design view Double klik create table in design view lalu buatlah tabel sesuai dengan struktur tabelnya data pada tabel save tabel : file save ketik nama tabel contoh:barang Latihan 1: Aktifkan database koperasi, kemudian buatlah tabel-tabel dengan struktur dibawah ini: Tabel : barang Field Name Data Type size Keterangan Kode_barang Text 4 Primary Key Nama_barang Text 30 Satuan Text 8 Harga currency Isikan data sebanyak 10 record, dengan contoh pengisian sebagai berikut : Kode_barang Nama_barang Satuan Harga B001 NESCAFE CREAM ISI 30 PACK 24000 Lanjutkan pengisian hingga 10 record Tabel : karyawan Field Name Data Type size Keterangan NIK Text 9 Primary Key Nama_karyawan Text 30 Bagian Text 10 Isikan data sebanyak 5 record, dengan contoh pengisian sebagai berikut : NIK Nama_karyawan Bagian 200803666 DENIS AFRIADI PERSONALIA 200803724 APRIANA ADMIN Lanjutkan pengisian hingga 5 record Tabel : Header_penjualan Field Name Data Type No_fak Text Tgl_fak Date / Time NIK Text size Keterangan 5 Primary Key 9 Foreign Key Isikan data sebanyak 5 record, dengan contoh pengisian sebagai berikut : No_fak Tgl_fak Nik F0001 21 Juli 2009 200803666 F0002 21 Juli 2009 200803724 F0003 22 Juli 2009 200803667 9 Membuat Indexes(foreign key) Tabel : Detail_penjualan Field Name Data Type No_fak Text Kode_barang Text Jumlah Integer size Keterangan 5 Foreign Key 4 Foreign Key Isikan data sebanyak 5 record, dengan contoh pengisian sebagai berikut : No_fak Kode_barang Jumlah F0001 B001 2 F0001 B003 1 F0002 B004 5 F0003 B002 5 *catatan => untuk pengisian data ,disarankan setelah pembuatan relation ship 4. Membuat Relasi Tabel Untuk membuat relasi tabel : Klik menu Tool Relationship Kemudian tampil jendela show table Kemudian sorot nama tabel dan add satu-persatu tabel dan susun seperti dibawah ini: jumlah 10 Membuat garis relasi antar tabel: Tarik garis diagonal dari field kode_barang(primary key) ke field kode_barang yang ada pada detail_penjualan Hingga tampil jendela edit relationships Cheklist Enforce Referential Intergity, Cascade Update Related Fields, Cascade Deleted Related Record Klik Create Lanjutkan langkah pembuatan hingga terbentuk relasi seperti dibawah ini 11 4. Membuat Query Query adalah suatu objek database yang dapat digunakan untuk menampilkan, menyunting atau menganalisa suatu data dengan memberikan baris-baris perintah tertentu. Pada aplikasi ini sudah dilengkapi dengan Structured Query Language (SQL) yang menjadi standar bahasa dalam mengolah database Dengan SQL kita dapat mempersingkat penulisan listing program yang panjang karena pada setiap perintahnya dapat mencakup banyak perintah sekaligus. Query juga dapat digunakan untuk bekerja dengan data lebih dari dua tabel dengan mudah Langkah Membuat Query Klik tab Queries pada objects Double klik create query in Design View Tampil jendela show table Sorot nama tabel kemudian klik add hingga tampil seperti di bawah ini: 12 Keterangan Field : nama field yang ingin ditampilkan Table : Nama tabel dari field tersebut Sort : Mengurutkan data hasil query Show : Mengatur field ditampilkan atau tidak Criteria : Syarat dari data yang ingin ditampilkan Jika ingin menggunakan seluruh field dalam tabel tersebut maka kita hanya klik dan drop tanda * pada tabel barang kedalam baris field Terdapat tiga pilihan pada toolbar view antara lain: 1. Design View : untuk menampilkan desain tabel query 2. Datasheet View : untuk menampilkan data hasil query : untuk membuat query dengan script SQL 3. SQL View Contoh : SELECT * FROM barang; (dengan kata lain perintah SELECT * digunakan untuk menapilkan seluruh data pada tabel sedangkan FROM barang digunakan untuk memperjelas data dari tabel mana yang akan di pakai atau ditampilkan). Pembuatan Query Buatlah query, sebagai berikut: Field Sumber Tabel Kode_barang Barang Nama_barang Barang Jalankan query dengan mengklik tanda seru ! pada icon toolbar Jika ingin menampilkan salah satu data barang saja, sebelum menjalankan kita dapat mengetik kode yang ingin ditampilkan pada baris criteria pada kolom kode_barang. Contoh : menampilkan data barang dengan kode barang “B003” Kemudian jalankan query melalui tampilan datasheet dan jalankan melalui SQL View untuk melihat sintaks SQL yang terbentuk Berikut sintaks SQL yang ditampilkan SELECT barang.kode_barang, barang.nama_barang FROM barang WHERE (((barang.kode_barang)="B001")); 13 Latihan 1: Buka database koperasi, buatlah Query dari tabel Header_penjualan dan tabel karyawan dengan menggunakan sintaks SQL melalui SQL View pada tab query Field Sumber Tabel Nik Nama_karyawan Bagian No_fak Tgl_fak Header_penjualan Karyawan Karyawan Header_penjualan Header_penjualan Tampilkan data pembelian karyawan dengan NIK 200803666 dengan perintah select Simpan dengan nama query_dt_beli_karyawan Latihan 2: Buatlah query dari tabel barang dan detail_penjualan Field Sumber Tabel No_fak Kode_barang Nama_barang Satuan Harga Jumlah Total Diskon Bonus detail_penjualan detail_penjualan Barang Barang Barang Detail_jual Total:[harga]*[jumlah] Ekspresi Ekspresi Diskon Jika total pembelian > 50000 mendapat diskon 5% dari total Jika total pembelian >100000 mendapat diskon 10% dari total Selain dari itu tidak mendapat diskon Bonus Jika total pembelian > 100000 mendapat bonus 1pcs Sunlight 400ml Selain dari itu tidak mendapat bonus Query DDL (Data Definition Language) Data Definition Language (DDL) merupakan sub bahasa SQL yang berfungsi mendefinisikan database dan tabel.Namun karena di access perintah DDL ini dapat digunakan dalam mendefinisikan tabel saja. Perintah yang digunakan diantaranya: CREATE, ALTER, dan DROP. Dengan menggunakan ketiga perintah tersebut kita sudah dapat membangun struktur data dengan lengkap. CREATE Create digunakan untuk membuat tabel 14 BU : Create Table Kolom_1 Kolom_2 Kolon_n nama_tabel ( tipe(panjang), tipe(panjang), tipe(panjang)) Klo untuk index unique : constrant nama_field (unique) Latihan CREATE Membuat tabel Mahasiswa dengan mengetikan script SQL berikut pada SQL View di Query Create Table mahasiswa ( NIM text(8) not null primary key, NAMA text(30) not null, TGL_LAHIR date, ALAMAT text(50)) Create Table mahasiswa ( NIM text(8) not null, NAMA text(30) not null, TGL_LAHIR date, ALAMAT text(50), Primarykey(NIM)) Keterangan : NIM text(8) not null primary key pada field NIM dan NAMA data tidak boleh kosong (not null) dan field NIM juga merupakan kunci utama (primary key) Kemudian untuk menjalankannya kita dapat mengklik run/tanda seru dari icon toolbar. Untuk melihatnya pada objects klik tab tables dan double klik nama tabel mahasiswa ALTER Alter digunakan untuk merubah, menambah(ADD), menghapus(DROP) struktur tabel. BU : Alter Table nama_tabel [spesifikasi perubahan] Latihan ALTER Menambahkan field Jenis_kelamin pada tabel mahasiswa Sintaks SQL: ALTER TABLE mahasiswa ADD Jenis_kel text(1) Menambahkan Primary key pada field NIM di tabel mahasiswa Sintaks SQL: 15 ALTER TABLE mahasiswa2 ADD constraint NIM Primary Key(NIM) Keterangan: Pemakaian Constraint Merubah ukuran dan tipe dari field NIM pada tabel mahasiswa Sintaks SQL: ALTER TABLE mahasiswa ALTER column NIM Number Menghapus field Jenis kelamin dari tabel mahasiswa Sintaks SQL: ALTER TABLE mahasiswa DROP column Jenis_kel DROP Drop digunakan untuk menghapus tabel BU : Drop TABLE nama tabel Menghapus tabel MHS Sintaks SQL: Drop table mahasiswa Query DML (Data Manipulation Language) Data Manipulation Language (DDL) merupakan sub bahasa SQL yang berfungsi memanipulasi data yanga ada di dalam basisdata atau database. Perintah yang termasuk didalam DML adalah INSERT, SELECT, UPDATE, dan DELETE INSERT Berfungsi untuk menyisipkan, memasukkan, atau menyimpan data dari luar sistem kedalam database. BU : 16 INSERT INTO nama_tabel (nama field1, namafield2….,namafield n) VALUES (value1, value2,…,valuen) Atau INSERT INTO nama_tabel VALUES (value1, value2,…,valuen) Sintaks SQL: INSERT INTO mahasiswa VALUE(“12029256”,”APRIANA”, ”17/01/1985”,”LEBAK BULUS”,) Lanjutkan pengisian hingga 5 record pada tabel mahasiswa SELECT Perintah select berfungsi untuk membentuk tabel baru dengan cara mengcopy (backup) seluruh data dari tabel aktif. BU : SELECT nama field1, namafield2….,namafield n INTO nama_tabel_baru FROM nama_tabel_aktif Atau SELECT * INTO nama_tabel_baru FROM nama_tabel_aktif Latihan: * Menampilkan Field dari 2 table SELECT kdkursus, namakursus, kdkasir, nama INTO coba FROM kursus, kasir *Tampilkan data dari table detail_daftar dimana kdpendaftarann hanya yang mengambil kdkursus Wed03 saja : SELECT kdpendaftaran from detail_daftar where kdkursus="Wed03" *Tampilkan data dari table daftar dimana kdanggota ”M001” dan kdkasir ”K001” saja: SELECT kdanggota from daftar where kdanggota="M001" and kdkasir="K001" *Tampilkan data dari table daftar dimana kdanggota ”M002” atau kdkasir ”K002” : SELECT kdanggota from daftar where kdanggota="M002" or kdkasir="K002" 17 *Tampilkan data dari table daftar dimana kdanggota bukan ”M002” atau kdkasir ”K002” : SELECT * from daftar where not (kdanggota="M002" or kdkasir="K001") * SELECT * FORM XXXX LIKE WILDCAD(*,?, ,-,[]) Sintaks SQL: SELECT * INTO mahasiswa_baru From mahasiswa UPDATE Perintah update berfungsi untuk mengubah satu atau lebih data field yang terdapat pada satu atau lebih record. BU : UPDATE nama_tabel SET field=value WHERE kriteria Atau UPDATE nama_tabel SET field1=value1, field1=value1,… ,field n=value n WHERE kriteria Sintaks SQL: UPDATE mahasiswa SET nama=”Pondok Pinang No. 73” WHERE NIM=”12029256” DELETE Berfungsi untuk menghapus satu atau beberapa record dari suatu tabel. BU : DELETE * From nama_tabel WHERE kriteria 18 Sintaks SQL: DELETE * From mahasiswa WHERE NIM=”12029256” Form dan SubForm Buatlah Form Data Barang dengan tampilan sebagai berikut : 19 Pembuatan Form Penjualan 1. 2. 3. 4. 5. Pada tab objects klik Form Double klik Create form by using wizard hingga tampil jendela wizard pindahkan semua field ke bagian selected field dengan mengklik >> pilih kembali tables/query pilih tabel karyawan pindahkan field nama karyawan dan bagian 6. Klik Next 2X pilih columnar 7. Klik Next 2X hingga tampil textbox untuk pengisian title 8. Klik Finish dan tampil form 9. Masuk ke mode design, hapus textbok NIK dan buatlah combobox wizard, langkahnya sbb: 20 Lakukan Penambahan SubForm dan Command Button Wizard hingga tampilan menja di : 21 Pembuatan Query Faktur Dengan Tampilan Faktur sebagai berikut: Pertemuan 9 22 MySql 1.1 Pengenalan MySql dan Lingkungan Kerja Mysql adalah sebuah program database server yang mampu menerima dan mengirimkan datanya dengan sangat cepat,multi user serta menggunkan perintah standar sql (struktur query language ). Mysql merupakan sebuah database server yang free, artinya kita bebas menggunakan database ini untuk keperluan pribadi atau usaha tanpa membeli atau membayar lisensinya. MySQL merupakan hasil ciptaan dari Michael “Monty” Widenius, David Axmark, dan Allan Larson pada tahun 1995. Mereka lalu mendirikan perusahaan bernama MySQlL AB di Swedia. Tujuan awal diciptakannya MySQL yaitu untuk mengembangkan aplikasi web yang akan digunakan oleh salah satu klien MySQL AB. Database Mysql,biasa kita baca mai-es-ki-el merupakan perangkat lunak database yang berbentuk database relasional atau dalam bahaa basisdata sering kita sebut dengan Relation database Management system (RDBMS) yang menggunkan suatu bahasa permintaan bernama sql. Perbedaan antara mysql dan sql adalah Mysql adalah program database sever sedangkan Sql adalah bahasa yang digunakan didalamnya 1.2 Kelebihan MySql Mysql adalah sebuah database server,dapat juga berperan sebagai client sehingga disebut database client/server,yang open source dapat berjalan pada os manapun,dengan flatform Windows ,maupun linux. 23 1.3 Penggunaan MySql dengan command prompt Dalam modul ini menggunakan paket program PHPTriad , dengan sistem operasi Windows XP. Paket PHPTriad biasanya di-instal pada direktori atau folder C:Apache. Karena PHPTriad merupakan kumpulan paket dari Apache (versi 1.3.23), MySQL (versi 5.0.18) dan PHP (versi 4.1.1), sehingga masing-masing software tersebut akan disimpan pada direktori khusus. Untuk MySQL ada pada direktori C:apachemysql. Sedangkan untuk file-file eksekusinya (file biner) ada di direktori C:apachemysqlbin. Untuk dapat menggunakan mysql terlebih dahulu aktifkan dengan cara sebagai berikut : 1. Pilih menu Start, all programs, accessories kemudian pilih command prompt. Selanjutnya akan tampil jendela sebagai berikut: 2. Kemudian pada command prompt tersebut ketikan perintah sebagai berikut: C:\User\..>cd C:\ C:>cd apache\mysql\bin Jalankan dahulu program MySql Server atau MySql Daemon -- disingkat mysqld (pada saat ini komputer kita bertindak seolah-olah sebagai sebuah server). C:\apachemysqlbin>mysqld Bila perintah ini berjalan dengan baik,maka pada layar akan ditampilkan pesan: mysqld: ready for connections Perhatikan pada ‘connections’ dengan bentuk jamak, dengan demikian computer kita tersebut telah menjalankan fungsinya sebagai mysql server dan dapat melayani lebih dari satu koneksi. Jangan tutup jendela tersebut, jika anda menutuo jendela tersebut, maka program MySql server akan dihentikan juga oleh system. Kemudian, bukalah sebuah 24 jendela system prompt ( atau DOS prompt) yang baru. Dan masuklah ke direktori c:\apachemysqlbin. C:\>cd apache2triad C:\apache2triad>cd mysql C:\apache2triad\mysql>cd bin C:\apache2triad\mysql\bin> Kemudian jalankan program mysql client dengan mengetikkan mysql pada command prompt C:\apache2triad\mysql\bin>mysql Bila perintah tersebut berhasil, maka pada layar akan tampil ucapan selamat datang dari mysql: Anda sekarang sudah berhasil menjalankan mysql dan berhasil masuk kedalam system mysql. Pesan terebut berisi ucapan selamat datang, pemberitahuan tentang penulisan perinth MySql yang(tidak) selalu diakhiri dengna symbol. Versi MySql yang kita gunakan(3.4) dan connection id berupa nomor urut kita masuk ke server. 1.4 Pengantar Sintak Dasar MySQL merupakan sintaknya tidak serumit bahasa bahasa pemograman pemograman database lainnya di mana seperti java, penulisan C++ dan sebagainya. Satu hal yang perlu diingat bahwa setiap penulisan script MySQL di DosPrompt harus selalu diakhiri dengan tanda titik koma (;). Di dalam source MySQL yang telah terinstal secara default telah terisi sebuah database yang bernama mysql dan 25 information_schema . Untuk dapat menampilkan apa saja nama database yang telah ada maupun yang akan kita buat, gunakan sintak : Mysql> show databases; Perhatikan contoh di bawah ini : Contoh di menunjukkan dengan atas bahwa menggunakan sintak show databases; berarti kita dapat menampilkan seluruh nama database yang telah ada. Sintak untuk bisa masuk kedalam salah satu system database tersebut adalah : Mysql>use nama_database; Perhatikan gambar di bawah ini : Dengan mengetikkan sintak use mysql; dan keluar kalimat database berarti kita telah masuk ke dalam database mysql yang telah ada. Di tentu ada terdapat beberapa change, setiap database table yang menjadi komponen dasar sebuah database. Sintak untuk menampilkan seluruh table yang telah ada di dalam database mysql adalah : mysql>show tables; 26 perhatikan gambar di bawah : Dari gambar di atas, kita dapat melihat bahwa di dalam database mysql sudah ada beberapa table yang telah default dari mysql-nya sendiri. Didalam database tersebut ada table columns_priv (columns_privilege), db, host, tables_privilege, dan user di mana tiap tablenya memiliki fungsi tertentu yang dapat diakses oleh tiap user. Database mysql ini biasanya sering digunakan bagi webmaster sebagai penyimpanan data, karena table-table yang telah ada dan table yang tempat dibutuhkan sebagian besar telah terpenuhi. Fungsi tiap table tersebut akan kita bahas di bawah ini. Untuk bisa melihat isi seluruhnya dari salah satu table sepeti user, maka gunakan sintak sebagai berikut : msql>select*from user; Maka akan tampil suatu kolom-kolom dan baris-baris yang telah ada seperti gambar di bawah ini: 27 Dari gambar di atas akan terlihat kolom host, user dan password yang telah terisi. Isi dalam kolom tersebut seperti : Localhost merupakan nama komputer kita sendiri apabila komputer tersebut kita jadikan server. Sedangkan root adalah nama user yang berhak penuh untuk mengatur database yang telah ada seperti menambah user, memberi fasilitas kepada user lain agar user lain dapat akses ke database tersebut, bahkan juga root bisa membuat database baru yang dapat kombinasi digunakan kapanpun. Kolom password yang terisi oleh k\angka dan huruf di atas yaitu 1fb744464c9bba54 merupakan hasil password yang telah terenkripsi pada sintak terdahulu yaitu dengan menambahkan sintak password di depan kata password itu sendiri. 28 Pertemuan 10 Data Definition Language(DDL) 1. Data Definition Language (DDL) Skema basis data dispesifikasikan oleh sekumpulan definisi dengan sebuah bahasa khusus yang disebut data-definition language (DDL). Hasil kompilasi DDL berupa tabeltabel yang disimpan dalam sebuah file, disebut data dictionary (kamus data) atau data directory. Kamus data adalah sebuah file yang berisi metadata. File ini yang dikonsultasi sebelum data yang sebenarnya dibaca atau dimodifikasi oleh system basis data. 2. Penggunaan Data Definition Language(DDL) 2.1 Membuat Database Baru Database adalah sebuah media utama yang harus dibuat dalam membangun sebuah basis data agar nantinya dapat diletakkan beberapa tabel dengan field-fieldnya ,bila kita lihat dalam mysql database hanyalah semacam direktori saja ,berbeda jika dibandingkan dengan program database yang berbentuk visual seperti access ataupun paradox. 29 Pada mysql database akan disimpan dan dikumpulkan pada sebuah direktori khusus yang bernama data.dalam direktori data semua sub direktori yang ada didalamnya disebut database.berikut tampilan struktur diektori mysql. Untuk menciptkan database baru pada mysql syntak penulisannya adalah sebagai berikut : Create database nama_database; Contoh : Create database perpustakaan; Kemudian ketikan perintah Show databases; Untuk melihat apakah database perpustakaan sudah dibuat Untuk menghilangkan database atau menghapusnya,gunakan perintah drop Syntak Drop database nama_database; Contoh : Drop database perpustakaan; Kemudian lihat, gunakan perintah Show databases; Maka akan tampil gambar sebagai berikut : 30 Latihan 1 : Buat database dengan nama perpustakaan 2.2 Membuat tabel pada mysql Tabel adalah obyek utama yang harus ada pada sebuah basisdata karena didalamnya semua data akan disimpan. Tabel terletak pada sebuah database, sehingga pembuatan tabel dilakukan setelah database dibuat. Untuk membuat tabel kita harus terlebih dahulu mengaktifkan database,perintah yang digunakan adalah use. Syntax penulisannya adalah : Use nama_database; Contoh Use perpustakaan; Setelah masuk kedalam database, anda Telah diijinkan melakukan operasi-operasi menyangkut tabel dan isinya. Untuk membuat sebuah tabel, perintah yang digunakan adalah create table dengan syntax sebagai berikut : Create table nama_tabel(field1 type(lenght), field2 type(lenght),......... fieldn type(lenght),(.......)); Contoh: Kita akan membuat tabel anggota dengan struktur tabel sebagai berikut: Nama Field Type Size Keterangan Id_anggota Text 4 Primary key 31 Nama Text 15 Alamat Text 20 Notelp Number Tgl_lahir Date/time Berdasarkan struktur tabel diatas.perintah yang digunakan adalah seperti berikut: Mysql>crete table anggota(id_anggota char(4), ->nama varchar(15), ->alamat varchar(20), ->notelp varchar(12), ->tgl_lahir date); Kemudian untuk melihat table,gunakan perintah Show tables; Untuk melihat tabel Desc anggota; Untuk melihat field yang terdapat pada Tabel anggota 32 2.3 Untuk menghapus tabel gunakan perintah berikut Syntax Drop table nama_tabel; Contoh Drop table anggota; 2.4 Membuat kunci primer Dalam membuat sebuah database,kita pasti akan menemui sebuah record yang datanya tidak boleh sama dengan record yang lain,agar data tidak sama kita dapat membuat sebuah kolom data dengan isi yang berbeda dengan kolom lain ,kita dapat mendeklarasikan sebuah kolom sebagai kunci primer atau primary key. Dalam membuat kunci primer syaratnya adalah kolom tersebut tidak boleh kosong atau diset dengan nilai not null. Syntax penulisannya adalah : Mysql>create table anggota(id_anggota char(4) not null, ->nama varchar(15) not null, ->alamat varchar(20) not null, ->notelp varchar(12) null, ->tgl_lahir date, primary key(id_anggota)); Sedangkan bila kita ingin membuat primary key pada suatu tabel yang sudah terbentuk, perintah query yang harus diberikan adalah : Mysql > alter nama_table > add primary key(nama_colom yang dijadikan sebagai kunci); Contoh: Mysql > alter anggota >add primary key(id_anggota); Menghapus primary key Mysql > alter table nama_tabel >drop primary key; Contoh: Mysql > alter table anggota ->drop primary key; 33 Manipulasi tabel No Keterangan 1 Mengganti nama tabel 2 Perubahan field tabel 3 4 5 6 7 Perintah Rename table tabel_lama to tabel_baru; Alter table nama_tabel alter_spesifikasi kondisi; Contoh Rename table anggota to anggota baru; Alter table anggota Add jk char(1); atau Alter table anggota Add jk char(1) After nama; Menambah Alter table nama_tabel Alter anggota kolom unik Add index(nama_field); Add index(nama); Menghapus Alter table nama_tabel Alter anggota index drop index(nama_field); drop index(nama); Mengubah nama Alter table nama_tabel Alter table anggota kolom pada Change kolom_lama kolom_baru Change nama tabel type (lenght); nama_anggota type (lenght); Menghapus Alter table nama_tabel drop Alter table anggota drop jk; kolom /field nama_field; Membuat create table nama_tabel(kolom_1 crete table validasi type(lenght),kolom_2 anggota(id_anggota char(4) type(lenght),...kolom_n ->not null, type(lenght),enum(‘data1’,’data2’)); ->nama varchar(15) not null, ->alamat varchar(20) not ->null, ->notelp varchar(12) null, ->tgl_lahir date, ->jk enum(‘p’,’L’) primary key(id_anggota)); 34 Latihan 2 Buat 2 tabel didalam database perpustakaan dengan struktur tabel sebagai berikut : Tabel buku Nama Field Type Size Keterangan Id_buku Char 4 Primary key Judul varchar 15 Pengarang Varchar 15 Thn_terbit Date Jenis_buku Varchar 10 Status Varchar 10 Tabel pinjam Nama Field No_pinjam Id_anggota Id_buku Tgl_pinjam Tgl_kembali Type Char Char Char Date Date Size 4 4 4 Keterangan Primary key 2.ganti nama field judul pada tabel buku dengan judul buku panjang data 25 3.buat validasi pada field status dengan ada dan tidak ada 4.rubah nama tabel pinjam dengan pinjam buku 5.buat field unik untuk kolom pengarang pada tabel buku 35 Pertemuan 11 Data Manipulation Language(DML) 1. Data Manipulation Language (DML) DML atau Data manipulation Language merupakan perintah-perintah yang berfungsi untuk melakukan manipulasi data ataupun objek-objek yang ada didalam table. Definisi lainnya tentang DML adalah Perintah-perintah untuk memanipulasi data pada basis data, misalnya perintah untuk memilih data (query), menyisipkan, mengubah dan menghapus data dalam basis data. Bentuk manipulasi yang dapat dilakukan oleh DML diantaranya adalah untuk keperluan pencarian kembali data lama, penyisipan data baru, penghapusan data, pengubahan data, dll. Sedangkan DML sendiri menurut jenisnya dapat dibagi menjadi 2 jenis yaitu procedural dan non procedural. Beberapa manfaat atau kegunaan dari DLL diantaranya adalah sebagai berikut : 1. Pengambilan informasi yang disimpan dalam basis data 2. Penyisipan informasi baru ke basis data 3. Penghapusan informasi dari basis data 4. Modifikasi informasi yang disimpan dalam basis data 5. Query adalah perintah yang ditulis untuk mengambil informasi. Bagian dari DML yang menangani pengambilan informasi ini disebut bahasa query. 2. Penggunaan Data Manipulation Language(DML) Perintah insert 36 Perintah INSERT digunakan untuk menambahkan data baru kedalam tabel. INSERT memiliki dua buah format penulisan. Berikut ini contoh-contoh penulisan perintah INSERT dalam proses penambahan data kedalam tabel a nggota. Mysql >Insert into anggota (id_anggota,nama_anggota,alamat,notelp,tgl_lahir,jk) >values(‘A001’,’sari hartini’,’jln.bekasi kaum’,’021 98082049’,’1984-04-24’,’p’); Perintah Select Berfungsi untuk menapilkan data yang terdapat didalam databases atau table Sintaks sederhana dari perintah SELECT tampak seperti berikut ini: Select *from nama_table; Mysql > select * from anggota; Perintah Update Berfungsi untuk melakukan perubahan terhadap sejumlah data yang ada didalam table yang telah dibuat.Syntax: update table_name 37 set column1_name=column1_content where column2_name=column2_content; Contoh: Mysql > update anggota >set nama_anggota=’derry’, alamat=’pondok ungu’ where id_anggota=’a001’; Perintah Delete Berfungsi untuk menghapus sejumlah data yang ada didalam table yang telah dibuat. Syntax: delete table_name where column_name=column_content; Contoh: delete anggota where id_anggota=’a001 ; Pertemuan 12 PhpMyAdmin PhpMyAdmin adalah alat yang ditulis dalam PHP yang ditujukan untuk menangani administrasi MySQL melalui web. Membuat dan drop database, membuat / drop / merubah tabel, menghapus / mengedit / menambahkan kolom, jalankan SQL pernyataan apapun, 38 mengatur kunci pada field, mengatur hak, ekspor data ke dalam berbagai format dan tersedia dalam 50 bahasa. 1. Mengaktifkan Phpmyadmin - Pilih browser yang sudah tersedia(Internet Explorer,Mozzila Firefox) - Kemudian ketikan localhost/phpmyadmin pada address bar - Masukkan username root dan passwordnya password, kemudian akan tampil seperti di bawah ini 2. IDE Phpmyadmin 39 Database 3. Menu MySql Membuat Database - Ketikkan nama database pada textbox create new database, kemudian klik create Ketikkan nama database disini 4. Address bar Menu phpmyadmin Klik Create Menghapus database - Pilih menu database pada tampilan Home Phpmyadmin - Pilih Checklist pada kolom Checklist pada database yang akan dihapus kemudian pilih drop 40 Checklist database Klik Drop Pertemuan 13 Tabel 1. Membuat Tabel - Ketikkan nama table pada textbox name, kemudian ketikkan jumlah field yang akan dibuat pada table tersebut setelah itu klik go untuk memulai pengetikan struktur datanya. 41 Ketikkan Nama Ketikkan jumlah Klik - Setelah tampil layar seperti dibawah ini masukkan struktur data untuk table anggota Tabel Anggota Field Id_anggota Nama Alamat Notelp Tgl_lahir Type Varchar Varchar Varchar Varchar date Length/Values 4 20 30 13 Keterangan Primary key - Setelah kita masukkan field-field yang dibutuhkan kemudian klik save - Primary Klik Key Save Apabila telah sukses maka akan tampil tampilan seperti dibawah ini 42 2. Mengelola Tabel a. Menambah field - klik menu structure - masukkan jumlah field yang ingin ditambah, pilih at end of table, at beginning of table atau after dari field yang sudah ada setelah itu klik go Textbox Jumlah Posisi field yang - Klik masukkan nama field yang ditambah kemudian klik save, tambahkan field dengan nama field tempat_lahir, type varchar dan length 20 43 Klik Save - maka apabila telah di klik save akan tampil seperti dibawah ini b. Menghapus Field - checklist field yang ingin dihapus, kemudian klik drop checklis Klik Drop - setelah klik drop maka akan tampil pertanyaan, pilih yes. Kemudian akan tampil pesan sukses c. Merubah Field - checklist field yang ingin dirubaha, kemudian klik change 44 Klik Checklist - rubahlah id_anggota menjadi kode, setelah itu klik save d. Menambah isi table - klik database perpustakaan, kemudian checklist table yang ingin kita isikan data setelah itu klik insert Checklist Klik - akan tampil layar seperti dbawah ini, kemudian isikan 2 record, setelah itu klik go 45 e. Mencari data - Klik Go klik search pada menu, kemudian masukkan kode yang ingin dicari Klik Go Masukkan - Klik Maka akan tampil seperti dibawah ini 46 Pertemuan 14 Menampilkan Isi Tabel a. Penggunaan perintah select - Menampilkan seluruh isi table Sebelum menggunakan perintah select terlebih dahulu kita pilih menu sql untuk menggunakan perintah tersebut. Kemudian ketikkan perintah sebgai berikut: Select*from anggota Klik maka akan tampil seperti dibawah ini - Menampilkan data sesuai dengan kode yang dicari (a001), caranya sama dengan mengklik menu sql kemudian ketikkan perintah sebagai berikut: Select*from anggota where kode=’a001’ 47 Maka akan tampil seperti dibawah ini Pertemuan 15 Review PT KERETA API (PERSERO) Nama : xxxxxxxxx Name Tanggal Berangkat : dd-mm-yy No. KA : 999 Lewat : xxxxxxxxx Departure Date Train No Via 48 Nama KA : xxxxxxxxx The Name Of Train Jadwal Berangkat : 99:99 Jadwal Tiba : 99:99 Departure Time Arrival Time Kelas : xxxxxxxx No. Kereta : 999 Nomor Tempat Duduk : 999 Class Coach No. Seat Number Penumpang : Jumlah : Harga : (Rp) Bea Pesan : (Rp) Jumlah : (Rp) Passanger Amount Price Resevation Amount Dewasa : 999 999 999999999 99999999 999999999 Anak : 999 Child Total : (Rp) 999999999 Total DATABASE BIOSKOP TABLE FILM FIELD NAME TYPE SIZE KET KDFILM TEXT 5 PRIMARY KEY JUDULFILM TEXT 30 HARGATIKET NUMBER LONG CREATE TABLE FILM (KDFILM TEXT(5) PRIMARY KEY, JUDULFILM TEXT(30), HARGATIKET LONG) ISI : INSERT INTO FILM VALUES(“M0003”,”FINAL DESTINATION 4”,30000) 49 INSERT INTO FILM VALUES(“M0002”,”GET MERRIED 2”,15000) INSERT INTO FILM VALUES(“M0001”,”THE GRUDE III”,25000) TABLE TEATER FIELDNAME TYPE SIZE KET KDTEATER TEXT 3 PRIMARY KEY KETERANGAN TEXT 30 KAPASITAS NUMBER INTERGER CREATE TABLE TEATER (KDTEATER TEXT(3) PRIMARY KEY, KETERANGAN INSERT INTO TEATER VALUES(“T01”,”TEATER 1”,40) INSERT INTO TEATER VALUES(“T02”,”TEATER 2”,25) INSERT INTO TEATER VALUES(“T03”,”TEATER 3”,30) TABLE KASIR FIELDNAME TYPE SIZE KET KDKASIR TE 5 P NAMA TE 30 ALAMAT TE 30 TELP TE 13 TABLE TRANSAKSI NOTRANSAKSI T 5 TGLTRANSAKSI D KDFILM T 5 KDTEATER T 3 KDKASIR T 3 JMLTIKET N INTEGER JADWALFILM DATE P 50 CREATE TABLE TRANSAKSI (NOTRANSAKSI TGLTRANSAKSI DATE, KDFILM TEXT(5), TEXT(5) PRIMARY KEY, KDTEATER TEXT(3),KDKASIR TEXT(3), JMLTIKET INTEGER, JADWALFILM DATE) INSERT INTO TRANSAKSI VALUES (“00001” ,”23/10/2009” ,”M0001” ,”K01” ,”K0002” ,4,”14.30 WIB”) SOAL: Tambahkan field harga pada table transaksi, dan isi datanya sesuai dengan kdfilmnya. ALTER TABLE TRANSAKSI ADD HARGA CURRENCY UPDATE TRANSAKSI SET HARGA=25000 WHERE KDFILM=”M0001” UPDATE TRANSAKSI SET HARGA=15000 WHERE KDFILM=”M0002” UPDATE TRANSAKSI SET HARGA=30000 WHERE KDFILM=”M0003” Tampilkan data dari table transaksi dan tambahkan field total pada table transaksi dimana isi datanya didapat dari harga * jml tiket. ALTER TABLE TRANSAKSI ADD TOTAL CURRENCY UPDATE TRANSAKSI SET TOTAL=HARGA*JMLTIKET Tampilkan data dari table transaksi yang jumlah beli tikenya lebih besar 3 SELECT * FROM TRANSAKSI WHERE JMLTIKET>3 Tampilkan data dari table transaksi yang nama kasirnya mengandng huruf adalah “T” SELECT * FORM KASIR WHERE NAMA LIKE “*T*” Tampilkan data dari table trans berdasarkan kdkasir dan kdteater dimana 2 karakter terakhirnya =”02” SELECT * FORM TRANSAKSI WHERE (RIGHT(KDKASIR,2)=”02” AND RIGHT(KDTEATER,2)=”02”) Tampilkan data dari table table trans dan tambahkan filed diskon, isi data didapat dari jika total > 50000 maka diskon 5% dari total selain itu 0 ALTER TABLE TRANSAKSI ADD DISKON CURRENCY UPDATE TRANSAKSI SET DISKON=IIF(TOTAL>50000,0.5*TOTAL,0) 1. 2. select ….. (harga*jumlah) as [total] from transaksi 51 Update transaksi set total=harga*jumlah 3. 4. 5. select * form transaksi where (harga*jumlah) as [total],iif([total]>50000,[total]*5/100,0) as [diskon] from transaksi Buatlah database : Taman Bacaan Anggota Field Name Size Kdang Text(4) Nama Text(25) Alamat Text(30) Tlp Text(15) Isi table anggota sebanyak 5 record. Buku Field Name Size Idbuku Text(3) Jdl_buku Text(30) Pengarang Text(20) Penerbit Text(20) Hrgsewa Long integer Isi table buku sebanyak 5 record Idbuku Jdlbuku Penarang K01 Detective Goso oyama conan N01 LASKAR ANDERA PELANGI HIRATA P01 VISUAL UUS BASIC 6.0 HERMAWAN P02 POWER HERMAWAN POINT 2007 P03 VISUAL FRIEADIE Ket Primary key Ket Primary key Penerbit Hrgsewa MNC 1000 COMIC GRAMEDIA 2500 ELEX 3000 MEDIA ERLANGGA 3000 MAXIKOM 3000 52 FOXPRO 9.0 peminjaman Field Name Size Nopem Text(3) Kdang Text(3) Tglpinjam Date/time Tglkembali Date/time Isi table peminjaman sebanyak 5 record Nopem 001 002 003 004 Kdang A02 A03 A01 A04 Ket Primary key Tglpinjam 12/12/2008 12/14/2008 12/14/2008 12/14/2008 Detailpinjam Field Name Size Nopem Text(3) Idbuku Text(3) Jmlpinjam Long integer Isi table detailpinjam sebanyak 6 record Tglkembali 12/18/2008 12/18/2008 12/18/2008 12/18/2008 Ket Nopem 001 002 003 004 005 006 Idbuku K01 N01 P01 N01 P02 P03 Jmlpinjam 1 1 1 2 1 1 QUERY_HEADER Field Name Nopem Kdang Nama Alamat Tlp Size Table peminjaman Table peminjaman Table anggota Table anggota Table anggota Ket 53 Tglpinjam Table peminjaman Tglkembali Table peminjaman Lama pinjam Ekspresi Denda Ekspresi Ketentuan : Lama pinjam : tanggal kembali dikurangi tanggak pinjam Denda : jika peminjaman lebih dari tiga hari maka denda Rp. 500/hari Buatlah query dengan menggunakan inner join, right join, left join kemudian tampilkan datanya. SELECT peminjaman.nopem,peminjaman.kdang,anggota.nama, anggota.alamat, anggota.tlp, peminjaman.tglpinjam, peminjaman.tglkembali, [tglkembali]-[tglpinjam] as lamapinjam, iif([lamapinjam]>3, 500*(lamapinjam-3),0) as denda FROM peminjaman INNER JOIN anggota ON peminjaman.kdang=anggota.kdang QUERY_DETAIL Field Name Size Ket NOPEM DETAILPINJAM KDANG PEMINJAMAN NAMA ANGGOTA IDBUKU DETAILPINJAM JDL_BUKU BUKU PENGARANG BUKU PENERBIT BUKU Hrgsewa BUKU Jmlpinjam Detailpinjam Total Ekspresi Bonus ekspresi Total = hargasewa*jmlpinjam Bonus = jika jmlpinjam >=5, maka bonus total-1000, jika jmlpinjam >10 maka bonus total-1500 selain itu 0. SELECT detailpinjam.nopem, peminjaman.kdang, anggota.nama, detailpinjam.idbuku, buku.jdl_buku, buku.pengarang, buku.penerbit, buku.hrgsewa, detailpinjam.jmlpinjam, [hrgsewa]*[jmlpinjam] as total, iif([jmlpinjam]>5,[total]-1000, iif([jmlpinjam]=10,[total]-1500,0)) as bonus FROM (anggota INNER JOIN peminjaman on anggota.kdang=peminjaman.kdang) INNER JOIN (buku INNER JOIN 54 detailpinjam on buku.idbuku=detailpinjam.idbuku) ON pemunjaman.nopem=detailpinjam.nopem 55