MATERI PERANCANGAN BASIS DATA Diajukan sebagai tugas mata kuliah Perancangan Basis Data Disusun oleh: Tinawati Pasaribu 2011 1 Membuat Basis Data dan Mendesain Tabel Di Microsoft Access • Pendahuluan Pengertian Basis Data Basis Data (Database) dapat dibayangkan sebagai sebuah lemari atau tempat penyimpanan arsip yang dapat diatur dan di kelolah sendiri. Atau kumpulan informasi yang terorganisasi dan di sajikan untuk tujuan khusus. 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, Server 2000, Oracle, Mysql, Interbase, Paradox, Microsoft Access, dan lain‐lain. Komponen‐komponen basis data antara lain : • Entitas Entitas digunakan untuk menerapkan integritas pada tingkat Entity (Tabel), agar setiap Instances (Record/Baris) pada suatu Entity bersifat unique yang disebut dengan Primary Key sehingga dapat dibedakan antara yang satu dengan yang lain. • Atribute Setiap entitas pasti memiliki atribute yang mendeskrifsikan karakteristik dari entitas tersebut. Penentuan/pemilihan atribute‐atribute yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data. • 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 ketidak konsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus). Merupakan suatu proses pengelompokan data menjadi tabel yang menunjukan entity dan relasinya. Kolom dari tabel menunjukan attribut dari file, attribut ini menunjukan item data atau field data yang disebut domain. Sehingga masing‐masing dari record di dalam data disebut tuple atau record ini dapat mempunyai satu kunci unik disebut field kunci (key field). Ada berapa macam key yang dapat diterapkan pada suatu tabel, yaitu: a. Super Key Merupakan himpunan dari satu atau lebih entitas yang dapat digunakan untuk mengidentifikasikan secara unik sebuah entitas dalam entitas set. 2 b. Kunci Calon (Candidate Key) Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah candidate key tidak boleh berisi atribut atau kumpulan super key yang lain. c. Kunci Utama (Primary Key) Yaitu satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasi secara unik suatu kejadian spesifik tapi juga dapat mewakili setiap kejadian dari suatu entity. d. Kunci Alternatif (Alternate Key) Merupakan kunci candidate yang tidak dipakai sebagai primary key. Sering kali kunci alternatif ini dipakai sebagai kunci pengurutan dalam pembuatan laporan. e. Kunci Tamu (Foreign Key) Yaitu satu atribut atau satu set minimal atribut yang melengkapi satu hubungan yang menunjukan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan induk kunci utama yang direlasikan. Bentuk‐bentuk normalisas • 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. • Bentuk Normal Pertama(1 NF) Sebuah tabel disebut 1 NF jika : Tidak ada baris yang terduplikat dalam tabel tersebut Masing‐masing cell bernilai tunggal • Bentuk Normal Kedua(2 NF) Bentuk normal kedua (2NF) terpenuhi jika pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh. • Bentuk Normal Ketiga (3 NF) Menghilangkan anomali‐anomali hasil dari ketergantungan fungsional • Bentuk Normal Keempat (4 NF) • BCNF (Boyce Code Normal Form) • Implementasi Perancangan Basis Data 3 Mengenal Lingkungan Kerja Ms. Access 2003/2007 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 2010 yang termasuk ke dalam Microsoft Office System 2010. 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 • Membuat Basis Data Di Access • Mengaktifkan Ms. Access Klik menu Start all program Ms. Office Ms. Access • Membuat Database Klik file New Pilih pada task pane Blank Database Tampil Jendela File New Database Ketik nama database Klik Tombol Create Kemudian Tampil Jendela Database 4 Object 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) Macro 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 program aplikasi 5 Pertemuan 1 Buatlah Database dengan nama Kampus • Membuat Tabel Klik tab tables pada objects/jendela access Create table in design view Double klik create table in design view lalu buatlah tabel sesuai dengan struktur tabelnya data pada tabel save tabel : filesaveketik nama tabel, contoh : mahasiwa Aktifkan database kampus, kemudian buat tabel‐tabel dengan struktur dibawah ini : Tabel Mahasiswa Field Name Data Type Size Keterangan Nim Text 8 Primary key Nama_mahasiswa Text 20 Tempat_lahir Text 20 Tgl_lahir Date/Time Medium Date Alamat Text 30 Isikan data sebanyak 10 record, dengan contoh pengisian sebagai berikut : Nim Nama_mahasiswa Tempat_lahir 12102222 Satrio Arguna Bekasi Lanjutkan pengisian hingga 10 record Tgl_lahir 09‐Okt‐2009 Alamat Jl Bintara 14 Tabel Dosen Field Name Nip_dosen Nama_dosen Mata_kuliah Jadwal_mengajar Nim Data Type Text Text Text Text Text Size 8 20 20 10 8 Keterangan Primary key Lookup DisplaycontrolComboBox Row SourceTypeTable/Query Row Sourcetabel_mahasiswa Isikan data sebanyak 10 record, dengan contoh pengisian sebagai berikut : Nip_dosen Nama_dosen Mata_kuliah 200803025 Tinawati Perancangan Basis Data Lanjutkan pengisian hingga 10 record Jadwal_mengajar Nim Pagi 12102222 Ket : Untuk Nim Tinggal di pilih saja 6 Tebel Kelas Field Name Kode_kelas Nip_dosen Data Type Text Text Size 8 8 Keterangan Primary key Lookup DisplaycontrolComboBox Row SourceTypeTable/Query Row Sourcetabel_dosen Isikan data sebanyak 10 record, dengan contoh pengisian sebagai berikut : Kode_kelas Nip_dosen 12.2B.07 200803025 Lanjutkan pengisian hingga 10 record Ket : Untuk Nip dosen Tinggal di pilih saja • 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 di bawah ini : • Membuat garis relasi antar tabel : Tarik garis diagonal dari field Nip_dosen(primary key) pada tabel dosen ke field Nip_dosen pada tabel kelas 7 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 di bawah ini Pertemuan 2 Buatlah Database koperasi, kemudian buat tabel‐tabel dengan struktur dibawah ini : Buatlah Database dengan nama Koperasi • Membuat Tabel Klik tab tables pada objects/jendela access Create table in design view Double klik create table in design view lalu buatlah tabel sesuai dengan struktur tabelnya data pada tabel save tabel : filesaveketik nama tabel, contoh : barang Keterangan : Buat Relationship dahulu baru memasukan isi record 8 Tabel Barang Field Name Data Type Size Keterangan Kode_barang Text 6 Primary key Nama_barang Text 30 Satuan Text 8 Harga Currency Isikan data sebanyak 5 record, dengan contoh pengisian sebagai berikut : Kode_barang Nama_barang NC3001 Nescape Cream Isi 30 SG0001 Sabun Mandi Giv Lanjutkan pengisian hingga 5 record Satuan PACK PCS Harga 24000 1500 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 200803012 SATRIO 200803088 ARGUNA Lanjutkan pengisian hingga 5 record Bagian PERSONALIA ADMIN Tabel Header_penjualan Field Name No_fak Tgl_fak NIK Data Type Text Date/time Text Size 5 Long date 9 Keterangan Primary key Lookup DisplaycontrolComboBox Row SourceTypeTable/Query Row Sourcetabel_karyawan Isikan data sebanyak 5 record, dengan contoh pengisian sebagai berikut : No_fak Tgl_fak F0001 17 Maret 2011 F0002 18 Maret 2011 Lanjutkan pengisian hingga 5 record NIK 200803012 200803088 Tabel Detail_penjualan Field Name Data Size Keterangan 5 Foreign Key Ty pe No_fak Text 9 Kode_barang Text 6 Foreign Key Lookup DisplaycontrolComboBox Row SourceTypeTable/Query Row Sourcetabel_barang Jumlah number Long integer Isikan data sebanyak 5 record, dengan contoh pengisian sebagai berikut : No_fak Kode_barang F0001 NC3001 F0002 SG0001 Lanjutkan pengisian hingga 5 record Jumlah 2 3 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 di bawah ini : 10 • Membuat garis relasi antar tabel : Tarik garis diagonal dari field Nip_dosen(primary key) pada tabel dosen ke field Nip_dosen pada tabel kelas Hingga tampil jendela edit relationships • Membuat Query Query adalah suatu objek database yang dapat digunakan untuk menampilkan, menyunting atau manganalisa suatu data dengan memberikan baris‐baris perintah tertentu. Pada aplikasi ini sudah dilengkapi dengan Struktur Query Languange(SQL)yang menjadi standar bahasa dalam mengelolah 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 11 • Sorot nama tabel kemudia klik add hingga tampil seperti di bawah ini : • 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 ke dalam baris field • Terdapat tiga pilihan pada toolbar view antara lain : • Design View : untuk menampilkan desain tabel query • Datasheet View : untuk menampilkan data hasil query • SQL View : untuk membuat query dengan script SQL Contoh : SELECT * FROM barang : (dengan kata lain perintah SELECT * digunakan untuk menampilkan 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 Kode_barang Nama_barang Sumber Tabel Barang Barang 12 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 “NC3001” Kemudian jalankan query melalui tampilan datasheet dan jalankan melalui SQL View untuk melihat sintaks SQL yang terbentuk Berikut sintaks SQL yang ditampilkan SELECT nama tabel.nama field,nama tabel.nama field,........ FROM nama tabel; SELECT barang.kode_barang, barang.nama_barang FROM barang WHERE (((barang.kode_barang)=”NC3001”)); 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 Header_penjualan Nama_karyawan Karyawan Bagian Karyawan No_fak Header_penjualan Tgl_fak Header_penjualan Tampilkan data pembelian karyawan dengan NIK 200803025 dengan perintah select Simpan dengan nama query_dt_beli_karyawan Latihan 2: Buatlah query dari tabel barang dan detail_penjualan Field No_fak Kode_barang Nama_barang Satuan Sumber Tabel Detail_penjualan Detail_penjualan Barang Barang 13 Harga Jumlah Total Diskon Bonus Barang Detail_penjualan Total:[harga]+[jumlah] Ekspresi Ekspresi Diskon Jika total pembelian > 50000 mendapat diskon 5% dari total Jika total pembelian > 100000 mendapat diskon 10% total Selain dari itu tidak mendapat diskon Bonus Jika total pembelian > 100000 mendapat bonus 1 pcs Sunlight 400 ml Selain dari itu tidak mendapat bonus Pertemuan 3 Sintak – sintak SQL NAMA SELECT FROM INNER JOIN CREATE(DDL) ALTER(DDL) ADD(DDL) DROP(DDL) INSERT(DML) SELECT(DML) UPDATE(DML) DELETE(DML) FUNGSI Untuk menampilkan seluruh data pada tabel Untuk memperjelas data dari tabel mana yang akan di pakai atau di tampilkan Untuk menyatukan dua tabel dalam satu query Untuk membuat tabel Untuk merubah Untuk menambah Untuk menghapus Untuk menyisipkan, memasukan, atau menyimpan data dari luar sistem kedalam database Untuk membentuk tabel baru dengan cara mengcopy(backup)seluruh data dari tabel aktif Untuk mengubah satu atau lebih data field yang terdapat pada satu atau lebih record Untuk menghapus satu atau beberapa record dari satu tabel Query DDL (Data Definition Language) Data Definition Language (DDL) merupakan sub bahasa SQL yang berfungsi mendefinisikan database dan tabel. Karena di accses perintah DDL ini dapat digunakan dalam mendefinisikan tabel saja. Perintah yang digunakan antaranya : CREATE, ALTER, dan DROP. 14 Dengan menggunakan ketiga perintah tersebut kita sudah dapat membangun struktur data dengan lengkap. CREATE BU : Create Table nama_tabel ( Kolom_1 tipe(panjang), Kolom_2 tipe(panjang), Kolom_n tipe(panjang)) LATIHAN CREATE Sebelumnya buat dahulu database baru dengan nama rental_mobil, lalu setelah masuk kedalam jendela accses: Pilih QueriesCreate query in Design view Akan tampil show tableclose show tablenyalalu pilih SQL di menu bar lalu keluar jendela sqlnya 15 Membuat tabel mobil dengan mengetikan script SQL berikut pada view di query create table mobil ( nopol text(8) not null, nama_pemilik text(20) not null, alamat text(35) not null, merk text(15) not null, type text(15) not null, jenis text(15) not null, tahun_pembuatan number, warna text(15), primary key (nopol)) atau create table mobil ( nopol text(8) not null primary key, nama_pemilik text(20) not null, alamat text(35) not null, merk text(15) not null, type text(15) not null, jenis text(15) not null, tahun_pembuatan number, warna text(15)) Keterangan : Nopol text(8) not null primary key Pada field nopol dan nama_pemilik data tidak boleh kosong (not null) Dan field nopol juga merupakan kunci utama (primary key) Kemudian untuk menjalankan kita dapat mengklik run/tanda seru dari icon toolbar Untuk melihatnya pada object klik tab tables dan double kilk nama tabel mobil 16 Membuat tabel pelanggan dengan mengetikan script SQL berikut pada view di query create table pelanggan ( kode_pelanggan text(4) not null primary key, nama_pemilik text(20) not null, alamat text(35) not null, telp text(15)) ALTER BU : Alter table nama_tabel[spesifikasi perubahan] Latihan Alter Menambahkan field no rangka pada tabel mobil BU : Alter table nama_tabel add nama_field tipe (panjang); Sintaks SQL : Alter table mobil add no_rangka text(15); Merubah ukuran dan tipe dari field no_rangka pada tabel mobil BU : Alter table nama_tabel alter column nama_field tipe; Sintaks SQL : Alter table mobil alter column no_rangka number; Menghapus field no_rangka dari tabel mobil BU : Alter table nama_tabel drop nama_field; Sintaks SQL : Alter table mobil drop no_rangka; DROP 17 BU : Drop table nama tabel; Menghapus tabel pelanggan Sintaks SQL : Drop table pelanggan Pertemuan 4 QUERY DML (Data Manipulation Language) Data Manipulation Language (DML) merupakan sub bahasa SQL yang berfungsi memanipulasi data yang ada di dalam basisdata atau database. Perintah yang termasuk didalam DML adalah INSERT, SELECT, UPDATE, dan DELETE. INSERT Berfungsi untuk menyisipkan, mamasukan, atau menyimpan data dari luar sistem kedalam database. BU : INSERT INTO nama_tabel(nama_field1,nama_field2,.......,nama_field n) VALUES(value1,value2,.......,value n) Atau INSERT INTO nama_tabel VALUES(value1,value2,........,value n) Sintaks SQL : INSERT INTO pelanggan VALUES(“PL01”,”Ayu”,”Jl.Joglo Raya”,”021999888”) Lanjutkan pengisian hingga 5 record pada tabel pelanggan INSERT INTO mobil VALUES(“B0011TWP”,”Tita”,”Jl.Coba 2”,”Honda”,”Xenia”,”Sport”,”2011”,”Hitam”) Lanjutkan pengisian hingga 5 record pada tabel mobil 18 SELECT Perintah select berfungsi untuk membentuk tabel baru dengan cara mengcopy (backup) seluruh data dari tabel aktif. BU : SELECT nama_field1,nama_field2,.....,nama_field n INTO nama_tabel_baru FROM nama_tabel_aktif Atau SELECT * INTO nama_tabel_baru FROM nama_tabel_aktif Sintaks SQL: SELECT * INFO mobil_baru FROM mobil 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,field2=value2,......,fieldn=valuen WHERE kriteria 19 Sintaks SQL: UPDATE pelanggan SET nama =”Satrio” WHERE kode_pelanggan=”PL01” DELETE Berfungsi untuk menghapus satu atau beberapa record dari suatu tabel BU : DELETE * FROM nama_tabel WHERE kriteria Sintaks SQL : DELETE * FROM pelanggan WHERE kode_pelanggan=”pl01” Pertemuan 5 Pembuatan Form Form merupakan objek yang digunakan untuk menampilkan data yang tersimpan dalam tabel (untuk pembuatan user interface) dengan tampilan form Membuat Form Data Pelanggan Berdasarkan database Rental_mobil yang telah dibuat, selanjutnya akan kita buat Form dan Subformnya. Langkah‐langkah membuat form : • Klik Tab Form pada Object • Double Klik pada Create Form by Using Wizard, tampil Form Wizard seperti berikut : 20 • Pindahkan fields pada available fields kabagian selected field • Pilih Next lalu, Pilih layout yang diinginkan untuk form yang akan dibuat • Lalu Pilih Next, lalu pilih style yang diinginkan untuk form yang akan dibuat 21 • Lalu pilih Next, ketikan nama form dan pilih Modify the form’s design • Lalu pilih Finish • Maka Akan tampil Form Pelanggan Cara Membuat Button • Klik Button di menubar, maka akan tampil Command Button Wizard • Pilih Categories : Record Operations, lalu Actions : Add New Record 22 • Pilih Next, maka akan tampil contoh Button, lalu pilih Text dan tuliskan nama ButtonNya • Pilih Next, maka akan tampil name untuk penyimpanannya • Pilih Finish, maka akan tampil Button tambah kedalam Form Pelanggan 23 • Buat Button Tambah, Button Simpan, Button Hapus, Button Close Latihan : • Buat database Perpustakaan • Buat Tabel menggunakan Sintak SQL Tabel Anggota Nama_Field No_anggota Nama Alamat Telp Pekerjaan Jenis Kelamin Type Text Text Text Text Text Text Panjang 5 15 25 15 15 1 Keterangan PK Tabel Buku Nama_Field Type Panjang Keterangan Kd_buku Text 5 PK Judul Text 20 Pengarang Text 20 Penerbit Text 20 Jenis_buku Text 20 • Masukan record ke dalam Tabel Anggota dan Tabel Buku isi kan 5 record ke masing‐ masing tabel • Buat Form‐form ke masing‐masing tabel 24 Tugas UTS • Buat Database apa saja minimal 3 tabel yang saling berhubungan/relationsip menggunakan sintak SQL (DDL dan DML) • Buat menggunakan DDL dan lakukan perintah‐perintah(Create, Alter Add, Alter Drop, Drop) • Isi recordnya tiap tabel minimal 5 record menggunakan MDL dan lakukan perintah‐ perintah (Insert, Select, Update dan Delete) • Setiap Perintah disimpan dan sintaknya di print • Buat Form‐formnya dari semua tabel • Programnya di simpan di CD • Tiap mahasiswa tidak boleh sama databasenya dan tabelnya, jika sama dengan temannya akan di beri nilai 0 • Dikumpulkan saat Quis (telat tidak diterima) Pertemuan 9 MySQL • Pengenalan MySql dan Lingkungan Kerja Mysql adalah sebuah program database server yang mampu menerima dan mengirimkan datanya dengan sangat cepat, multi user serta menggunakan perintah standar SQL (Structure 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 MySQL 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 bahasa basis data sering disebut dengan Relation Database Management System (RDBMS) yang menggunakan suatu bahasa permintaan bernama SQL. Perbedaan antara MySQL dan SQL, MySQL adalah program database server sedangkan SQL adalah bahasa yang digunakan didalamnya. • Kelebihan MySQL MySQL adalah sebuah database server dapat juga berperan sebagai clien sehingga disebut database client/server yang open source dapat berjalan pada OS manapun dengan platform Windows maupun linux. 25 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:\ Apache2Triad. 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:\apache2triad\mysql. Sedangkan untuk file‐file eksekusinya (file biner) ada di direktori C:\apache2triad\mysql\bin. Untuk dapat menggunakan mysql terlebih dahulu aktifkan dengan cara sebagai berikut : • Pilih menu Start‐All Programs Accessories kemudian Pilih Command Prompt. Selanjutnya akan tampil jendela sebagai berikut : • Kemudian pada command prompt tersebut ketikan perintah sebagai berikut: C:\User\..>cd.. C:\> C:\cd apache2triad C:\apache2triad> C:\apache2triad>cd mysql C:\apache2triad\mysql> C:\apache2triad\mysql>cd bin C:\apache2triad\mysql\bin> 26 • Kemudian jalankan program mysql client dengan mengetikan mysql pada command prompt. Ketikan : 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 tersebut berisi ucapan selamat datang, pemberitahuan tentang penulisan perintah MySql yang (tidak) selalu diakhiri dengan symbol. Versi MySql yang kita gunakan (3.4) dan connection id berupa nomor urut kita masuk ke server. Keterangan Perintah Sederhana di Command Prompt Mkdir nama_direktorinya untuk membuat direktori baru cls untuk membersihkan layar exit untuk keluar cd.. untuk keluar dari direktori cd nama_direktorinya untuk pidah direktori help untuk bantuan 27 • Pengantar Sintak Dasar MySql merupakan bahasa pemograman database dimana penulisan sintaknya tidak serumit bahasa pemrograman lainnya seperti java, C++, dan sebagainya. Satu hal yang perlu diingat bahwa setiap penulisan script MySQL di Dos‐Prompt harus selalu diakhiri dengan tanda titik koma (;). Didalam source MySQL yang terinstal secara default telah terisi sebuah database yang bernama mysql dan information_schema. Untuk dapat menampilkan apa saja nama database yang telah ada maupun yang akan kita buat, gunakan sintak : Mysql>show databases; Perhatikan contoh berikut : Contoh diatas menunjukan bahwa dengan menggunakan sintak show databases; Berarti kita dapat menampilkan seluruh nama database yang ada. Sintak untuk bisa masuk kedalam salah satu system database tersebut adalah : Mysql>use nama_database; Contoh : Mysql>use information_schema; Database changed Perhatikan gambar dibawah ini: 28 Dengan mengetikan sintak use information_schema; dan keluar kalimat database change, berarti kita telah masuk ke dalam database mysql yang telah ada. Di setiap database tentu ada terdapat beberapa tabel yang menjadi komponen dasar sebuah database. Sintak untuk menampilkan seluruh tabel yang telah ada di dalam database mysql adalah : Mysql>show tables; Perhatikan gambar di bawah ini : Dari gambar diatas, kita dapat melihat bahwa didalam database mysql sudah ada beberapa tabel yang telah default dari mysql nya sendiri. Didalam database tersebut ada tabel‐tabel, dimana tiap tabelnya memiliki fungsi tertentu yang dapat diakses oleh tiap user. Database mysql ini biasanya sering digunakan bagi webmaster sebagai tempat penyimpanan data, karena tabel‐tabel yang telah ada dan tabel yang dibutuhkan sebagai besar telah terpenuhi. Keterangan : Mysql>exit; untuk keluar dari mysql 29 Latihan : • Lihat database Mysql>show databases; • Masuk dan lihat database mysql Mysql>use mysql; Database changed • Lihat tabel mysql Mysql>show tables; Pertemuan 10 Data Definition Languange • Data Definition Languange(DDL) Skema basis data dispesifikasikan oleh sekumpulan definisi dengan sebuah bahasa khusus yang disebut data‐definition language (DDL). Hasil kompilasi DDL berupa tabel‐tabel 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. • Penggunaan Data Definition Languange(DDL) • 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. 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 direktori mysql. Untuk menciptakan database baru pada mysql syntak penulisan adalah sebagai berikut : Syntak : Create database nama_database; Akan tampil 30 Query Ok, 1 row affected (0.06 sec) Contoh : Create database medis; Akan tampil Query Ok, 1 row affected (0.06 sec) Kemudian ketikan perintah berikut : Syntak : show databases; untuk melihat apakah database medis sudah di buat Untuk menghilangkan database atau menghapus gunakan perintah drop Syntak : Drop database nama_database; Contoh : Drop database medis; Akan tampil Query Ok, 0 row affected (0.02 sec) 31 Kemudian lihat, gunakan perintah Show databases; Latihan 1 : • Buat Database dengan nama medis • Buka dan lihat database medis Aktifkan database sebagai berikut : Syntak : Use nama_database; Contoh : Use medis; Tampil Database changed 32 Setelah masuk dan diizinkan melakukan operasi, lalu buat sebuah tabel. Untuk membuat tabel baru di dalam database, ketikan sebagai berikut : Syntak : Create table nama_table(field1 type(panjang) not null, field2 type(panjang)not null,....... , fieldn type(panjang)); Tabel Dokter Nama Field Kd_dok Nm_dok Spesialis Alamat Contoh: Type Chart Varchar Varchar Varchar Size 4 25 15 30 Keterangan Primary Key Create table dokter(kd_dok char(4)not null, Nm_dok varchar(25)not null, Spesialis varchar(15)not null, Alamat varchar(30),primary key(kd_dok)); 33 Kemudian untuk melihat table, gunakan perintah : Syntak : Show tables; Untuk melihat isi table, gunakan perintah : Syntak : Desc nama_tabel; Contoh : Desc dokter; Untuk menghapus table, gunakan perintah : Syntak : Drop table; Contoh : Drop table dokter; 34 Latihan buat tabel • Buat tabel dibawah ini : Tabel Rekam Nama Field No_rekam Tgl Nm_pasien Kd_dok By_rekam Jml_rekam • Lihat tabel Type Char Date Varchar Varchar Int Int • Katifkan tabel rekam • Lihat isi tabel Size 5 Keterangan Primary key 25 4 Pertemuan 11 (Lanjutan DDL) Buat 2(dua) buah tabel didalam Database Perpustakaan dengan struktur tabel sebagai berikut : Tabel Buku Nama Field id_buku judul pengarang thn_terbit jenis_buku status Type Char Varchar Varchar Date Varchar Varchar Size 4 Keterangan Primary key 15 15 10 10 35 Tabel Pinjam Nama Field No_pinjam id_anggota id_buku tgl_pinjam tgl_kembali Type Char Char Char Date Date Size 4 Keterangan Primary key 4 4 1. Masuk ke dalam Mysql 2. Buat Database Perpustakaan 3. Aktifkan Database Perpustakaan 4. Buat tabel Buku 5. Tampilkan tabel Buku 6. Tampilkan struktur dari tabel Buku 36 7. Ganti nama tabel Bu : Rename table nama_tabel_lama to nama_tabel_baru; Contoh : Rename table buku to buku_baru; 8. Penambahan field pada tabel Bu : alter table nama_table add nama_field tipe (panjang); Contoh : alter table buku_baru add penerbit char(15); ‐ Tampilkan struktur/isi dari tabel buku_baru 37 9. Menambah kolom unik pada tabel Bu : alter table nama_tabel add index(nama_field); Contoh : alter table buku_baru add index(judul); ‐ Tampilkan struktur/isi tabel buku_baru yang baru 10. Mengubah nama kolom pada tabel Bu : alter table nama_tabel change kolom_lama kolom_baru type (panjang); 38 Contoh : alter table buku_baru change judul judul_buku varchar(20); ‐ Tampilkan struktur/isi dari tabel buku_baru 11. Menghapus kolom/field Bu : alter table nama_table drop nama_field; Contoh : alter table buku_baru drop penerbit; ‐ Tampilkan struktur/isi dari tabel buku_baru 39 12. Membuat validasi di tabel Bu : Create table nama_table(field1 type(panjang) not null, field2 type(panjang)not null,....... , fieldn enum('1','2')); Contoh : create table buku( id_buku char (4)not null primary key, judul varchar(15)not null, pengarang varchar(15)not null, thn_terbit date, jenis_buku varchar(10)not null, status varchar (10)not null, penerbit enum('1','2')); ‐ Tampilkan struktur/isi dari tabel buku Latihan 1. ‐ Buat tabel pinjam dalam database perpustakaan ‐ Tampilkan tabel yang ada di dalam database perpustakaan 40 2. ‐ Ganti tabel pinjam menjadi tabel pinjam_baru ‐ Tampilkan tabel 3. Tambahkan field denda int pada tabel pinjam_baru ‐ Tampilkan struktur/isi tabel pinjam_baru 4. Tambahkan kolom unik pada tabel pinjam_baru fieldnya id_anggota ‐ Tampilkan struktur/isi tabel pinjam_baru 5. Rubah nama kolom pada tabel pinjam_baru pada field denda menjadi denda_perhari curency ‐ Tampilkan struktur/isi tabel pinjam_baru 6. Buat validasi dengan nama pinjam isi dari tabel pinjam ditambahkan denda (1/2) ‐ Tampilkan struktur/isi tabel pinjam Pertemuan 12 Data Manipulation Languange (DML) 1. Data Manipulation Languange (DML) DML atau Data Manipulation Languange merupakan perintah‐perintah yang berfungsi untuk melakukan manipulasi data ataupun objek‐objek yang ada di dalam 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. 1.Beberapa manfaat atau kegunaan dari DDL diantaranya adalah sebagai berikut : 2. Pengambilan informasi yang disimpan dalam basis data 3. Penyisipan informasi baru ke basis data 4. Penghapusan informasi dari basis data 5. Modifikasi informasi yang disimpan dalam basis data 41 6. Query adalah perintah yang ditulis untuk mengambil informasi. Bagian dari DML yang menangani pengambilan informasi ini disebut bahasa query. 2. Penggunaan DML Perintah Insert Perintah INSERT digunakan untuk menambah data baru ke dalam table. Insert mempunyai 2 format penulisan. Berikut ini contoh‐contoh penulisan perintah INSERT dalam proses penambahan data kedalam table anggota Latihan 1. Buat Database SMU dan aktifkan database SMU 2. Buat Tabel Jadwal_Pelajaran Nama Field Type Panjang Kd_MP Char 3 Mata_pelajaran Varchar 15 Guru Varchar 15 Hari Varchar 15 Jam Varchar 15 Kelas Varchar 10 Keterangan PK 3. Masukan isi data kedalam tabel jadwal pelajaran BU : INSERT INTO nama_tabel (daftar_kolom) VALUES(daftar_nilai); INSERT INTO nama_tabel SET nama_kolom=nilai_kolom; Contoh : INSERT INTO Jadwal_Pelajaran (kd_mp,mata_pelajaran,guru,hari,jam,kelas) 42 VALUES (“MTK”,”Matematika”,”Irwan”,”Senin‐Kamis”,”08.00‐10.00”,”3A”); Isi data sebagai berikut : Kd_mp MTK BIO FSK Mata_pelajaran Matematika Biologi Fisika guru Irwan Santi Ardi Hari Senin‐Kamis Senin‐Kamis Jum’at jam 08.00‐10.00 10.00‐12.00 08.00‐11.00 Kelas 3A 3 IPA 3 3 IPA 2 3.Perintah SELECT Berfungsi untuk menampilkan data yang terdapat didalam database atau table Sintaks sederhana dari perintah SELECT tampak seperti berikut ini : BU : SELECT * FROM nama_table; Contoh : SELECT * FROM Jadwal_Pelajaran; 4.Perintah UPDATTE Berfungsi untuk melakukan perubahan terhadap sejumlah data yang ada didalam table yang telah dibuat. BU : 43 UPDATE table_name Set column1_name=column1_content where column2_name=column2_content; Contoh : UPDATE Jadwal_Pelajaran set hari=”Senin”,kelas=”3 IPA 1” where kd_mp=”MTK”; 4.Perintah DELETE Berfungsi untuk menghapus record/tuple yang ada didalam table BU : DELETE FROM nama_table WHERE Kondisi; Contoh : DELETE FROM Jadwal_Pelajaran where kd_mp=”MTK”; 44 Pertemuan 13 PHPMyAdmin PHPMyAdmin adalah alat yang ditulis dalam PHP yang di tunjukan untuk menangani administrasi MySQL melalui web. Membuat dan drop database. Membuat/drop/merubah tabel, menghapus/mengedit/menambahkan kolom, jalankan SQL pernyataan apapun, mengatur kunci pada field, mengatur hak, ekspor data kedalam berbagai format dan tersedia dalam 50 bahasa. 1. Mengaktifkan PHPMyAdmin a. Pilih browser yang tersedia (IE, Mozzila Firefox, Opera) b. Kemudian ketikan localhost/phpmyadmin pada address bar c. Isi user name dan password d. Masukkan username root dan passwordnya password, kemudian akan tampil seperti di bawah ini : 45 2. IDE phpmyadmin Database Adress Bar Menu MYSQL Menu Phpmyadmin 3. Membuat Database a. Ketikan nama database pada textbox create new database, kemudian klik create 46 Ketikan Nama Databasenya Klik Create 4. Menghapus Database a. Pilih menu database pada tampilan Home Phpmyadmin Pilih Database b. Checklist pada database yang akan dihapus kemudian pilih drop 47 Ceklist database Pilih Drop Tabel 1. Membuat Tabel Ketikkan nama tabel pada textbox name, kemudian ketikkan jumlah field yang akan dibuat pada table tersebut setelah itu klik go untuk memulai pengetikan struktur datanya. Ketikan Nama Tabel Ketikan Jumlah Field Klik Go a. Setelah tampil layar seperti dibawah ini masukkan struktur data untuk table anggota Nama Field Type Size Keterangan Id_anggota Varchar 4 Primary Key 48 Nama Varchar 20 Alamat Varchar 30 NoTelp Varchar 13 Tgl_lahir Date b. Setelah tampil layar seperti dibawah ini masukan struktur data untuk table anggota c. Setelah kita masukan field‐field yang dibutuhkan kemudian klik save Klik Save Primary Key d. Apabila telah sukses maka akan tampil tampilan seperti dibawah ini 49 2. Mengelolah Tabel a. Menambah Field 1. Klik menu structure 2. Masukan 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 Jumlah Field Yang Baru Posisi field yang ditambah klik go 3. Masukan nama field yang ditambah kemudian klik save, tambahkan field dengan nama tempat_lahir, type varchar dan length 20. 50 Klik Save 4. Maka apabila telah di klik save akan tampil seperti di bawah ini b. Menghapus Field a. Checklist field yang ingin dihapus kemudian drop Check List Klik drop 51 b. Setelah klik drop maka akan tampil pertanyaan, pilih yes. Kemudian akan tampil pesan sukses Klik Yes c. Merubah Field a. Checklist field ingin dirubah, kemudian klik change Check list field yang akan di edit Klik Change b. Rubahlah id_anggota menjadi kode, setelah itu klik save d. Menambah isi field a. Klik database perpustakaan, kemudian checklist table yang ingin kita isikan data setelah itu klik insert 52 Check List Klik Insert b.Akan tampil layar seperti dibawah ini, kemudian isikan 2 record, setelah itu klik go 53 e.Mencari Data a. klik search pada menu, kemudian masukan kode yang ingin dicari, kemudian klik Go b.Maka akan tampil seperti dibawah ini 54 SQL INNER JOIN JOIN kata kunci yang digunakan dalam pernyataan SQL untuk melakukan query data dari dua atau lebih tabel, yang didasarkan pada hubungan antara kolom-kolom tertentu dalam tabel ini. Tabel dalam database sering berhubungan satu sama lain dengan kunci. Sebuah primary key adalah kolom/field (atau kombinasi dari kolom/field) dengan nilai unik untuk setiap baris. Setiap nilai kunci primer harus unik di dalam tabel (tidak boleh ada nilai field kuncinya sama). Tujuannya adalah untuk mengikat data bersama-sama, di meja, tanpa mengulang semua data dalam setiap tabel. Buat Database Latihan_nim Buat Tabel Person Field Type Size/Panjang Keterangan P_Id Char 1 Primary Key LastName Varchar 15 FirstName Varchar 15 Address Varchar 30 City Varchar 20 Buat Tabel Orders Field Type Size/Panjang Keterangan O_Id Char 1 Primary Key OrderNo Int Jml Int Harga Int P_Id Char 1 55 Lihat pada tabel “Person” berikut: P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger Perhatikan bahwa field/kolom "P_Id" adalah kunci utama dalam tabel "Person". Ini berarti bahwa tidak ada dua baris record dapat memiliki P_Id yang sama. P_Id akan membedakan dua orang bahkan jika mereka memiliki nama yang sama. Kemudian kita memiliki tabel “Orders” berikut: O_Id OrderNo Jml Harga P_Id 1 77895 2 30000 3 2 44678 1 20000 3 3 22456 3 10000 1 4 24562 4 15000 1 5 34764 5 25000 15 Perhatikan bahwa kolom/field "O_Id" adalah kunci utama dalam tabel "Pegawai" dan kolom/field "P_Id" mengacu pada orang-orang dalam tabel "Person" tanpa menggunakan nama mereka. Perhatikan bahwa hubungan kolom/field "P_Id". antara dua tabel di atas adalah Sebelum kita melanjutkan dengan contoh-contoh, kami akan membuat daftar jenis JOIN yang bisa anda gunakan, dan perbedaanperbedaannya. 1. INNER JOIN INNER JOIN: hanya akan menampilkan baris untuk data yang memiliki nilai yang sama pada field kunci dengan tabel yang berelasi. Sintax dari SQL INNER JOIN 56 SELECT table_name.column_name... FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name Order By table_name.column_name Catatan : INNER JOIN sama dengan JOIN. Contoh SQL INNER JOIN Tabel "Person" : P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger Tabel "Orders" : O_Id OrderNo Jml Harga P_Id 1 77895 2 30000 3 2 44678 1 20000 3 3 22456 3 10000 1 4 24562 4 15000 1 5 34764 5 25000 15 Sekarang kita ingin membuat daftar semua orang dengan perintah. Kita menggunakan SELECT berikut: 57 Tampilkan Sebagai Berikut : Field Table LastName Person FirstName Person P_Id Orders SELECT Person.LastName, Person.FirstName, Orders.OrderNo FROM Person INNER JOIN Orders ON Person.P_Id=Orders.P_Id Hasil-set akan terlihat seperti ini: LastName FirstName OrderNo Hansen Ola 22456 Hansen Ola 24562 Pettersen Kari 77895 Pettersen Kari 44678 Dari hasil join dapat dilihat yang tampil hanya jika nilai pada field kunci tabel “Person” terdapat pada tabel “Order”. 58 Tampilkan Sebagai Berikut: Field Table LastName Person Address Person Jml Orders Harga Orders Total =Jml*Harga SELECT Person.LastName, Person.Address,Orders.Jml, Order.Harga,(Jml*Harga)As Total FROM Person INNER JOIN Orders ON Person.P_Id=Orders.P_Id Tampilkan Sebagai Berikut: Field Table LastName Person Address Person OrderNo Orders Jml Orders Harga Orders Total Ekspressi Diskon Ekspressi Bayar Ekspressi 59 Ketentuan Ekspressi: a. Total : Jml*Harga b. Diskon : Jika jml>4,maka diskon 10% dari harga, jika jml>2,maka diskon 5% dari harga, selain itu tidak dapat diskon. c. Bayar : Total-Diskon SELECT Person.LastName, Person.Address,Orders.OrderNo,Orders.Jml,Order.Harga, (Jml*Harga)As Total, if(Jml>4,10/100*Harga,if(Jml>2,5/100*Harga,0))As Diskon, (Jml*Harga)if(Jml>4,10/100*Harga,if(Jml>2,5/100*Harga,0)))As Bayar FROM Person INNER JOIN Orders ON Person.P_Id=Orders.P_Id 60