Anda di halaman 1dari 67

MODUL PRAKTIKUM

BASIS DATA 1

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

MODUL I MEMBUAT DESAIN BASISDATA

Tujuan : 1. Praktikan dapat memahami model basis data 2. Praktikan dapat memahami dan membuat
Tujuan :
1. Praktikan dapat memahami model basis data
2. Praktikan dapat memahami dan membuat ER-Diagram
Tugas Pendahuluan 1. Menurut Anda, Jelaskan pengertian basis data? 2. Mengapa kita menggunakan basis data
Tugas Pendahuluan
1. Menurut Anda, Jelaskan pengertian basis data?
2. Mengapa kita menggunakan basis data utk menyimpan data?
3. Sebutkan jenis-jenis model data? Jelaskan dan beri contoh!
4. Apa yang Anda ketahui tentang ER-Diagram (Entity Relationship
Diagram) ?

1. Dasar Teori

Basis Data Basis data adalah kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundancy) yang tidak perlu, untuk memenuhi berbagai kebutuhan. Basis data bisa dibayangkan sebagai lemari arsip dengan berbagai cara pengaturannya. Basis data dan lemari arsip memiliki prinsip kerja dan tujuan yang sama; prinsipnya yakni pengaturan data/arsip. Tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan kembali data/arsip.

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. Model-Model Data ada 5 yaitu:

Model Hirarkis (Hierarchical Model)

Model Jaringan (Network Model)

Model Relasional (Relational Model)

Model Relasi Entitas (Entity-Relationship Model)

Model Berbasis Objek (Object Oriented Model)

Model Relasi Entitas (Entity-Relationship Model) Merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data yang berdasarkan suatu persepsi bahwa di dunia nyata terdiri dari object-object dasar yang memiliki hubungan atau relasi dari object-object tersebut. Model Relasi-Entitas atau (Entity Relationship Model) pada hakekatnya perwujudan dari model relasional dalam bentuk diagram, yaitu E-R Diagram. Domain data disebut juga sebagai himpunan entitas, diwakili oleh diagram kotak. Field-data atau atribut diwakili oleh diagram lingkaran atau ellips. Hubungan atau relasi antar domain diwakili oleh jajaran-genjang. Entity dalam E-R diagram dibedakan menjadi 2 yaitu :

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 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 arti 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).

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

Untuk menghindari redundancy

Menghemat penyimpanan (storage) data

Mengurangi efektifitas dan kecepatan akses

Untuk menghindari terjadinya asinkronisasi data pada saat diupdate

Participation Constraint (Batasan Partisipasi) ini menentukan apakah keberadaan sebuah entitas tergantung pada hubungannya ke entitas lain melalui jenis relasinya. Participation Constraint ada 2 yaitu :

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.

Derajat Kardinalitas Relasi Kardinalitas relasi menunjukkan jumlah maksimum data entitas yang dapat berelasi dengan entitas lain. Relasi satu :

yang dapat berelasi dengan entitas lain. Relasi satu : ∑ Entity 1 to entity 2 :

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 tidak saling ketergantungan.

Relasi dua :

1 dan entitas 2 tidak saling ketergantungan. Relasi dua : ∑ Entity 3 to entity 4

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

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

Relasi tiga:

4 dan entitas 3 tidak saling ketergantungan. Relasi tiga: ∑ Entity 5 to entity 6 dan

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:

dengan detail minimal 0 maksimalnya 1. Dependensi : entitas 5 dan entitas 6 tidak saling ketergantungan.

4

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

Entity 8 ke entity 7 : kardinalitas : one to one dengan detail minimal 1

saling

maksimal 1. Dependensi :

entitas

8

dan

entitas

7

tidak

ketergantungan.

Relasi lima:

: entitas 8 dan entitas 7 tidak ketergantungan. Relasi lima: ∑ Entity 9 to entity 10

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 : kardinalitas : many to many dengan detail minimal

1 maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling ketergantungan.

Relasi enam:

10 dan entitas 9 tidak saling ketergantungan. Relasi enam: ∑ Entity 13 to entity 14 :

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 minimal 1 maksimal 1. Dependensi : entitas 14 tergantung kepada entitas 13.

2. Kegiatan Praktikum :

Latihan 1 : menemukan entitas Dalam membuat desain database yang dilakukan pertama kali dengan menemukan

entitasnya. Langkah-langkah menemukan entitas yaitu :

1. Buat ilustrasi/gambaran cerita tentang sistem yang akan dicari entitasnya. Contoh : Sistem Kepegawaian di perusahaan A

Perusahaan A memiliki 100 pegawai. Setiap pegawai dipimpin pengawas/mandor dari pegawai perusahaan itu sendiri dan tidak semua

pegawai memimpin pegawai yang lain. sehingga satu pengawas dapat memimpin beberapa pegawai. Setiap pegawai bekerja untuk suatu departemen dan dalam suatu departemen dapat terdiri dari beberapa pegawai. Setiap departemen dikepalai oleh seorang pegawai yang bekerja mulai tanggal tertentu. Sebuah departemen dapat berada di beberapa lokasi. Selain bekerja di suatu departemen pegawai dapat bekerja pada beberapa proyek. Setiap proyek dikendalikan/diatur oleh suatu departemen, namun suatu departemen tidak harus mengendalikan/mengatur proyek. Satu departemen dapat mengendalikan beberapa proyek dan satu proyek hanya dikendalikan oleh satu departemen Satu proyek dapat terdiri dari beberapa pegawai. Untuk keperluan penggajian perusahaan memerlukan data tanggungan pegawai. Seorang pegawai dapat menanggung beberapa tanggungan. Jika seorang pegawai pindah maka datanya akan dipindahkan/dihapus berikut data tanggungan/keluarganya.

2. Tandai setiap objek yang diwakili oleh kata benda yang ada di dalam ilustrasi tersebut Perusahaan A memiliki 100 pegawai. Setiap pegawai dipimpin pengawas/mandor dari pegawai perusahaan itu sendiri dan tidak semua pegawai memimpin pegawai yang lain. sehingga satu pengawas dapat memimpin beberapa pegawai. Setiap pegawai bekerja untuk suatu departemen dan dalam suatu departemen dapat terdiri dari beberapa pegawai. Setiap departemen dikepalai oleh seorang pegawai yang bekerja mulai tanggal tertentu. Sebuah departemen dapat berada di beberapa lokasi. Selain bekerja di suatu departemen, pegawai dapat bekerja pada beberapa proyek. Setiap proyek dikendalikan/diatur oleh suatu departemen, namun suatu departemen tidak harus mengendalikan/mengatur proyek. Satu departemen dapat mengendalikan beberapa proyek dan satu proyek hanya dikendalikan oleh satu departemen.Satu proyek dapat terdiri dari beberapa pegawai. Untuk keperluan penggajian perusahaan memerlukan data tanggungan pegawai. Seorang pegawai dapat menanggung beberapa tanggungan. Jika seorang pegawai pindah maka datanya akan dipindahkan/dihapus berikut data tanggungan/keluarganya.

3. Untuk setiap objek tersebut yakinkan bahwa ia memiliki karakteristik yang nanti disebut sebagai atribut Perusahaan: NoPerusahaan, nama, alamat Pegawai: NoKTP, Nama, Alamat, Jenis kelamin,gaji Pengawas: NoKTP, Nama, Alamat, Jenis kelamin,gaji Departemen: Nomor, Nama, lokasi, jumlah pegawai Lokasi : lokasi Proyek: Nomor, nama, lokasi

4.

Tanggungan: nama, jenis kelamin, tanggal lahir, hubungan dengan pegawai Tentukan objek yang merupakan entitas (Jika memang ia memiliki karakteristik jadikan ia sebagai entitas) Perusahaan: NoPerusahaan, nama, alamat (hanya berisi satu baris data) bukan entitas Pegawai: NoKTP, Nama, Alamat, Jenis kelamin,gaji entitas kuat Pengawas:NoKTP, Nama, Alamat, Jenis kelamin,gaji sama dengan entitas Pegawai Departemen: Nomor, Nama, lokasi, jumlah pegawai entitas kuat Lokasi : lokasi (karakteristiknya departemen, tidak memiliki karakteristik lain (unik)) bukan entitas Proyek: Nomor, nama, lokasi entitas kuat Tanggungan: nama, jenis kelamin, tanggal lahir, hubungan dengan pegawai entitas lemah (tergantung pada pegawai)

