MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah...

65
1 BASIS DATA 1 MODUL PRAKTIKUM D3 Manajemen Informatika Fakultas Teknik Universitas Trunojoyo

Transcript of MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah...

Page 1: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

1

BASIS DATA 1

MODUL PRAKTIKUM

D3 Manajemen Informatika Fakultas Teknik

Universitas Trunojoyo

Page 2: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

2

MODUL I MYSQL

1. Dasar Teori

Basis data adalah sekumpalan in formasi yang diatur agar mudah dicari. Dalam art i umum basis data adalah sekumpulan data yang diproses dengan bantuan komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang dapat digambarkan sebagai akt ifitas dari satu atau lebih organisasi yang berelasi. Pengertian MYS QL

Database MYSQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang dibiayai o leh pengembang MYSQL Tipe Data

Data yang terdapat dalam sebuah tabel berupa field-field yang berisi nilai dari data tersebut. Nilai data dalam field memiliki tipe sendiri-sendiri. MYSQL mengenal beberapa tipe data field yaitu : § Tipe data numerik

Tujuan : 1. 1. Memahami tentang sistem database 2. 2. Memahami instalasi MySQL di lingkungan Windows 3. 3. Memahami dasar-dasar MySQL.

Tugas Pendahuluan 1. Apa yang anda ketahui tentang mysql, jelaskan 2. Apa perbedaan instalasi mysql dilingkungan windows dengan

linux 3. sebutkan operator dan fungsi dalam mysql !

Page 3: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

3

§ Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan floating point. Integer digunakan untuk data bilangan bulat sedangkan floating point digunakan untuk bilangan desimal.

§ Tipe data string String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data string dapat dilihat pada tabel 8.1.2.b berikut: Tabel 8.1.2.b Tipe Data St ring

Tipe Data Kisaran Nilai CHAR 1-255 karakter VARCHAR 1-255 karakter TINYTEXT 1-255 karakter TEXT 1-65535 karakter MEDIUMTEXT 1-16777215 karakter LONGTEXT 1-424967295 karakter

§ Tipe data char() dan varchar() Tipe data char() dan varchar() pada prinsipnya sama, perbedaannya hanya terletak pada jumlah memori yang dibutuhkan untuk penyimpanannya. Memori yang dibutuhkan untuk tipe data char() bersifat statis, besarnya bergantung pada berapa jumlah karakter yang ditetapkan pada saat field tersebut dideklarasikan. Pada t ipe data varchar() besarnya memori penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat pada tabel 8.1.2.c berikut ini:

Tabel 8.1.2.c Letak Perbedaan Jumlah Memori

Nilai Char(4) Memori Penyimpanan

Varchar (4)

Memori Penyimpanan

’’ ’’ 4 bytes ’’ 1 byte

’ab’ ’ab’ 4 bytes ’ab’ 3 bytes ’abcd’ ’abcd’ 4 bytes ’abcd’ 5 bytes ’abcdefgh’ ’abcd’ 4 bytes ’abcd’ 5 bytes

§ Tipe data tanggal Untuk tanggal dan jam, tersedia tipe-t ipe data field berupa DATETIME, DATE, TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai kisaran nilai tertentu. MYSQL akan memberikan peringatan kesalahan (error) apabila tanggal atau waktu yang dimasukkan salah. Kisaran nilai dan besar memori penyimpanan yang diperlukan untuk masing-masing tipe dapat dilihat pada tabel 8.1.2.d berikut ini: Tabel 8.1.2.d Tipe Data Tanggal

Tipe Data Kisaran Nilai Memori Penyimpanan

DATETIME 1000-01-01 00:00 sampai 9999-12-31 23:59:59

3 byte

Page 4: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

4

DATE 1000-01-01 sampai 9999-12-31 8 byte TIMESTAMP 1970-01-01 00:00:00 sampai 2037 4 byte TIME -839:59:59 sampai 838:59:59 3 byte YEAR 1901 sampai 2155 1 byte

Operator MYS QL

MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi diantaranya: § Operator Aritmetika

Suatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal (DATE) menggunakan ekspresi aritmat ika. Dapat dilihat pada tabel 8.1.3.a berikut ini: Tabel 8.1.3.a Operator aritmat ika MYSQL

Operator Keterangan + Tambah - Kurang * Kali / Bagi Mod () Modulus

§ Operator Pembandingan Suatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai sintax sebagai berikut: WHERE expr operator value. Tabel 8.1.3.b menunjukan operator pembanding pada MYSQL berikut ini: Tabel 8.1.3.b Operator Pembanding MYSQL

Operator Keterangan = Sama Dengan > Lebih Besar < Lebih Kecil >= Lebih Besar atau Sama Dengan <= Lebih Kecil atau Sama Dengan <> Tidak Sama Dengan

§ Operator Logika Operator in i digunakan untuk membandingkan dua nilai variabel yang bertipe boolean.

§ Operator Karakter Operator untuk membentuk pencarian string yang sesuai dengan nilai yang mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3 symbol khusus berikut ini dapat dilihat pada tabel 8.1.3.d berikut ini: Tabel 8.1.3.d Tabel Operator Karakter

Operator Keterangan % Sembarang karakter berapapun jumlahnya

Page 5: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

5

_ Sembarang satu karakter [] Sembarang karakter yang terletak dalam kurung

siku § Operator Lain-lain

Operator yang digunakan untuk menguji n ilai-nilai yang ada dalam list (tanda kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan (range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.1.3.e berikut in i: Tabel 8.1.3.e Operator lain-lain

Operator Keterangan IN Dalam BETW EEN Diantara

2. Kegiatan Praktikum :

Instalasi MySQL-5.0.22-WIN32 : 1. Jalankan file setup mysql, yaitu mysql-5.0.22-win32.exe, maka akan muncul

dialog instalasi sebagai berikut :

2. Pilih tombol Next, kemudian muncul d ialog tipe instalasi sebagai berikut :

Page 6: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

6

3. Pilih Custom, kemudian pilih tombol Next. Kemudian tampil d ialog fitur

program sebagai berikut :

4. Klik tanda silang pada Developer Components, kemudian pilih This feature

will be installed on local hard drive seperti gambar berikut :

Page 7: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

7

5. Kemudian pilih tombol Change..., pada folder name ubah menjad i sesuai

dengan gambar berikut ini :

6. Pilih OK, kemudian pilih tombol Next, dan pilih tombol Install, maka proses

instalasi dimulai.

Page 8: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

8

7. Berikutnya muncul dialog account, pilih Skip Sign-Up dan klik tombol Next,

maka akan muncul dialog sebagai berikut :

8. Klik tombol Finish dan tombol Next, maka akan muncul dialog sebagai

berikut :

Page 9: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

9

9. Pilih Standard Configuration dan klik tombol Next, lalu muncul gambar

berikut :

Page 10: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

10

10. Pilih tombol Next. Kemudian muncul gambar berikut ini. Masukkan password yang diinginkan pada kota isian New root password dan Confirm berikut ini untuk sekuritas, misalnya 123456. Klik tombol Next.

11. Klik tombol Execute sebagai tahap akhir.

12. Klik Finish.

Page 11: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

11

Melakukan Koneksi ke MySQL : Cara 1 : 1. Melalui DOS Prompt, masuk ke direktori utama MySQL dengan cara sebagai

berikut (yang diketik hanya yang digaris bawah) : C:\>cd \mysql\bin

2. Setelah itu ketikkan perintah berikut (yang diket ik hanya yang digaris bawah) : C:\>mys ql\bin\mys ql –u root –p maka akan diminta untuk memasukkan passoword, isikan password yang digunakan pada saat instalasi, yaitu 123456.

3. Selanjutnya akan ada respon dari server seperti gambar berikut :

Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan koneksi ke server.

Cara 2 : 1. Dari menu Start > All Programs > MyS QL > MySQL Server 5.0 > MySQL

Command Line Client, maka akan muncul tampilan seperti berikut ini :

Page 12: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

12

2. Masukkan password yang telah ditentukan pada saat instalasi, yaitu : 123456

kemudian tekan enter. Menuliskan perintah pada mys ql Bentuk prompt “mysql>” adalah tempat menuliskan perintah-perintah MySQL. Setiap perintah SQL harus diakh iri dengan tanda titik-koma “;” . Cara untuk membuat sebuah database baru adalah dengan perintah:

create database namadatabase; Misalkan anda ket ikkan :

create database modul1;

Untuk membuka sebuah database dapat menggunakan perintah berikut ini: use namadatabase;

Contoh: use modul1;

Perintah untuk membuat tabel baru adalah: create table namatabel (

struktur );

Constraint Constraint adalah batasan atau aturan yang ada pada table. MySQL menyediakan beberapa tipe constraint berikut : • NOT NULL

Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL.

• UNIQUE Mendefinisikan suatu kolom menjad i bersifat unik, artinya antara satu data dengan data lainnya namanya tidak bo leh sama, misal alamat email.

Page 13: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

13

• PRIMARY KEY Constraint PRIMARY KEY membentuk key yang unik untuk suatu table.

• FOREIGN KEY FOREIGN KEY constraint didefin isikan pada suatu kolom yang ada pada suatu table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu PRIMARY KEY, biasa dipakai untuk menghubungkan antara 2 tabel.

Contoh Pembuatan Tabel : Misalkan kita ingin menyimpan data anggota yaitu: nomor, nama, email, alamat, kota. Sedangkan strukturnya seperti tabel dibawah ini :

Perintah MySQL untuk membuat tabel seperti diatas bisa dengan 2 cara sbb :

create table anggota (

nomor int(6) not null primary key,

nama char(40) not null,

email char(255) not null,

alamat char(80) not null,

kota char(20) not null

);

Page 14: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

14

Perintah-Perintah Dasar SQL A. Pemasukan data Untuk memasukkan sebuah baris (record) kedalam tabel MySQL adalah sebagai berikut: Contoh :

Insert into anggota (nomor,nama,email,alamat,kota) values (100,’Adi’,’ad [email protected]’,’Jl. Keputih 2A no 5’,’Surabaya’);

atau Insert into anggota values (100,’Adi’,’ad [email protected]’,’Jl. Keputih 2A no 5’, ’Surabaya’);

3. Tugas

1. Buatkan dengan perintah mysql database dengan nama perusahaan 2. Di dalam database perusahaan terdapat tabel karyawan, barang,

departemen dan produksi 3. Tentukan field name masing-masing table 4. Tentukan primary key pada setiap tabel

INSERT INTO table [(column1, column2,...])] VALUES (value1, value2,...]);

