Melola MOOC
Basis Data: Studi Kasus Sistem Survei "UHO Mendengar" Daftar isi

Modul 1 · Studi kasus dan pemetaan ERD ke skema relasional

Latihan SQL: menjelajah skema Tahap 1

Sedang peninjauan: materi sedang ditelaah pengampu dan dapat berubah.

Kamu sedang melihat pratinjau. Masuk dan daftar ke kursus ini (gratis) agar kemajuanmu tersimpan dan kuis serta latihan dapat diperiksa.

Masuk

Setelah materi ini, kamu dapat:

  • Membaca isi tabel dengan SELECT, WHERE, dan ORDER BY.
  • Mengikuti kunci asing dari satu tabel ke tabel lain dengan JOIN.

Skema Tahap 1 sudah dibuat dan diisi data fiktif di peramban ini: 8 pegawai, 3 survei, 9 pertanyaan, 7 pengisian, dan 17 jawaban. Di latihan ini kamu membaca isinya, supaya kunci primer dan kunci asing yang tadinya hanya ada di diagram menjadi nyata. Membuat tabel sendiri dipelajari di Modul 3.

Cukup tiga bagian query

SELECT kolom1, kolom2      -- kolom yang ingin ditampilkan; * berarti semua kolom
FROM   nama_tabel
WHERE  syarat              -- baris yang dipilih (boleh tidak ada)
ORDER  BY kolom;           -- urutan hasil (boleh tidak ada)

Contoh: nama dan unit kerja semua tenaga kependidikan, urut menurut nama.

SELECT nama, unit_kerja
FROM   pegawai
WHERE  kategori = 2
ORDER  BY nama;

Teks ditulis di antara tanda kutip tunggal, misalnya WHERE unit_kerja = 'Biro Umum'. Beberapa syarat digabung dengan AND atau OR.

Mengikuti kunci asing dengan JOIN

Tabel pengisian hanya menyimpan pegawai_id, bukan nama pegawai. Untuk menampilkan nama, ikuti kunci asing itu ke tabel pegawai:

SELECT pegawai.nama, pengisian.status
FROM   pengisian
JOIN   pegawai ON pegawai.id = pengisian.pegawai_id
WHERE  pengisian.survei_id = 1;

Bagian ON pegawai.id = pengisian.pegawai_id adalah kunci asing yang kamu gambar di ERD. JOIN dibahas lengkap di Modul 4; untuk sekarang, cukup pahami bahwa kunci asing adalah "jembatan" antartabel.

Catatan SQLite

  • is_active disimpan sebagai angka: 1 berarti aktif, 0 berarti tidak.
  • Tanggal disimpan sebagai teks berformat YYYY-MM-DD, sehingga tetap dapat dibandingkan dan diurutkan.
  • Tekan Ctrl + Enter di kotak query untuk menjalankannya.

Latihan

"Jalankan" menjalankan query di peramban tanpa dinilai. "Periksa" mencocokkan hasilnya dengan yang diminta soal. Latihan selesai bila semua soal benar.

1. Tampilkan semua kolom dan semua baris tabel survei.

Petunjuk

Tanda * berarti semua kolom. Query ini tidak perlu WHERE.

2. Tampilkan kode_survei dan judul dari survei yang masih aktif.

Petunjuk

Survei aktif punya is_active = 1. Tampilkan dua kolom saja, dengan urutan kode_survei lalu judul.

3. Tampilkan nomor_urut dan teks_pertanyaan dari semua pertanyaan milik survei dengan id 2, diurutkan menurut nomor_urut.

Petunjuk

Kolom survei_id adalah kunci asing ke survei. Akhiri query dengan ORDER BY nomor_urut.

4. Tampilkan nip dan nama dosen (kategori 1) yang bernaung di Fakultas Teknik.

Petunjuk

Gabungkan dua syarat dengan AND. Nama unit ditulis persis 'Fakultas Teknik', dalam tanda kutip tunggal.

5. Ikuti kunci asing pegawai_id: tampilkan nama pegawai dan status pengisiannya untuk survei dengan id 2.

Petunjuk

Contohnya ada di bacaan di atas, untuk survei id 1. Ubah syarat WHERE-nya. Hasilnya tiga baris, salah satunya masih DRAFT.

6. Tampilkan response_token dan nilai_likert dari semua jawaban untuk pertanyaan dengan id 4. Perhatikan: dapatkah kamu mengetahui siapa yang menjawab hanya dari tabel jawaban?

Petunjuk

Tabel jawaban tidak punya kolom pegawai_id. Kolom yang diminta hanya response_token dan nilai_likert.