3.

Tugas

1.

Dari entitas dan atribut yang ditemukan, buat desain database kepegawaian menggunakan ER-Diagram dengan relasi yang menghubungkan antar entity tersebut!

2.

Lakukan mapping ER-Diagram ke tabel!

3.

Buat desain CDM(Conceptual Data Model) dan PDM(Physical Data Model) utk database tersebut! (dengan menggunakan Power Designer)

MODUL II

MYSQL

Tujuan : 1. Praktikan mampu memahami instalasi MySQL di lingkungan Windows 2. Praktikan dapat memahami
Tujuan :
1. Praktikan mampu memahami instalasi MySQL di lingkungan Windows
2. Praktikan dapat memahami dasar-dasar MySQL
3. Praktikan dapat memahami dan membuat database di MySQL
4. Praktikan dapat memahami dan membuat tabel di MySQL
Tugas Pendahuluan 1. Apakah yang dimaksud dengan DBMS (Database Management System)? Jelaskan dan beri contoh!
Tugas Pendahuluan
1. Apakah yang dimaksud dengan DBMS (Database Management
System)? Jelaskan dan beri contoh!
2. Salah satu DBMS adalah Mysql, Apa yang Anda ketahui tentang
Mysql?
3. Apa keunggulan Mysql dibandingkan dengan DBMS lain?
4. Sebutkan dan jelaskan tipe-tipe tabel yg digunakan dlm MySQL?

1. Dasar Teori

Pengertian MYSQL MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya. MySQL dibangun, didistribusikan dan didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang dibiayai oleh pengembang MYSQL. MySQL AB menyebut produknya sebagai database open source terpopuler di dunia yang bisa digunakan untuk platform Web, dan baik untuk kategori open source maupun umum.

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 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 1.1 berikut:

Tabel 1.1 Tipe Data String

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 tipe data varchar() besarnya memori penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat pada tabel 1.2 berikut ini:

 

Tabel 1.2 Letak Perbedaan Jumlah Memori

 
 

Nilai

Char(4)

Memori

Varchar

Memori

 

Penyimpanan

(4)

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-tipe 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 1.3 berikut ini:

Tabel 1.3 Tipe Data Tanggal

Tipe Data

Kisaran Nilai

Memori

Penyimpanan

DATETIME

1000-01-01 00:00 sampai 9999-12-31

3

byte

23:59:59

 

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 MYSQL MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi diantaranya:

Operator Aritmetika Suatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal (DATE) menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 1.4 berikut ini:

 

Tabel 1.4 Operator aritmatika 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 1.5 menunjukan operator pembanding pada MYSQL berikut ini:

Tabel 1.5 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 ini 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 1.6 berikut ini:

Tabel 1.6 Tabel Operator Karakter

Operator

Keterangan

%

Sembarang karakter berapapun jumlahnya

_

Sembarang satu karakter

[]

Sembarang karakter yang terletak dalam kurung siku

Operator Lain-lain Operator yang digunakan untuk menguji nilai-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 1.7 berikut ini:

 

Tabel 1.7 Operator lain-lain

   

Operator

Keterangan

 
 

IN

Dalam

 

BETWEEN

Diantara

2.

Kegiatan Praktikum :

 

Latihan 1 :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 :

, maka akan muncul dialog instalasi sebagai berikut : Gambar 1.1 Dialog instalasi MySQL Server 2.

Gambar 1.1 Dialog instalasi MySQL Server

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

Server 2. Pilih tombol Next , kemudian muncul dialog tipe instalasi sebagai berikut : Gambar 1.2

Gambar 1.2 Tipe Instalasi MySQL

3.

Pilih Custom, kemudian pilih tombol Next. Kemudian tampil dialog fitur program sebagai berikut :

. Kemudian tampil dialog fitur program sebagai berikut : Gambar 1.3 Fitur MySQL 4. Klik tanda

Gambar 1.3 Fitur MySQL

4. Klik tanda silang pada Developer Components, kemudian pilih This feature will be installed on local hard drive seperti gambar berikut :

be installed on local hard drive seperti gambar berikut : Gambar 1.4 Penambahan fitur development 5.

Gambar 1.4 Penambahan fitur development

5. Kemudian pilih tombol Change dengan gambar berikut ini :

,

pada folder name ubah menjadi sesuai

tombol Change dengan gambar berikut ini : , pada folder name ubah menjadi sesuai Gambar 1.5

Gambar 1.5 Penyimpanan data MySQL

6.

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

, dan pilih tombol Install , maka proses instalasi dimulai. Gambar 1.6 Proses instalasi MySql 7.

Gambar 1.6 Proses instalasi MySql

7. Berikutnya muncul dialog account, pilih Skip Sign-Up dan klik tombol Next, maka akan muncul dialog sebagai berikut :

tombol Next , maka akan muncul dialog sebagai berikut : 8. Gambar 1.7 konfigurasi server MySQL

8.

Gambar 1.7 konfigurasi server MySQL Klik tombol Finish dan tombol Next, maka akan muncul dialog sebagai berikut :

Finish dan tombol Next , maka akan muncul dialog sebagai berikut : Gambar 1.8 pilihan jenis

Gambar 1.8 pilihan jenis konfigurasi server

9.

Pilih Standard Configuration dan klik tombol Next, lalu muncul gambar berikut :

dan klik tombol Next , lalu muncul gambar berikut : Gambar 1.9 proses instalasi windows service

Gambar 1.9 proses instalasi windows service

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.

ini untuk sekuritas, misalnya 123456 . Klik tombol Next . Gambar 1.20 konfigurasi password server 11.

Gambar 1.20 konfigurasi password server

11. Klik tombol Execute sebagai tahap akhir.

Gambar 1.21 proses konfigurasi server 12. Klik Finish . Gambar 1.22 akhir instalasi Mysql Server

Gambar 1.21 proses konfigurasi server

12. Klik Finish.

Gambar 1.21 proses konfigurasi server 12. Klik Finish . Gambar 1.22 akhir instalasi Mysql Server Latihan

Gambar 1.22 akhir instalasi Mysql Server

Latihan 2 : 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 diketik hanya yang digaris bawah) :

C:\>mysql\bin\mysql –u root –p maka akan diminta untuk memasukkan password, isikan password yang digunakan pada saat instalasi, yaitu 123456.

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

yang digunakan pada saat instalasi, yaitu 123456 . 3. Selanjutnya akan ada respon dari server seperti

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

Cara 2 :

1. Dari menu Start > All Programs > MySQL > MySQL Server 5.0 > MySQL Command Line Client, maka akan muncul tampilan seperti berikut ini :

Client , maka akan muncul tampilan seperti berikut ini : 2. Masukkan password yang telah ditentukan

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

Latihan 3 : Membuat/Mengganti Password Setelah masuk ke dalam mysql, kita bisa membuat atau mengganti pasword yang untuk security data. Perintah yang digunakan seperti beerikut :

mysql> SET PASSWORD = PASSWORD(‘passwordanda’);

Selanjutnya untuk keluar dari server MySQL dapat dilakukan dengan mengetikkan perintah quit atau \q pada prompt mysql>.

Latihan 4 : Membuat Database Bentuk prompt “ mysql> ” adalah tempat menuliskan perintah-perintah MySQL. Setiap perintah SQL harus diakhiri dengan tanda titik-koma “ ; ” .

Dari hasil desain praktikum modul 1, buat database kepegawaian menggunakan database MySQL dengan perintah:

create database namadatabase; Misalkan anda ketikkan :

create database kepegawaian;

Untuk memilih dan membuka database dapat menggunakan perintah berikut ini:

use namadatabase;

Contoh:

use kepegawaian;

Untuk menampilkan database dapat menggunakan perintah berikut :

Show databases;

Latihan 5 : Menghapus Database Untuk menghapus database menggunakan perintah berikut :

DROP DATABASE namadatabase; Database yang akan dihapus sesuai dengan namadatabase. Contoh :

DROP DATABASE kepegawaian;

