Praktikum Basis Data
Praktikum Basis Data
Praktikum Basis Data
LABORATORIUM
TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
PETUNJUK
PRAKTIKUM
BASIS DATA
Penyusun:
Dewi Soyusiawaty, S.T., M.T.
Anna Hendri Soleliza Jones, S.Si., M.Cs.
2020
Miftahurrahmah Rosyda, S.Kom., M.Eng.
Sri Winiarti, S.T., M.Cs.
Jefree Fahana, S.T., M.Kom.
1
KATA PENGANTAR
Puji dan syukur kita panjatkan kepada Allah SWT yang telah memberi rahmat dan hidayahNya
sehingga penyusunan revisi petunjuk praktikum Basis Data ini akhirnya bisa diselesaikan. Modul ini
disusun sebagai panduan untuk pelaksanaan praktikum mata kuliah Basis Data di lingkungan Program
Studi Teknik Informatika Universitas Ahmad Dahlan.
Materi yang disajikan sudah diurutkan disesuaikan dengan RPS berbasis Outcome Based
Education (OBE) matakuliah basidata, sehingga mahasiswa dapat dengan mudah memahami. Pada
setiap pertemuan diberikan penjelasan tentang teori terkait materi yang diberikan dan langkah
praktikum berisi tahapan kegiatan yang harus dilakukan mahasiswa/praktikan pada saat praktikum.
Penulis menyadari masih banyak ketidaksempurnaan pada penulisan ini, baik isi maupun
redaksinya, oleh karenanya kritik dan saran yang membangun diharapkan dapat memperbaiki untuk
tahun-tahun berikutnya.
Terima kasih kepada semua pihak yang telah membantu baik secara langsung ataupun tidak
terhadap terselesaikannya petunjuk praktikum ini. Akhir kata, insyaAllah dapat bermanfaat bagi siapa
saja yang membutuhkannya.
Penyusun
DAFTAR PENYUSUN
HALAMAN REVISI
NIK/NIY : 60160979
Jabatan : Dosen
Dengan ini menyatakan pelaksanaan Revisi Petunjuk Praktikum Basis Data untuk Program Studi Teknik
Informatika telah dilaksanakan dengan penjelasan sebagai berikut:
Koordinator Penyusun
HALAMAN PERNYATAAN
NIK/NIY : 60150773
Menerangkan dengan sesungguhnya bahwa Petunjuk Praktikum ini telah direview dan akan digunakan
untuk pelaksanaan praktikum di Semester Gasal Tahun Akademik 2019/2020 di Laboratorium
Praktikum Teknik Informatika, Program Studi Teknik Informatika, Fakultas Teknologi Industri,
Universitas Ahmad Dahlan.
Mengetahui,
Ketua Kelompok Keilmuan Rekayasa Perangkat Kepala Laboratorium Praktikum Teknik
Lunak dan Data (RELATA) Informatika
VISI
Menjadi Program Studi Informatika yang diakui secara internasional dan unggul dalam bidang
Informatika serta berbasis nilai-nilai Islam.
MISI
1. Menjalankan pendidikan sesuai dengan kompetensi bidang Informatika yang diakui nasional dan
internasional
2. Meningkatkan penelitian dosen dan mahasiswa dalam bidang Informatika yang kreatif, inovatif
dan tepat guna.
3. Meningkatkan kuantitas dan kualitas publikasi ilmiah tingkat nasional dan internasional
4. Melaksanakan dan meningkatkan kegiatan pengabdian masyarakat oleh dosen dan mahasiswa
dalam bidang Informatika.
5. Menyelenggarakan aktivitas yang mendukung pengembangan program studi dengan melibatkan
dosen dan mahasiswa.
6. Menyelenggarakan kerja sama dengan lembaga tingkat nasional dan internasional.
7. Menciptakan kehidupan Islami di lingkungan program studi.
DOSEN/KOORDINATOR PRAKTIKUM
1. Dosen harus hadir saat praktikum minimal 15 menit di awal kegiatan praktikum dan
menandatangani presensi kehadiran praktikum.
2. Dosen membuat modul praktikum, soal seleksi asisten, pre-test, post-test, dan responsi dengan
berkoordinasi dengan asisten dan pengampu mata praktikum.
3. Dosen berkoordinasi dengan koordinator asisten praktikum untuk evaluasi praktikum setiap
minggu.
4. Dosen menandatangani surat kontrak asisten praktikum dan koordinator asisten praktikum.
5. Dosen yang tidak hadir pada slot praktikum tertentu tanpa pemberitahuan selama 2 minggu
berturut-turut mendapat teguran dari Kepala Laboratorium, apabila masih berlanjut 2 minggu
berikutnya maka Kepala Laboratorium berhak mengganti koordinator praktikum pada slot
tersebut.
PRAKTIKAN
1. Praktikan harus hadir 15 menit sebelum kegiatan praktikum dimulai, dan dispensasi terlambat 15
menit dengan alasan yang jelas (kecuali asisten menentukan lain dan patokan jam adalah jam yang
ada di Laboratorium, terlambat lebih dari 15 menit tidak boleh masuk praktikum & dianggap Inhal).
2. Praktikan yang tidak mengikuti praktikum dengan alasan apapun, wajib mengikuti INHAL,
maksimal 4 kali praktikum dan jika lebih dari 4 kali maka praktikum dianggap GAGAL.
3. Praktikan harus berpakaian rapi sesuai dengan ketentuan Universitas, sebagai berikut:
a. Tidak boleh memakai Kaos Oblong, termasuk bila ditutupi Jaket/Jas Almamater (Laki-laki /
Perempuan) dan Topi harus Dilepas.
b. Tidak Boleh memakai Baju ketat, Jilbab Minim dan rambut harus tertutup jilbab secara
sempurna, tidak boleh kelihatan di jidat maupun di punggung (khusus Perempuan).
c. Tidak boleh memakai baju minim, saat duduk pun pinggang harus tertutup rapat (Laki-laki /
Perempuan).
d. Laki-laki tidak boleh memakai gelang, anting-anting ataupun aksesoris Perempuan.
4. Praktikan tidak boleh makan dan minum selama kegiatan praktikum berlangsung, harus menjaga
kebersihan, keamanan dan ketertiban selama mengikuti kegiatan praktikum atau selama berada
di dalam laboratorium (tidak boleh membuang sampah sembarangan baik kertas, potongan kertas,
bungkus permen baik di lantai karpet maupun di dalam ruang CPU).
5. Praktikan dilarang meninggalkan kegiatan praktikum tanpa seizin Asisten atau Laboran.
6. Praktikan harus meletakkan sepatu dan tas pada rak/loker yang telah disediakan.
7. Selama praktikum dilarang NGENET/NGE-GAME, kecuali mata praktikum yang membutuhkan atau
menggunakan fasilitas Internet.
8. Praktikan dilarang melepas kabel jaringan atau kabel power praktikum tanpa sepengetahuan
laboran
9. Praktikan harus memiliki FILE Petunjuk praktikum dan digunakan pada saat praktikum dan harus
siap sebelum praktikum berlangsung.
10. Praktikan dilarang melakukan kecurangan seperti mencontek atau menyalin pekerjaan praktikan
yang lain saat praktikum berlangsung atau post-test yang menjadi tugas praktikum.
11. Praktikan dilarang mengubah setting software/hardware komputer baik menambah atau
mengurangi tanpa permintaan asisten atau laboran dan melakukan sesuatu yang dapat merugikan
laboratorium atau praktikum lain.
Praktikum Basis Data - Teknik Informatika – UAD - 2020
7
12. Asisten, Koordinator Praktikum, Kepala laboratorium dan Laboran mempunyai hak untuk
menegur, memperingatkan bahkan meminta praktikan keluar ruang praktikum apabila dirasa anda
mengganggu praktikan lain atau tidak melaksanakan kegiatan praktikum sebagaimana mestinya
dan atau tidak mematuhi aturan lab yang berlaku.
13. Pelanggaran terhadap salah satu atau lebih dari aturan diatas maka Nilai praktikum pada
pertemuan tersebut dianggap 0 (NOL) dengan status INHAL.
ASISTEN PRAKTIKUM
1. Asisten harus hadir 15 Menit sebelum praktikum dimulai (konfirmasi ke koordinator bila
mengalami keterlambatan atau berhalangan hadir).
2. Asisten yang tidak bisa hadir WAJIB mencari pengganti, dan melaporkan kepada Koordinator
Asisten.
3. Asisten harus berpakaian rapi sesuai dengan ketentuan Universitas, sebagai berikut:
a. Tidak boleh memakai Kaos Oblong, termasuk bila ditutupi Jaket/Jas Almamater (Laki-laki /
Perempuan) dan Topi harus Dilepas.
b. Tidak Boleh memakai Baju ketat, Jilbab Minim dan rambut harus tertutup jilbab secara
sempurna, tidak boleh kelihatan di jidat maupun di punggung (khusus Perempuan).
c. Tidak boleh memakai baju minim, saat duduk pun pinggang harus tertutup rapat (Laki-laki /
Perempuan).
d. Laki-laki tidak boleh memakai gelang, anting-anting ataupun aksesoris Perempuan.
4. Asisten harus menjaga kebersihan, keamanan dan ketertiban selama mengikuti kegiatan
praktikum atau selama berada di laboratorium, menegur atau mengingatkan jika ada praktikan
yang tidak dapat menjaga kebersihan, ketertiban atau kesopanan.
5. Asisten harus dapat merapikan dan mengamankan presensi praktikum, Kartu Nilai serta tertib
dalam memasukan/Input nilai secara Online/Offline.
6. Asisten harus dapat bertindak secara profesional sebagai seorang asisten praktikum dan dapat
menjadi teladan bagi praktikan.
7. Asisten harus dapat memberikan penjelasan/pemahaman yang dibutuhkan oleh praktikan
berkenaan dengan materi praktikum yang diasisteni sehingga praktikan dapat melaksanakan dan
mengerjakan tugas praktikum dengan baik dan jelas.
8. Asisten tidak diperkenankan mengobrol sendiri apalagi sampai membuat gaduh.
9. Asisten dimohon mengkoordinasikan untuk meminta praktikan agar mematikan komputer untuk
jadwal terakhir dan sudah dilakukan penilaian terhadap hasil kerja praktikan.
10. Asisten wajib untuk mematikan LCD Projector dan komputer asisten/praktikan apabila tidak
digunakan.
11. Asisten tidak diperkenankan menggunakan akses internet selain untuk kegiatan praktikum, seperti
Youtube/Game/Medsos/Streaming Film di komputer praktikan.
LAIN-LAIN
1. Pada Saat Responsi Harus menggunakan Baju Kemeja untuk Laki-laki dan Perempuan untuk
Praktikan dan Asisten.
2. Ketidakhadiran praktikum dengan alasan apapun dianggap INHAL.
3. Izin praktikum mengikuti aturan izin SIMERU/KULIAH.
4. Yang tidak berkepentingan dengan praktikum dilarang mengganggu praktikan atau membuat
keributan/kegaduhan.
5. Penggunaan lab diluar jam praktikum maksimal sampai pukul 21.00 dengan menunjukkan surat
ijin dari Kepala Laboratorium Prodi Teknik Informatika.
DAFTAR ISI
Pertemuan ke :1
Pemodelan data di gudang tidak lain adalah menggunakan model data untuk mendesain
database secara konseptual, logis, dan fisik. Demikian pula, mereka digunakan untuk membuat
tabel relasional, kunci utama & asing, dan prosedur tersimpan.
Dalam melakukan praktikum basis data ini, mahasiswa perlu mengenal beberapa tool
pemodelan data baik yang berbayar maupun free. Berikut Beberapa Tools Pemodelan Data
4. MySQL WorkBench
klik next
2. Centang komponen yang diperlukan lalu klik next
4. Proses Instalasi
5. Selesai Instalasi
6. Coba Langsung aktifkan control panel, Klik start pada Apache dan MySQL
1.5. TUGAS
Tugas diberikan oleh asisten praktikum.
Pertemuan ke :2
2. Mengenal MySQL
MySQL adalah Sebuah program database server yang mampu menerima dan mengirimkan datanya
sangat cepat, multi user serta menggunakan peintah dasar SQL (Structured Query Language). MySQL
merupakan dua bentuk lisensi, yaitu Free Software dan Shareware. MySQL yang biasa kita gunakan
adalah MySQL Free Software yang berada dibawah Lisensi GNU/GPL (General Public License). MySQL
merupakan sebuah database server yang free, artinya kita bebas menggunakan database ini untuk
keperluan pribadi atau usaha tanpa harus membeli atau membayar lisensinya.
MySQL pertama kali dirintis oleh seorang programmer database bernama Michael Widenius. Selain
database server, MySQL juga merupakan program yang dapat mengakses suatu database MySQL yang
berposisi sebagai Server, yang berarti program kita berposisi sebagai Client. Jadi MySQL adalah sebuah
Praktikum Basis Data - Teknik Informatika – UAD - 2020
19
database yang dapat digunakan sebagai Client mupun server. Database MySQL merupakan suatu
perangkat lunak database yang berbentuk database relasional atau disebut Relational Database
Management System (RDBMS) yang menggunakan suatu bahasa permintaan yang bernama SQL
(Structured Query Language).
Database MySQL memiliki beberapa kelebihan dibanding database lain, antara lain :
a. MySQL merupakan Database Management System ( DBMS ).
b. MySQL sebagai Relation Database Management System ( RDBMS ) atau disebut dengan
database Relational.
c. MySQL Merupakan sebuah database server yang free, artinya kita bebas menggunakan
database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar
lisensinya.
d. MySQL merupakan sebuah database client.
e. MySQL mampu menerima query yang bertupuk dalam satu permintaan atau Multi Threading.
f. MySQL merupakan Database yang mampu menyimpan data berkapasitas sangat besar hingga
berukuran GigaByte sekalipun.
g. MySQL diidukung oleh driver ODBC, artinya database MySQL dapat diakses menggunakan
aplikasi apa saja termasuk berupa visual seperti Visual Basic, PHP dan Delphi.
h. MySQL merupakan Database Server yang multi user, artinya database ini tidak hanya
digunakan oleh satu pihak orang akan tetapi dapat digunakan oleh banyak pengguna.
i. MySQL mendukung field yang dijadikan sebagai kunci primer dan kunci unik (Unique).
j. MySQL memliki kecepatan dalam pembuatan table maupun update table.
Peminjaman dapat mencari buku yang akan dipinjam dengan menekan tombol find atau search.
Setelah itu sistem informasi akan berinteraksi dengan basis data perpustakaan untuk mencari buku
tersebut. Lalu hasil pencarian akan ditampilkan pada layar. Melalui interaksi yang terjadi antara sistem
informasi dengan basis data, petugas perpustakaan dapat mengetahui secara otomatis jika
peminjaman buku lebih dari ketentuan yang berlaku, peminjam belum mengembalikan buku tetapi
akan meminjam lagi buku yang lain, dan pemberitahuan ada yang kena denda pada hari H. Data yang
disimpan dalam basis data meliputi :
Data buku, misalnya kode buku, judul buku, Data transaksi perpanjangan peminjaman, misal
pengarang, penerbit, dan tahun terbit. tgl perpanjangan, kode buku, jml buku
diperpanjang, no peminjam, perpanjangan ke
Data peminjam, misalnya nomor peminjam,
berapa, dan alasan
nama peminjam, alamat, nomor telepon, dan
email
Data petugas perpustakaan, Data transaksi pengembalikan buku, misal tgl
misalnya nomor induk karyawan, jabatan dan pengembalian, kode buku, jumlah buku yang
level. dikembalikan, nomor peminjam.
Kemudian membuka browser (Chrome, Mozilla, Opera, dll) dan mengaksesnya dengan
mengetikkan “localhost/phpmyadmin” pada kolom isian URL, sehingga muncul seperti pada
gambar di baawah ini.
2. Membuat Database
Pilih menu “new” kemudian isi nama database pada kolom yang sudah disediakan, untuk
keseragaman nama database diisi dengan “3_digit_nim_terakhir_db” kemudian pilih “create”.
3. Membuat Tabel
Membuat tabel dengan nama tabel “mahasiswa” yang memiliki atribut nim, nama, program studi
dan alamat. Langkahnya yaitu pilih menu database yang hingga muncul gambar seperti di bawah
ini.
Kemudian mengisi form untuk memberi atribut pada tabel “mahasiswa” yang sudah dibuat. Pada
entitas ini, atribut nim akan digunakan sebagai pembeda pada data yang akan dimasukkan ke
dalam tabel atau sering disebut primary key. Atribut nim, nama dan program studi diidentifikasi
dengan tipe VARCHAR dengan panjang karakter yang disesuaikan dengan keinginan programmer.
Sedangkan atribut alamat diidentifikasi dengan tipe TEXT karena memiliki jumlah karakter yang
lebih panjang.
Kemudian pada atribut nim, karena sebagai primary key maka pada index diisi dengan PRIMARY
kemudian pilih “Save”.
2.5. TUGAS
Tugas diberikan oleh asisten praktikum.
Pertemuan ke :3
2. XAMPP.
3. Browser (mozilla firefox, chrome).
b. Kemudian isi field atau kolom isian pada bagian value kemudian pilih “Go”, seperti pada
gambar di bawah ini.
c. Untuk memeriksa apakah data sudah masuk ke dalam database, dapat dilakukan dengan
cara pilih pada menu ”Browse”. Seperti pada gambar di bawah ini.
Ulangi langkah menginputkan data hingga terdapat 3 data dalam tabel “mahasiswa”. Perlu
diketahui bahwa atribut nim sebagai primary key, sehingga pada value yang diinputkan tidak
boleh sama.
2. Read Data
Pada langkah ini digunakan untuk membaca atau mengambil data yang terdapat pada tabel
mahasiswa. Terdapat beberapa query untuk membaca data sesuai yang ingin ditampilkan.
a. SELECT * : Untuk membaca data dengan seluruh atribut yang ditampilkan. Query :
SELECT * FROM nama_tabel.
b. SELECT : Untuk membaca data dengan satu atau lebih atribut yang
ditampilkan. Query : SELECT atribut_1, atribut_2 FROM nama_tabel.
c. SELECT … WHERE : Untuk membaca data dengan suatu kondisi yang diinginkan. Query :
SELECT * FROM nama_tabel WHERE id = 1.
b. Misalkan data yang akan ditampilkan yaitu mahasiswa dengan nim 1400018176. Maka
query yang dibutuhkan yaitu SELECT * FROM mahasiswa WHERE nim = ‘1400018176’.
Kemudian pilih “Go”, sehingga tampak seperti pada gambar di bawah ini.
3. Update Data
Pada langkah ini digunakan untuk mengubah atau memodifikasi nilai atribut atau data dalam
tabel atau entitas. Langkah mengubah data atau update data adalah sebagai berikut :
a. Pilih menu “Browse” kemudian klik “edit” pada value atau field yang akan diubah datanya.
Seperti pada gambar di bawah ini.
b. Kemudian isi field yang akan diubah, misalkan data yang akan diubah yaitu pada field
alamat. Kemudian klik “Go” sehingga seperti pada gambar dibawah ini.
4. Delete Data
Pada langkah ini perintah DELETE digunakan untuk menghapus satu atau lebih data dalam
sebuah tabel. Langkah menghapus data yaitu dengan klik “Delete” pada menu “Browse”.
Seperti pada gambar dibawah ini.
3.5. TUGAS
Tugas diberikan oleh asisten praktikum.
Pertemuan ke :4
Total Alokasi Waktu : 180 menit (Alokasi waktu disesuaikan dengan RPS)
Pre-Test : 30 menit
Praktikum : 120 menit
Post-Test : 30 menit
Tabel 4.1. menjelaskan beberapa kosakata yang umum digunakan. Beberapa istilah yang
sama memiliki pengertian berbeda tergantung pada model yang digunakan. Istilah dalam
kolom paling kiri di bawah (ER Mode) bukan merupakan empat komponen dalam konstruksi
ER model.
b. Algoritma Pemetakan model Relasi Entitas (ERD) Ke Relasi Tabel (Relational Model).
Di dalam basis data yang menjadi pusat perhatian dan intisari sistem adalah tabel dan
relasinya. Istilah tabel ini muncul dari abstraksi data pada level fisik.Tabel ini sama artinya
dengan entitas dari model data pada level konseptual. Setiap orang bisa membuat tabel tetapi
membuat tabel yang baik tidak semua orang dapat melakukannya. Kebutuhan akan membuat
tabel yang baik ini ini melahirkan beberapa teori atau metode antara lain ialah pemetakan ER
to table dan Normalisasi.
Uraian materi di bawah ini menjelaskan pemetakan ER model ke relasi tabel sedangkan
Algoritma atau Langkah-langkah yang dilakukan untuk memetakan ER diagram ke tabel
relasional yaitu sebagai berikut:
1) Untuk setiap entitas kuat, buat tabel baru Entitas Kuat yang menyertakan seluruh
simple atribut dan simple atribut dari composite atribut yang ada. Pilih salah satu
atribut kunci sebagai primary key.
2) Untuk setiap entitas lemah Entitas Lemah, buat tabel baru Entitas Lemah dengan
mengikutsertakan seluruh simple atribut. Tambahkan primary key dari entitas kuatnya
(owner entity type) yang akan digunakan sebagai primary key bersama-sama partial
key dari entitas lemah.
3) Untuk setiap multivalued atribut R, buatlah tabel baru R yang menyertakan atribut dari
multivalue tersebut. Tambahkan primary key dari relasi yang memiliki multivalue
tersebut. Kedua atribut tersebut membentuk primary key dari tabel R.
4) Untuk setiap relasi binary 1:1, tambahkan primary key dari sisi yang lebih “ringan” ke
sisi (entitas) yang lebih “berat”. Suatu sisi dianggap lebih “berat” timbangannya apabila
mempunyai partisipasi total. Tambahkan juga simple atribut yang terdapat pada relasi
tersebut ke sisi yang lebih “berat”. Apabila kedua partisipasi adalah sama-sama total
atau sama-sama partial, maka dua entitas tersebut boleh digabung menjadi satu tabel.
5) Untuk setiap relasi binary 1:N yang tidak melibatkan entitas lemah, tentukan mana sisi
yang lebih “berat” (sisi N). Tambahkan primary key dari sisi yang “ringan” ke tabel sisi
Praktikum Basis Data - Teknik Informatika – UAD - 2020
34
yang lebih “berat”. Tambahkan juga seluruh simple atribut yang terdapat pada relasi
biner tersebut.
6) Untuk setiap relasi binary M:N, buatlah tabel baru R dengan atribut seluruh simple
atribut yang terdapat pada relasi biner tersebut. Tambahkan primary key yang
terdapat pada kedua sisi ke tabel R. Kedua foreign key yang didapat dari kedua sisi
tersebut digabung menjadi satu membentuk primary key dari tabel R.
7) Untuk setiap relasi lebih dari dua entitas, n-nary (ternary), meliputi dua alternatif yaitu:
a. Buatlah tabel R yang menyertakan seluruh primary key dari entitas yang ikut
serta. Sejumlah n foreign key tersebut akan membentuk primary key untuk
tabel R. Tambahkan seluruh simple atribut yang terdapat pada relasi n-ary
tersebut
b. Mengubah bentuk relasi ternary menjadi entitas lemah, kemudian
memperbaiki relasi yang terjadi antara entitas lemah tersebut dengan entitas-
entitas kuatnya dan melakukan algoritma pemetakan sesuai dengan aturan
mapping.
d) Untuk setiap relasi binary 1:1, tambahkan primary key dari sisi yang lebih “ringan” ke
sisi (entitas) yang lebih “berat”. Suatu sisi dianggap lebih “berat” timbangannya
apabila mempunyai partisipasi total. Tambahkan juga simple atribut yang terdapat
pada relasi tersebut ke sisi yang lebih “berat”.
f) Untuk setiap relasi binary M:N, buatlah tabel baru R dengan atribut seluruh simple
atribut yang terdapat pada relasi biner tersebut. Tambahkan primary key yang
terdapat pada kedua sisi ke tabel R. Kedua foreign key yang didapat dari kedua sisi
tersebut digabung menjadi satu membentuk primary key dari tabel R.
i) Cobalah membuat ER Model dan relasi ERD dengan kasus yang terdapat pada
praktikum minggu sebelumnya.
3.6. TUGAS
Tugas diberikan oleh asisten praktikum.
Pertemuan ke :5
Total Alokasi Waktu : 180 menit
Pre-Test : 30 menit
Praktikum : 120 menit
Post-Test : 30 menit
b. One to Many
Mempunyai pengertian "Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris
atau lebih data pada tabel ke dua". Contohnya : Dosen mengajar banyak mata kuliah.
c. Many to Many
Mempunyai pengertian "Satu baris atau lebih data pada tabel pertama bisa dihubugkan ke
satu atau lebih baris data pada tabel ke dua". Artinya ada banyak baris di tabel satu dan tabel
dua yang saling berhubungan satu sama lain. Contohnya: Mahasiswa mengambil mata kuliah.
Tabel Mata_Kuliah :
Kemudian menginputkan data dengan catatan nim harus sudah ada pada tabel mahasiswa, karena
tabel ini akan membaca informasi data dari tabel mahasiswa. Seperti pada contoh di bawah ini.
5.5. TUGAS
Tugas diberikan oleh asisten praktikum.
Studi Kasus basis data di perpustakaan, buatlah salah satu contoh di bawah ini
Pertemuan ke :6
Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9
bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF.
Namun dalam prakteknya dalam dunia industri bentuk normalisasi ini yang paling sering
digunakan ada sekitar 5 bentuk.
Dari beberapa tahap normalisasi diatas, Bentuk Normal Pertama (1NF) sampai Normal ke Tiga
(3NF), merupakan bentuk normal yang umum dipakai. Umumnya bila ketiga bentuk normal
tersebut telah dipenuhi, maka persoalan anomali tidak akan muncul.
2. Dari Table 6.1 lakukanlah bentuk normalisasi tahap 1 (1 NF). Caranya dengan
menggunakan fungsi hapus, insert dan update data dari table 6.1 dengan
menggunakan fungsi dalam Mysql hasilnya dapat dilihat pada Tabel 6.2.
3. Dari Table 6.2 dilakukan normalisasi lagi karena adanya kemunculan data dengan
primary yang sama berulang. Caranya dengan memecah table 6.2 menjadi Tabel dosen
dan table mahasiswa (sebagai entitas baru). Untuk itu kita perlu membuat table baru.
Dalam MySql fungsi membuat table dengan perintah Create. Hasilnya dapat dilihat
pada Table 6.3, Tabel 6.4., Tabel 6.5. dan Tabel 6.6.
b) Untuk memenuhi 2NF, atribut yang tidak bergantung dengan primary key
dipecah menjadi entitas baru, sehingga entitas mahasiswa dipecah menjadi
2 entitas, yaitu; Entitas Mahasiswa 2NF (Nim, Nama, Semester) dan
Entitas Ambil_MK (Makul, Nidn, NamaDosen).
Untuk entitas Ambil MK hasil Normalisasi Bentuk 2 disajikan pada Tabel 6.8.
6.5. TUGAS
Perhatikan Tabel 6.11. ini merupakan table bentuk Tidak Normal dari suatu fatur
penjualan.
Pertemuan ke :7
Total Alokasi Waktu : 180 menit (Alokasi waktu disesuaikan dengan RPS)
Pre-Test : 30 menit
Praktikum : 120 menit
Post-Test : 30 menit
dst
Indikator ketercapaian diukur dengan praktikan mampu memahami perintah DDL dan DML.
2. XAMPP.
3. Browser (firefox, chrome).
3. Menggunakan database
USE <nama_database>;
USE akademik;
4. Menghapus database
DROP <nama_database>;
DROP akademik;
5. Melihat tabel apa yang sudah ada dalam database yang aktif
SHOW tables;
2) Perintah DML
a. Mengisi tabel
Ada beberapa cara dalam memasukkan data yaitu dengan menyamakan kolom dan data,
menyebutkan kolom, tanpa menyebutkan kolom, memasukkan hanya sebagai pada kolom.
Menyamakan Kolom dan Data, perintahnya sebagai berikut:
Apabila tidak menggunakan klausa WHERE maka akan menyebabkan semua record dalam tabel
terhapus. Misal akan dihapus data mahasiswa bernama ‘M Rauf’
DELETE FROM mhs WHERE nim = ‘11010012’
7.5. TUGAS
Tugas diberikan asisten praktikum.
Pertemuan ke :8
Total Alokasi Waktu : 180 menit (Alokasi waktu disesuaikan dengan RPS)
Pre-Test : 30 menit
Praktikum : 120 menit
Post-Test : 30 menit
Indikator ketercapaian diukur dengan praktikan mampu menerapkan fungsi agregasi dengan perintah
SQL
KLAUSA PENJELASAN
AVG Sama dengan
COUNT Mengetahui jumlah record
MAX Mengetahui nilai maximal
MIN Mengetahui nilai minimal
SUM Menghitung jumlah data
OPERATOR PENJELASAN
= Sama dengan
< >, != Tidak sama dengan
< Kurang dari
> Lebih besar dari
<= Kurang dari atau sama dengan
>= Lebih dari atau sama dengan
!> Tidak lebih besar dari
!< Tidak lebih kecil dari
BETWEEN Antara dua nilai yang ditentukan
LIKE Menyesuaikan nilai yang ditentukan
IS NULL Nilainya adalah NULL
IN Nilainya ditentukan dalam sebuah daftar
NOT Negasi dari sebuah operator perbandingan
AND Merangkai kriteria pencarian
OR Memastikan bahwa criteria pencarian adalah
eksklusif
4. Menampilkan data mata kuliah yang mengandung judul informatika dan sksnya = 3
SELECT * FROM mat_kul WHERE nama_kul LIKE ‘%informatika%’ AND sks = 3
5. Menghitung jumlah data mata kuliah
SELECT COUNT(*) from mat_kul;
6. Menghitung sks yang paling sedikit, sks yang paling banyak dan rata-rata sks
SELECT MIN (sks), MAX (sks), AVG (sks) from mat_kul;
7. Menghitung total jumlah sks
SELECT SUM (sks) from mat_kul;
8.5. TUGAS
Tugas diberikan asisten praktikum.
Pertemuan ke :9
Total Alokasi Waktu : 180 menit (Alokasi waktu disesuaikan dengan RPS)
Pre-Test : 30 menit
Praktikum : 120 menit
Post-Test : 30 menit
Query terhadap 2 tabel atau lebih tidak bisa dilakukan sembarangan. Tabel-tabel yang menjadi sumber
query harus memiliki keterhubungan (relasi). NIM adalah primary key dari tabel mhs dan kode_kul
adalah primary key dari mata_kuliah. Tabel nilai adalah tabel yang menjadi relasi antara tabel mhs dan
mata_kuliah, sehingga primary key dari tabel nilai diambil dari primary key tabel mhs dan mata_kuliah,
yaitu nim dan kode_kul. Artinya nim adalah foreign key ke tabel mhs dan juga kode_kul adalah foreign
key ke tabel mata_kuliah.
Perintah untuk menampilkan data dari beberapa tabel, yaitu :
SELECT
<tabel1>.<kolom_1>, <tabel1>.<kolom_2>, <tabel1>.<kolom_n>,
<tabel2>.<kolom_1>, <tabel2>.<kolom_2>, <tabel2>.<kolom_n>,
<tabeln>.<kolom_1>, <tabeln>.<kolom_2>, <tabeln>.<kolom_n>
FROM
<tabel1>, <tabel2>, <tabeln>
WHERE
<tabel1>.<kolom_x> = <tabel2>.<kolom_y> and
<tabel2>.<kolomy> = <tabeln>.<kolomn> and
<tabel1>.<kolomx> = <tabeln>.<kolomn>
Kondisi yang dituliskan pada WHERE adalah atribut yang menjadi relasi yang menghubungkan antara
tabel 1, tabel 2 sampai tabel n.
Untuk contoh kasus tabel di atas, perintah WHERE dapat ditulis :
WHERE mhs.nim = nilai.nim and nilai.kode_kul = mata_kuliah.kode_kul
1. Membuat tabel nilai dengan menyatakan bahwa nim dan kode_kul adalah merupakan foreign key
dari tabel mhs dan mata_kuliah.
3. Menampilkan hanya nama mahasiswa dan nilai untuk mata kuliah dengan kode IT0401
5. Menampilkan nama mata kuliah, nama mahasiswa dan nilai yang diperoleh
6. Menampilkan nama mata kuliah, nama mahasiswa dan nilai yang diperoleh yang diurutkan dari
nilai terkecil (kolom tabel disesuaikan seperti yang dihasilkan.
9.5. TUGAS
Tugas dibeirkan asisten praktikum.
LEMBAR JAWABAN PRE-TEST / POST-TEST / EVALUASI PRAKTIKUM 9: QUERY DARI RELASI TABEL
Pertemuan ke : 10
Total Alokasi Waktu : 180 menit (Alokasi waktu disesuaikan dengan RPS)
Pre-Test : 30 menit
Praktikum : 120 menit
Post-Test : 30 menit
Indikator ketercapaian diukur dengan praktikan dapat melakukan pencarian data antar tabel.
1. Inner Join
Menampilkan nama mahasiswa, kode mata kuliah berikut nilai yang diperoleh
Dengan perintah relasi atribut antar tabel
Dua gambar di atas menghasilkan hasil yang sama. Terlihat bahwa pada tabel mhs dan mata_kuliah,
nim adalah atribut yang menghubungkan ke dua tabel tersebut. Pada perintah di atas hanya record
yang berpasangan yang dimunculkan. Pada tabel mhs terdapat record dengan nim ‘11010014’ dan
‘11010015’ yang tidak terdapat pada tabel nilai, sehngga tidak dimunculkan.
2. Left Join
Menampilkan semua data mahasiswa yang ada di tabel mhs berikut data nilai mahasiswa
Terlihat bahwa data tabel sebelah kanan akan diisi dengan NULL karena mahasiswa yang bersangkutan
tidak ada nilainya, sementara data dari tabel sebelah kiri akan ditampilkan seluruhnya.
3. Right Join
Menampilkan semua data nilai yang ada di tabel nilai berikut nama mahasiswa.
Akan terlihat bahwa data dari tabel sebelah kanan yaitu tabel nilai akan ditampilkan seluruhnya.
4. Union
10.5. TUGAS
Tugas diberikan asisten praktikum.
LEMBAR JAWABAN PRE-TEST / POST-TEST / EVALUASI PRAKTIKUM 10: RELASI TABEL DENGAN JOIN
Pertemuan ke : 11
2. Menampilkan data nilai mahasiswa yang nilainya melebihi rata-rata nilai mata kuliah secara
keseluruhan. Langkahnya:
Membuat Query untuk mencari nilai rata-rata mata kuliah. Query ini akan digunakan
sebagai acuan untuk mencari nilai yang memiliki nilai di atas rata rata, sehingga query
dengan model seperti ini dinamakan Sub Query.
Dari Sub Query tersebut akan di masukan dalam Query utama (Main Query). Main Query
ini untuk mencari nilai yang memiliki nilai di atas rata rata.
Lihat gambar berikut ini:
Main Query : SELECT nim, nilai FROM nilai WHERE nilai> (SELECT avg(nilai) from nilai)
Query ini bisa dilakukan dengan menggunakan ORDER BY dan LIMIT, tetapi hanya akan
menghasilkan 1 baris saja. Bagaimana jika data yang sesuai dengan kriteria lebih dari 1 baris.
Query pertama mungkin menampilkan data nilai lebih dari 1 baris ketika baris yang nilainya sama
dengan nilai MAX(nilai) lebih dari 1 baris.
Query kedua hanya akan menampilkan 1 baris saja karena ada penggunaan LIMIT. Kekurangan dari
SQL ini adalah ketika ada data nilai yang sama-sama memiliki nilai sama dengan MAX(nilai) lebih dari
1 baris.
Query tersebut membutuhkan sub query karena harus melakukan perbandingan data mahasiswa
dengan data mahasiswa yang ada di tabel kuliah. Berarti data mahasiswa yang ada di tabel kuliah harus
dicari terlebih dahulu.
Sub query bekerja untuk mencari data mhs yang telah terdaftar di tabel kuliah (mengambil mata kuliah
tersebut)
5. Menampilkan data mahasiswa yang tidak mengambil mata kuliah basis data
Gambar 11.8. Tabel hasil Query Perbandingan dua Tabel dengan NOT IN
11.5. TUGAS
Tugas diberikan asisten praktikum.
Pertemuan ke : 12
Dari sisi yang lain, Trigger dapat dibedakan menjadi beberapa jenis; namun umumnya ada dua jenis:
Trigger BEFORE dan AFTER. Sesuai penamaannya, jenis-jenis ini merepresentasikan waktu eksekusi
Trigger— misalnya sebelum ataukah sesudah pernyataan yang berkorespondensi. Adakalanya trigger
dipandang sebagai bentuk spesifik dari stored procedure (terkait pendefinisian body). Bagaimanapun,
trigger akan dipanggil (secara otomatis) ketika event terjadi, sedangkan stored procedure harus
dipanggil secara eksplisit. Ada beberapa event yang dapat digunakan untuk melakukan eksekusi Trigger
yaitu:
BEFORE INSERT – dijalankan ketika data di masukan ke dalam table.
AFTER INSERT – dijalankan setelah data masuk ke dalam table.
BEFORE UPDATE – dijalankan sebelum proses update data.
AFTER UPDATE – dijalankan setelah proses proses update data.
BEFORE DELETE – dijalankan sebelum proses delete data.
AFTER DELETE – dijalankan setelah proses delete data.
Praktikum Basis Data - Teknik Informatika – UAD - 2020
83
MySQL mendukung fitur trigger termasuk juga stored procedure dan view sejak versi 5.0.2
Sebagaimana objek-objek lainnya, trigger diciptakan menggunakan pernyataan CREATE. Sintaks
pendefinisian trigger diperlihatkan sebagai berikut:
MySQL tidak mengizinkan multiple trigger dengan waktu aksi dan event sama per tabel. Misalkan di
tabel A sudah didefinisikan trigger AFTER INSERT, maka kita tidak boleh mendefinisikan trigger AFTER
INSERT lagi; namun AFTER EDIT, AFTER DELETE, atau BEFORE (INSERT, EDIT, dan DELETE) bisa diterima.
2. Buatlah Trigger untuk mencatat perubahan harga Ketika ada perintah update pada produk.
Langkahnya dengan membuat sintaks sebagai berikut:
DELIMITER $$
CREATE TRIGGER before_produk_update
BEFORE UPDATE ON produk
FOR EACH ROW
BEGIN
INSERT INTO log_harga_produk
set kode_produk = OLD.kode_produk,
harga_baru=new.harga,
Praktikum Basis Data - Teknik Informatika – UAD - 2020
84
harga_lama=old.harga,
waktu_perubahan = NOW();
END$$
DELIMITER ;
Penjelasan sintaks:
baris 2 – Kita membuat sebuah Trigger baru dengan nama before_produk_update
3. Isikan data
Isikan data ke table produk dengan perintah sebagai berikut:
4. Kemudian lakukan UPDATE Data produk dengan tujuan mengganti harga BR001 dari 12000
menjadi 9000 dengan perintah:
UPDATE produk SET harga=90000 WHERE kode_produk='BR001'
6. Jika ingin mendapatkan informasi mengenai list Trigger yang ada pada suatu basisdata, maka
dapat dilakukan dengan memberikan perintah: SHOW TRIGGERS
7. Sedangkan untuk melakukan penghapusan suatu Trigger dari Basisdata yang sudah dibuat yaitu
dengan perintah:
12.5. TUGAS
Tugas diberikan asisten praktikum.
Pertemuan ke : 13
<?php
Class Database{
function __construct(){
$this->db = new mysqli("localhost", "root", "", "176_db");
}
}
?>
function tampilMhs(){
$array = array();
$query = $this->db->query("SELECT * FROM mahasiswa");
while ($data = mysqli_fetch_array($query)){
$array[] = $data;
}
return $array;
}
Kemudian membuat file index.php yang akan digunakan untuk menampilkan data dari function
tampilMhs ke dalam web.
Tabel 13.3. Inisialisasi
<?php
require 'database.php';
$objek = new Database();
$dataMhs = $objek->tampilMhs();
?>
Source code diatas berfungsi untuk memanggil file database.php kemudian dibuat objek dari class
Database. Kemudian membuat source code HTML dan PHP untuk menampilkan hasil dari data
yang akan ditampilkan.
Tabel 13.4. Buat Tabel
<table border="1">
<tr>
<th>NIM</th>
<th>Nama</th>
<th>Program Studi</th>
<th>Alamat</th>
</tr>
<?php foreach ($dataMhs as $x) {?>
<tr>
<td><?php echo $x['nim'];?></td>
<td><?php echo $x['nama'];?></td>
<td><?php echo $x['prodi'];?></td>
<td><?php echo $x['alamat'];?></td>
</tr>
<?php } ?>
</table>
Fungsi foreach digunakan untuk memecah data array yang dikembalikan oleh function tampil Mhs
pada class Database.
Kemudian membuat function pada class database yang berfungsi untuk menginputkan data ke
dalam database.
Kemudian menambahkan source code pada index php yang berfungsi untuk mengantarkan data
pada function yang sudah dibuat pada langkah sebelumnya.
<?php
if (isset($_POST['simpan'])) {
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$prodi = $_POST['prodi'];
$alamat = $_POST['alamat'];
$objek->tambahMhs($nim, $nama, $prodi, $alamat);
}
?>
<tr>
<th>NIM</th>
<th>Nama</th>
<th>Program Studi</th>
<th>Alamat</th>
<th>Aksi</th>
</tr>
<?php foreach ($dataMhs as $x) {?>
<tr>
<td><?php echo $x['nim'];?></td>
<td><?php echo $x['nama'];?></td>
<td><?php echo $x['prodi'];?></td>
<td><?php echo $x['alamat'];?></td>
<td><a href="edit.php?nim=<?php echo $x['nim'];?>">Edit</a>
| <a href="index.php?aksi=delete&nim=<?php echo
$x['nim'];?>">Hapus</a></td>
</tr>
Kemudian membuat file edit.php dengan syntak html dan php seperti di bawah ini.
<?php
require 'database.php';
$objek = new Database();
$mhs = $objek->tampilMhsWhere($_GET['nim']);
foreach ($mhs as $x) {
}
if (isset($_POST['simpan'])) {
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$prodi = $_POST['prodi'];
$alamat = $_POST['alamat'];
$objek->updateMhs($nim, $nama, $prodi, $alamat);
}
?>
<form method="POST" action="">
<table>
<tr>
<td>NIM</td>
<td>:</td>
<td><input type="text" name="nim" value="<?php
echo $x['nim'];?>" readonly></td>
</tr>
<tr>
<td>Alamat</td>
<td>:</td>
<td><input type="text" name="nama" value="<?php
echo $x['nama'];?>"></td>
</tr>
<tr>
<td>Program Studi</td>
<td>:</td>
<td><input type="text" name="prodi" value="<?php
echo $x['prodi'];?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td>:</td>
<td><input type="text" name="alamat" value="<?php
echo $x['alamat'];?>"></td>
</tr>
<tr><td colspan="3" align="right"><input type="submit"
name="simpan" value="SIMPAN"></td></tr>
</table>
</form>
Kemudian membuat function hapus pada class database yang berfungsi untuk menghapus data
berdasarkan nim.
function hapusMhs($nim){
$insert = $this->db->query("DELETE FROM mahasiswa WHERE
nim = '$nim'");
if ($insert) {
header('location:index.php');
}else{
echo "data gagal dihapus";
echo "<br>$nim";
echo $this->db->error;
}
}
Kemudian menambahkan source code php pada index.php seperti di bawah ini.
Praktikum Basis Data - Teknik Informatika – UAD - 2020
95
if (isset($_GET['aksi'])) {
if ($_GET['aksi'] == 'delete') {
$objek->deleteMhs($_GET['nim']);
}
}
13.5. TUGAS
Tugas diberikan oleh asisten praktikum.
LEMBAR JAWABAN PRE-TEST / POST-TEST / EVALUASI PRAKTIKUM 13: PHP DAN MySQL
DAFTAR PUSTAKA
1. Silberschatz Abraham et.all. 1986. Database Systems Concepts. United State: McGraw-Hill.
2. Ramez Elmasri et.all. 1989. Fundamentals of Database Systems. Addison Wesley Publishing
Company.
3. Oracle Academy Presentation, 2020
4. Modul Praktikum Basisdata 2017, Teknik Elektro UM
5. https://belajarphp.net/tutorial-trigger-mysql/