LAPORAN PRAKTIKUM
SISTEM BASIS DATA
Pemanggilan Query dengan PostgreSQL
Oleh :
FADIYA SALSABILA
18/425035/TK/46730
GEODESI B
DEPARTEMEN TEKNIK GEODESI
FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2019
A. MATA ACARA
Pengenalan bahasa basis data relasional SQL menggunakan PostgreSQL untuk keperluan
basis data serta penampilan query
B. TUJUAN PRAKTIKUM
1. Mahasiswa dapat memahami jenis perintah dan fungsi pada postgre SQL
2. Mahasiswa dapat membuat query dari data yang telah ditambahkan
C. WAKTU DAN TEMPAT PRAKTIKUM
Hari, tanggal : Jumat, 15 November 2019
Waktu : 08.00 – 10.50 WIB
Tempat : Lab. Geokomputasi Teknik Geodesi UGM
D. ALAT DAN BAHAN
1. Laptop
2. Aplikasi POstgreSQL 10
3. Data input dari Asisten Dosen
E. LANDASAN TEORI
SQL adalah singkatan dari Structured Query Language. Sedangan pengertian SQL
adalah suatu bahasa (language) yang digunakan untuk mengakses data di dalam sebuah
database relasional. SQL sering juga disebut dengan istilah query, dan bahasa SQL
secara praktiknya digunakan sebagai bahasa standar untuk manajemen database
relasional. Hingga saat ini hampir seluruh server database atau software database
mengenal dan mengerti bahasa SQL.
Penggunaan SQL terdapat beberapa perintah yang berguna untuk mengakses dan
memanajemen data yang terdapat dalam database. Jenis peringah SQL secara umum
dibagi kepada tiga sub perintah, yaitu DDL (Data Definition Language), DML (Data
Manipulation Language), dan DCL (Data Control Language). Ketiga sub perintah
tersebut sangat perlu untuk dipahami bagi anda yang ingin menguasai bahasa sql dan
mahir dalam pembuatan database.
1. Data Definition Language (DDL)
DDL adalah sub perintah dari bahasa SQL yang digunakan untuk membangun
kerangka sebuah database, dalam hal ini database dan tabel. Terdapat tiga perintah
penting dalam DDL, yaitu CREATE, ALTER, DROP.
2. Data Manipulation Language (DML)
DML adalah sub perintah dari bahasa SQL yang digunakan untuk memanipulasi
data dalam database yang telah dibuat. Terdapat empat perintah penting dalam
DML, yaitu INSERT, SELECT, UPDATE, dan DELETE.
3. Data Control Language (DCL)
DCL adalah sub bahasa SQL yang berfungsi untuk melakukan pengontrolan data
dan server databasenya, seperti manipulasi user dan hak akses (priviledges). Yang
termasuk perintah dalam DCL ada dua, yaitu GRANT dan REVOKE.
F. LANGKAH KERJA
1. Membuka software PostgreSQL dengan cara double klik shortcut yang ada pada
layar desktop
2. Menyambungkan pada server dengan cara klik kanan pada server yang diinginkan
kemudian pilih Connect Server. Kemudian memasukan password dan klik ok.
3. Membuat table dengan klik pada icon SQL lalu ketikkan syntax untuk membuat
query
4. Meng-klik execute query agar tabel terbentuk dan masuk ke database yang telah dibuat
5. Membuat query sesuai soal yang diberikan dengan cara klik tools SQL untuk membuat query
6. Mengulangi langkah yang sama untuk membuat query lainnya
G. HASIL DAN PEMBAHASAN
1. Gaji dosen dengan pangkat IV A (misal jika honor per sks 50000)
SUM digunakan untuk menjumlah sks yang diampu oleh tiap dosen. Kemudian untuk
menampilkan dosen dengan pangkat IV A, pada where dituliskan kriteria tersebut.
Untuk mengakhiri suatu fungsi aggregate, digunakan group by untuk menampilkan
atau memilih sekumpulan data berdasarkan kelompok data tertentu.
2. Mata kuliah yang diambil oleh Mumun
Untuk mengetahui matkul yang diambil mumun, digunakan 3 tabel yaitu mahasiswa,
menempuh, dan mata kuliah kemudian pada kriteria dituliskan nama mahasiswa
missal mumun.
3. Nama mahasiswa bimbingan Ibu Yuli
Untuk mengetahui mahasiswa bimbingan ibu Yuli digunakan dua table saja yaitu
dosen dan mahasiswa dimana nip menjadi penghubung antara dua table tersebut.
4. Nama mahasiswa dan matkul yang diambil
Untuk menampilkan mahasiswa dan matkul yang diambil, digunakan 3 tabel yaitu
mahasiswa, menempuh, dan mata kuliah.
5. Nama dosen yang akan mengajar Ali
Untuk menampilkan dosen yang mengajar Ali, digunakan table mahasiswa, dosen,
menempuh, mata kuliah, dan mengajar kemudian pada kriteria dituliskan nama
mahasiswa yang ingin diketahui misal Ali.
6. Dosen yang memiliki gaji < 10 juta
7. Ruang Pak Andi
Ruang Pak Andi dapat diketahui dengan menggunakan table dosen, dan dosen ruang
8. Dosen yang mengajar SBD
untuk menampilkan dosen yang mengajar SBD digunakan table dosen, mengajar, dan
matkul kemudian pada kriteria diisikan SBD.
9. Ruangan yang digunakan untuk matkul IUT
untuk menampilkan ruang yang digunakan IUT, digunakan table mata kuliah dan pada
where diisikan IUT.
10. Mata kuliah yang diajarkan oleh dosen yang ruangannya di RD1 dan 2
11. Nama mahasiswa dan jumlah SKS yang diambil
Untuk menghitung jumlah sks digunakan fungsi aggregate SUM kemudian AS
digunakan untuk memberi nama kolom hasil hitungan sks. Ketika menggunakan
fungsi COUNT, jangan lupa di akhir tambahkan GROUP BY untuk pengelompokan
berdasar nama mahasiswa.
12. Jumlah mata kuliah yang diambil Mail
Sama seperti query sebelumnya, pada query ini digunakan fungsi aggregate COUNT
dan di akhir digunakan GROUP BY.
13. Rata-rata jumlah sks yang diambil oleh mahasiswa
Untuk menghitung rata-rata, diperlukan dua proses. Yang pertama menghitung jumlah
sks, kemudian baru menghitung rata-rata jumlah sks tersebut.
CREATE VIEW digunakan untuk membuat table bayangan yang nantinya berisi
jumlah sks. SUM digunakan untuk menghitung jumlah sks. Kemudian dilanjutkan
dengan proses kedua sehingga dilakukan select lagi. Pada select kedua, digunakan
fungsi AVG untuk merata-rata jumlah sks.
14. Jumlah dosen golongan IIIA
Query ini juga membutuhkan fungsi aggregate COUNT untuk menjumlah dosen
dengan kriteria golongan III A
15. Nama matkul beserta jumlah peserta
Query ini juga membutuhkan fungsi aggregate COUNT untuk menjumlah mahasiswa
yang mengikuti tiap mata kuliah.
16. Jumlah matkul yang diajarkan Pak Rochmad
Sama seperti query sebelumnya, digunakan fungsi COUNT kemudian pada kriteria
dituliskan nama dosen yang ingin ditampilkan.
17. Ruang dosen dan jumlah dosen yang menempatinya
Untuk menampilkan jumlah dosen yang menempati ruang tertentu, digunakan fungsi
COUNT dan AS jml_dosen digunakan untuk memberi nama kolom hasi perhitungan
tersebut.
18. Jumlah mahasiswa bimbingan masing-masing dosen
COUNT dan AS digunakan untuk menghitung dan memberi nama kolom hasil
hitungan jumlah mahasiswa.
19. Mata kuliah dengan peserta lebih dari 2
Untuk mengetahui matkul dengan peserta > 2, pertama hitung dulu jumlah peserta.
Kemudian HAVING digunakan untuk menyeleksi data berdasarkan kriteria tertentu.
20. Dosen yang mengajar kurang dari 6 sks
Untuk mengetahui dosen yang mengajar kurang dari 6 matkul, pertama hitung dulu
jumlah sks yang diajarkan oleh seorang dosen dengan fungsi COUNT. Kemudian
HAVING digunakan untuk menyeleksi data berdasarkan kriteria tertentu yaitu sks.
21. Mahasiswa yang mengambil lebih dari 3 matkul
Untuk mengetahui siapa mahasiswa yang mengambil lebih dari 3 matkul, pertama
hitung dulu jumlah matkul yang diikuti oleh mahasiswa dengan fungsi COUNT.
Kemudian HAVING digunakan untuk menyeleksi data berdasarkan kriteria tertentu
misal kode matkul.
22. Ruang yang ditempati lebih dari 1 dosen
Untuk menampilkan ruang yang ditempati lebih dari 1 dosen, pertama hitung dulu
jumlah dosen yang menempati ruang dengan fungsi COUNT. Kemudian HAVING
digunakan untuk menyeleksi data berdasarkan kriteria tertentu misal nip dari dosen.
23. Biaya yang harus dibayar oleh mahasiswa jika biaya per sks 100000
Jika per sks biayanya 100000, maka perlu dihitung dahulu jumlah sks yang diikuti
mahasiswa melalui fungsi SUM kemudian dilanjutkan dengan dikali biaya per sks
yaitu 100000.
24. Honor masing-masing dosen jika biaya per sks 100000
Sama seperti query sebelumnya, dilakukan SUM untuk menjumlahkan banyak sks
yang diampu oleh seorang dosen kemudian dikalikan biaya per sks.
25. Ruang yang bukan merupakan ruang dosen
Tanda * digunakan untuk menampilkan semua atribut terkait table ruang dan tanda <>
merupakan tanda untuk tidak menyertakan ruang dosen sehingga yang ditampilkan
hanya ruang kuliah dan lab.
26. Ruang dosen yang masih kosong
Untuk menampilkan ruang dosen yang masih kosong, digunakan NOT IN untuk
mencari no_ruang yang tidak terdapat pada tabel dosen_ruang dimana jenis ruangnya
adalah ruang dosen.
27. Dosen yang mengajar matkul dengan peserta lebih dari 2
Untuk memanggil query di atas, digunakan fungsi aggregate COUNT untuk
menghitung jumlah mahasiswa yang mengikuti suatu matkul. Kemudian HAVING
digunakan untuk menyeleksi data berdasarkan kriteria tertentu, dimana kriteria berupa
fungsi aggregat.
28. Dosen dengan gaji terbanyak
Terlebih dahulu dibuat table bayangan dengan nama honor, kemudian baru dihitung
honor yang diterima tiap dosen dengan fungsi COUNT. Selanjutnya, membuat select
lagi untuk mengetahui nilai max dari jumlah honor yang telah dihitung.
29. Nama mata kuliah dan jumlah sks beserta dosen pengajar untuk mata kuliah yang tidak
ada pesertanya
Untuk menampilkan matkul yang tidak ada pesertanya digunakan NOT IN kemudian
select untuk menampilkan kode matku yang tidak terdapat di tabel menempuh.
30. Mahasiswa yang mengambil sks terbanyak
Untuk menampilkan mahasiswa dengan sks terbanyak, terlebih dahulu membuat tabel
bayangan dengan cara CREATE VIEW. Kemudian dilakukan select dan sum untuk
menjumlahkan sks. Setelah itu membuat select baru untuk menentukan nilai max dari
tabel bayangan yang sudah dibuat.
31. Distribusi frekuensi jumlah sks yang diambil mahasiswa
H. KESIMPULAN
1. PostgreSQL atau (Post-gress-SQL) merupakan salah satu basis data yang paling
banyak digunakan saat ini, selain MySQL dan Oracle dan menyediakan fitur yang
berguna untuk replikasi basis data.
2. Dalam pembuatan dan pengisian tabel perlu diperhatikan tentang urutan pembuatan
karena tidak semua tabel bisa dibuat dan diisi terlebih dahulu. Hal ini disebabkan
Karena adanya primary key dan foreign key.
3. Pada penulisan query dapat juga menghasilkan data rangkap atau redundansi data dari
tabel hasil ,karena memang kondisi yang sesuai adalah seperti demikian. Namun jika
ingin menampilkan sekali saja jika ada data yang sama maka dapat dilakukan dengan
menggunakan distinct setelah select
4. Perlu diperhatikan ketika menuliskan query dapat terjadi ambigu, hal ini dapat
disebabkan Karena query tentang suatu kolom yang terdpat pada lebih dari satu table.
Hal ini mungkin Karena nama kolom tersebut menjadi foreign key pada table lain. Hal
ini dapat di atasi dengan menuliskan nama table diawal nama kolom.
I. DAFTAR PUSTAKA
http://www.postgresqltutorial.com/postgresql-count-function/ (diakses pada 21
November 2019)
https://www.angon.co.id/news/phpmysql/macam-macam-query-mysql -dan
fungsinya (diakses pada 21 November 2019)
https://suckittrees.com/artikel-486/-fungsi-count-pada-query-sql-.html (diakses pada 21
November 2019)