Latihan 6 : 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 kolom 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 (,). Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :

DESC namatabel;

Contoh :

DESC pegawai;

3.

Tugas

1.

Di dalam database kepegawaian, buat tabel-tabel yang akan digunakan sesuai dengan CDM/PDM yang dibuat pada modul 1 menggunakan sintak query?

2.

Tentukan field/atribut dan tipe data yang digunakan utk masing-masing tabel ?

MODUL III

DDL I

Tujuan : 1. Praktikan mampu memahami DDL 2. Praktikan mampu membuat script untuk pembuatan tabel
Tujuan :
1. Praktikan mampu memahami DDL
2. Praktikan mampu membuat script untuk pembuatan tabel dan
mengupdate tabel
3. Praktikan mampu membuat dan menghapus indeks
Tugas Pendahuluan 1. Apa perbedaan antara DDL(Data Definition Language) dan DML(Data Manipulation Language)? 2. Apa
Tugas Pendahuluan
1. Apa perbedaan antara DDL(Data Definition Language) dan
DML(Data Manipulation Language)?
2. Apa kegunaan indeks dalam basis data? Jelaskan dan beri contoh!

1. Dasar Teori

Sebuah Bahasa basis data biasanya dapat dipilah ke dalam 2 kelompok, yaitu :

1. Data Definition Language (DDL)

2. Data Manipulation Language (DML)

DDL (Data Definition Language) DDL atau Data Definition Language adalah bagian dari sql yang digunakan untuk mendefinisikan data dan objek database. Apabila perintah ini digunakan, entri akan dibuat ke dalam kamus data dari SQL. Perintah DDL sebagai berikut :

Tabel 3.1 Perintah DDL

Perintah

Keterangan

Create Database

Membuat database

Create Table

Membuat tabel

Create Index

Membuat index

Create View

Membuat View

Alter Table

Mengubah atau menyisipkan kolom ke dalam tabel

Drop Database

Menghapus database

Drop Table

Menghapus tabel dari database

Drop Index

Menghapus index

Drop View

Menghapus view

Grand

Memberikan ijin akses kepada user

Indeks

Indeks dalam database dapat diumpamakan seperti indeks dalam sebuah buku yang tebal, sehingga item tertentu dapat ditemukan dengan cepat. Sebuah indeks dalam basis data berfungsi untuk mempercepat pencarian data berdasarkan kolom tertentu. Perintah untuk membuat indeks sebagai berikut :

Create (unique) Index nama_index on nama_tabel (nama_kolom);

Keterangan :

unique pilihan perincian yang dapat digunakan untuk menguatkan nilai data di dalam kolom nama index menjadi unik. nama_index nama index yang baru. nama_tabelnama tabel yang berisi kolom index akan dibuat. nama_kolomnama dari kolom tempat index akan dibuat. Yang terdiri dari Asc untuk pilihan index naik dan Desc untuk pilihan index menurun.

2.Kegiatan Praktikum Latihan 1 : Menghapus Tabel Perintah untuk menghapus tabel dengan menggunakan perintah berikut :

DROP TABLE namatabel; Tabel yang akan dihapus sesuai dengan namatabel. Misalnya menghapus tabel Departemen dari database kepegawaian; DROP TABLE Departemen;

Latihan 2 : Membuat Tabel Perintah yang digunakan untuk membuat tabel menggunakan perintah berikut :

Create Table nama_tabel

(

nama_kolom1 tipe_data(lebar_data) contraint,

);

Keterangan :

nama_tabel nama yang diberikan di tabel baru. Nama tabel maksimal

terdiri dari 8 karakter. Tidak boleh memakai spasi, terdiri dari huruf. nama_kolom nama yang diberikan untuk kolom baru, maksimal terdiri

dari 10 karakter. Tidak boleh memakai spasi, terdiri dari huruf, angka dan lain-lain. type_data jenis data yang nilainya dimasukkan dalam kolom yang telah

ditentukan. lebar_data nomor spasi karakter untuk mengikuti data yang dimasukkan

dalam kolom yang telah ditentukan. Contraint batasan yg digunakan utk field seperti NOT Null, Primary Key

Contoh, buat tabel Departemen dari tabel yg telah dihapus; Untuk membuat tabel dalam database kepegawaian terlebih dahulu gunakan perintah USE namadatabase utk memilih database yg akan digunakan

USE namadatabase utk memilih database yg akan digunakan Kemudian gunakan perintah untuk membuat tabel seperti

Kemudian gunakan perintah untuk membuat tabel seperti berikut :

gunakan perintah untuk membuat tabel seperti berikut : Latihan 3 : Mendefinisikan Nilai Default Nilai default

Latihan 3 : Mendefinisikan Nilai Default Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika ada penambahan baris baru, sementara nilai pada kolom tersebut tidak diisi oleh pengguna, perintah sebagai berikut :

tidak diisi oleh pengguna, perintah sebagai berikut : Latihan 4 : Membuat dan Menghapus Indeks Buat

Latihan 4 : Membuat dan Menghapus Indeks Buat index data Departemen berdasarkan Nomor dengan nama indeks dept, maka perintah yang digunakan sebagai berikut :

indeks dept, maka perintah yang digunakan sebagai berikut : Untuk menghapus indeks yang telah dibuat gunakan

Untuk menghapus indeks yang telah dibuat gunakan perintah berikut :

Drop Index nama_index on nama_tabel;

Contoh :

berikut : Drop Index nama_index on nama_tabel; Contoh : Latihan 5 : Membuat indeks yang unik

Latihan 5 : Membuat indeks yang unik Pada latihan 4 CREATE INDEX di atas, indeks yang terbentuk bisa menerima nilai yang sama dan tentu akan menyebabkan duplikasi. Untuk mencegah duplikasi maka indeks yang dibuat harus bersifat unik. Caranya adalah dengan menambahkan perintah UNIQUE, misalnya :

CREATE UNIQUE INDEX dept ON Departemen(Nomor) ;

dengan menggunakan perintah di atas maka dipastikan indeks yang dibuat tidak akan bisa menerima nilai yang sama.

3.Tugas :

1. Dalam membuat tabel kita dapat menggunakan tipe Enum dan Set, apa perbedaannya? Jelaskan dan beri contoh dalam pembuatan tabel!

2. Buat indeks untuk tabel pegawai

3. Buat indeks untuk tabel Departemen dengan menggunakan beberapa kolom yaitu Nomor dan Nama

MODUL IV

DDL II

Tujuan : 1. Praktikan dapat memahami DDL 2. Praktikan mampu memahami dan mengubah struktur tabel
Tujuan :
1. Praktikan dapat memahami DDL
2. Praktikan mampu memahami dan mengubah struktur tabel dalam
database
Tugas Pendahuluan 1. Jelaskan perbedaan perintah DROP dengan perintah DELETE? Beri contoh! 2. Mengapa kita
Tugas Pendahuluan
1. Jelaskan perbedaan perintah DROP dengan perintah DELETE? Beri
contoh!
2. Mengapa kita menggunakan perintah ALTER dalam database?

1. 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:

a.

CREATE Instalasi sistem manajemen database (DBMS) pada komputer memungkinkan Anda untuk membuat dan mengelola banyak database independen

b.

USE Perintah USE memungkinkan Anda untuk menentukan database yang ingin bekerja dengan Anda dalam DBMS.

c.

ALTER Setelah Anda telah membuat tabel dalam database, Anda mungkin ingin memodifikasi definisi itu.Perintah ALTER yang memungkinkan Anda untuk membuat perubahan pada struktur tabel tanpa menghapus dan menciptakan tabel baru dengan nama yang berbeda.

d.

DROP Perintah terakhir dari Data Definition Language, DROP yang 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.

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 menjadi bersifat unik, artinya antara satu data dengan data lainnya namanya tidak boleh sama, misal alamat email.

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

• FOREIGN KEY FOREIGN KEY constraint didefinisikan 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.

2. Kegiatan Praktikum:

Latihan 1 : Mendefinisikan Primary Key Pada Tabel Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah

perintah 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

(namakolom); Perhatikan struktur tabel pegawai berikut :

CONSTRAINT

PRIMARY

