Anda di halaman 1dari 75

MODUL PRAKTIKUM

BASIS DATA 1

D3 Manajemen Informatika
Fakultas Teknik
Universitas Trunojoyo

1
2
MODUL I
MEMBUAT DESAIN BASISDATA

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

3
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).
Alasan Perlunya Database
o Basis data merupakan salah satu komponen penting dalam system informasi, karena merupakan
dasar dalam menyediakan informasi.
o Basis data menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan. Informasi
dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya
mendapatkannya.
o Basis data mengurangi duplikasi data (data redudancy).
o Dengan mengaplikasikan basis data hubungan data dapat ditingkatkan.
o Basis data dapat mengurangi pemborosan tempat simpanan luar.
Komponen Bahasa Basis
- DataData Definition Language (DDL)
- Data Manipulation Language (DML)
Data Definition Language
• Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili
desain basis data secara keseluruhan.
• Hasil kompilasi perintah DDL adalah kamus data >>File yang berisi metadata (data yang
mendeskripsikan data sesungguhnya)
• Struktur penyimpan dan metode akses yang digunakan oleh sistem basis data disebut dengan
data storage and definition language
Data Manipulation Language (DML)
• Digunakan untuk memanipulasi basis data
• Bentuk manipulasi

4
• Pencarian kembali data lama
• Penyisipan data baru
• Penghapusan data
• Pengubahan data
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.

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.

5
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
Tanggungan: nama, jenis kelamin, tanggal lahir, hubungan dengan pegawai
4. 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)

6
3. Kesimpulan
• Model Data merupakan sekumpulan konsep-konsep untuk menerangkan data, hubungan-
hubungan antara data dan batasan-batasan data yang terintegrasi di dalam suatu organisasi.
• Tabel di desain berdasarkan entitas dan karakteritik dari sistem informasi
• Dalam menetukan atribut dari suatu tabel di dasarkan pada kebutuhan dari sistem dan tidak boleh
terjadi redudansi data atau data yang dobel

4. Tugas
• Menentukan atribut dari tabel
• Tentukan entitas dari sistem informasi akademik, misalnya pada proses perwalian mahasiswa awal
semester dalam pengambilan matakuliah, ceritakan argumentasi anda dulu
• Masing-masing dari entitas, tentukan atributnya dan Desain tabelnya

7
8
MODUL II
NORMALISASI DATA

Tujuan :
. Mahasiswa mampu memahami dan membuat normalisasi table sehingga tidak terjadi duplikasi
data (redundansi data), mengurangi kompleksitas, mempermudah pemodifikasian data dan
membuat normalisasi bentuk 1, normalisasi bentuk 2 dan normalisasi 3

PrePraktikum
1. Apa yang dimaksud dengan 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
memperoleh tabel dan basis data yang lebih baik?

1. Dasar Teori
PENGERTIAN TABEL
Model konseptual harus memandang data dengan logika yang paling sederhana. Cara ini di
tempuh dengan membuat blok data dasar untuk mengorganisasi kelompok data. Blok data dasar yang
paling umum di gunakan dalam sistem basis data adalah tabel (”Table”) atau di sebut juga relasi
(”relation”). Relational Data Model Merepresentasikan data pada basisdata sebagai kumpulan dari relasi-
relasi (relations) atau disebut sebagai relational database. Relasi data model merupakan Struktur data
dasar yang menyimpan informasi digunakan untuk menyimpan entitas (table), attribut maupun relasinya.
Tabel tersusun menurut baris dan kolom, dimana baris yang memuat data yang saling berhubungan satu
dengan lainnya dan kolom memuat data-data dengan tipe yang sama, contoh table mahasiswa

Nim Nama Alamat Jurusan Telp


21002001 Firman Surabaya T. Inf. 081331909011
21001001 Anton Surabaya T. Ind. 081332123989
21004001 Wiwid Malang T. Ind. 081332768989
21002002 Yeni Sidoarjo T. Inf. 081332980989
21002003 Isa A Malang T. Inf. 081332876989