create table anggota (

nomor int(6) not null,

nama char(40) not null,

email char(255) not null,

alamat char(80) not null,

kota char(20) not null,

primary key (nomor)

);

Page 15: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

15

MODUL II MEMBUAT ER-DIAGRAM

Dasar Teori

Apa yang dimaksud dengan model data?

Model data adalah sekumpulan cara / peralatan / tool untuk mendeskripsikan data-data, hubungannya satu sama lain, semantiknya, serta batasan konsistensi.

Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model relasional. Keduanya menyediakan cara untuk mendeskripsikan perancangan basis data pada peringkat logika.

· Model ERD atau Conceptual Data Model (CDM) : model yang dibuat berdasarkan anggapan bahwa dunia nyata terdiri dari ko leksi obyek-obyek dasar yang dinamakan entitas (entity) serta hubungan (relationship) antara entitas-entitas itu.

· Model Relasional atau Physical Data Model (PDM) : model yang menggunakan sejumlah tabel untuk menggambarkan data serta hubungan antara data-data tersebut. Setiap tabel mempunyai sejumlah ko lom di mana setiap ko lom memiliki nama yang unik.

· Strong entity (entitas kuat) : entitas yang mandiri, yang keberadaannya tidak bergantung pada keberadaan entitas yang lainnya. Instansiasi entitas kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah

Tujuan : v Prakt ikan dapat memahami dan membuat ER-Diagram

Tugas Pendahuluan 1. Tentukan Database serta field-fieldnya yang ingin anda buat! 2. Buatlah ER d iagramnyadengan pemodelan El-Masri! 3. Apakah yang dimaksud dengan normalisasi? Jelaskan !

Page 16: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

16

atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain ).

· Weak entity (entitas lemah) : entitas yang keberadaannya sangat bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki art i apa-apa dan tidak dikehendaki kehadirannya dalam diagram ER tanpa kehadiran entitas di mana mereka bergantung.

Entitas di mana entitas lemah bergantung dinamakan identifying owner. Entitas lemah tidak memiliki identifier sendiri. Secara umum, dalam diagram ER entitas lemah memiliki atribut yang berperan sebagai partial identifier (identifier yang berfungsi secara sebagian).

Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikan setelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidak dimungkinkan ada jika relasi yang menjadi prasyaratnya tidak terealisasi. Contoh:

Sesungguhnya agregasi dapat dipandang sebagaimana relasi pada umumnya (yang menghubungkan 2 entitas). Karena relasi ini dibentuk dari relasi lain (relasi prasyarat) yang secara kronologis lebih dulu terbentuk, maka pengimplementasiannya juga harus dilakukan setelah relasi prasyarat tersebut terimplementasikan. Selan jutnya kita tinggal meninjau derajat relasi dari relasi agregasinya.

Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam satu set ER-Diagram in i harus dihindari?

· Untuk menghindari redundancy · Menghemat penyimpanan (storage) data · Mengurangi efekt ifitas dan kecepatan akses · Untuk menghindari terjad inya asinkronisasi data pada saat diupdate

perbedaan antara total constraint dan partial constraint!

· Total constraint adalah constraint yang mana data dalam entitas yang memiliki constraint tersebut terhubung secara penuh ke dalam entitas dari relasinya.

· Constraint partial adalah constraint yang mana data dalam entitas yang memiliki constraint tersebut terhubung ke dalam entitas dari relasinya.

Page 17: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

17

Relasi satu :

· Entity 1 to entity 2 : kardinalitas : one to many dengan detail minimal 0 dan maksimalnya banyak. Dependensi : entitas 1 dan entitas 2 tidak saling ketergantungan.

· Entity 2 to entity 1 : kardinalitas : many to one dengan detail minimal 1 dan maksimalnya 1. Dependensi : entitas 1 dan entitas 2 t idak saling ketergantungan.

Relasi dua :

· Entity 3 to entity 4 : kard inalitas : one to many dengan detail minimal 0 maksimalnya banyak. Dependensi : entitas 3 dan entitas 4 t idak saling ketergantungan.

· Entity 4 ke entity 3 : kard inalitas : many to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 4 dan entitas 3 tidak saling ketergantungan.

Relasi tiga

· Entity 5 to entity 6 dan Entity 6 to entity 5 : kardinalitas : one to one dengan detail minimal 0 maksimalnya 1. Dependensi : entitas 5 dan entitas 6 tidak saling ketergantungan.

Relasi empat:

Page 18: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

18

· Entity 7 to entity 8 : kardinalitas : one to one dengan detail min imal 0 maksimalnya 1. Dependensi : entitas 7 dan entitas 8 tidak saling ketergantungan.

· Entity 8 ke entity 7 : kard inalitas : one to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 8 dan entitas 7 tidak saling ketergantungan.

Relasi lima

· Entity 9 to entity 10 : kardinalitas : many to many dengan detail minimal 0 maksimalnya banyak. Dependensi : entitas 9 dan entitas 10 tidak saling ketergantungan.

· Entity 10 ke entity 9 : kard inalitas : many to many dengan detail minimal 1 maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling ketergantungan.

Relasi tujuh

· Entity 13 to entity 14 : kardinalitas : one to many dengan detail minimal 0 maksimalnya banyak. Dependensi : entitas 13 menjadi parent dari entitas 14.

· Entity14 ke entity 13 : kardinalitas : many to one dengan detail min imal 1 maksimal 1. Dependensi : entitas 14 tergantung kepada entitas 13.

Perbedaan antara tahap 1NF dengan tahap BCNF :

· 1NF : tahap normalisasi dasar, yang mana masih belum sampai pada tingkat efekt ifitas maksimal, masih banyak kemungkinan terjadinya redundancy data atau duplikasi data.

Page 19: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

19

· BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telah mencapai maksimal, kemungkinan terjad inya redundancy data dan duplikasi data lebih kecil daripada 1NF.

Tugas :

1. Bangun sebuah ER-Diagram untuk database anda. Serta bangun tabel-tabel untuk ER-diagramnya dan setiap tabel jelas relasinya! (dengan menggunakan Power Designer)

Page 20: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

20

MODUL III DDL I

Dasar Teori

DDL atau Data Definition Language adalah bagian dari sql yang digunakan untuk mendefin isikan data dan objek database. Apabila perintah ini d igunakan, entri akan d ibuat ke dalam kamus data dari SQL. Didalam kategori ini terdapat perintah-perintah sebagai berikut :

Perintah Keterangan Create Tab le Membuat tabel Create Index Membuat index Alter Table Mengubah atau menyisipkan kolom ke dalam tabel Drop Table Menghapus tabel dari database Drop Index Menghapus index Grand Memberikan ijin akses kepada user

Tujuan : v Prakt ikan dapat memahami dan membuat database v Prakt ikan dapat memahami dan membuat table dari database v Mahasiswa mampu membuat script untuk pembuatan tabel dan

mengupdate tabe

Tugas Pendahuluan 1. Buat resume tentang DDL kemudian pelajari

Page 21: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

21

Praktikum a. Membuat Database

Syntax : CREATE DATABASE namadatabase; namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang sama antar database.

Syntax tambahan : untuk menampilkan daftar nama database yang ada pada mysql menggunakan perintah : SHOW DATABASES;

b. Menghapus Database

Syntax : DROP DATABASE namadatabase; Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah untuk menghapus database dengan nama rental :