KEY

); Atau ALTER TABLE namatabel ADD (namakolom); Perhatikan struktur tabel pegawai berikut : CONSTRAINT PRIMARY KEY

Tabel pegawai diatas belum mempunyai primary key, maka utk menambahkan primary key gunakan perintah berikut :

maka utk menambahkan primary key gunakan perintah berikut : Struktur tabel pegawai setelah ditambah primary key

Struktur tabel pegawai setelah ditambah primary key pada field NoKTP

tabel pegawai setelah ditambah primary key pada field NoKTP Latihan 2 : Menghapus Primary Key Pada

Latihan 2 : Menghapus Primary Key Pada Tabel Perintah untuk menghapus primary key pada tabel sebagai berikut :

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;

lakukan perintah berikut untuk menghapus primary key pada tabel pegawai

berikut untuk menghapus primary key pada tabel pegawai Struktur tabel setelah primary key dihapus seperti berikut

Struktur tabel setelah primary key dihapus seperti berikut :

Struktur tabel setelah primary key dihapus seperti berikut : Latihan 3 : Menambah Kolom Baru Pada

Latihan 3 : Menambah Kolom Baru Pada Tabel Perintah untuk menambah kolom baru pada tabel seperti berikut :

ALTER TABLE namatabel ADD fieldbaru tipe;

namatabel adalah nama tabel yang akan ditambah fieldnya.

Fieldbaru adalah nama kolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkan.

Lakukan perintah berikut untuk menambahkan field/atribut NoTelp pada tabel pegawai :

untuk menambahkan field/atribut NoTelp pada tabel pegawai : Struktur tabel setelah ditambah atribut NoTelp seperti

Struktur tabel setelah ditambah atribut NoTelp seperti berikut :

tabel setelah ditambah atribut NoTelp seperti berikut : Latihan 4 : Mengubah Tipe Data atau Lebar

Latihan 4 : Mengubah Tipe Data atau Lebar Kolom Pada Tabel Perintah yang digunakan :

ALTER TABLE namatabel MODIFY COLUMN field tipe

namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya. Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru atau tipe data lama dengan lebar kolom yang berbeda.

Lakukan perintah berikut untuk mengubah tipe data dan lebar kolom NoTelp pada tabel pegawai dari varchar(15) menjadi char(12)

kolom NoTelp pada tabel pegawai dari varchar(15) menjadi char(12) Struktur tabel setelah diganti seperti berikut :

Struktur tabel setelah diganti seperti berikut :

kolom NoTelp pada tabel pegawai dari varchar(15) menjadi char(12) Struktur tabel setelah diganti seperti berikut :

Latihan 5 : Mengubah Nama Kolom Perintah yang digunakan :

TABLE

NamaKolomBaru tipedata;

ALTER

namatabel

CHANGE

COLUMN

NamaKolomLama

namatabel adalah nama tabel yang akan diubah nama kolomnya, NamaKolomLama adalah kolom yang akan diganti namanya, NamaKolomBaru adalah nama kolom yang baru, tipedata adalah tipe data dari kolom tersebut.

Berikut ini perintah untuk mengubah nama kolom NoTelp menjadi Telp :

ini perintah untuk mengubah nama kolom NoTelp menjadi Telp : Struktur tabel setelah diubah: Latihan 6

Struktur tabel setelah diubah:

kolom NoTelp menjadi Telp : Struktur tabel setelah diubah: Latihan 6 : Menghapus Kolom Pada Tabel

Latihan 6 : Menghapus Kolom Pada Tabel Perintah untuk menghapus kolom pada tabel:

ALTER TABLE namatabel DROP COLUMN namakolom;

Lakukan

perintah

berikut

untuk

menghapus

field/kolom

Telp

pada

tabel

pegawai :

field/kolom Telp pada tabel pegawai : Struktur tabel setelah kolom Telp dihapus seperti berikut :

Struktur tabel setelah kolom Telp dihapus seperti berikut :

field/kolom Telp pada tabel pegawai : Struktur tabel setelah kolom Telp dihapus seperti berikut : 26

Latihan 7 : 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 terlebih dahulu. Perintah yang digunakan:

CREATE TABLE namatabel

(

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;

Lakukan perintah berikut utk menghubungkan tabel Departemen dengan tabel pegawai :

utk menghubungkan tabel Departemen dengan tabel pegawai : Struktur tabel setelah ditambah foreign key seperti berikut

Struktur tabel setelah ditambah foreign key seperti berikut :

tabel setelah ditambah foreign key seperti berikut : Latihan 8 : Menghapus Foreign Key Perintah yang

Latihan 8 : Menghapus Foreign Key Perintah yang digunakan :

ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;

Lakukan perintah berikut untuk menghapus foreign key :

: ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint; Lakukan perintah berikut untuk menghapus foreign key :

3. Tugas :

1.

Gunakan

tabel

Departemen

untuk

melakukan

perintah

berikut

(gunakan

ALTER Table) :

 

a) tambahkan field/atribut TglMulai dan Lokasi departemen.

 

b) Ubah tipe data pada field Nama menjadi Varchar(30)

c) Ubah nama field Nomor menjadi id_dept dengan tipe data varchar (5)

d) Ubah nama tabel Departemen menjadi Dept

 

e) Ubah kembali namatabel Dept menjadi Departemen

 

f) Hapus field TglMulai pada tabel Departemen

 

2.

Tambahkan Primary Key dan Foreign Key untuk tabel-tabel lain sesuai dengan ER-Diagram yang dibuat pada Modul 1.

MODUL V DML (DATA MANIPULATION LANGUAGE)

Tujuan : 1. Praktikan dapat memahami perintah DML 2. Praktikan dapat memahami dan memanipulasi data
Tujuan :
1. Praktikan dapat memahami perintah DML
2. Praktikan dapat memahami dan memanipulasi data dalam database
Tugas Pendahuluan 1. Sebutkan dan Jelaskan perintah yang termasuk dalam DML? 2. Bagaimana urutan penggunaan
Tugas Pendahuluan
1. Sebutkan dan Jelaskan perintah yang termasuk dalam DML?
2. Bagaimana urutan penggunaan Select dengan banyak parameter yang
digunakan?
3. Apa perbedaan penggunaan Select dengan Distinct dan tanpa Distinct?

1. 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 informasi. Bagian DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah bahasa query sering disamakan dengan istilah bahasa manipulasi data. Sedangkan SQL adalah sebuah sintaks untuk mengeksekusi query.

2. Kegiatan Praktikum

Latihan 1 : Memasukkan Data ke dalam Tabel Pernyataan INSERT INTO digunakan untuk memasukkan data baru pada tabel.

Perintah yang digunakan :

INSERT INTO nama_tabel

VALUES (nilai1, nilai2,

);

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 (kolom1, kolom2,

VALUES (nilai1, nilai2,

);

)

Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi dengan Null dan kolom yang tidak disebutkan dalam Insert haruslah yang tidak Not Null.

Tambahkan data ke dalam tabel Pegawai seperti perintah berikut :

data ke dalam tabel Pegawai seperti perintah berikut : Atau Latihan 2 : Pengubahan Data Pernyataan

Atau

data ke dalam tabel Pegawai seperti perintah berikut : Atau Latihan 2 : Pengubahan Data Pernyataan

Latihan 2 : Pengubahan Data Pernyataan UPDATE digunakan untuk modifikasi data dalam tabel menggunakan perintah berikut :

UPDATE nama_tabel SET nama_kolom = nilai_baru WHERE nama_kolom = nilai;

SET digunakan untuk menentukan kolom yang akan diubah dan nilai penggantinya. WHERE digunakan untuk menentukan kondisi dari baris-baris yang akan diganti.

Lakukan perintah berikut untuk mengubah data pegawai bernama ‘Agus’ menjadi ‘Budi’ :

yang akan diganti. Lakukan perintah berikut untuk mengubah data pegawai bernama ‘Agus’ menjadi ‘Budi’ : 30

Latihan 3 : Menghapus data Pernyataan DELETE digunakan untuk menghapus baris pada tabel, perintah yang digunakan seperti berikut:

DELETE FROM nama_tabel WHERE nama_kolom = nilai;

Lakukan perintah berikut untuk menghapus data dari tabel pegawai dengan NoKTP = ‘1103’:

