MODUL 8 STRUCTURED QUERY LANGUAGE (BAGIAN 2)

dokumen-dokumen yang mirip
Contoh SQL Constraint

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

Praktikum Basis Data 2017 TE UM

Contoh SQL Constraint

Pertemuan III Oleh: Ilham Rais Arvianto, M.Pd

DESAIN DATABASE. Pertemuan 06 3 SKS

LAPORAN PRAKTIKUM BASIS DATA LANJUT I

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

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

LAPORAN TUGAS BASIS DATA I

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

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

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

Database. Danu Wira Pangestu 1. Mengenal Database. Lisensi Dokumen:


BAHASA QUERY KOMERSIAL

Basis Data. Structured Query Language (SQL)

MODUL II SQL A. TUJUAN

BAHASA QUERY KOMERSIAL

Basis Data Spasial Modul 2

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

Pertemuan 10. Bahasa Query Terapan

BAB IV IMPLEMENTASI DAN PENGUJIAN

TUGAS PRAKTIKUM SISTEM BASIS DATA

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

MODUL 7 STRUCTURED QUERY LANGUAGE

M O D U L K U L I A H

Modul 3 : Query Penggabungan Tabel

BAHASA QUERY KOMERSIAL

Pengenalan Structured Query Language

d. Primary Key Primary key atau unique key adalah suatu nilai di basis data yang digunakan untuk mengidentifikasi keunikan baris-baris di dalam tabel.

TUGAS PRAKTIKUM SISTEM BASIS DATA

Stored Procedure. M. Saefudin SKom, MMSI

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

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

P - 7 Pembahasan UTS PSIK V

Structured Query Language

Untuk menjalankan Mysql secara konpensional jalankan Mysql.exe pada direktori Mysql\Bin. Akan tampak tampilan sebagai berikut:

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

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

MODUL 4 INTERNET PROGRAMMING DATABASE

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

MODUL 5 INTERNET PROGRAMMING : MySQL

Pertemuan 12 Pengenalan Structured Query Language

BAB 2 LANDASAN TEORI

PRAKTIKUM 5 QUERY Datasheet view Hasil tampilan data dari perintah query sesuai definisi dari Design view atau SQL view B.3. Query dengan Perint

STRUCTURE QUERY LANGUAGE (SQL)

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

Structured Query Language

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

PRAKTIKUM SISTEM BASISDATA

2 nd DML : Selection(2)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

SQL. Brigida Arie Minartiningtyas, M.Kom

PRAKTIKUM 3 PEMBUATAN TABEL DENGAN SQL COMMAND 18 Constraint PRIMARY KEY pada tabel DOSEN, yaitu field NIP dapat didefnisikan pada saat pembuatan tabe

X. PENGANTAR DATABASE

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

MODUL II NORMALISASI DATA

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

Modul Praktikum Basis Data 4 Relasi Table

Pertemuan 11. Donny Yulianto, S.Kom

SISTEM BASIS DATA 3 SKS

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

Satuan Acara Perkuliahan

INTERNET PROGRAMMING DATABASE

TUGAS PRAKTIKUM SISTEM BASIS DATA

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

Penyelesaian: Soal A.i

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

MODUL 1 Pengenalan MySQL, DDL, DML

Normalisasi. Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

MySQL J A M K E T I G A


Data Manipulation Language (DML) merupakan bahasa basis data yang berguna untuk melakukan modifikasi dan pengambilan data pada suatu basis data

LATAR BELAKANG IBM San Jose Research Laboratory.

Database MySql. Mata Pelajaran: Database SMK Qamarul Huda Jurusan TKJ Kelas XII. Disusun oleh: Heru Minandar,ST.

Modul 4 SQL Tujuan a. Mahasiswa dapat mengenal Sintak dasar SQL b. Mahasiswa dapat mengoperasikan Sintak dasar SQL. 1.2 Materi a. SQL b.

Mudafiq Riyan Pratama

Model Relasional. Basis Data. Pengertian

Pengantar. Teknologi Informasi. 08 Teknologi Basis Data 1. Sumber:

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