c. Membuat Tabel

Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu database sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel dengan menggunakan syntax : USE namadatabase; Syntax membuat table : CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2 ); namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1 merupakan nama ko lom pertama dan tipe data untuk kolom pertama. Jika ingin membuat tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma (,).

Syntax tambahan : Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktif/d igunakan (dalam hal ini database rental) : SHOW TABLES;

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah : DESC namatabel;

d. Menghapus Tabel

Syntax : DROP TABLE namatabel; Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untuk menghapus tabel dengan nama jenisfilm :

Page 22: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

22

e. Mendefinisikan null/not null Syntax : CREATE TABLE namatabel ( Field1 TipeData1 NOT NULL, Field2 TipeData2 );

Tugas : 1. Buatlah sebuah database sesuai dengan ER-Diagram yang anda buat ( dari

Power designer generate) script pembuatan tabelnya dengan perintah DDLkemudian beri nama database sesuai dengan nama mahasiswa!

2. Buatlah tabel-tabelnya yang juga sesuai dengan ER-Diagram yang anda buat!

Page 23: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

23

MODUL IV

DDL II

Dasar Teori Data Definition Language (DDL) digunakan untuk membuat dan menghancurkan database dan objek database. Perintah-perintah ini terutama akan digunakan oleh database administrator selama fase setup dan penghapusan proyek database. Mari kita melihat struktur dan penggunaan perintah DDL empat dasar: CREATE Instalasi sistem manajemen database (DBMS) pada komputer memungkinkan Anda untuk membuat dan mengelola banyak database independen US E Perintah USE memungkinkan Anda untuk menentukan database yang ingin bekerja dengan Anda dalam DBMS Sangat penting untuk selalu sadar akan database Anda bekerja dalam sebelum mengeluarkan perintah SQL yang memanipulasi data. ALTER Setelah Anda telah membuat tabel dalam database, Anda mungkin ingin memodifikasi definisi itu. The ALTER command allows you to make changes to the structure of a table without deleting and recreating it. ALTER perintah yang memungkinkan Anda untuk membuat perubahan pada struktur tabel tanpa menghapus dan menciptakan

Tujuan : v Prakt ikan dapat memahami dan membuat database v Prakt ikan dapat mengerti tentang Primary key

Tugas Pendahuluan 1. Buat desain entitas dan relasi dari database yang akan dibuat

dalam praktikum (setiap entitas sudah terdapat primary key)

Page 24: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

24

DROP Perintah terakhir dari Data Definition Language, DROP, memungkinkan kita untuk menghapus seluruh objek database dari DBMS. Gunakan perintah ini dengan hati-hati! Ingat bahwa perintah DROP menghapus data keseluruhan struktur dari database Anda. Jika Anda ingin menghapus catatan individu, gunakan perintah DELETE Manipulasi Data Bahasa. Praktikum: a. Mendefinisikan Nilai Default Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu

kolom ketika ada penambahan baris baru, sementara nilai pada ko lom tersebut tidak diisi o leh pengguna. Syntax :

CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2 DEFAULT n ilai ); nilai adalah n ilai defau lt dari ko lom tersebut. b. Mendefinisikan Primary Key Pada Tabel

Terdapat tiga cara untuk mendefin isikan p rimary key. Berikut in i adalah Syntax mendefinisikan primary key untuk Field1 CREATE TABLE namatabel ( Field1 TipeData1 NOT NULL PRIMARY KEY, Field2 TipeData2 ); Atau CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2, PRIMARY KEY(Field1) ); atau ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY (namakolom); :

Page 25: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

25

c. Menghapus Primary Key Pada Tabel

Perintah : Cara 1 : Jika primary key dibuat dengan menggunakan alter table : ALTER TABLE namatabel DROP CONSTRAINT namaconstraint; Cara 2 : Jika primary key dibuat melalui create table : ALTER TABLE namatabel DROP PRIMARY KEY;

d. Menambah Kolom Baru Pada Tabel Syntax : ALTER TABLE namatabel ADD fieldbaru tipe; namatabel adalah nama tabel yang akan d itambah fieldnya. Fieldbaru adalah nama ko lom yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan ditambahkan.

e. Mengubah Tipe Data atau Lebar Kolom Pada Tabel Perintah : ALTER TABLE namatabel MODIFY COLUMN field tipe namatabel adalah nama tabel yang akan diubah tipe data atau lebar ko lomnya. Field adalah ko lom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru atau tipe data lama dengan lebar kolom yang berbeda.

f. Mengubah Nama Kolom

Syntax : ALTER TABLE namatabel CHANGE COLUMN namalamakolom namabarukolom tipedatanya; namatabel adalah nama tabel yang akan diubah nama kolomnya, namalamakolom adalah kolom yang akan diganti namanya, namabarukolom adalah nama baru ko lom, t ipedatanya adalah tipe data dari kolom tersebut. Berikut ini perintah untuk mengubah nama ko lom keterangan menjadi ket :

g. Menghapus Kolom Pada Tabel

Syntax : ALTER TABLE namatabel DROP COLUMN namakolom;

h. Mendefinisikan Foreign Key Pada Tabel Untuk mendefinisikan foreign key, maka harus dipastikan bahwa tabel dan atribut yang dirujuk (tabel induk dari foreign key) sudah didefinisikan terleb ih dahulu. Syntax : CREATE TABLE namatabel

Page 26: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

26

( Field1 TipeData1, Field2 TipeData2, FOREIGN KEY (Field2) REFERENCES namatabelinduk (namakolominduk)ON UPDATE CASCADE ON DELETE NO ACTION ) atau ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGN KEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ON UPDATE CASCADE ON DELETE NO ACTION;

i. Menghapus Foreign Key Perintah : ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;

Tugas : 1. Beri Primary key pada tiap tabel yang anda buat pada database 2. Tambahkan satu kolom baru pada database yang anda buat 3. Ganti nama salah satu kolom anda dengan perintah yang tertera pada modul

Page 27: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

27

MODUL V DML (DATA MANIPULATION LANGUAGE)

Dasar Teori

DML (Data Manipulation Language) adalah bahasa yang memungkinkan pengguna mengakses atau memanipulasi data seperti yang diatur oleh model data. Manipulasi data adalah :

· Pengambilan informasi yang disimpan dalam basisdata

· Penempatan informasi baru dalam basisdata · Penghapusan informasi dari basisdata · Modifikasi informasi yang disimpan dalam basisdata

DML (Data Manipulation Language) merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 jenis DML, yaitu :

· Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.

· Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

Query adalah pernyataan yang meminta pengguna mengambil info rmasi. Bag ian DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah bahasa query sering disamakan dengan istilah bahasa manipu lasi data. Sedangkan SQL adalah sebuah sintaks untuk mengeksekusi query. Praktikum Coba semua contoh operasi DML d i bawah ini : 1. Pernyataan INS ERT INTO

Tujuan : v Prakt ikan dapat memahami dan mengisi tabel dalam database v Prakt ikan dapat memahami dan memanipulasi data dalam database

Tugas Pendahuluan v Apa yang anda ketahui tentang DML? v Apa yang anda ketahui tentang perintah INSERT, UPDATE dan

DELETE? v Sebutkan dan jelaskan macam-macam klausa maupun operator yang

terdapat dalam perintah SELECT!

Page 28: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

28

Pernyataan INSERT INTO digunakan untuk memasukkan data baru pada tabel. Sintaks :

INSERT INTO nama_tabel VALUES (n ilai1, n ilai2, ...)

Urutan nilai yang diletakkan dalam tanda kurung disesuaikan dengan urutan kolom dalam tabel. Akan tetapi kita bisa menentukan kolom-kolom yang akan diisi dengan data baru, yaitu :

INSERT INTO nama_tabel (ko lom1, kolom2, ...) VALUES (n ilai1, n ilai2, ...)

Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi dengan Null dan ko lom yang tidak d isebutkan dalam Insert haruslah yang tidak Not Null. Contoh :

Insert Into Mahasiswa Values ('01012','Irwan','Jl.Beo 23','Bogor')

2. Pernyataan UPDATE

Pernyataan UPDATE digunakan untuk modifikasi data dalam tabel. Sintaks :

UPDATE nama_tabel SET nama_kolom = nilai_baru WHERE nama_kolom = nilai

Pada pernyataan diatas : · SET untuk menentukan kolom yang akan diubah dan nilai penggantinya.

· WHERE menentukan kondisi dari baris-baris yang akan diganti. Contoh :

Update Mahasiswa Set Nama ='Riri' Where NPM='01010'

3. Pernyataan DELETE

Pernyataan DELETE d igunakan untuk menghapus baris pada tabel. Sintaks :

DELETE FROM nama_tabel WHERE nama_kolom = nilai

Contoh : Untuk menghapus baris pada tabel Mahasiswa yang nilai NPMnya adalah 01013, anda bisa memberikan pernyataan seperti berikut :

Delete From Mahasiswa Where NPM =’01013’

Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpa menghapus tabel maka Where tidak perlu d isebutkan.

Page 29: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

29

DELETE FROM nama_tabel Atau DELETE * FROM nama_tabel