menghapus data dari tabel pegawai dengan NoKTP = ‘1103’: Dalam perintah DELETE jika kita ingin menghapus

Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpa menghapus tabel maka Where tidak perlu disebutkan. DELETE From Pegawai;

Latihan 4 : Pernyataan SELECT 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. Struktur perintah Select seperti berikut :

SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition];

4.1 Memilih beberapa kolom dalam tabel Untuk memilih beberapa kolom gunakan perintah sebagai berikut :

SELECT nama_kolom1, nama_kolom2, FROM nama_tabel;

Lakukan perintah berikut untuk memilih Kolom NoKTP, NmDepan dan NmBlk dari tabel pegawai :

memilih Kolom NoKTP, NmDepan dan NmBlk dari tabel pegawai : Untuk memilih semua kolom dari tabel,

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

SELECT * FROM nama_tabel;

Untuk menampilkan semua kolom pada tabel pegawai menggunakan perintah berikut :

kolom pada tabel pegawai menggunakan perintah berikut : 4.2 Pernyataan Distinct Untuk memilih hanya nilai yang

4.2 Pernyataan Distinct Untuk memilih hanya nilai yang berbeda atau nilai data yang unik. Perintah SELECT DISTINCT berikut :

SELECT DISTINCT nama_kolom FROM nama_tabel;

Lakukan perintah dibawah berikut untuk membedakan penggunaan Distinct :

dibawah berikut untuk membedakan penggunaan Distinct : 4.3 Klausa WHERE Klausa WHERE digunakan untuk menentukan
dibawah berikut untuk membedakan penggunaan Distinct : 4.3 Klausa WHERE Klausa WHERE digunakan untuk menentukan

4.3 Klausa WHERE Klausa WHERE digunakan untuk menentukan kriteria seleksi. Untuk memilih data suatu tabel dengan kriteria tertentu, klausa WHERE dapat ditambahkan pada pernyataan SELECT. Perintah yang digunakan seperti berikut:

SELECT nama_kolom FROM nama_tabel WHERE kolom operator nilai;

Dengan klausa WHERE, operator berikut seperti tabel 5.1 berikut :

Tabel 5.1 Tabel Operator Untuk Klausa Where

Operator

Keterangan

=

Sama dengan

<>

Tidak sama dengan

>

Lebih besar dari

<

Lebih kecil dari

>=

Lebih besar atau sama dengan

<=

Lebih kecil atau sama dengan

BETWEEN

Antara dua nilai

LIKE

Mencari suatu pola

Lakukan perintah berikut dengan menggunakan klausa Where untuk menampilkan data pegawai dengan NoKtp =1102:

Where untuk menampilkan data pegawai dengan NoKtp =1102: 4.4 Kondisi LIKE Kondisi LIKE digunakan untuk menentukan

4.4 Kondisi LIKE Kondisi LIKE digunakan untuk menentukan pencarian berdasarkan pola tertentu pada suatu kolom, perintah yang digunakan seperti berikut :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom LIKE pola;

Tanda ” % ” dapat digunakan untuk menentukan Wildcard (sembarang huruf), baik sebelum maupun sesudah pola. Perlu diingat operasi ini, hanya untuk pembandingan nilai bertipe string Lakukan perintah berikut untuk menampilkan nama depan pegawai yang dimulai dengan huruf E :

menampilkan nama depan pegawai yang dimulai dengan huruf E : Untuk menampilkan Nama Belakang dari pegawai

Untuk menampilkan Nama Belakang dari pegawai yang dimulai,diakhiri atau ada kata ‘ wa ‘, maka perintah yang digunakan seperti berikut :

simbol _ artinya mewakili 1 sembarang karakter. Lakukan perintah berikut untuk menampilkan menampilkan NmBlk pegawai

simbol _ artinya mewakili 1 sembarang karakter. Lakukan perintah berikut untuk menampilkan menampilkan NmBlk pegawai yang huruf kedua namanya adalah “a”:

NmBlk pegawai yang huruf kedua namanya adalah “a”: 3. Tugas : Kerjakan dengan menggunakan perintah DML

3. Tugas :

Kerjakan dengan menggunakan perintah DML untuk :

1. mengubah data yang terdiri dari 2 atau lebih field dalam satu tabel, Misal;

mengubah NmDepan = ‘Eni’ , NmBlk=’Wahyuni’, alamat=’Sidoarjo’ menjadi NmDepan =’Endarti’, NmBlk=’Wardani’, Alamat =’Mojokerto’.

2. Menampilkan data pegawai yang mempunyai alamat Surabaya.

3. Menampilkan data pegawai yang memiliki gaji lebih besar dari 2000000.

4. Menampilkan data pegawai yang mempunyai alamat ‘sidoarjo’ dan mempunyai gaji lebih kecil dari 2000000.

5. Menampilkan NmDepan, NmBelakang, Alamat pegawai yang mempunyai alamat Surabaya atau Sidoarjo.

MODUL VI DML (DATA MANIPULATION LANGUAGE)

Tujuan : 1. Praktikan dapat memahami dan memanipulasi data dengan menggunakan perintah Select
Tujuan :
1. Praktikan dapat memahami dan memanipulasi data dengan menggunakan
perintah Select
Tugas Pendahuluan 1. Dalam penggunaan perintah Select dengan Order By dan Group By, mana yang
Tugas Pendahuluan
1. Dalam penggunaan perintah Select dengan Order By dan Group By,
mana yang lebih dahulu dituliskan?Jelaskan!
2. Apa yang harus diperhatikan apabila kita ingin menggabung kolom dari 2
atau lebih tabel?
3. Apa perbedaan penggunaan AND dan operator IN?

1. 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, GROUP BY, HAVING, fungsi agregate, dan beberapa perintah yang lain. SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC]

Keterangan :

SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN ORDER BY kata kunci (keyword) yang harus disertakan jika kita membutuhkannya di dalam pengolahan data. select_list, table_source, search_condition, group_by_expression, order_expression isian yang bisa kita ubah berdasarkan kebutuhan kita Kurung kotak [ ] bagian tersebut boleh disertakan atau tidak, tergantung dari kebutuhan

2.

Kegiatan Praktikum

Latihan 1 : Pemberian nama lain (ALIAS) Perintah Select dapat dilakukan dengan memberikan nama lain atau alias yaitu dapat digunakan untuk memberikan alias pada nama_kolom dan nama_tabel. 1.1 Pemberian alias pada kolom Perintah untuk me SELECT nama_kolom AS nama_alias FROM namatabel; Atau SELECT nama_kolom nama_alias FROM nama_tabel;

Lakukan perintah berikut untuk memberikan nama alias pada kolom Gaji menjadi Gaji Bersih :

memberikan nama alias pada kolom Gaji menjadi Gaji Bersih : Atau 1.2 Pemberian alias pada tabel

Atau

nama alias pada kolom Gaji menjadi Gaji Bersih : Atau 1.2 Pemberian alias pada tabel Pemberian

1.2 Pemberian alias pada tabel Pemberian nama alias menggunakan perintah berikut :

SELECT nama_alias.nama_kolom FROM namatabel AS nama_alias; Atau SELECT nama_alias.nama_kolom FROM nama_tabel nama_alias

Lakukan perintah berikut untuk memberikan alias Peg pada tabel pegawai :

Atau Latihan 2 : Menampilkan data lebih dari dua tabel Perintah Select juga dapat dilakukan

Atau

Atau Latihan 2 : Menampilkan data lebih dari dua tabel Perintah Select juga dapat dilakukan untuk

Latihan 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. Perintah untuk menampilkan data lebih dari dua tabel seperti berikut :

SELECT * FROM namatabel1, namatabel2, namatabel-n;

Lakukan perintah berikut untuk menampilkan NmDepan, NmBlk, Alamat dari tabel pegawai dan Nama Departemen dari tabel departemen :

tabel pegawai dan Nama Departemen dari tabel departemen : Latihan 3 : Kondisi Where untuk relasi

Latihan 3 : Kondisi Where untuk relasi Jika kita mengambil informasi dari lebih dari sebuah tabel, maka kita perlu menambahkan kondisi untuk relasi antara kedua tabel tersebut. Untuk relasi kita harus memperhatikan kolom dari 2 atau lebih tabel yang mempunyai data yang sama. Jika ada nama field yang sama dari tabel yang disertakan, maka sebelum nama field, berikan nama tabel diikuti sebuah titik (.)

