Contoh-contoh query SQL

dokumen-dokumen yang mirip
Tugas Basis Data Dosen : Khabib Mustofa

TUGAS BASIS DATA DOSEN : KHABIB MUSTOFA

Penyelesaian: Soal A.i

QUERI DATABASE SISTEM AKADEMIK PERGURUAN TINGGI

Problem Solving SQL Kasus : Database Akademik oleh Otniel Yosi V

Latihan : Sebutkan record berapa saja yang akan ditampilkan berdasarkan perintah berikut :

Normalisasi Vs Denormalisasi

MODUL IV FUNGSI AGREGAT

Modul Praktikum II Matakuliah Basis Data 2

1. Mahasiswa mampu mengenal dan memahami Bahasa Pemrograman MySQL 2. Mahasiswa mampu mengimplementasikan DDL dan DML.

Join Antar Tabel. M. Saefudin SKom, MMSI

MODUL 8 STRUCTURED QUERY LANGUAGE (BAGIAN 2)

MODUL SISTEM BASIS DATA FUNGSI AGREGAT

SQL LANJUT BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

CONTOH SQL. ERD untuk entitas Mahasiswa mengambil/mengikuti Kuliah. N mengikuti. N Kuliah. Mahasiswa MEMBUAT (CREATE) TABEL. Buat tabel mahasiswa:

Kontrak Kuliah. Perintah Manipulasi Data Lanjutan. Edi Sugiarto, S.Kom, M.Kom

Praktikum Basis Data 2017 TE UM

V. BASIS DATA RELATIONAL. Baris berupa RECORD Model Data Relational Kolom berupa FIELD

Pertemuan III Oleh: Ilham Rais Arvianto, M.Pd

Sistem Manajemen Basis Data. Normalisasi vs Denormalisasi

Pertemuan 11. Bahasa Query Terapan Lanjutan

PERTEMUAN 5 PENGGUNAAN FUNGSI GROUP

DATA MANIPULATION LANGUAGE

Stored Procedure. M. Saefudin SKom, MMSI

PRAKTIKUM BASIS DATA

Oracle Academic Initiative

BUKU PANDUAN PENGGUNAAN SIMAK (SISTEM INFORMASI AKADEMIK) UNIVERSITAS UDAYANA

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

SUBQUERY VIEW JOIN PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

B. PETUNJUK. 2. Join. Praktikum Basis Data 2017 TE UM

LAPORAN PRAKTIKUM BASIS DATA LANJUT I

Satuan Acara Perkuliahan

System Technology Database 1. Struktur Dasar SQL. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

SUBQUERY VIEW JOIN PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL: Contoh 1 Menampilkan banyaknya record dosen select count ( * )

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

ER-Diagram. KodeMK NamaMK. Nim. Ambil. KdJur SKS 1 JURUSAN. Milik

BAHASA QUERY KOMERSIAL

BAHASA QUERY KOMPLEKS

PANDUAN SISTEM INFORMASI AKADEMIK UNTUK MAHASISWA

MODUL 9 VIEW A. TUJUAN B. PETUNJUK C. DASAR TEORI. Praktikum Basis Data 2017 TE UM

RENCANA PEMBELAJARAN

Panduan Penggunaan SISTEM INFORMASI AKADEMIK UNIVERSITAS TADULAKO MAHASISWA

3 rd DML : Selection(3)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) PROGRAM STUDI : DIII MANAJEMEN INFORMATIKA Semester : 4

Kontrak Kuliah. Aljabar Relasi. Edi Sugiarto, S.Kom, M.Kom

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

Sistem Informasi Terpadu

MENAMPILKAN DATA DARI BANYAK TABEL

Praktikum Sistem Basis Data

SISTEM INFORMASI Marta Lenah Haryan8 Copyright Wondershare So3ware

Pertemuan 10. Bahasa Query Terapan

Strctured Query Language BASIS DATA

BAHASA QUERY KOMERSIAL

Gambar 3.1 Diagram konteks (DFD level 0)

UKDW BAB 1 PENDAHULUAN

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL


Riyanto

LAPORAN TUGAS BASIS DATA I

Teknik Informatika, Fakultas Teknik, Universitas Brawijaya,