4. Pernyataan S ELECT

Secara umum perintah SELECT hanya difungsikan untuk menampilkan data yang ada di dalam suatu tabel. Tetapi dalam pengembangannya, perintah ini akan menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di stored procedures dan triggers. Sementara ini dalam basis data 1 yang kita bahas hanya pernyataan SELECT yang digunakan untuk memilih data dari tabel, yang mana hasilnya disimpan dalam tabel hasil yang disebut Result Set. Sintaks :

SELECT nama_kolom FROM nama_tabel

Untuk memilih beberapa kolom gunakan pernyataan SELECT sebagai berikut :

SELECT nama_kolom1, nama_kolom2, ... FROM nama_tabel

Contoh :

Select NPM, Nama From Mahasiswa à Merupakan pernyataan untuk menampilkan kolom NPM dan Nama yang

terdapat pada tabel Mahasiswa. NPM Nama ----- ------------------------------ 01001 Rudi 01002 Iwan 01005 Wati 01006 Jihan 01007 Nova 01009 Budi

Untuk memilih semua ko lom dari tabel, dapat menuliskan tanda asterisk ( * ) sesudah kata Select. Simbol * berarti semua kolom, seperti berikut :

SELECT * FROM nama_tabel

Contoh : Select * From Mahasiswa

4.1 Distinct

Page 30: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

30

Untuk memilih hanya nilai yang berbeda, gunakan pernyataan SELECT DISTINCT. Sintaks :

SELECT DISTINCT nama_kolom FROM nama_tabel

4.2 Klausa WHERE Klausa WHERE d igunakan untuk menentukan kriteria seleksi. Untuk memilih

data suatu tabel dengan kriteria tertentu, klausa WHERE dapat ditambahkan pada pernyataan SELECT. Sintaks :

SELECT nama_kolom FROM nama_tabel WHERE ko lom operator nilai

Dengan klausa WHERE, operator berikut dapat digunakan :

Operator Keterangan = Sama dengan <> Tidak sama dengan > Lebih besar dari < Lebih kecil dari >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan BETW EEN Antara dua nilai LIKE Mencari suatu pola

Contoh :

Select NPM, Nama From Mahasiswa Where NPM = ’01001’

Perlu d iperhatikan bahwa kita menggunakan tanda petik tunggal (‘ ‘) pada contoh diatas. SQL menggunakan tanda petik tunggal pada nilai teks, sedangkan nilai numerik tidak diberi tanda petik. 4.3 Kondisi LIKE

Kondisi LIKE digunakan untuk menentukan pencarian berdasarkan pola tertentu pada suatu kolom. Sintaks :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom LIKE pola

Page 31: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

31

Tanda ” % ” dapat digunakan untuk menentukan Wildcard (sembarang huruf), baik sebelum maupun sesudah pola. Pernyataan SQL berikut akan menghasilkan nama mahasiswa yang dimulai dengan huruf A :

Select * From Mahasiswa Where NamaDepan LIKE ‘A%’

Pernyataan SQL berikut menghasilkan nama mahasiswa yang diakhiri huruf a : Select * From Mahasiswa Where NamaDepan LIKE ‘%a’

Pernyataan SQL berikut menghasilkan nama mahasiswa yang mengandung pola “di”:

Select * From Mahasiswa Where NamaDepan LIKE ‘%di%’

Tugas : Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-masing perintah DML berikut :

1. Sisipkan min 10 baris data dalam masing-masing tabel 2. Tambahkan min 2 operasi update, delete, dan select

Page 32: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

32

MODUL VI DML (DATA MANIPULATION LANGUAGE)

Dasar Teori

Perintah SELECT adalah perintah untuk menampilkan data yang ada di dalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di stored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas dalam modul V masih ada banyak perintah-perintah SELECT lain, antara lain perintah ALIAS, menampilkan data lebih dari 2 tabel, ORDER BY, AND dan OR, GROUP BY dan HAVING, fungsi agregate, dan beberapa perintah yang lain. Praktikum Coba semua contoh operasi DML d i bawah ini : 1. ALIAS

Perintah Select dapat dilakukan dengan memberikan nama ALIAS yaitu dapat digunakan untuk mengganti nama_kolom dan nama_tabel.

1.1 Memberikan nama lain pada kolom Sintaks untuk alias nama kolom :

SELECT namakolomlama AS namakolombaru FROM namatabel; Atau SELECT nama_kolom AS nama_alias_kolom FROM nama_tabel

Tujuan : v Prakt ikan dapat memahami dan memanipulasi data dalam database

dengan lebih luas lagi.

Tugas Pendahuluan v Sebutkan dan jelaskan macam-macam klausa maupun operator yang

terdapat dalam perintah SELECT selain yang sudah disebutkan di modul sebelumnya (modul V)!

v Buat contoh perintah SQLnya, masing-masing min 1 !

Page 33: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

33

Jika kita ingin membuat nama alias untuk kolom NamaDepan menjad i ND dan NamaBelakang menjad i NB, gunakan pernyataan SQL berikut :

SELECT NamaDepan AS ND, NamaBelakang AS NB FROM Mahasiswa

1.2 Menggunakan alias untuk nama tabel Sintaks untuk alias nama tabel :

SELECT nmalias.jenis, nmalias.harga FROM namatabel nmalias; Atau SELECT nama_kolom FROM nama_tabel AS nama_alias_tabel

Jika kita ingin membuat nama alias untuk Tabel Mahasiswa menjadi MHS, gunakan pernyataan SQL berikut :

SELECT * FROM Mahasiswa AS MHS

2. Menampilkan data lebih dari dua tabel

Perintah Select juga dapat dilakukan untuk beberapa tabel sekaligus dengan syarat bahwa tabel-tabel yang akan ditampilkan semua mempunyai relasi baik secara implisit maupun eksplisit.

Salah satu kunci utama dalam melakukan perintah Select untuk beberapa tabel sekaligus adalah dengan melakukan kondisi relasi antara tabel-tabel yang akan ditampilkan untuka field yang saling berelasi. Selain itu, juga perlu diperhatikan tentang tabel yang akan menjadi acuan pertama dalam penampilan data yang dimaksud. Sebagai contoh adalah jika kita ingin menampilkan data mahasiswa yang mengambil jurusan, maka tabel acuannya adalah tabel mahasiswa. Sintaks :

SELECT * FROM namatabel1, namatabel2, namatabel-n;

Misalkan dalam tabel Mahasiswa field -fieldnya terdiri dari NRP, NamaDepan, NamaBelakang, TempatLahir, TanggalLahir, Alamat, dan KodeJurusan. Sedangkan di tabel Jurusan field-fieldnya adalah KodeJurusan dan NamaJurusan. Berikut ini perintah untuk menampilkan semua data pada tabel Mahasiswa dan Jurusan,

SELECT * FROM Mahasiswa, Jurusan

Maka tabel yang dihasilkan dari perintah SQL diatas adalah semua field dari tabel Mahasiswa dan tabel Jurusan akan ditampilkan, yaitu NRP, NamaDepan,

Page 34: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

34

NamaBelakang, TempatLahir, TanggalLahir, Alamat, Mahasiswa.KodeJurusan, Jurusan.KodeJurusan, dan NamaJurusan. 3. Klausa Order By

Klausa ORDER BY d igunakan untuk mengurutkan data. Jika kita ingin menampilkan nama mahasiswa berdasarkan urutan abjad, pernyataan SQL-nya adalah :

SELECT * FROM Mahasiswa ORDER BY NamaDepan

Jika kita ingin menampilkan nama mahasiswa dan kotanya berdasarkan urutan abjad, maka pernyataan SQL-nya adalah :

SELECT * FROM Mahasiswa ORDER BY NamaDepan, Kota

Jika kita ingin menampilkan nama mahasiswa dengan urutan abjad terbalik, maka pernyataan SQL-nya adalah :

SELECT * FROM Mahasiswa ORDER BY NamaDepan DESC

Jika kita ingin menampilkan nama mahasiswa berdasarkan urutan abjad terbalik dan nama kota berdasarkan urutan abjad, maka pernyataan SQL-nya adalah :

SELECT * FROM Mahasiswa ORDER BY NamaDepan DESC, Kota ASC

4. Operator AND dan OR AND dan OR menggabungkan dua atau lebih kondisi pada klausa WHERE.

· Operator AND menampilkan data jika semua kondisi yang diminta bernilai benar.

· Operator OR menampilkan data jika ada kondisi yang benar. Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita dan nama kota Yogyakarta adalah:

SELECT * FROM Mahasiswa WHERE NamaDepan = ’Ita’ AND Kota = ’Yogyakarta’

Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita atau kota Yogyakarta adalah :

SELECT *

Page 35: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

35

FROM Mahasiswa WHERE NamaDepan = ’Ita’ OR Kota = ’Yogyakarta’

Operator AND dan OR dapat digunakan secara bersamaan, yaitu : SELECT * FROM Mahasiswa WHERE (NamaDepan = ‘Ita’ OR Kota = ‘Yogyakarta’) AND (Alamat = ‘Jl. Jend. Sudirman 3’)