Pada latihan 2, data yang ditampilkan seluruh pasangan baris data departemen di tiap baris pegawai, yang tentu saja bukan informasi yang benar. Maka

supaya informasi akurat maka ditambah relasi dengan menggunakan kolom yang sama yaitu Departemen.Nomor dan Pegawai.Nomor.

kolom yang sama yaitu Departemen.Nomor dan Pegawai.Nomor. Latihan 4 : Klausa Order By Klausa ORDER BY

Latihan 4 : Klausa Order By Klausa ORDER BY digunakan untuk mengurutkan data. Jika kita ingin menampilkan NmDepan,NmBlk,Alamat dan departemen berdasarkan urutan NmDepan secara ascending, maka perintah :

berdasarkan urutan NmDepan secara ascending, maka perintah : Jika kita ingin menampilkan nama depan dengan urutan

Jika kita ingin menampilkan nama depan dengan urutan abjad terbalik, maka perintahnya sebagai berikut :

urutan abjad terbalik, maka perintahnya sebagai berikut : Latihan 5 : Operator IN Ekspresi ini digunakan

Latihan 5 : Operator IN Ekspresi ini digunakan untuk membandingkan dengan sebuah kumpulan nilai Kumpulan nilai bisa berupa:

nilai-nilai yang diisikan

query tunggal yaitu query yg hasilnya hanya terdapat sebuah kolom saja

Perintah operator IN seperti berikut :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom NOT IN/IN (nilai1, nilai2,

);

Lakukan perintah berikut untuk menampilkan NmDepan, NmBlk, Alamat dari pegawai yang mempunyai alamat Sidoarjo dan Surabaya :

dari pegawai yang mempunyai alamat Sidoarjo dan Surabaya : Lakukan perintah berikut untuk menampilkan NmDepan, NmBlk,

Lakukan perintah berikut untuk menampilkan NmDepan, NmBlk, Alamat pegawai yang mempunyai tanggungan :

NmDepan, NmBlk, Alamat pegawai yang mempunyai tanggungan : Latihan 6 : Operator BETWEEN … AND Operator

Latihan 6 : Operator BETWEEN … AND Operator BETWEEN … AND memilih data antara dua nilai. Nilai dapat berupa angka, teks, atau tanggal, perintah yang digunakan sebagai berikut :

SELECT nama_kolom FROM nama_tabel WHERE nama_kolom BETWEEN/NOT BETWEEN nilai1 AND nilai2;

Lakukan perintah berikut untuk menampilkan data tanggungan yang mempunyai tahun kelahiran dari tahun 1999 sampai 2002 :