Basis Data Modul Teori

LAPORAN PRAKTIKUM IV BASIS DATA (SISTEM BERKAS - LAN)

BAHASA QUERY KOMERSIAL

Praktikum Basis Data 14 Structure Query Language 2

PRAKTIKUM SISTEM BASISDATA. Disusun Oleh : Anggi Nurcahyo ( )

Contoh-contoh query SQL

KURSUS ONLINE JASA WEBMASTERS

BAHASA QUERY KOMPLEKS

BAHASA QUERY KOMERSIAL

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

7 VARIASI INSERT YANG TERLUPAKAN

MODUL PRAKTIKUM 04. Database Implementation dengan Perintah SQL

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

Transkripsi:

MODUL 8 STRUCTURED QUERY LANGUAGE (BAGIAN 2) STRUKTUR DASAR 1. Klausa Select Perintah SQL untuk NIM dan nama mahasiswa yang ada di tabel Mahasiswa, maka perintah SQL berikut ini : Select nim, nama_mhs From mahasiswa Sementara, perintah berikut ini : Select nama_mhs From mahasiswa Apa bentuk tampilan dari klausa dibawah : Select nim, nama_mhs as nama Alamat_mhs as alamat From mahasiswa Apa bentuk tampilan dari klausa dibawah : Select * From mahasiswa 2. Klausa Where Berikut ini adalah contoh untuk menampilkan semua atribut untuk mahasiswa dengan NIM= 980002 : Select * From mahsiswa Where nim = 980002 Apa tampilan dari perintah dibawah ini : 1

Select * From kuliah Where semester between 3 and 5 3. Klausa Form Ekspresi berikut menghasilkan table seperti apa : select * from kuliah, dosen where kuliah. kode_dos = dosen.kode_dos Ekspresi berikut menghasilkan table seperti apa : apa? : select * from kuliah k, dosen d where k.kode_dos = d.kode_dos Ekspresi berikut menghasilkan table seperti apa : select k.kode_kul, k.nama_kul, d.nama_dos from kuliah k, dosen d where k.kode_dos = d.kode_dos Ekspresi berikut menghasilkan table seperti apa : select k.kode_kul as kode, k.nama_kul as kuliah, d.nama_dos as dosen from kuliah k, dosen d where k.kode_dos = d.kode_dos and k.semester = 3 Ekspresi berikut menghasilkan table seperti apa : select n.nim, m.nama_mhs k.nama_kul, n.indeks_nilai from nilai n, mahasiswa m, kuliah k 2

where n.nim = m.nim and n.kode_kul = k.kode_kul F. Latihan 1. Buatlah tabel-tabel dibawah ini dengan menggunakan Mysql dan simpan dalam database DataMaster Tabel Mahasiswa Mhs Nim T_lahir Jones Dendi Tomy Paula 61521 61300 61425 61230 05/12/77 28/04/78 01/11/75 14/06/77 Tabel Mhs_Kul Tabel Matakuliah Nim Kode_mk Nilai 61521 61521 61521 61300 61425 61425 61230 61230 Mat 231 Eko 220 Hst 211 Hst 211 Eng 202 Mat 231 Mat 231 Eng 202 B A B A C B D C M_kuliah Kode_mk sks Matematika Mat 231 3 Ekonomi Eko 220 3 Sejarah Hst 211 2 b.inggris Eng 202 2 Tabel Mutu Nilai Bobot 3

A B C D E 4 3 2 1 0 a. Cari semua nim dan nama mahasiswa yang tidak lahir tgl 28/04/78 b. Tampilkan nilai & nim dari mahasiswa yang memperoleh nilai D c. Tampilkan nilai mahasiswa yang bobotnya diatas dua d. tampilkan mahasiswa yang mengambil matakuliah "Matematika" e. ganti mahasiwa yang bernama "Tomy" menjadi "Candra" #Perintah INSERT Perintah INSERT digunakan untuk menambah data pada tabel. Sebenarnya ada berbagai macam kombinasi dari perintah insert ini. 3 macam model, yang sekiranya cukup bagi kita untuk berkiprah di dunia SQL. A. Model 1. Disini INSERT yang dipakai merupakan perintah standard Misalnya pada tabel tb_brg yang telah kita bikin pada pertemuan sebelumnya : insert into tb_brg(kode_brg, nama_brg) values( 1001, Buku ) insert into tb_brg(kode_brg, nama_brg) values( 1002, Pencil ) insert into tb_brg(kode_brg, nama_brg) values( 1003, Penggaris ) Jalankan ketiga perintah diatas maka tb_brg akan terisi dari nilai2 yang ada pada values. Untuk dapat melihat hasilnya bisa menjalankan perintah di bawah ini 4