SOAL TES KEMAMPUAN LOGIKA PROGRAM STUDI SISTEM INFORMASI TAHUN AJARAN 2013/2014 SEMESTER GANJIL. Tipe Soal I (Satu) TTD NIM Nama Ruang

Silabus. EKA 5334 Proyek Sistem Informasi. Program Studi: Strata 1 (S-1) Akuntansi Fakultas Ekonomi dan Bisnis

Rencana Pelaksanaan Pembelajaran

BAB 11 FUNGSI-FUNGSI SQL SERVER

MENU ENTRY Pengisian Kartu Rencana Studi (KRS) Entry judul skripsi dan data lainnya MENU INFORMASI

ALUR REGISTRASI MAHASISWA

SATUAN ACARA PERKULIAHAN(SAP)

MODUL V SUB QUERY & VIEW

BAB V IMPLEMENTASI RANCANGAN BASISDATA

Gambar Desain Form Program Aplikasi. Tabel Mengganti Properti Objek

MICROSOFT ACCESS. Database Relationship. Basis Data Relationship Database and Query - Teknik Informatika UNSIL Page 1

Strctured Query Language BASIS DATA

Microsoft Access 2007

Kontrak Kuliah. Perintah Manipulasi Data. Edi Sugiarto, S.Kom, M.Kom

HAL YANG PENTING DIINGAT DI DALAM TAHAPAN NORMALISASI

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

BIDANG AKADEMIK. Program Studi Pendidikan Ekonomi dan Koperasi. Tahun Disampaikan dalam Sosialisasi Pedoman Perilaku dan Sistem Perkuliahan

Database Systems: Lab. Actvity 3: Fungsi-Fungsi MySql Advance. Pendahuluan. Pendahuluan

Microsoft Access 2007

MODUL II SQL A. TUJUAN


Basis Data I. Pertemuan Ke-11 (SQL Part 2) Noor Ifada.

KONSEP DASAR MEMBANGUN SISTEM INFORMASI AKADEMIK JURUSAN /PRODI

FORMAT PENYUSUNAN RPKPS

PERTEMUAN 5 & 6 MEMBUAT QUERY

MANUAL PROSEDUR PENYELENGGARAAN SEMESTER PENDEK

MODUL VII STORED PROCEDURE

SQL QUERY. Penggunaan Select untuk menampilkan data

RENCANA PEMBELAJARAN SEMESTER (RPS) DAN RENCANA PELAKSANAAN PEMBELAJARAN (RPP)

PENGANTAR KOMPUTER DAN INTERNET

PART 2: 1. Langkah Langkah Normalisasi 2. Bentuk Bentuk Normal 1 st NF, 2 nd NF, 3 rd NF, BCNF Dan bentuk-bentuk normal lainnya 3.

MANUAL PROSEDUR SEMESTER PENDEK

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

Transkripsi:

Contoh-contoh query SQL Pada kesempatan kali ini saya akan menjelaskan contoh-contoh query dalam MySQL. Tabeltabel yang akan kita gunakan adalah sebagai berikut: matakuliah(kodemk, namamk, sks, berisi daftar matakuliah yang ditawarkan dosen(nip, nama, berisi daftar dosen pengampu kuliah mahasiswa(nim, nama, dosenpembimbing, berisi daftar mahasiswa kuliah(kodekuliah, kodemk, nip, thnakademik, semester, berisi daftar matakuliah dan dosen pengampu peserta(nim, kodekuliah, nilai, berisi kuliah yang diikuti mahasiswa beserta nilainya dalam huruf Dalam pembahasan kali ini diasumsikan: matakuliah hanya ditawarkan sekali dalam setahun, yaitu pada semester 1 (ganjil saja atau semester 2 (genap saja dan tidak kedua-duanya. bila pernah mengulang matakuliah, nilai yang diikutkan untuk perhitungan IP adalah nilai terakhir matakuliah dikatakan lulus bila nilai yang diperoleh minimal D Berikut ini adalah contoh-contoh query dalam MySQL: 1. Menampilkan banyaknya SKS yang telah diselesaikan oleh masing-masing mahasiswa a. Bila matakuliah yang diulang semua masuk dalam perhitungan SELECT nim, SUM( sks jumlahsks FROM peserta, ( SELECT kodekuliah, kuliah.kodemk, sks FROM kuliah, matakuliah WHERE kuliah.kodemk = matakuliah.kodemk A WHERE peserta.kodekuliah = A.kodekuliah GROUP BY nim

Pada query ini kita menampilkan jumlah SKS yang telah diselesaikan oleh masing-masing mahasiswa bila matakuliah yang diulang semua masuk dalam perhitungan. Pertama-tama, kita melakukan join tabel kuliah dengan tabel matakuliah pada kondisi kodemk pada tabel kuliah sama dengan kodemk pada tabel matakuliah untuk mendapatkankodekuliah, kodemk dan sks. ( SELECT kodekuliah, kuliah.kodemk, sks FROM kuliah, matakuliah WHERE kuliah.kodemk = matakuliah.kodemk A Lalu hasil join tersebut diberi alias A. Selanjutnya, tabel A tadi kita join-kan dengan tabel peserta pada kondisi kodekuliah pada tabel peserta sama dengan kodekuliah pada tabela untuk mendapatkan nim dan sks yang selanjutnya kita menjumlahkan sks dengan SUM(sks yang dikelompokkan berdasarkan nim menggunakan GROUP BY nim. b. Bila matakuliah yang diulang hanya yang sesuai dengan asumsi yang masuk dalam perhitungan SELECT nim, SUM( sks totalsks FROM ( SELECT DISTINCT nim, kodemk WHERE peserta.kodekuliah = kuliah.kodekuliah P, matakuliah WHERE P.kodemk = matakuliah.kodemk GROUP BY nim Pada query ini kita menampilkan jumlah SKS yang telah diselesaikan oleh masing-masing mahasiswa bila matakuliah yang diulang hanya dihitung sekali. Pertama-tama kita melakukan

join tabel peserta dengan tabel kuliah pada kondisi kodekuliah pada tabel peserta sama dengan kodekuliah pada tabel kuliah untuk mendapatkan nim dan kodemk. ( SELECT DISTINCT nim, kodemk WHERE peserta.kodekuliah = kuliah.kodekuliah P Kata DISTINCT setelah SELECT digunakan untuk menghilangkan pengulangan record yang mempunyai nim dan kodemk yang sama agar matakuliah yang diulang oleh seorang mahasiswa hanya muncul sekali. Hasil join tersebut diberi alias P. Lalu tabel P kita join-kan dengan tabel matakuliah pada kondisi kodemk pada tabel P sama dengan kodemk pada tabel matakuliah untuk mendapatkan nim dan sks yang dijumlahkan dengan SUM(sks setelah dikelompokkan berdasarkan GROUP BY nim. 2. Menampilkan data-data yang bisa untuk melakukan perhitungan IPK (berdasar asumsi di atas SELECT nim, kuliah.kodemk, nilai, sks FROM peserta, matakuliah, kuliah AND kuliah.kodemk = matakuliah.kodemk AND ( nim, kuliah.kodemk, thnakademik IN ( SELECT nim, kodemk, MA thnakademik thnterakhir

Pada query ini kita melakukan join pada tiga tabel, yaitu peserta, matakuliah dan kuliah dengan kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah pada tabelpeserta dan kodemk pada tabel kuliah sama dengan kodemk pada tabel matakuliah. Setelah itu kita lakukan operasi intersection dengan query yang menampilkan tahun terakhir menyelesaikan suatu matakuliah. AND ( nim, kuliah.kodemk, thnakademik IN ( SELECT nim, kodemk, MA thnakademik thnterakhir Pada query untuk menampilkan tahun terakhir menyelesaikan suatu matakuliah, kita melakukan join pada tabel peserta dan tabel kuliah dengan kondisi kodekuliah pada tabel kuliahsama dengan kodekuliah pada tabel peserta. Lalu untuk mencari tahun terakhir digunakan fungsi MA thnakademik setelah dikelompokkan berdasarkan nim dan kodemk dengangroup BY nim, kodemk. Lalu operasi intersection dilakukan dengan memeriksa apakah record nim, kodemk, thnakademik dari hasil join tiga tabel ada pada hasil query untuk menampilkan tahun terakhir menyelesaikan suatu matakuliah. 3. Menampilkan dosen yang pernah mengampu kelas matakuliah yang pesertanya tidak lebih dari 15 mahasiswa SELECT DISTINCT nip FROM kuliah, ( SELECT kodekuliah, COUNT( * jumlahpeserta

FROM peserta GROUP BY kodekuliah banyakpeserta WHERE kuliah.kodekuliah = banyakpeserta.kodekuliah AND jumlahpeserta <=15 Pada query ini kita akan menampilkan dosen yang pernah mengampu matakuliah yang pesertanya <= 15 mahasiswa. Awalnya menggunakan tabel peserta, kita hitung dahulu jumlah peserta dari setiap kuliah dengan menggunakan COUNT setelah dikelompokkan berdasarkan kodekuliah dengan GROUP BY kodekuliah. ( SELECT kodekuliah, COUNT( * jumlahpeserta FROM peserta GROUP BY kodekuliah banyakpeserta Setelah itu query tersebut diberi alias banyakpeserta. Lalu pada query utama kita melakukan join pada tabel banyakpeserta dengan tabel kuliah pada kondisi kodekuliah pada tabelkuliah sama dengan kodekuliah pada tabel banyakpeserta serta menambahkan kondisi jumlahpeserta <= 15. Pada query utama kita menampilkan nip yang di dahului dengan katadistinct agar nip yang ditampilkan tidak ada perulangan. 4. Menampilkan nama mahasiswa yang telah lulus lebih dari 100 SKS SELECT nama FROM ( SELECT nim, SUM( sks jumlahsks

, matakuliah WHERE nilai < 'E' AND kuliah.kodekuliah = peserta.kodekuliah AND kuliah.kodemk = matakuliah.kodemk GROUP BY nim yanglulus, mahasiswa WHERE jumlahsks >100 AND yanglulus.nim = mahasiswa.nim Pada query ini kita akan menampilkan nama mahasiswa yang telah lulus > 100 SKS. Mula-mula kita menghitung jumlah SKS dari matakuliah yang lulus untuk masing-masing mahasiswa. Kita melakukan join pada tiga tabel peserta, kuliah dan matakuliah dengan kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah pada tabel peserta dan kodemk pada tabel kuliah sama dengan kodemk pada tabel matakuliah disertai dengan kondisi nilai < E yang berarti nilai >= E tidak diikutkan. Lalu sks yang memenuhi kondisi dijumlahkan dengan SUM(sks yang diberi alias jumlahsks setelah dikelompokkan berdasarkan nim dengan GROUP BY nim. Query tersebut diberi alias jumlahlulus. ( SELECT nim, SUM( sks jumlahsks, matakuliah WHERE nilai < 'E' AND kuliah.kodekuliah = peserta.kodekuliah AND kuliah.kodemk = matakuliah.kodemk GROUP BY nim yanglulus

Pada query utama kita melakukan join pada tabel yanglulus dengan mahasiswa dengan kondisi nim pada tabel yanglulus sama dengan nim pada tabel mahasiswa disertai kondisijumlahsks > 100 untuk menampilkan nama mahasiswa yang telah lulus > 100 SKS. 5. Menampilkan banyaknya siswa yang telah lulus tugas akhir bila kode matakuliah untuk tugas akhir adalah M0012 SELECT COUNT( * lulusta WHERE nilai < 'E' AND kuliah.kodekuliah = peserta.kodekuliah AND kodemk = 'M0012' Pada query kali ini kita akan menampilkan jumlah mahasiswa yang telah lulus tugas akhir bila kode matakuliah tugas akhir = M0012. Pertama-tama kita melakukan join pada tabel peserta dankuliah dengan kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah pada tabel peserta untuk mendapatkan nilai dan kodemk. Lalu hasil join tersebut kita saring dengan kondisi nilai < E dan kodemk = M0012 yang selanjutnya setelah disaring kita hitung dengan COUNT dan diberi alias lulusta untuk menghitung jumlah mahasiswa yang telah lulus tugas akhir. 6. Menampilkan daftar nomor dan nama mahasiswa beserta IP berdasar dua asumsi di atas SELECT buatip.nim, nama, ( SUM( nilaisks / SUM( sks ip FROM mahasiswa, ( SELECT nim, kuliah.kodemk, ( ( 69 ASCII( UPPER( nilai * sks nilaisks, sks FROM peserta, matakuliah, kuliah

AND kuliah.kodemk = matakuliah.kodemk AND ( nim, kuliah.kodemk, thnakademik IN ( SELECT nim, kodemk, MA thnakademik thnterakhir buatip WHERE mahasiswa.nim = buatip.nim GROUP BY nim Pada query yang cukup panjang ini. kita akan menampilkan nomor dan nama mahasiswa beserta IP berdasar dua asumsi di atas. Pada awalnya kita membuat query untuk menampilkan nim,kodemk dan nilai yang sudah dikali sks. Query ini mirip seperti query yang dijelaskan pada nomor 2 dengan sedikit perubahan. ( SELECT nim, kuliah.kodemk, ( ( 69 ASCII( UPPER( nilai * sks nilaisks, sks FROM peserta, matakuliah, kuliah AND kuliah.kodemk = matakuliah.kodemk

AND ( nim, kuliah.kodemk, thnakademik IN ( SELECT nim, kodemk, MA thnakademik thnterakhir buatip Bagian yang ditebalkan merupakan perubahan yang dilakukan untuk query kali ini. Hasil query tersebut diberi alias buatip. Lalu kita melakukan join pada tabel buatip dan tabel nama dengan kondisi nim pada tabel mahasiswa sama dengan nim pada tabel buatip untuk mendapatkan nama. Selanjutnya untuk menghitung IP, kita menjumlahkan semua nilaisks dan membaginya dengan jumlah sks dengan SUM(nilaisks / SUM(sks setelah dikelompokkan menurut nim-nya dengan menggunakan GROUP BY nim. 7. Menghitung IP bila asumsi kedua di atas diganti bahwa nilai yang dipakai untuk penentuan IP adalah nilai yang terbaik (dari serangkaian mengulang matakuliah SELECT nim, ( SUM( nilaimaxsks / SUM( sks ip FROM ( SELECT nim, ( ( 69 ASCII( UPPER( nilaimax * sks nilaimaxsks, sks FROM matakuliah, (

SELECT nim, kodemk, MIN( nilai nilaimax nilaiterbaik WHERE nilaiterbaik.kodemk = matakuliah.kodemk buatip GROUP BY nim Pada query ini kita akan menampilkan IP dengan asumsi kedua diganti menjadi nilai yang dipakai untuk menghitung IP adalah nilai yang terbaik. Mula-mula kita mencari nilai terbaik pada setiap matakuliah untuk masing-masing mahasiswa. Kita melakukan join pada tabel peserta dengan tabel kuliah pada kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah pada tabel peserta untuk mendapatkan kodemk dan nilai. Lalu kita mencari nilai terbaik dari setiap matakuliah untuk masing-masing mahasiswa dengan MIN(nilai setelah dikelompokkan berdasarkan nim dan kodemk dengan menggunakan GROUP BY nim, kodemk karena nilai ascii A < B < C < D < E. ( SELECT nim, kodemk, MIN( nilai nilaimax nilaiterbaik Hasil query tersebut diberi alias nilaiterbaik. Setelah itu kita melakukan join tabel nilaiterbaik dengan tabel matakuliah pada kondisi kodemk pada tabel nilaiterbaik sama dengan kodemk pada tabel kuliah untuk mendapatkan sks. Selanjutnya ditampilkan nim, nilaimaxsks yang merupakan nilaimax dikali sks serta sks.

( SELECT nim, ( ( 69 ASCII( UPPER( nilaimax * sks nilaimaxsks, sks FROM matakuliah, ( SELECT nim, kodemk, MIN( nilai nilaimax nilaiterbaik WHERE nilaiterbaik.kodemk = matakuliah.kodemk buatip Hasil query tersebut diberi alias buatip. Kemudian kita menghitung IP seperti query pada nomor 6 yaitu SUM(nilaimaxsks / SUM(sks setelah dikelompokkan berdasarkan nimdengan menggunakan GROUP BY nim.