5. Klausa GROUP BY dan HAVING 5.1 GROUP BY

Hasil dari Select juga dapat dikelompokkan. Hal ini dapat dilakukan dengan menambahkan klausa GROUP BY. Sintaks :

SELECT nama_kolom, COUNT (nama_kolom) FROM nama_tabel GROUP BY nama_kolom

Jika kita ingin menampilkan nama mahasiswa yang lahir di satu kota, gunakan pernyataan berikut :

SELECT Tempat_Lahir, COUNT (Tempat_Lahir) as Jumlah FROM Mahasiswa GROUP BY Tempat_Lahir

5.2 HAVING

Klausa HAVING d isediakan untuk mendukung klausa GROUP BY. Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi kondisi HAVING saja yang akan dihasilkan. Sintaks :

SELECT nama_kolom, COUNT (nama_kolom) FROM nama_tabel GROUP BY nama_kolom HAVING COUNT (nama_kolom) kondisi nilai

Misalnya, pernyataan untuk mencari kota yang menjad i tempat lahir oleh lebih dari satu mahasiswa adalah:

SELECT Tempat_Lahir, COUNT (Tempat_Lahir) AS Jumlah FROM MAHASISWA GROUP BY Tempat_Lahir HAVING COUNT (Tempat_Lahir) > 1

6. Fungsi Aggregate (COUNT, S UM, AVG, MIN dan MAX)

Page 36: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

36

Fungsi aggregate merupakan fungsi-fungsi yang digunakan untuk melakukan perhitungan statistikal dalam tabel. Secara umum, hanya field yang bertipe numerik (int, money dan sejenisnya) yang bisa dikenakan fungsi ini. SQL menyediakan sejumlah fungsi yang dapat digunakan pada SELECT.

Fungsi Keterangan AVG Menghitung rata-rata COUNT Menghitung cacah data MAX Mempero leh nilai terbesar MIN Mempero leh nilai terkecil SUM Mempero leh jumlahan data

6.1 COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Pernyataan SQL untuk menghitung jumlah baris kolom NamaDepan pada tabel Mahasiswa adalah :

SELECT COUNT (NamaDepan) AS JumlahMahasiswa FROM Mahasiswa

6.2 SUM

Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel. Pernyataan SQL untuk menghitung jumlah nilai kolom SKS pada tabel Matakuliah :

SELECT SUM(SKS) AS TotalSKS FROM Mataku liah

6.3 AVG

Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom SKS pada tabel Matakuliah :

SELECT AVG(SKS) AS RataSKS FROM Mataku liah

6.4 MIN

Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom SKS pada tabel Matakuliah :

SELECT MIN(SKS) AS JumlahMin imum FROM Mataku liah

6.5 MAX

Page 37: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

37

Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom SKS pada tabel Matakuliah :

SELECT MAX(SKS) AS JumlahMaksimum FROM Mataku liah

7. Operator IN

Operator IN b isa digunakan jika kita mengetahui nilai pasti yang akan diambil untuk setidaknya satu kolom. Sintaks :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom IN (nilai1, nilai2, ...)

Untuk menampilkan mahasiswa dengan nama depan Hasan atau Adi, gunakan pernyataan SQL berikut :

SELECT * FROM Mahasiswa WHERE NamaDepan IN (’Hasan’, ’Adi’)

8. Operator BETWEEN … AND

Operator BETW EEN … AND memilih data antara dua nilai. Nilai dapat berupa angka, teks, atau tanggal. Sintaks :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom BETW EEN nilai1 AND nilai2

Untuk menampilkan Mahasiswa yang namanya diantara (dan termasuk) Adi dan Ita, gunakan perintah SQL berikut :

SELECT * FROM Mahasiswa WHERE NamaDepan BETW EEN ’Adi’ AND ’Ita’

Operator BETW EEN … AND diperlakukan secara berbeda pada DBMS berbeda. Pada satu DBMS, data Mahasiswa yang dimunculkan adalah yang berada diantara Adi dan Ita, tetapi Adi dan Ita tidak dimunculkan. Pada DBMS lain, Mahasiswa yang dimunculkan termasuk Adi dan Ita. Kemudian, pada DBMS lainnya, Adi dimunculkan, tetapi Ita tidak. Untuk menampilkan Mahasiswa di luar jangkauan contoh, gunakan operator NOT seperti berikut :

Page 38: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

38

SELECT * FROM Mahasiswa WHERE NamaDepan NOT BETW EEN ‘Adi’ AND ‘Ita’

Tugas : Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-masing perintah DML berikut :

1. Buatlah perintah SQL untuk menampilkan data yang berasal dari dua tabel dan tiga tabel.

2. Buatlah perintah SQL yang menggunakan klausa Order By, Group By, dan Having.

3. Buatlah perintah SQL yang menggunakan operator AND, OR, IN dan BETW EEN ... AND.

4. Buatlah perintah SQL yang menggunakan fungsi Agregate (masing-masing 1).

Page 39: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

39

MODUL VII

Evaluasi Praktikum I

Praktikum : 1. Implementasikan database anda pada Power Designer 2. Generate database anda pada MySql 3. Untuk selanjutnya Ikuti perintah yang diberikan o leh asisten praktikum.

Tujuan : v Prakt ikan lebih memahami dan mengimplementasikan tentang ERD v Prakt ikan lebih memahami dan mengimplementasikan tentang DDL

dan DML

Tugas Pendahuluan 1. Buatlah ERD database

a. Nrp genap : data base perpusatakaan

b. Nrp ganjil : data base retail

Page 40: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

40

MODUL VIII

DML (DATA MANIPULATION LANGUAGE) Dasar Teori

Perintah SELECT adalah perintah untuk menampilkan data yang ada di dalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di stored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas dalam modul V dan VI, masih ada banyak perintah-perintah SELECT lain yang lebih luas lagi dalam penggunaan perintah SELECT. Praktikum Coba semua contoh operasi DML d i bawah ini : 1. JOIN dan KUNCI

Terkadang kita harus memilih data dari dua tabel atau lebih untuk mendapatkan hasil yang komplit. Oleh karena itu, kita harus melakukan sebuah JOIN. Join merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada pencocokan antara kolom pada tabel yang berbeda.

Tabel-tabel dalam sebuah basisdata dapat dihubungkan satu sama lain menggunakan kunci. Kunci utama adalah sebuah kolom dengan nilai unik untuk masing-masing baris. Tujuannya adalah menggabungkan data antartabel tanpa mengulangi semua data pada setiap tabel.

Tujuan : v Prakt ikan dapat memahami dan memanipulasi data dalam database

dengan lebih luas lagi.

Tugas Pendahuluan v Apa yang anda ketahui tentang JOIN, UNION, INTERSECT,

EXCEPT, dan operator comparison ANY dan ALL? v Buat contoh perintah SQL untuk SELECT yang menggunakan JOIN,

UNION, INTERSECT, EXCEPT, dan operator comparison ANY dan ALL !

Page 41: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

41

Misalnya kita memilih data dari dua tabel (tabel Mahasiswa dan Jurusan) dengan mengacu pada kedua tabel sebagai berikut :

SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan FROM MAHASISWA, JURUSAN WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

Untuk mengetahui siapa yang mengambil jurusan Teknik Informatika, gunakan pernyataan SQL berikut :

SELECT MAHASISWA.NamaDepan FROM MAHASISWA, JURUSAN WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan AND JURUSAN.NamaJurusan = "Teknik In formatika"

Kita pun bisa menggunakan kata kunci JOIN untuk memilih data. Ada tiga macam kunci JOIN, yaitu INNER JOIN, LEFT JOIN, dan RIGHT JOIN. 1.1 INNER JOIN

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengan syarat di belakang on (tidak boleh null), dengan kata lain semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan. Sintaks untuk INNER JOIN :

SELECT field1, field2, … FROM tabel1 INNER JOIN tabel2 ON tabel1.kunci_utama = tabel2.kunci_asing

Misalnya, untuk mengetahui siapa yang telah mengambil jurusan dan jurusan apa yang diambil, kita dapat menggunakan pernyataan berikut :

SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan FROM MAHASISWA INNER JOIN JURUSAN ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

INNER JOIN akan memunculkan semua baris kedua tabel jika ada pasangannya. Jika ada baris pada Tabel Mahasiswa yang tidak memiliki pasangan, maka baris tidak akan dimunculkan pada Tabel Jurusan. 1.2 LEFT JOIN

Left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL. Sintaks untuk LEFT JOIN :

SELECT field1, field2, … FROM tabel1 LEFT JOIN tabel2 ON tabel1.kunci_utama = tabel2.kunci_asing

Page 42: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

42

Misalkan, kita ingin menampilkan semua mahasiswa dan jurusan yang diambil, jika ada. Kita dapat menggunakan pernyataan berikut :

SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan FROM MAHASISWA LEFT JOIN JURUSAN ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