select* from tb_brg maka akan terlihat tabel dibawah ini : B. Model 2. Perintah INSERT disini lebih ringkas, tapi butuh hapal susunan field tabelnya kalau tidak bisa ketukar informasi yang diberikan antara kode_brg dengan nama_brg. Perintah INSERT ini juga bisa dengan model dibawah ini insert into tb_brg values( 1004, Pulpen ) Perintah seperti ini semua field harus terisi oleh values, tidak boleh tidak. C. Model 3. Perintah ini dikombinasikan dengan SELECT, bisa dengan kriteria yang ingin kita tentukan. Biasanya perintah ini untuk memindah data dari tabel1 ke tabel2 Mari kita coba : Buat tabel kedua seperti pada pertemuan sebelumnya create table tb_brg2(kode_brg char(15) primary key, nama_brg char(50)) maka terbentuk tabel dengan nama tb_brg2, kemudian isi tabel tb_brg2 kita isikan dengan tabel tb_brg dengan kriteria kode_brg >= 1002, seperti yang dituliskan dibawah ini : insert into tb_brg2 select* from tb_brg where kode_brg >= 1002 5

hasilnya dapat dilihat pakai perintah select* from tb_brg2. Disini terlihat isi data tb_brg2 akan terisi dengan kode_brg >= 1002 Perintah Model ke-3 ini sangat praktis apabila kita mengelola data dengan jumlah ribuan bahkan jutaan record. Akan diberikan beberapa contoh perintah SQL yang diimplementasikan pada multi tabel. Adapun perintah SQL untuk manipulasi data pada satu tabel, hal ini cukup mudah bagi Anda. Dalam contoh ini akan diambil studi kasus tentang pengambilan matakuliah mahasiswa. Tabel-tabel yang dibuat pada studi kasus ini cukup sederhana saja untuk memudahkan pemahaman. Adapun tabel-tabel tersebut adalah: mhs ( nim varchar(3), namamhs varchar(30), primary key(nim) ) mk ( kodemk varchar(3), namamk varchar(30), sks integer, primary key(kodemk) ) ambilmk ( nim varchar(3), kodemk varchar(3), nilai integer, 6

primary key(nim, kodemk) ) Dalam hal ini, field nim dan kodemk pada tabel ambilmk merupakan foreign key. Apabila diperhatikan, tabel mhs dengan tabel ambilmk saling berelasi karena nim dalam tabel ambilmk berasal dari nim dalam tabel mhs (master tabel). Demikian pula antara tabel mk dengan ambilmk. Kedua tabel ini juga berelasi karena kodemk dalam tabel ambilmk berasal dari kodemk dalam tabel mk. Untuk record masing-masing tabel, misalkan diberikan berikut ini: Tabel : mhs nim namamhs 001 Joko 002 Amir 003 Budi Tabel : mk kodemk namamk sks A01 Kalkulus 3 A02 Geometri 2 A03 Aljabar 3 Tabel : ambilmk nim kodemk nilai 001 A01 3 001 A02 4 001 A03 2 002 A02 3 002 A03 2 003 A01 4 003 A03 3 7