► Jumlah tuple / baris = 5 (setiap baris di sebut tuple atau record)

9
► Jumlah attribut = 5 (nim, nama, alamat, jurusan, telp)
Karakteristik Tabel
1. Strukturnya sebagai table Nama relasi, attribut sebaiknya mengidentifikasi fungsi relasi dan
attribut yang bersangkutan
2. Urutan attribut sebaiknya disesuaikan dg kebutuhan (penting untuk dipertimbangkan)
3. Urutan nilai tuple/record disesuaikan dengan keperluan (misalnya untuk pencarian)
4. Type dan ukuran attribut sangat penting untuk dipertimbangkan sesuai dengan kebutuhan
5. Penduduk (NIK, Nama, Alamat, Rt/Rw, KodeKel, JenisKelamin, StatusMarital,
Tmp_TglLahir, Pekerjaan, Pendidikan)
6. Nama relasi (entity) / tabel = Penduduk
7. Attribut ke 1 = Nik
8. Attribut ke 2 = Nama
9. Attribut ke 12 = Pendidikan
10. Jumlah attribut = 12
Tabel Penduduk :
NIK Nama Almt RT/RW Kodekel Jeniskel Status Tmp_tgl_lahir Pekerjaan Pend.

Attribut Key / kunci dalam table :