LEFT JOIN akan memunculkan semua baris tabel pertama (Mahasiswa), bahkan jika t idak ada pasangannya di tabel kedua (Jurusan). Jika ada baris pada tabel Mahasiswa yang tidak ada pasangannya pada tabel Jurusan, maka ia pun akan dimunculkan.

1.3 RIGHT JOIN

Right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL. Sintaks untuk RIGHT JOIN :

SELECT field1, field2, … FROM tabel1 RIGHT JOIN tabel2 ON tabel1.kunci_utama = tabel2.kunci_asing

Misalkan, kita ingin menampilkan semua nama dari tabel Mahasiswa dan Jurusan yang diambil, jika ada. Kita dapat menggunakan pernyataan berikut :

SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan FROM MAHASISWA RIGHT JOIN JURUSAN ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

RIGHT JOIN akan memunculkan semua baris tabel kedua (Jurusan), bahkan jika tidak ada pasangannya di tabel pertama (Mahasiswa). Jika ada baris pada tabel Jurusan yang tidak ada pasangannya pada tabel Mahasiswa, maka ia pun akan dimunculkan.

Untuk mengetahui siapa yang mengambil jurusan Manajemen Informatika, kita menggunakan pernyataan berikut :

SELECT MAHASISWA.NamaDepan FROM MAHASISWA INNER JOIN JURUSAN ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan WHERE JURUSAN.NamaJurusan = ‘Manajemen Informatika’

2. UNION dan UNION ALL 2.1 UNION

Perintah UNION digunakan untuk memilih informasi yang berhubungan dari dua tabel, mirip dengan perintah JOIN. Namun, ket ika menggunakan perintah UNION, tipe data semua kolom yang dipilih harus sama. UNION hanya memunculkan nilai unik.

Page 43: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

43

Sintaks : Pernyataan 1 UNION Pernyataan 2

Misalkan, kita mempunyai tabel baru bernama Mahasiswa2 dimana field -fieldnya adalah sama dengan field di tabel Mahasiswa yaitu NRP, NamaDepan, NamaBelakang, TempatLah ir, TanggalLahir, dan Alamat. Maka untuk menampilkan semua Mahasiswa pada tabel Mahasiswa dan Mahasiswa2, gunakan pernyataan berikut :

SELECT NamaDepan FROM MAHASISWA UNION SELECT NamaDepan FROM MAHASISWA2

Perintah tidak dapat digunakan untuk menampilkan semua mahasiswa pada tabel Mahasiswa dan Mahasiswa2. Pada contoh, kita mempunyai dua mahasiswa dengan nama sama (yaitu Hasan Martono) dan dua mahasiswa dengan nama depan sama (yaitu Kiki), maka hanya satu yang dimunculkan karena perintah UNION hanya memilih nilai unik.

2.2 UNION ALL

Perintah UNION ALL sama dengan perintah UNION, kecuali bahwa UNION ALL memilih semua nilai. Sintaks :

Pernyataan 1 UNION ALL Pernyataan 2

Dengan menggunakan tabel Mahasiswa dan Mahasiswa2, kita dapat menggunakan pernyataan berikut untuk menampilkan semua mahasiswa dari dua tabel :

SELECT NamaDepan FROM MAHASISWA UNION ALL SELECT NamaDepan FROM MAHASISWA2

3. Pernyataan S ELECT INTO

Pernyataan SELECT INTO digunakan untuk membuat backup suatu tabel. Sintaks :

SELECT nama_kolom INTO nama_tabel_baru IN basisdata_baru FROM Sumber

Contoh berikut adalah membuat backup Tabel Mahasiswa. SELECT * INTO Mahasiswa_Backup FROM Mahasiswa

Klausa IN dapat digunakan untuk menyalin tabel ke basisdata lain. SELECT Mahasiswa.* INTO Mahasiswa IN ’Backup.mdb’ FROM Mahasiswa

Page 44: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

44

Jika hanya ingin menyalin beberapa field, kita dapat melakukannya dengan menuliskan field-field setelah pernyataan SELECT.

SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup FROM Mahasiswa

Kita dapat pula menambahkan klausa WHERE. Contoh berikut adalah membuat tabel Mahasiswa_Backup dengan dua kolom (NamaDepan, NamaBelakang) dengan memilih Mahasiswa yang tempat lahirnya di Yogyakarta dari tabel Mahasiswa.

SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup FROM Mahasiswa WHERE Tempat_Lahir = ‘Yogyakarta’

Kita pun dapat memilih data lebih dari satu tabel. Contoh berikut adalah membuat tabel baru Mahasiswa_Jurusan_Backup yang mengandung data dua tabel, Mahasiswa dan Jurusan.

SELECT Mahasiswa.NamaDepan, Jurusan.NamaJurusan INTO Mahasiswa_Jurusan_Backup FROM Mahasiswa INNER JOIN Jurusan ON Mahasiswa.KodeJurusan = Jurusan.KodeJurusan

4. Operator comparison ANY dan ALL 4.1 Operator ANY

Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUE. Ilustrasinya :

Gaji > ANY (S) Jika subquery S menghasilkan G1, G2, ..., Gn , maka kondisi di atas identik dengan:

(gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn) Misalkan perintah untuk menampilkan semua data SKS yang jumlahnya bukan yang terkecil :

SELECT * FROM Mataku liah WHERE SKS > ANY (SELECT SKS FROM Mataku liah)

4.2 Operator ALL

Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi dengan ALL menghasilkan n ilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery. Misalkan perintah untuk menampilkan data SKS yang jumlahnya paling tinggi :

SELECT * FROM Mataku liah WHERE SKS >= ALL (SELECT SKS FROM Matakuliah)

Page 45: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

45

5. UNION, INTERS ECT dan EXCEPT 5.1 UNION

UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe ko lom dari masing-masing tabel yang akan ditampilkan datanya harus sama. Berikut ini perintah untuk memperoleh data pada tabel Mahasiswa dimana tempat lahirnya Yogyakarta dan Surabaya :

SELECT NamaDepan, Tempat_Lahir FROM Mahasiswa WHERE Tempat_Lahir = " Yogyakarta" UNION SELECT NamaDepan, Tempat_Lahir FROM Mahasiswa WHERE Tempat_Lahir = "Surabaya";

Perintah di atas identik dengan : SELECT NamaDepan, Tempat_Lahir FROM Mahasiswa WHERE Tempat_Lahir = “Yogyakarta” OR Tempat_Lahir = “Surabaya”

Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja pada dua tabel atau lebih. 5.2 INTERS ECT

INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama. Syntax :

SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2

Pada MySQL t idak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN yang bisa diperdalam di bagian Nested Queries. 5.3 EXCEPT / Set Difference

EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama. Syntax :

SELECT * FROM namatabel1 EXCEPT

Page 46: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

46

SELECT * FROM namatabel2 Pada MySQL t idak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakan operator NOT IN yang bisa diperdalam di bagian Nested Queries. Tugas : Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-masing perintah DML berikut :

5. Buatlah perintah SQL untuk menampilkan data yang berasal dari dua tabel dan tiga tabel dengan menggunakan perintah JOIN.

6. Buatlah perintah SQL yang menggunakan UNION, INTERSECT, dan EXCEPT.

7. Buatlah perintah SQL yang menggunakan operator comparison ANY dan ALL.

Page 47: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

47

MODUL 9 NORMALISASI DATA

1. Dasar Teori

1.1. Normalisasi

Normalisasi merupakan cara pendekatan dalam membangun desain

logika basis data relasional yang tidak secara langsung berkaitan dengan

model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar

untuk meghasilkan struktur tabel yang normal. Pada dasarnya desain logika

basis data relasional dapat menggunakan prinsip normalisasi maupun

transformasi dari model ER ke bentuk fisik.

Pada pembahasan tentang normalisasi data, digunakan istilah baru

yang disebut dengan functinal dependencies atau ketergantungan fungsional.

Tujuan :

Mampu membangun desain logika basis data relasional untuk

menghasilkan struktur tabel yang normal.

PrePraktikum

1. Apakah yang anda ketahui tentang normalisasi?

2. Mengapa suatu tabel perlu dinormalisasikan?

3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.

Apa yang disebut dengan bentuk normal?

4. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapat

dimanfaatkan untuk mempero leh tabel dan basis data yang lebih

baik?

Page 48: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

48

1.2. Ketergantungan Fungsional (Functional Dependencies)

Functional Dependency menggambarkan hubungan attributes dalam

sebuah relasi. Suatu atribut dikatakan functionally dependant pada yang lain

jika kita menggunakan harga atribut tersebut untuk menentukan harga atribut

yang lain. Simbol yang digunakan adalah à untuk mewakili functional

dependency (à dibaca secara fungsional menentukan).

Notasi: A à B

A dan B adalah atribut dari sebuah tabel. Berart i secara fungsional A

menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris

data dengan nilai A yang sama, maka nilai B juga sama. Diberikan 2 baris

r1 dan r2 dalam tabel T d imana AàB

Jika r1(A)=r2(A), maka r1(B) = r2(B)