Selanjutnya misalkan akan dicari data-data sbb: 1. Tampilkan nim dan nama mahasiswa yang mengambil Kalkulus (kodemk = A01) 2. Tampilkan nim, nama mahasiswa dan jumlah SKS matakuliah yang diambil untuk setiap mahasiswa 3. Berapakah IPK mahasiswa bernama Budi (NIM: 003) 4. Tampilkan nim, nama mahasiswa, dan IPK setiap mahasiswa Untuk menjawab no. 1, kita harus cari dulu tabel mana yang terkait dengan query tersebut. Apabila kita akan mencari query tersebut berdasarkan nama matakuliah Kalkulus maka tabel yang terkait adalah mhs (untuk menampilkan nim dan nama mahasiswa), mk (karena dalam tabel ini terdapat nama matakuliah), serta tabel ambilmk (karena tabel ini berisi data pengambilan matakuliah oleh mahasiswa). Setelah menentukan tabel mana yang terkait dengan query, selanjutnya dapat dibuat statement SQL nya, yaitu SELECT mhs.nim, mhs.namamhs FROM mhs, mk, ambilmk WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk AND mk.namamk = 'Kalkulus'; Maksud mhs.nim, maksudnya adalah menampilkan data nim yang berasal dari tabel mhs. Dapat pula Anda menuliskan SQL nya seperti ini SELECT ambilmk.nim, mhs.namamhs FROM mhs, mk, ambilmk WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk AND mk.namamk = 'Kalkulus'; Hal ini dikarenakan untuk menampilkan nim dapat pula berasal dari tabel ambilmk. Perhatikan bagian FROM dari kedua statement SQL di atas. Nama-nama tabel yang terkait dengan query dituliskan pada bagian FROM ini. 8

Selanjutnya apa maksud dari perintah mhs.nim = ambilmk.nim? Perintah ini digunakan untuk merelasikan tabel mhs dan ambilmk, dimana kedua tabel direlasikan melalui field nim di kedua tabel. Hal yang sama juga berlaku untuk perintah mk.kodemk = ambilmk.kodemk. Sedangkan perintah mk.namamk = Kalkulus digunakan sebagai syarat pencarian data (menampilkan data mahasiswa yang mengambil matakuliah Kalkulus). Apabila pencarian data mahasiswa yang mengambil Kalkulus ini berdasarkan kode matakuliah (A01), maka Anda tidak perlu menggunakan tabel mk, tapi cukup tabel mhs dan ambilmk saja. Hal ini dikarenakan kodemk dapat diketahui dari tabel ambilmk. Sehingga perintah SQL nya SELECT mhs.nim, mhs.namamhs FROM mhs, ambilmk WHERE mhs.nim = ambilmk.nim AND ambilmk.kodemk = 'A01'; Ketiga statement SQL di atas akan menghasilkan hasil yang sama yaitu NIM namamhs 001 Joko 003 Budi Selanjutnya akan dijawab pertanyaan no. 2. Seperti halnya langkah penyelesaian pertanyaan no. 1, langkah pertama harus kita tentukan dulu tabel apa saja yang terkait dengan query. Dalam hal ini kita akan menggunakan tabel mhs, mk dan ambilmk. Tabel mhs untuk menampilkan nim dan nama mahasiswa. Tabel mk digunakan karena di dalamnya terdapat data SKS. Sedangkan tabel ambilmk digunakan karena berisi data yang menunjukkan pengambilan matakuliah mahasiswa. Perintah SQL untuk pertanyaan no. 2 adalah SELECT mhs.nim, mhs.namamhs, sum(mk.sks) as jumlahsks FROM mhs, mk, ambilmk WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk GROUP BY ambilmk.nim 9

atau SELECT mhs.nim, mhs.namamhs, sum(mk.sks) as jumlahsks FROM mhs, mk, ambilmk WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk GROUP BY mhs.nim Untuk mencari jumlah SKS setiap mahasiswa, kita menggunakan perintah sum(mk.sks). Supaya perintah ini bisa jalan, maka harus ditambahkan perintah GROUP BY mhs.nim atau GROUP BY ambilmk.nim. Hal ini dikarenakan proses penjumlahan sks harus dilakukan pada setiap kelompok data. Maksudnya apa ya? Perhatikan perintah SQL berikut ini SELECT mhs.nim, mhs.namamhs, mk.sks FROM mhs, mk, ambilmk WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk Perintah di atas akan menampilkan nim, nama mahasiswa serta sks setiap mata kuliah yang diambil. Hasilnya adalah NIM namamhs SKS 001 Joko 3 001 Joko 2 001 Joko 3 002 Amir 2 002 Amir 3 003 Budi 3 003 Budi 3 Untuk pertanyaan no. 2 ini, seharusnya akan tampil hasil berikut NIM namamhs jumlahsks 001 Joko 8 002 Amir 5 003 Budi 6 10