► Setiap tuple dari suatu relasi akan berbeda dengan tuple lainnya : misal key = nik)
► Setiap tuple adalah kombinasi dari nilai semua attribut yang ada (1 tuple = isinya 10 attribut
► Kumpulan attribut disebut sebagai superkey
► Key adalah superkey minimum(nik sebagai superkey)

PENGERTIAN NORMALISASI
Normalisasi adalah suatu teknik untuk meng-organisasi data ke dalam tabel-tabel untuk
memenuhi kebutuhan pemakai di dalam suatu organisasi. Bentuk normalisasi yang sering di gunakan
adalah normalisasi bentuk ke 1, normalisasi bentuk ke 2, normalisasi bentuk ke 3 dan BCNF
Proses Normalisasi
 Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke
beberapa tingkat.
 Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah
menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi
Bentuk Tidak Normal

10
Menghilangkan perulangan group
Bentuk Normal Pertama (1NF)
Menghilangkan ketergantungan sebagian
Bentuk Normal Kedua (2NF)
Menghilangkan ketergantungan transitif
Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil dari
ketergantungan fungsional
Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang tersisa
Bentuk Normal Kelima
Functional Dependency (Ketergantungan Fungsional)
Untuk melakukan normalisasi, harus bisa menentukan terlebih dahulu Functional Dependency
(Ketergantungan Fungsional)khususnya dalam melakukan dekomposisi rancangan database.
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika dan
hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.
Misal, terdapat database Penjualan
Pelanggan (Kode_Plg, nama, alamat)
Tabel mhs
Kode_Plg nama
211001 Naurah
211002 Yeni
211003 Aqilah
Ketergantungan fungsional dari tabel mahasiswa adalah :
Kode_Plg ---> nama (artinya nama tergantung pada Kode_Plg)
Ketergantungan Fungsional Penuh
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika
Y tidak tergantung pada subset dari X ( bila X adalah key gabungan)
Contoh :
Pelanggan-Barang( Kode_Plg, Nama, Kode_barang, Total)

11
Kode_Plg Nama Kode_Barang Total
211001 Naurah KD001 3000
211002 Yeni KD002 2000
211003 Aqilah KD002 3500

Ketergantungan fungsional :
Kode_Plg --> nama
Kode_Plg, Kode_Barang --> Total (Tergantung penuh thd keynya)

Ketergantungan Transitif
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung
pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. ( X Y, Y
Z , maka X Z )
2. Kegiatan Praktikum 1
Tabel Kirim

Kode_Plg Kode-kota Kota Kode_Barang Total


211001 1 Jakarta KD001 1000
211001 1 Jakarta KD002 1500
211001 1 Jakarta KD003 2000
211002 3 Bandung KD004 1000
211003 2 Surabaya KD001 2000

Ketergantungan fungsional :
Kode_Plg Kode-kota
Kode-kota Kota , maka
Kode_Plg Kota
Bentuk Normal Kesatu (1NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik
yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data

12
Tabel KIRIM-1 (Unnormal)
Kode_Plg Kode-kota Kota Kode_Barang Total
211001 1 Jakarta KD001 1000
KD002 1500
KD003 2000
211002 3 Bandung KD004 1000
211003 2 Surabaya KD001 2000

Tabel KIRIM-2 (1NF)


Kode_Plg Kode-kota Kota Kode_Barang Total
211001 1 Jakarta KD001 1000
211001 1 Jakarta KD002 1500
211001 1 Jakarta KD003 2000
211002 3 Bandung KD004 1000
211003 2 Surabaya KD001 2000

Diagram Ketergantungan Fungsional

Kode_kota
Kode_Plg
Total Kota

Kode_Brg

Bentuk Normal Kedua (2NF)


Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah
memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap
keynya.

Tabel Pelanggan (2NF)


Kode_Plg Kode_kota Kota
211001 1 Jakarta
211002 3 Bandung
211003 2 Surabaya

13
Bentuk Normal Ketiga (3NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah
memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap
keynya.
Tabel KIRIM-3 (3NF)
Kode_Plg Kode_Brg Jumlah
211001 KD001 1000
211001 KD002 1500
211001 KD003 2000
211002 KD004 1000
211003 KD001 2000

Tabel Pelanggan-2 (3NF) Tabel Pelanggan-3 (3NF)


Kode_Plg Kode_kota Kode_kota Kota

211001 1 1 Jakarta
211002 3 2 Surabaya
211003 2 3 Bandung

Boyce-Codd Normal Form


• Suatu Trivial FD adalah suatu bentuk YZ → Z
• Suatu relasi R dalam kondisi Boyce-Codd Normal Form (BCNF) jika untuk semua nontrivial FD X →
A, X adalah superkey
• BCNF adalah suatu bentuk yang lebih kuat dari normalisasi ke tiga. 3NF equivalent dengan perkataan
bahwa untuk setiap nontrivial FD X → A, dimana X dan A merupakan simple atau composite attribut,
satu dari dua kondisi harus dipenuhi.
X adalah superkey, atau
A adalah prime attribute
• BCNF mengelimisasi kondisi kedua dari 3NF

Kegiatan Praktikum 2 :
Normalisasi pada database perkuliahan
Asumsi :

14
 Seorang mahasiswa dapat mengambil beberapa mata kuliah
 Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa
 Satu mata kuliah hanya diajarkan oleh satu dosen
 Satu dosen dapat mengajar beberapa mata kuliah
 Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai
Tabel MAHASISWA-1 ( Unnormal )
No Nama Nama MK KodeDosen Nama Nilai
Jurusan KodeMK
Mhs Mhs Dosen
2683 Welli MI MI350 Manajamen DB B104 Ati A
MI465 Analsis Prc. B317 Dita B
Sistem
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
AKN201 Akuntansi D310 Lia B
Keuangan
MKT300 Dasar B212 Lola A
Pemasaran

Diagram Ketergantungan Fungsional

Nama_Mhs

No_Mhs jurusan

Nilai
Nama_MK

Kode_MK Kode_Dosen

Nama_Dose
n

Buat : Tabel MAHASISWA-2 ( 1NF )


• Tabel KULIAH (2NF)
• Tabel MAHASISWA-3 (3NF)
• Tabel NILAI (3NF)
• Tabel MATAKULIAH (3N
15
• Tabel DOSEN (3NF)
3.Kesimpulan
• Normalisasi adalah Suatu Teknik/Cara yang digunakan untuk menganalisa relasi berdasarkan pada
primary key dan ketergantungan secara fungsional.
• Normalisasi dibagi menjadi bentuk normal I, bentuk normal II, bentuk normal III, dan BCNF
• Functional dependencies menggambarkan relasi antar attribut dalam satu skema relasi

4.Tugas Praktikum
Perincian tabel pada sistem informasi travel adalah sebagai berikut :
Nama Tanggal Banyak
No Tujuan Kelas Harga
Pelanggan Berangkat Pulang Kursi
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
4 endy 23-06-2011 15-06-2011 Bali-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

16
MODUL III
ALJABAR RELATIONAL PADA TABEL

Tujuan :
. Mahasiswa mampu menjelaskan dan memehami perintah-perintah dalam aljabar relational dan
menerapakan perintah aljabar relasional untuk memanipulasi relasi-relasi yang akan di gunakan
dalam bahasa query (DML / Data Manipulation Language)

PrePraktikum
1. Apa yang di maksud dengan aljabar relational
2. Sebutkan operasi dasar aljabar resional
3. Apa yang di maksud Operasi Pengurangan Himpunan ( Set Difference)
4. Apa yang di maksud dengan Operasi Set
5.

1. PENGERTIAN 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. Sekumpulan operasi yang digunakan untuk memanipulasi relasi-relasi, Operasi-
operasi dasar dalam aljabar relasional adalah Select, Project, Union, set difference, Cartesian product dan
rename. Disamping operasi-operasi dasar terdapat beberapa operasi lainnya seperti set intersection,
natural join, division dan assignment. Operasi-operasi ini akan didefinisikan dalam terminology operasi
dasar. Operasi-operasi select, project dan rename disebut operasi unary, karena operasi-operasi tersebut
hanya memerlukan satu relasi. Operasi lainnya (Cartesian product, set intersection, natural join, division,
Union) memerlukan sepasang relasi, disebut operasi binary.

OPERATOR DASAR
1. OPERASI SELECT
• Digunakan untuk memilih satu sub-set record dalam suatu relasi yang memenuhi kondisi
pemilihan
• Digunakan symbol sigma (σ) untuk menunjukkan operasi select.

• Bentuk umum : σ <kondisi pemilihan> (<nama relasi>)


• Dimana σ = select operator
<kondisi pemilihan> = operasi boolean

17
• Predikat muncul sebagai subcript dari σ. Argumen relasi diberikan dalam kurung yang mengikuti
σ.

• Jadi untuk menyeleksi tuple-tuple dari relasi table gaji dimana jabatan adalah staf admin ditulis :

σjabatan = “staf admin”(gaji)

Jika relasi Gaji adalah :

Nama Karyawan Jabatan Tunjangan Alamat

Zakia Naurah Manajer 2000000 Surabaya

Laras Suci Staf Admin 1000000 Malang

Aqilah W Manajer 2000000 Surabaya

Jaka Purnama Personalia 1500000 Surabaya

Yeni Kustiyah Staf Admin 1000000

Nama Karyawan Jabatan Tunjangan

Laras Suci Staf Admin 1000000

Yeni Kustiyah Staf Admin 1000000

Contoh-contoh query lain dengan operasi select adalah : σTunjangan>=1000000(gaji),


• untuk menemukan tuple dengan tunjangan lebih 1000000, σjabatan = “manajer” and tunjangan
>1000000 (gaji), untuk menemukan tuple dengan jabatan = “Manajer” dimana nilai tunjangannya
lebih dari 1000000.
2. OPERASI PROJECT
• Dengan memandang relasi sebagai tabel, maka operasi ini digunakan untuk memilih
sejumlah kolom tertentu dari tabel.
• Seandainya diinginkan semua daftar Nama_karyawan dan jabatan, tanpa tunjangan.

• Dengan operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan dengan symbol phi
(π).

• Nama-nama atribut yang diinginkan tampil ditulis sebagai subcript π.

• Contoh : πnama_karyawan, tunjangan(gaji), adalah operasi untuk menampilkan seluruh nama


karyawan dan tunjangan

Bentuk umum :

18
π <daftar atribut > (<nama tabel>)

• Hasil operasi tersebut adalah :

Nama Karyawan Tunjangan

Zakia Naurah 2000000

Laras Suci 1000000

Aqilah W 2000000

Jaka Purnama 1500000

Yeni Kustiyah 1000000

3. SELECT dan PROJECT


Komposisi Operasi-operasi relasional
• Berikut contoh query yang lebih kompleks : “ Temukan Karyawan yang tinggal di Surabaya “.
Maka query-nya ditulis :
• Πnama_karyawan(σalamat=”Surabaya”(gaji))
• perhatikan bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk suatu relasi.
• Oleh karenanya, operasi-operasi aljabar relasional dapat digabung dengan suatu ekspresi aljabar
relasional.

OPERASI TEORI SET


• Operasi Union
• Operasi Pengurangan Himpunan ( Set Difference)
• Operasi Cartesian –product
• Operasi Rename
• OPERASI JOIN
• Fungsi Aggregate ( )
• SUM : menjumlah nilai dari suatu atribut
• AVERAGE : mencari rata-rata nilai dari suatu atribut
• MAXIMUM : mencari nilai paling besar dari suatu atrbiut
• MINIMUM : mencari nilai paling besar dari suatu atribut
• COUNT : menghitung jumlah record

2. Kegiatan Praktikum
Gunakan Tabel di bawah ini :
Gunakan aljabar relasional untuk mencari :
19
- Nama Departement yang beralamat atau berlokasi di Jl. Cipto kusumo 23 dan
hasil querynya
- Tuliskan perintah aljabar relasional untuk mencari nama project dari table
project yang memiliki lokasi di Jawa Timur

3. KESIMPULAN
• Jika E1 & E2 adalah ekspresi aljabar-relasional, maka berikut ini adlah semua ekspresi aljabar-
relasional :

- E1 U E2

- E1 – E2

- E1 x E2

- σp(E1), dimana p adalah sebuah predikat untuk atribut-atribut dalam E1

- πs(E1), dimana s adalah daftar yang terdiri dari bebrapa atribut dalam E1

- ρx(E1), dimana x adalah nama baru untuk hasil E1

4. Tugas Praktikum (SESUAI TABEL DIATAS)

1. Dapatkan subset dari pegawai yang bekerja pada Departemen 4 dan mempunyai gaji lebih
besar daripada 50000

20
Jwb .

σ(DNO=4) and (SALARY > 50000) (EMPLOYEE)

2. Dapatkan atribut LNAME (nama belakang) dan SALARY (gaji) dari tabel EMPLOYEE
Jwb.
πLNAME, SALARY (EMPLOYEE)

3. Dapatkan list dari nama (LNAME) dan SALARY dari semua pegawai yang bekerja pada
departemen 5 :
4. Dapatkan nomer induk pegawai (SSN) dari semua pegawai yang bekerja pada departemen
5 atau yang secara langsung menjadi supervisor dari pegawai yang bekerja pada
departemen 5
5. Dapatkan nama-nama pegawai yang bekerja pada semua project dimana ‘Smith’ juga
bekerja di dalamnya. / set division
SMITH <= σ LNAME=‘Smith’ (EMPLOYEE)
SMITH_PNOS <= π PNO (WORKS_ON ESSN=SSN SMITH)
SSN_PNOS <= π PNO,ESSN (WORKS_ON)
TEMP_RES <= SSN_PNOS SMITH_PNOS
RESULT <= π LNAME (TEMP_RES X EMPLOYEE)
6. Dapatkan setiap nomer department, jumlah pegawai dalam department dan gaji rata-rata
mereka./ agregasi

21
22
MODUL IV
MYSQL

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!
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()

23
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

24
 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 :

Gambar 1.1 Dialog instalasi MySQL Server

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

Gambar 1.2 Tipe Instalasi MySQL


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

25
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 :

Gambar 1.4 Penambahan fitur development


5. Kemudian pilih tombol Change..., pada folder name ubah menjadi sesuai dengan gambar berikut ini
:

Gambar 1.5 Penyimpanan data MySQL


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

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 :

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

Gambar 1.8 pilihan jenis konfigurasi server


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

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.

Gambar 1.20 konfigurasi password server

11. Klik tombol Execute sebagai tahap akhir.

27
Gambar 1.21 proses konfigurasi server
12. Klik Finish.

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 :

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 :

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’);
28
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.Kesimpulan :
1. MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System atau
RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya.
 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 dan Tipe data string
29
4. Tugas Praktikum

Di dalam database kepegawaian, buat tabel-tabel yang akan digunakan sesuai dengan CDM/PDM
yang dibuat pada modul 1 menggunakan sintak query? Tentukan field/atribut dan tipe data yang
digunakan utk masing-masing tabel ?

30
MODUL V
DDL I

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 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 Membuat database
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

31
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_tabel→ nama tabel yang berisi kolom index akan dibuat.
 nama_kolom→ nama 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.

32
 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

Kemudian gunakan perintah untuk membuat tabel seperti berikut :

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 :

Latihan 4 : Membuat dan Menghapus Indeks


Buat index data Departemen berdasarkan Nomor dengan nama indeks dept, maka perintah yang
digunakan sebagai berikut :

Untuk menghapus indeks yang telah dibuat gunakan perintah berikut :


Drop Index nama_index on nama_tabel;

Contoh :

Latihan 5 : Membuat indeks yang unik


33
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. Kesimpulan
1. SQL adalah bahasa query baku untuk DBMS. Secara umum, SQL terdiri dari dua bahasa, yaitu
Data Definition Language (DDL) dan Data Manipulation Language (DML).
2. DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-
objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Perintah DDL
yang digunakan adalah CREATE, USE, ALTER, DROP.
3. Operasi DML (Data Manipulation Language) digunakan untuk memanipulasi data yang ada
dalam suatu tabel. Perintah yang umum dilakukan adalah:
o SELECT untuk menampilkan data
o INSERT untuk menambahkan data baru
o UPDATE untuk mengubah data yang sudah ada
o DELETE untuk menghapus data
4. 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

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

34
MODUL VI
DDL II

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

35
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 CONSTRAINT PRIMARY KEY (namakolom);
Perhatikan struktur tabel pegawai berikut :

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

Struktur tabel pegawai setelah ditambah primary key pada field NoKTP

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

Struktur tabel setelah primary key dihapus seperti berikut :

Latihan 3 : Menambah Kolom Baru Pada Tabel


Perintah untuk menambah kolom baru pada tabel seperti berikut :
37
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 :

Struktur tabel setelah ditambah atribut NoTelp seperti berikut :

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)

Struktur tabel setelah diganti seperti berikut :

38
Latihan 5 : Mengubah Nama Kolom
Perintah yang digunakan :
ALTER TABLE namatabel CHANGE COLUMN NamaKolomLama NamaKolomBaru tipedata;

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 :

Struktur tabel setelah diubah:

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 :

Struktur tabel setelah kolom Telp dihapus seperti berikut :

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:
39
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 :

Struktur tabel setelah ditambah foreign key seperti berikut :

Latihan 8 : Menghapus Foreign Key


Perintah yang digunakan :
ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;

Lakukan perintah berikut untuk menghapus foreign key :

3. Kesimpulan
1. Data Definition Language (DDL) digunakan untuk membuat dan menghancurkan database dan
objek database.
2. Perintah DDL terdiri dari empat dasar yaitu Create, Use, Alter, Drop
3. Constraint adalah batasan atau aturan yang ada pada table.Yaitu NN, Unique, PK, FK.
40
4. 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.

41
MODUL VII
Evaluasi Praktikum I

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

42
MODUL VIII
DML (DATA MANIPULATION LANGUAGE)

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

43
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 :

Atau

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’ :

Latihan 3 : Menghapus data


Pernyataan DELETE digunakan untuk menghapus baris pada tabel, perintah yang digunakan seperti
berikut:

44
DELETE FROM nama_tabel
WHERE nama_kolom = nilai;

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

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 :

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 :

45
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 :

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
46
>= 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:

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 :

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 yang huruf kedua namanya adalah “a”:
47
3. Kesimpulan
1. DML (Data Manipulation Language) adalah bahasa yang memungkinkan pengguna mengakses
atau memanipulasi data seperti yang diatur oleh model data.
2. Perintah DML antara lain insert into, select, klausa where, pernyataan distinct, kondisi like

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

48
MODUL IX
DML (DATA MANIPULATION LANGUAGE)

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

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

49
3. 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 :

Atau

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 :

50
Atau

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 :

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.

Latihan 4 : Klausa Order By

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

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

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 :

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

52
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 :

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

53
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 :

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 :

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 :

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

Latihan 8 : Klausa GROUP BY

54
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 :

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:

3.Kesimpulan
1. SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN ORDER BY merupakan kata
kunci (keyword) yang harus disertakan jika kita membutuhkannya di dalam pengolahan data.
2. Select_list, table_source, search_condition, group_by_expression, order_expression merupakan
isian yang bisa kita ubah berdasarkan kebutuhan kita
3. Fungsi Aggregate terdiri dari COUNT, SUM, AVG, MIN dan MAX

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

56
MODUL X
DML (DATA MANIPULATION LANGUAGE)

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

2. Buat table barang dan karyawan

57
3. Buat Tabel Pelanggan

4. Buat Tabel STOK


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

5. Buat table pesan dan transaksi seperti di bawah ini

pesan
id_pesan <pi> Integer
tgl Date
jumlah Variable characters (25)
Identifier_1 <pi>
...

transaksi
id_transaksi <pi> Integer
tgl_masuk Date
tgl_keluar Date
jumlah_masuk Variable characters (25)
jumlah_keluar Variable characters (25)
Identifier_1 <pi>
...

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

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

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

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

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

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

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

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

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

61
15. 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.
3.Kesimpulan
1. 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
2. Penggunaan perintah select adalah untuk join, inner join, left join, right join, except, union,
intersect, operator or dan any, natural join

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

63
64
Modul XI
VIEW 1

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

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 view tidak diperkenankan sama dengan
nama view yang sudah ada sebelumnya.

65
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

2. Tabel guestbook dengan struktur

3. Tabel Materi dengan struktur

4. Insert data pada masing-masing tabel


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

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

7. Tampilkan semua data pada tabel v_artikel1

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.

67
3. Kesimpulan
1. View adalah query SELECT yang disimpan dalam database untuk menampilkan data dari satu
atau beberapa table
2. Syarat utama penggunaan perintah view adalah harus ada tabel utamanya
3. Perubahan struktur dan tipe data hanya bisa di lalukan pada tabel utamanya saja, dan bukan tabel
hasil view
4. 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 :

4. Isi tabel film :

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

68
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

69
70
MODUL XII
View 2

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 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)
71
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 :

Table jabatan
72
Tablepegawai

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. Kesimpulan
• Secara umum suatu update dari suatu view didefinisikan pada suatu table tunggal tanpa fungsi-
fungsi pendukung (aggregate) yang bisa dimapping kedalam suatu table dasar pembentuknya
dengan berbagai cara
4. 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

73
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

74
MODUL XIII
Evaluasi Praktikum II

Tujuan :
Praktikan dapat mengimplementasikan semua modul praktikum ini pada aplikasi

Tugas dan Kegiatan Praktikum :


Buat Desain tabel sistem Informasi Rumah makan untuk nip. Ganjil, dan sistem informasi ticketing
untuk nip. Genap
Buat normalisasi 3, desain CDM dan PDM, minimal 4 tabel master dan 2 traksaksi.
Buat perintah sql mulai create tabel, insert, update, perintah agregate, join, aljabar relasional.
Demo project kepada dosen yang bersangkutan

Atau

Tugas project ditentukan oleh dosen pengampu

75

Anda mungkin juga menyukai