Dimisalkan relasi n ilai_mhs memiliki empat buah atribut/field yaitu

nama_kul, n im, nama_mhs dan nilai. Maka ketergantungan fungsional

pada relasi tersebut adalah:

a. nim à nama_mhs

yang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim.

Hal in i dibukt ikan dari fakta: untuk setiap nilai n im yang sama, maka pasti

nilai nama_mhs nya juga sama.

b. nama_kul, n im à nilai

yang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan

nim secara bersama-sama. Untuk ketergantungan fungsional seperti ini

sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada

mahasiswa tertentu untuk mataku liah tertentu yang diambil. Dalam arti

lain untuk nama_kul dan nim yang sama, maka nilai juga sama, karena

nama_kul dan nim merupakan key (bersifat unik).

Notasi: A nonà B atau A xà B

Page 49: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

49

Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat fakta

yang ada, yaitu:

a. nama_kul non à nim

yang artinya atribut nim tidak tergantung pada atribut nama_kul.

b. nim nonà nilai

yang artinya atribut nilai t idak hanya tergantung pada atribut nim,

karena tergantung pula pada atribut nama_kul yaitu nama ku liah yang

diambil oleh n im.

1.3. Bentuk-Bentuk Normalisasi

Bentuk-bentuk normal dapat dimanfaatkan untuk mempero leh tabel

dan basis data yang lebih baik.

1.3.1. Bentuk Normal Pertama (1NF)

Suatu tabel dikatakan dalam bentuk normal pertama hanya kalau

setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperbo leh

adanya :

Atribut yang bernilai banyak (Multivalued attribut).

Attribut komposit atau kombinasi dari keduanya.

Berikut ini akan d icontohkan normalisasi dari tabel ku liah yang memiliki

atribut:

Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_dosen

C1234 Matematika 1 2 1 1 RKB-3 Devie

C1243 Riset Operasi 2 5 1 RKB-1 Rosa

C1342 ADSI 2 3 2 RKB-3 Anamisa

Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat

atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel

Page 50: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

50

tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel

kuliah menjad i:

1. Tabel Kuliah

Kode_kul Nama_kul Sks Smstr Nama_dosen

C1234 Matematika 1 2 1 Devie

C1243 Riset Operasi 2 5 Rosa

C1342 ADSI 2 3 Anamisa

2. Tabel Jadwal

Kode_kul Waktu Ruang

C1234 1 RKB-3

C1243 1 RKB-1

C1342 2 RKB-3

1.3.2. Bentuk Normal Kedua (2NF)

Suatu tabel disebut dalam bentuk normal kedua, jika :

1. Tabel berada dalam bentuk normal pertama

2. Semua ko lom yang bukan primary key tergantung sepenuhnya terhadap

primary key

3. Disebut tergantung sepenuhnya terhadap primary key jika suatu kolom

selalu bernilai sama untuk nilai primary key yang sama.

Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketrgantungan

hanya bersifat parsial (hanya tergantung pada sebagian dari primary key).

Bentuk normal kedua akan dicontohkan pada tabel nilai berikut ini:

Kode_kul Nim Nilai

C1234 7402030007 A

C1243 7402030008 B+

Page 51: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

51

C1342 7402030009 B

Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat

redudan yaitu nama_mhs, maka tabel n ilai ini dianggap melanggar 2NF.

Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut baru

(nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru

yaitu nimànama_mhs. Karena atribut nama_mhs ini hanya memiliki

ketergantungan parsial pada primary key secara utuh (hanya tergantung pada

nim, padahal nim hanya bagian dari primary key). Bentuk normal kedua ini

dianggap belum memadai karena meninjau sifat ketergantungan atribut

terhadap primary key saja.

1.3.3. Bentuk Normal Ketiga (3NF)

Suatu tabel dikatakan dalam bentuk normal ketiga, jika :

1. Berada dalam bentuk normal kedua

2. Setiap ko lom bukan primary key t idak memiliki ketergantung transitif

terhadap primary key

Suatu kolom Z memiliki ketergantungan transitif terhadap kolom X, jika :

1. Y memiliki ketergantungan fungsional terhadap X, dan

2. Z memiliki ketergantungan fungsional terhadap Y

Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam

alamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF

karena terdapat ketergantungan fungsional baru yang muncul pada tabel

tersebut yaitu:

alamat_jalan nama_kota à kode_pos

Dalam hal in i (alamat_jalan, nama_kota) bukan superkey sementara kode_pos

juga bukan bagian dari primary key pada tabel mahasiswa. Jika tabel

mahasiswa didekomposisi menjad i tabel mahasiswa dan tabel alamat, maka

Page 52: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

52

telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa dua

ketergantungan fungsional pada tabel alamat tersebut, yaitu:

alamat_jalan nama_kota à kode_pos

kode_pos à nama_kota

1.4. Bentuk Normal Tahap Keempat dan Kelima

Penerapan aturan normalisasi sampai bentuk normal ketiga sudah

memadai untuk menghasilkan tabel berkualitas baik. Namun demikian,

terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal

Keempat berkaitan dengan sifat ketergantungan banyak nilai (mult ivalued

dependency) pada suatu tabel merupakan pengembangan dari ketergantungan

fungsional. Sedangkan bentuk normal tahap kelima merupakan nama lain dari

Project Jo in Normal Form (PJNF).

1.5. Boyce Codd Normal Form (BCNF)

Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah cukup

memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Sebuah tabel

dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:

1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus

dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel

tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel

baru tersebut bisa menghasilkan tabel semula dengan sama persis.

2. Terpeliharanya ketergantungan fungsional pada saat perubahan data

(Dependency Preservation).

3. Tidak melanggar Boyce-Code Normal Form (BCNF).

Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel

tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form /

3NF).

Page 53: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

53

Relasi R dengan ketergantungan fungsional F termasuk dalam bentuk

BCNF jika untuk semua X à A yang ada dalam F. Dengan kata lain, R berada

dalam BCNF jika ketergantungan fungsional non-trivial pada R memiliki key

constraint.

2. Kegiatan Praktikum

1. Terdapat suatu bentuk tabel informasi seperti berikut in i :

Tabel 9.1. Informasi Buku

ISBN Judul Halaman Topik

979-533-

791-2

Basisdata 60 Data Defin ition Language

Data Manipulation

Language

Data Control Language

978-532-

792-3

Matematika 90 Probabilitas

Permutasi dan Kombinasi

977-534-

793-4

PHP 90 Pemrograman

Internet

Bagaimana bentuk tabel-tabel yang menyimpan data pada

informasi tersebut dengan menggunakan normalisasi untuk

verifikasi tabel?

2. Terdapat suatu bentuk tabel informasi seperti beikut ini:

Tabel 9.2. In formasi mahasiswa

no_mhs nama matakuliah nip dosen Nilai

11879 Ali Basis data

Fisika I

32000011

32000012

Devie

Rosa

A

A

11897 Sit i Basis data

Fisika I

32000011

32000012

Devie

Rosa

A

B

Page 54: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

54

Pascal 16785 Anamisa A

11898 Edi Fisika I 32000011 Devie A

Bagaimana bentuk tabel-tabel yang menyimpan data pada informasi

tersebut dengan menggunakan normalisasi untuk verifikasi tabel?

1. Tugas tambahan (ditentukan oleh asisten praktikum)!

3. Tugas Akhir

Dari kasus ke-I dan ke-II pada kegiatan prakt ikum maka bagaimana solusi

pemecahan tabel yang didapatkan?

Kasus I: T= ----------------------

Permasalahan : -----------------------

So lusi pemecahan tabel :

I. Tabel -----------------------

II. Tabel -----------------------

III. Tabel -----------------------

Kasus II: T= ----------------------

Permasalahan : -----------------------

Solusi pemecahan tabel :

IV. Tabel -----------------------

V. Tabel -----------------------

VI. Tabel -----------------------

Catatan Praktikum

Page 55: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

55

Modul 10 VIEW 1

1. Teori

View

View adalah query SELECT yang disimpan dalam database untuk menampilkan data dari satu atau beberapa table. View juga disebut sebagai table virtual yang digunakan untuk membungkus suatu query SELECT yang kompleks menjad i lebih sederhana. Data-data yang termasuk kategori rahasia dapat diamankan dengan menggunakan view. Kegunaan view antara lain:

1. Fokus pada data atau tabel tertentu 2. Penyederhanaan manipulasi data 3. Menyesuaikan data dengan kebutuhan user 4. Export dan impor data 5. Mengkombinasikan data terpartisi

Tujuan : Membuat View untuk menampilkan data dari satu atau beberapa table dengan

membungkus suatu query SELECT yang kompleks menjadi lebih sederhana.

Tugas Pendahuluan 1. Apa yang anda ketahui tentang view? 2. Sebutkan langkah-langkah apa saja yang harus dilakukan apabila kita

akan membuat suatu view ! (buatkan dengan contoh table) 3. Apa saja kegunaan view dalam table, jelaskan dengan contohnya.!

Syntax CREATE VIEW view_name AS select_statement

Page 56: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