yang mempunyai tahun kelahiran dari tahun 1999 sampai 2002 : Latihan 7 : Fungsi Aggregate (COUNT,

Latihan 7 : Fungsi Aggregate (COUNT, SUM, AVG, MIN dan MAX) 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 seperti tabel 6.1 berikut :

Tabel 6.1 Fungsi Aggregate

Fungsi

Keterangan

AVG

Menghitung rata-rata

COUNT

Menghitung cacah data /jumlah baris

MAX

Memperoleh nilai terbesar

MIN

Memperoleh nilai terkecil

SUM

Memperoleh jumlahan data

7.1 COUNT Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Perintah berikut digunakan untuk menghitung jumlah data pada tabel pegawai dengan menggunakan kolom NoKTP :

data pada tabel pegawai dengan menggunakan kolom NoKTP : 7.2 SUM Perintah yang digunakan untuk menghitung

7.2 SUM Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel. Perintah berikut digunakan untuk menghitung jumlah nilai kolom gaji pada tabel pegawai :

menghitung jumlah nilai kolom gaji pada tabel pegawai : 7.3 AVG Perintah yang digunakan untuk menghitung

7.3 AVG Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel. Perintah berikut digunakan untuk menghitung rata-rata dari kolom Gaji pada tabel pegawai :

menghitung rata-rata dari kolom Gaji pada tabel pegawai : 7.4 MIN Perintah yang digunakan untuk menampilkan

7.4 MIN Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel. Perintah berikut digunakan untuk menampilkan nilai terkecil dari kolom gaji pada tabel pegawai :

7.5

7.5 MAX Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel. Perintah berikut

MAX Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel. Perintah berikut digunakan untuk menampilkan nilai terbesar dari kolom Gaji pada tabel pegawai :

nilai terbesar dari kolom Gaji pada tabel pegawai : Latihan 8 : Klausa GROUP BY Hasil

Latihan 8 : Klausa GROUP BY Hasil dari Select juga dapat dikelompokkan dengan menambahkan klausa GROUP BY. Perintah yang digunakan sebagai berikut :

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

Perintah berikut digunakan untuk menampilkan jumlah pegawai berdasarkan alamat kotanya :

menampilkan jumlah pegawai berdasarkan alamat kotanya : Latihan 9 : HAVING Klausa HAVING disediakan untuk mendukung

Latihan 9 : HAVING Klausa HAVING disediakan untuk mendukung klausa GROUP BY. Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi kondisi HAVING saja yang akan dihasilkan. Perintah yang digunakan sebagai berikut :

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

Lakukan perintah berikut untuk menampilkan NoKTP, NmDepan, NmBlk, Alamat dan jumlah tanggungan yang dimiliki pegawai lebih dari 1 tanggungan:

tanggungan yang dimiliki pegawai lebih dari 1 tanggungan: 3. Tugas : 1. Perhatikan latihan 4 tentang

3. Tugas :

1. Perhatikan latihan 4 tentang penggunaan klausa Order By, jika data NmDepan, NmBlk,Alamat dan nama departemen diurutkan berdasarkan NmDepan secara descending dan Alamat berdasarkan ascending.

2. Tampilkan NmDepan, NmBlk dan Alamat pegawai yang alamatnya bukan Sidoarjo dan Surabaya.

3. Tampilkan NmDepan, NmBelakang dari pegawai yang menjadi pimpinan untuk masing-masing departemen.

4. Tampilkan Nomor, nama departemen dan jumlah pegawai untuk masing- masing departemen.

5. Tampilkan data pegawai yang mempunyai tidak mempunyai tanggungan.

6. Tampilkan data tanggungan yang tahun lahir diluar 1999 sampai 2002.

7. Tampilkan jumlah pegawai yang mempunyai alamat Surabaya

8. Tampilkan NoKTP,NmDepan,NmBlk, Alamat dan Jumlah tanggungan untuk masing-masing pegawai.

MODUL VII Evaluasi Praktikum I

Tujuan : 1. Praktikan lebih memahami dan mengimplementasikan tentang ERD 2. Praktikan lebih memahami dan
Tujuan :
1. Praktikan lebih memahami dan mengimplementasikan tentang ERD
2. Praktikan lebih memahami dan mengimplementasikan tentang DDL
dan DML
Tugas Pendahuluan 1. Buatlah ERD database (Gunakan Power desainer) a. Nrp genap : data base
Tugas Pendahuluan
1. Buatlah ERD database (Gunakan Power desainer)
a. Nrp genap : data base perpusatakaan
b. Nrp ganjil : data base Rumah Makan

Tugas Praktikum :

1. Desain tabel minimal 5 tabel, yang sesuai dengan tugas pendahuluan di atas.

2. Gunakan perintah SQL untuk membuat tabel, isi tabel masing masing 10 data

3. Buat Perintah DDL dan DML dari tabel di atas yang terdiri dari insert, update, delete, tambah baris, tambah kolom.

4. Lakukan pengurutan data menggunkan orderby, gunakan juga fungsi agregasi AVG, MIN, MAX, SUM, COUNT pada beberapa tabel

MODUL VIII DML (DATA MANIPULATION LANGUAGE)

Tujuan : Praktikan dapat memahami dan memanipulasi data dalam database dengan lebih luas lagi.
Tujuan :
Praktikan dapat memahami dan memanipulasi data dalam database dengan
lebih luas lagi.
Tugas Pendahuluan 1. Apa yang anda ketahui tentang JOIN, UNION, INTERSECT, EXCEPT, dan operator comparison
Tugas Pendahuluan
1. Apa yang anda ketahui tentang JOIN, UNION, INTERSECT,
EXCEPT, dan operator comparison ANY dan ALL?
2. Buat contoh perintah SQL untuk SELECT yang menggunakan JOIN,
UNION, INTERSECT, EXCEPT, dan operator comparison ANY dan
ALL !

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

1. Membuat Database pergudangan, yang terdiri dari 6 tabel yaitu pelanggan,

pesan, barang, karyawan, stok dan transaksi.

terdiri dari 6 tabel yaitu pelanggan, pesan, barang, karyawan, stok dan transaksi. 2. Buat table barang

2. Buat table barang dan karyawan

2. Buat Tabel Pelanggan 3. Buat Tabel STOK stok id_stok jumlah_barang <pi> Integer Variable characters(25)
2. Buat Tabel Pelanggan 3. Buat Tabel STOK stok id_stok jumlah_barang <pi> Integer Variable characters(25)

2. Buat Tabel Pelanggan

2. Buat Tabel Pelanggan 3. Buat Tabel STOK stok id_stok jumlah_barang <pi> Integer Variable characters(25)

3. Buat Tabel STOK

stok id_stok jumlah_barang <pi> Integer Variable characters(25) Identifier_1 <pi>
stok
id_stok
jumlah_barang
<pi> Integer
Variable characters(25)
Identifier_1 <pi>

4.

Buat table pesan dan transaksi seperti di bawah ini

pesan id_pesan <pi> tgl jumlah Integer Date Variable characters (25) Identifier_1 <pi>
pesan
id_pesan
<pi>
tgl
jumlah
Integer
Date
Variable characters (25)
Identifier_1
<pi>
transaksi id_transaksi <pi> tgl_masuk tgl_keluar jumlah_masuk jumlah_keluar Integer Date Date Variable
transaksi
id_transaksi
<pi>
tgl_masuk
tgl_keluar
jumlah_masuk
jumlah_keluar
Integer
Date
Date
Variable characters (25)
Variable characters (25)
Identifier_1
<pi>

5. Dari semua table di atas, inputkan data masing-masing 5 data, contoh :

table di atas, inputkan data masing-masing 5 data, contoh : 6. JOIN dan KUNCI Terkadang kita

6. 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 antar tabel tanpa mengulangi semua data pada setiap tabel. Kita bisa menggunakan kata kunci JOIN untuk memilih data. Ada tiga macam kunci JOIN, yaitu INNER JOIN, LEFT JOIN, dan RIGHT JOIN.

7. 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

INNER JOIN tabel2 ON tabel1.kunci_utama = tabel2.kunci_asing 8. Left join Left join digunakan untuk menampilkan semua

8. 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

9. Right join Sintaks untuk RIGHT JOIN : SELECT field1, field2, … FROM tabel1 RIGHT

9. Right join Sintaks untuk RIGHT JOIN :

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

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.

tetap akan ditampilkan dengan pasangannya berupa nilai NULL. 10. Natural join Natural join digunakan untuk menampilkan

10. Natural join Natural join digunakan untuk menampilkan data dari dua tabel yang berisi data.

berupa nilai NULL. 10. Natural join Natural join digunakan untuk menampilkan data dari dua tabel yang

11. 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.

dengan hasil subquery menghasilkan nilai TRUE. 12. Operator ALL Operator ALL digunakan untuk melakukan

12. Operator ALL Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.

TRUE untuk setiap nilai query terhadap hasil subquery. 13. Union Union merupakan operator yang digunakan untuk

13. Union

Union merupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe kolom dari masing- masing tabel yang akan ditampilkan datanya harus sama.

, dengan ketentuan jumlah, nama dan tipe kolom dari masing- masing tabel yang akan ditampilkan datanya

14. INTERSECT 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 tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN yang bisa diperdalam di bagian Nested Queries.

15. 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 SELECT * FROM namatabel2 Pada MySQL tidak 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 :

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

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

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

MODUL 9 ALJABAR RELASIONAL DAN NORMALISASI DATA

Tujuan : Mampu membangun desain logika basis data relasional untuk menghasilkan struktur tabel yang normal.
Tujuan :
Mampu
membangun
desain
logika
basis
data
relasional
untuk
menghasilkan struktur tabel yang normal.
PrePraktikum 1. Apakah yang anda ketahui tentang aljabar Relasional 2. Apa yang dimaksud dengan normalisasi?
PrePraktikum
1. Apakah yang anda ketahui tentang aljabar Relasional
2. Apa yang dimaksud dengan normalisasi?
3. Mengapa suatu tabel perlu dinormalisasikan?
4. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
Apa yang disebut dengan bentuk normal?
5. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapat
dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik?

1. Dasar Teori 1.1. Normalisasi Normalisasi merupakan Suatu Teknik/Cara yang digunakan untuk menganalisa relasi berdasarkan pada primary key (atau Candidate key dalam kasus BCNF) dan ketergantungan secara fungsional. Pertama diusulkan oleh E.F Codd (1972) Pada normalisasi data, digunakan istilah baru yang disebut dengan functinal dependencies atau ketergantungan fungsional.

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. Berarti secara fungsional A

Notasi: A B

A dan B adalah atribut dari sebuah tabel. Berarti 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 dimana A B

Jika r1(A)=r2(A), maka r1(B) = r2(B) Dimisalkan relasi nilai_mhs memiliki empat buah atribut/field yaitu nama_kul, nim, 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 ini dibuktikan dari fakta: untuk setiap nilai nim yang sama, maka pasti nilai nama_mhs nya juga sama.

b. nama_kul, nim 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 matakuliah 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 Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat fakta yang B atau A x B 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 tidak hanya tergantung pada atribut nim, karena tergantung pula pada atribut nama_kul yaitu nama kuliah yang diambil oleh nim.

Bentuk-Bentuk Normalisasi Bentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik.

Bentuk Normal Pertama (1NF) Suatu tabel dikatakan dalam bentuk normal pertama hanya kalau setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperboleh adanya :

Atribut yang bernilai banyak ( Multivalued attribut ).

Atribut yang bernilai banyak (Multivalued attribut).

Attribut komposit atau kombinasi dari keduanya.

Attribut komposit atau kombinasi dari keduanya.

Berikut ini akan dicontohkan normalisasi dari tabel kuliah yang memiliki atribut:

Kode_kul

Nama_kul

Sks

Smstr

Waktu

Ruang

Nama_dosen

C1234

Matematika 1

2

1

1 RKB-3

 

Sri Herawati

C1243

Riset Operasi

2

5

1 RKB-1

 

Devie Rosa

C1342

ADSI

2

3

2 RKB-3

 

Yeni Kustiya

Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel kuliah menjadi:

1. Tabel Kuliah

Kode_kul

Nama_kul

Sks

Smstr

Nama_dosen

C1234

Matematika 1

2

1

Sri Herawati

C1243

Riset Operasi

2

5

Devie Rosa

C1342

ADSI

2

3

Yeni Kustiya

2.

Tabel Jadwal

 

Kode_kul

Waktu

Ruang

 

C1234

1 RKB-3

 

C1243

1 RKB-1

 

C1342

2 RKB-3

 

Bentuk Normal Kedua (2NF) Suatu tabel disebut dalam bentuk normal kedua, jika :

1. Tabel berada dalam bentuk normal pertama

2. Semua kolom 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+

C1342

7402030009

B

Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat redudan yaitu nama_mhs, maka tabel nilai 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.

Bentuk Normal Ketiga (3NF)

Suatu tabel dikatakan dalam bentuk normal ketiga, jika :

1. Berada dalam bentuk normal kedua

2. Setiap kolom bukan primary key tidak 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 ini (alamat_jalan, nama_kota) bukan superkey sementara kode_pos juga bukan bagian dari primary key pada tabel mahasiswa. Jika tabel mahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat, maka 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

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 (multivalued dependency) pada suatu tabel merupakan pengembangan dari ketergantungan fungsional. Sedangkan bentuk normal tahap kelima merupakan nama lain dari Project Join Normal Form (PJNF).

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).

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.

1.2. Aljabar relasional Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut. Operasi-operasi dasar dalam aljabar relasional adalah :