Sehingga supaya mendapatkan hasil seperti di atas, kita akan menjumlahkan setiap SKS yang diambil mahasiswa, berdasarkan kelompok mahasiswa, dalam hal ini dikelompokkan berdasarkan NIM. Mengapa tidak dikelompokkan berdasarkan nama mahasiswa? Wah bisa gawat kalau ini terjadi, karena ada kemungkinan nama mahasiswa yang sama. Oleh karena itu harus ada perintah GROUP BY mhs.nim Adapun pertanyaan no. 3 adalah bagaimana perintah SQL untuk menampilkan IPK dari mahasiswa bernim 003? Untuk membuat SQL dari query di atas, lagi-lagi langkah pertama adalah menentukan di tabel mana kita akan bekerja. Apabila Anda perhatikan, maka tabel yang dipilih adalah mk dan ambilmk. Mengapa demikian? Tabel mk digunakan untuk mengambil informasi terkait dengan sks matakuliah yang diambil mahasiswa dan tabel ambilmk berisi informasi daftar matakuliah yang diambil mahasiswa. Nah, setelah Anda menentukan tabel yang digunakan, selanjutnya Anda harus tahu formula untuk menghitung IPK. Apa rumusnya? yaitu jumlah dari perkalian sks dan nilai yang diambil mahasiswa dibagi dengan jumlah sks yang diambil mahasiswa. OK begitu Anda tahu rumusnya, langsung dapat diimplementasikan ke SQL, yaitu SELECT sum(ambilmk.nilai * mk.sks)/sum(mk.sks) as IPK FROM ambilmk, mk WHERE ambilmk.kodemk = mk.kodemk AND ambilmk.nim = '003'; Dari SQL di atas, Anda akan memperoleh hasil IPK mhs bernim 003 adalah 3.5 Hikmah dari contoh kasus pencarian IPK ini adalah, apabila Anda membuat sistem untuk pencatatan nilai siswa seperti sistem informasi akademik dan sejenisnya, sebaiknya data IP atau IPK jangan disimpan dalam tabel, melainkan melalui proses query. Apabila data IP atau IPK tersimpan ke dalam tabel, maka kemungkinan terjadi ketidakkonsistenan data semakin besar. Bisa jadi IP atau IPK yang tersimpan di tabel berbeda dengan kenyataan berdasarkan nilai-nilai matakuliah yang diperoleh siswa. Lagipula jika data-data IP dan IPK disimpan dalam tabel, maka hanya akan menambah penuh database Anda. Selanjutnya akan dibahas untuk pertanyaan no. 4, yaitu 11

bagaimana statement SQL untuk menampilkan nim, nama dan nilai IPK semua mahasiswa. Kita harus menggunakan semua tabel, yaitu mhs, mk dan ambilmk.tabel mhs diperlukan karena untuk menampilkan nama mahasiswa, bisa juga untuk nim. Tapi nim juga dapat ditampilkan melalui tabel ambilmk. Bagaimana statement SQL nya? SELECT mhs.nim, mhs.namamhs, sum(ambilmk.nilai * mk.sks)/sum(mk.sks) as IPK FROM mhs, ambilmk, mk WHERE mhs.nim = ambilmk.nim AND ambilmk.kodemk = mk.kodemk GROUP BY mhs.nim Mengapa harus ada perintah GROUP BY mhs.nim? Hal ini karena perhitungan IPK dapat dilakukan setelah data dikelompokkan berdasarkan nim, mengingat seorang mahasiswa dapat mengambil matakuliah lebih lebih dari satu. =================== 12