56

Sebelum query SELECT yang akan disimpan ke dalam view. Penamaan view memiliki aturan yang sama dengan penamaan table. Nama v iew harus unik art inya nama v iew t idak d iperkenankan sama dengan nama v iew yang sudah ada sebelumnya.

Pesan di atas akan tampil jika terjad i pembuatan view dengan menggunakan nama yang sama dengan nama view yang lain. Nama kolom dari base table bisa diubah menjadi nama lain saat disimpan ke dalam view dengan menggunakan COLUMN ALIAS 2. Kegiatan Praktikum Buat tabel-tabel berikut ini : 1. Tabel Art ikel dengan struktur

2. Tabel guestbook dengan struktur

Page 57: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

57

3. Tabel Materi dengan struktur

4. Insert data pada masing-masing tabel 5. Tampilkan data judulart ikel, author dan tanggal dari tabel art ikel

6. Buat View dengan nama V_artikel1 untuk menampilkan data pada soal no 5

7. Tampilkan semua data pada tabel v_artikel1

i

Page 58: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

58

Jadi bisa anda lihat bahwa pada soal nomor 5 dan 7 mempunyai hasil yang sama, sehingga dapat di simpulkan bahwa view dapat menampilkan kembali data yang sama dengan lebih sederhana, dapat digunakan untuk mengerjakan query yang tidak mungkin diselesaikan dengan cara biasa, view dapat digunakan untuk menyimpan data rahasia karena tidak muncul pada database awal. 8. Buatkan view artikel2 untuk menampilkan judulart ikel, author dan tanggal, id

yang mempunyai bidang pemograman dan analisa sistem 9. Buatkan view guest1 untuk menampilkan semua data yang namanya diawali

dengan ”ahmad”, kemudian ganti namaauthor menjadi pengarang. 10. Buatkan view guest2 untuk menampilkan semua data yang namanya kemudian

ganti namaauthor menjadi pengarang. 11. Buatkan view materi untuk menampilkan semua data yang namanya kemudian

ganti namaauthor menjadi pengarang. 3. Tugas :

1. Dari praktikum d iatas, berikan kesimpulannya. 2. Buat table film dan jenis film dengan tampilan sebagai berikut jika

hasilnya diselect : 3. Isi tabel jenisfilm :

4. Isi tabel film :

5. Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film :

Page 59: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

59

6. Buat perintah view untuk : a. Mengurutkan data film berdasarkan ko lom judul, gunakan order by

dan simpan dengan v_film1 b. Menampilkan data pada tabel jenisfilm yang mana data pada kolom

jenis-nya tidak tercantum pada tabel film, gunakan NOT IN / not exist dan simpan dengan nama v_film2

c. Menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN / exist dan simpan dengan nama v_film3

d. Manampilkan kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkan berdasarkan ko lom jenis pada tabel film dan simpan dengan nama v_film4

e. Menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm(gunakan Operasi Jo in) dan simpan dengan nama v_film5

Page 60: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

60

MODUL 11 View 2

I. Teori

1.1 View

View dalam sql juga merupakan suatu table yang diturunkan dari table

yang lain. Tab le ini b ias berupa table dasar dari yang didefinisikan

sebelumnya.suatu view yang tidak perlu dalam bentuk fisiknya, bias berupa table

bayangan (virtual table), sehingga table dasar yang mempunyai tupel-tupel pada

dasarnya tersimpan dalam database. Pembatasan ini memungkinkan untuk

mengupdate operasi yang bias digunakan dalam view, tetapi tidak membatasi

dalam view queri.

Tujuan : Membuat View untuk menampilkan data dari satu atau beberapa table dengan membungkus suatu query SELECT yang kompleks menjadi lebih sederhana.

Tugas Pendahuluan 1. Apa saja keuntungan dan kerugian menggunakan view 2. Mengapa View lebih optimal pemakaiannya dibanding

perintah select, jelaskan 3. kenapa view b isa dijad ikan sebagai kode rahasia untuk

menampikan suatu tabel, jelaskan.

Page 61: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

61

1.2. Menghapus View

Queri yang sama juga bias didapatkan dengan menentukan dua hubungan

yang telah ada dalam relasi dasarnya, keuntungan utama view tersebut adalah

untuk menyederhanakan ketentuan tentang queri yang diperlukan, dan juga bias

digunakan untuk perangkat keamanan data.

Suatu view dari queri selalu menampilkan data yang terbaru, sebagai contoh bila

kita memodifikasi sebagaian tupel dalam table dasarnya dimana view tersebut

didefinisikan, maka secara otomatis akan berpengaruh pada view di queri

Jika tidak membutuhkan penampakan queri lag i, kita bisa menggunakan perintah

DROP VIEW untuk menghapusnya.

syntax :

DROP VIEW (nama view)

1.3. Mengupdate view dan Implementasi view

Mengupdate view merupakan suatu hal yang kompleks. Secara umum

suatu update dari suatu view didefin isikan pada suatu table tunggal tanpa fungsi-

fungsi pendukung (aggregate) yang bias dimapping kedalam suatu table dasar

pembentuknya dengan berbagai cara. Topic tentang update view in i masih terus

diuji coba. Untuk menggambarkan masalah yang potensial dengan mengupdate

view yang telah didefin isikan dalam beberapa table, misal table Work_ON1 dan

mendukung perintah untuk mengupdate attribute pname dari ‘john smith’ dan dari

‘productX’ ke ‘productY’. View in i ditunjukkan sebagai berikut :

Update work_on1

Set pname =’productY’

Where Lname = ‘smith’and Fname= ‘john’ and

Pname = ‘productX’

Page 62: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

62

Secara umum kita tidak dapat menjamin bahwa setiap tampilan b isa diupdate.

Suatu tampilan yang diupdate hanya memungkinkan untuk satu kali update pada

relasi dasarnya yang dapat menghubungkan update tersebut pada tampilannya.

Sebagai kesimpulan dapat ditentukan :

· Suatu tampilan dengan definisi tunggal itu dapat diupdate bila attribute

tampilan berisi primary key atau beberapa candidate key dari relasi dasar,

sebab inilah yang menghubungkan antara view tupel dengan tupel dasar

tunggal.

· Tampilanm yang didefin isikan dengan menggunakan beberapa table yang

berhubungan umumnya tidak dapat diupdate

· Tampilan yang menggunakan group dan fungsi aggregate tidak dapat

diupdate

2. Kegiatn praktikum

1. Buat table golongan, jabatan dan pegawai dengan data sebagai berikut :

Tabel golongan :

Table jabatan

Tablepegawai

Page 63: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

63

2. Buat view dengan nama latihanview1 untuk menampilkan seluruh data

pegawai yang jabatannya sebagai staff

3. Buat view dengan nama latihanview2 untuk menampilkan seluruh data

pegawai yang dua digit pertama nipnya di awali dengan angka 03

4. Buat view dengan nama lat ihanview3 untuk menampilkan data nip, nama

dan golongan pegawai serta tunjangan golongan yang didapat (gunakan

select mult iple tab le)

5. Buat view dengan nama latihanview4 untuk menampilkan seluruh data

pegawai beserta gaji total yang diperolehnya. Gaji total merupakan hasil

perhitungan dari gaji pokok d i tambahkan dengan tunjangan golongan

serta tunjangan keluarga

6. Hapuslah latihanview1

7. Buat view dengan nama latihanview5 untuk menampilkan data pegawai

yang gaji pokoknya paling tinggi.

3. TUGAS

1. Apakah yang dimaksud dengan update view?, buatkan contoh mengenai

update view dari suatu table view.

2. Mengapa dalam update view fungsi aggregate tidak dapat digunakan,

jelaskan alas an anda

3. Buat view dengan nama latihanview6 untuk menampilkan seluruh data

pegawai yang mana nama pegawai bambang purnomo ganti dengan joko

purnomo dan golongan ganti dengan manager

Page 64: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

64

4. Buat view dengan nama latihanview7 untuk menampilkan seluruh data

pegawai yang berada dikota Surabaya atau yang mempunyai golongan B

(gunakan operasi union)

5. Hapuslah latihanview 4

6. Update view jabatan yang mana tunjangan jabatan manajer dari 500000

menjadi 1000000

7. Buat view dengan nama latihanview8 untuk menampilkan seluruh data

pegawai yang jabatannya sebagai supervisor

Page 65: MODUL PRAKTIKUM BASIS DATA 1 · 2016-02-29 · 2 MODUL I MYSQL 1 1. Dasar Teori Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah

65

MODUL XII Evaluasi Praktikum II

Tugas : 1. Lanjutkan tugas pada evaluasi prakt ikum II pada modul VII untuk membuat

sebuah desain implementasinya. (CDM dan PDM) 2. Koneksikan pada program aplikasi yang anda buat (Program bebas) 3. Demo project kepada dosen yang bersangkutan

Atau

Tugas project ditentukan oleh dosen pengampu

Tujuan :

v Prakt ikan dapat mengimplementasikan semua modul prakt ikum ini pada aplikasi