Operasi Select

Operasi select digunakan untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. Digunakan symbol sigma ( σ ) untuk menunjukkan operasi select.

σ alamat=”Surabaya”(karyawan)

operasi select. σ alamat=”Surabaya”(karyawan) ∑ Operasi Project Operasi Project digunakan untuk

Operasi Project Operasi Project digunakan untuk menampilkan nama-nama

atribut yang diinginkan tampil. Operasi project disimbolkan dengan symbol phi (π). πnama,alamat(karyawan)

∑ Union Disimbolkan dengan tanda “U “. Operasi union dalam aljabar relasional sama halnya dengan

Union

Disimbolkan dengan tanda “U “. Operasi union dalam aljabar relasional sama halnya dengan operasi union pada aritmatika. Dengan operasi union informasi yang diinginkan dapat diperoleh. πjumlah(pesan) U πjumlah(stok)

dapat diperoleh. π jumlah(pesan) U π jumlah(stok ) ∑ Set difference Disimbolkan dengan tanda “ -

Set difference Disimbolkan dengan tanda “-“. Operasi ini untuk menemukan tuple-tuple yang berada pada satu relasi tetapi tidak berada pada relasi yang lainnya. πid_karyawan (karyawan) – πid_karyawan(transaksi)

π id_karyawan (karyawan) – π id_karyawan(transaksi ) ∑ Cartesian product Operasi Cartesian-product disimbolkan

Cartesian product Operasi Cartesian-product disimbolkan dengan “x”. Dengan operasi ini dapat dihasilkan informasi yang merupakan kombinasi dari dua relasi. σalamat=”Surabaya”(pelanggan x pesan)

2. Kegiatan Praktikum Perincian tabel pada sistem informasi travel adalah sebagai berikut : N Nama

2. Kegiatan Praktikum

Perincian tabel pada sistem informasi travel adalah sebagai berikut :

N

Nama

Tanggal

Tujuan

Kelas

Banyak

Harga

o

Pelanggan

 

Kursi

Berangkat

Pulang

     

1

Agus

11-06-2011

13-06-2011

Sby-mlg

Ekonomi

60

1jt

2

Iwan

12-06-2011

14-06-2011

Mlg-jkt

VIP

60

3jt

3

ulfi

22-06-2011

24-06-2011

Sby-bali

Ekonomi

50

5jt

       

Bali-

     

4

endy

23-06-2011

15-06-2011

madura

VIP

45

4jt

1. Dari tabel di atas, buatlah bentuk normalisasi 1, II, dan III

2. Tentukan tipe data dan constrainnya

3. Tentukan tabel master dan transksi

4. Buat perintah aljabar relasional pada masing-masing tabel

5. Desain CDM dan PDm menggunakan software rational rose

Tugas Praktikum :

1. Buat Normalisasi bentuk 1, II dan III, kemudian desain ke dalam CDM dan PDM dari sistem informasi Perhotelan, dengan syarat ada 4 tabel master dan 3

transaksi.

Modul 10

VIEW 1

Tujuan : Membuat View untuk menampilkan data dari satu atau beberapa table dengan membungkus suatu
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
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.!

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 menjadi 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

Syntax

CREATE VIEW view_name AS select_statement

Sebelum query SELECT yang akan disimpan ke dalam view. Penamaan view memiliki aturan yang sama dengan penamaan table. Nama view harus unik artinya

nama

sebelumnya.

view

tidak

diperkenankan

sama

dengan

nama

view

yang

sudah

ada

tidak diperkenankan sama dengan nama view yang sudah ada Pesan di atas akan tampil jika terjadi

Pesan di atas akan tampil jika terjadi 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 Artikel dengan struktur

tabel-tabel berikut ini : 1. Tabel Artikel dengan struktur 2. Tabel guestbook dengan struktur 3. Tabel

2. Tabel guestbook dengan struktur

berikut ini : 1. Tabel Artikel dengan struktur 2. Tabel guestbook dengan struktur 3. Tabel Materi

3. Tabel Materi dengan struktur

4. Insert data pada masing-masing tabel 5. Tampilkan data judulartikel, author dan tanggal dari tabel

4. Insert data pada masing-masing tabel

5. Tampilkan data judulartikel, author dan tanggal dari tabel artikel

data judulartikel, author dan tanggal dari tabel artikel 6. Buat View dengan nama V_artikel1 untuk menampilkan

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

dengan nama V_artikel1 untuk menampilkan data pada soal no 5 7. Tampilkan semua data pada tabel

7. Tampilkan semua data pada tabel v_artikel1

pada soal no 5 7. Tampilkan semua data pada tabel v_artikel1 Jadi bisa anda lihat bahwa

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 judulartikel, 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 diatas, berikan kesimpulannya.

2. Buat table film dan jenis film dengan tampilan sebagai berikut jika hasilnya diselect :

3. Isi tabel jenisfilm :

berikut jika hasilnya diselect : 3. Isi tabel jenisfilm : 4. Isi tabel film : 5.

4. Isi tabel film :

diselect : 3. Isi tabel jenisfilm : 4. Isi tabel film : 5. Berikut ini perintah

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

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

6. Buat perintah view untuk :

a. Mengurutkan data film berdasarkan kolom 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 kolom 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 Join) dan simpan dengan nama v_film5

MODUL 11

View 2

Tujuan : Membuat View untuk menampilkan data dari satu atau beberapa table dengan membungkus suatu
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
Tugas Pendahuluan
1. Apa saja keuntungan dan kerugian menggunakan view?
2. Mengapa View lebih optimal pemakaiannya dibanding
perintah select, jelaskan!
3. kenapa view bisa dijadikan sebagai kode rahasia untuk
menampikan suatu tabel, jelaskan!

I. Teori

1.1 View

View dalam sql juga merupakan suatu table yang diturunkan dari table yang lain. Table ini bias 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.

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 lagi, 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 didefinisikan pada suatu table tunggal tanpa fungsi- fungsi pendukung (aggregate) yang bias dimapping kedalam suatu table dasar pembentuknya dengan berbagai cara. Topic tentang update view ini masih terus diuji coba. Untuk menggambarkan masalah yang potensial dengan mengupdate view yang telah didefinisikan dalam beberapa table, misal table Work_ON1 dan mendukung perintah untuk mengupdate attribute pname dari ‘john smith’ dan dari ‘productX’ ke ‘productY’. View ini ditunjukkan sebagai berikut :

Update work_on1 Set pname =’productY’ Where Lname = ‘smith’and Fname= ‘john’ and Pname = ‘productX’

Secara umum kita tidak dapat menjamin bahwa setiap tampilan bisa 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 didefinisikan 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 :

2. Kegiatn praktikum 1. Buat table golongan, jabatan dan pegawai dengan data sebagai berikut : Tabel

Table jabatan

Table jabatan Tablepegawai 2. Buat view dengan nama latihanview1 untuk menampilkan seluruh data pegawai yang jabatannya

Tablepegawai

Table jabatan Tablepegawai 2. Buat view dengan nama latihanview1 untuk menampilkan seluruh data pegawai yang jabatannya

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 latihanview3 untuk menampilkan data nip, nama dan golongan pegawai serta tunjangan golongan yang didapat (gunakan select multiple table)

5. Buat view dengan nama latihanview4 untuk menampilkan seluruh data pegawai beserta gaji total yang diperolehnya. Gaji total merupakan hasil perhitungan dari gaji pokok di 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

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

MODUL XII Evaluasi Praktikum II

Tujuan : Praktikan dapat mengimplementasikan semua modul praktikum ini pada aplikasi
Tujuan :
Praktikan dapat mengimplementasikan semua modul praktikum ini pada
aplikasi

Tugas dan Kegiatan Praktikum :

1. Buat Desain tabel sistem Informasi Rumah makan untuk nip. Ganjil, dan sistem informasi ticketing untuk nip. Genap

2. Buat normalisasi 3, desain CDM dan PDM, minimal 4 tabel master dan 2 traksaksi.

3. Buat perintah sql mulai create tabel, insert, update, perintah agregate, join, aljabar relasional.

4. Demo project kepada dosen yang bersangkutan

Atau

Tugas project ditentukan oleh dosen pengampu