Latar belakang
Dalam dunia yang semakin terbuka, tuntutan
terhadap pelayanan yang serba instan dari organisasi apapun terasa semakin kuat. Pelayanan ini dapat terlaksana jika seluruh data yang dibutuhkan tersebut terkumpul, tersusun, dan terorganisir dalam suatu basisdata (database) yang dapat diakses menurut keperluan kapan saja diperlukan.
Tujuan
Memahami operasi-operasi DDL da DML dalam MySQL.
Memahami entitas dalam basis data. Melakukan operasi-operasi retrieve yang spesifik. Memahami keterhubungan entitas didalam basis data. Menyelesaikan kasus-kasus yang melibatkan penggunaan
fungsi-fungsi agregat dan pengelompokan. Memahami operasi subquery dan jenis-jenisnya di dalam pengambilan data. Menyelesaikan kasus-kasus pengambilan data yang kompleks dengan pendekatan subquery.
Dasar Teori
1. SQL (StructuredQuery Language ) SQL adalah sebuah bahasa yang digunakan untuk merequest informasi dari basis data, ada 2 operasi dasar yaitu DDL dan DML. Contoh perintah DDL : CREATE (mendefinisikan), ALTER(memodifikasi), dan DROP( menghapus skema relasi). Contoh perintah DML: INSERT (menambah),UPDATE(memodifikasi), DELETE (menghapus), dan SELECT (mengambil data).
2. Fungsi Agregat adalah fungsi-fungsi yang beroperasi pada sekumpulan baris untuk menghitung dan menghasilkan sebuah nilai tunggal.
3. Subquery (disebut juga subselect atau nested select/query atau inner- select) adalah query SELECT yang ada di dalam perintah SQL lain misalnya SELECT, INSERT, UPDATE, atau DELETE.
4. Pemodelan Data: Model Data Entity-Relationship (E-R) memungkinkan kita menggambarkan konteks objek dan hubungannya, dan digunakan secara luas untuk mengembangkan desain database awal. Model Data tersebut dinamakan juga sebagai Diagram E-R (ERD).
Query
Membuat Databasepti.10.c_kel.4_jurnal
Membuat Tabeldaftar_isi
CREATE TABLE detail_jurnal ( id_jurnal varchar(12), volume int(2), nomor int(2), bulan varchar(10), tahun varchar(4), PRIMARY KEY (id_jurnal) );
Membuat Tabeljabatan
CREATE TABLE pengurus ( kode_pengurus varchar(12), nama_pengurus varchar(12), institusi varchar(12), PRIMARY KEY (kode_pengurus) );
Membuat Tabelpengurus_jurnal CREATE TABLE pengurus_jurnal ( id_jurnal varchar(12), kode_pengurus varchar(12), kode_jabatan varchar(12) ); Membuat Tabelpenulis CREATE TABLE penulis ( kode_penulis varchar(12),
Menampilkan Data
Menampilkan Detail Jurnal Jika Diketahui Bulan
dan Tahun Pembuatan SELECT volume, nomor, bulan, tahun FROM detail_jurnal WHERE bulan = 'Agustus' AND tahun = '2006';
Menampilkan Detail Jurnal Jika Diketahui Volume
dan Nomor Jurnal SELECT volume, nomor, bulan, tahun FROM detail_jurnal WHERE volume = 7 AND nomor = 1;
Tertentu Dengan Pengurutan Berdasarkan Judul Secara Ascending SELECT judul as 'Judul Artikel' FROM artikel WHERE kode_artikel IN (SELECT kode_artikel FROM daftar_isi d WHERE d.id_jurnal = (SELECT j.id_jurnal FROM detail_jurnal j WHERE volume = 4 AND nomor = 2)) ORDER BY judul ASC;
Menampilkan Nama Pengurus dan Jabatannya Pada
Suatu Jurnal SELECT p.nama_pengurus AS 'Nama Pengurus', j.nama_jabatan AS 'Jabatan' FROM pengurus p, jabatan j, pengurus_jurnal pj WHERE p.kode_pengurus = pj.kode_pengurus AND j.kode_jabatan = pj.kode_jabatan AND pj.id_jurnal = (SELECT dj.id_jurnal FROM detail_jurnal dj WHERE volume = 7 AND nomor = 1);
SELECT abstrak FROM artikel WHERE judul = 'SIMULATOR PENGUJIAN KARAKTERISTIK GENERATOR AC 1 FASA';
Menampilkan Semua Abstrak Pada Suatu Jurnal
SELECT abstrak FROM artikel WHERE kode_artikel IN (SELECT kode_artikel FROM daftar_isi WHERE id_jurnal = (SELECT id_jurnal FROM detail_jurnal WHERE volume = 7 AND nomor = 1));
SELECT nama_penulis AS 'Penulis Artikel' FROM penulis WHERE kode_penulis = (SELECT kode_penulis FROM penulis_artikel WHERE kode_artikel = (SELECT kode_artikel FROM artikel WHERE judul = 'PENERAPAN METODE PEMETAAN SCHWARZ CHRISTOFFEL DALAM PENENTUAN INDUKTANSI BOCOR ALUR MESIN TAK SEREMPAK'));
Menampilkan Detail Jurnal dan Lokasi Halaman Artikel
Dari Judul Artikel SELECT DISTINCT dj.volume AS 'Volume', dj.nomor AS 'Nomor', dj.bulan AS 'Bulan', dj.tahun, a.halaman AS 'Halaman' FROM detail_jurnal dj, artikel a WHERE dj.id_jurnal IN (SELECT di.id_jurnal FROM daftar_isi di WHERE di.kode_artikel IN (SELECT sa.kode_artikel FROM artikel sa WHERE judul = 'SIMULATOR PENGUJIAN KARAKTERISTIK GENERATOR AC 1 FASA')) AND a.judul = 'SIMULATOR PENGUJIAN KARAKTERISTIK GENERATOR AC 1 FASA';
Artikel Tertentu SELECT dj.volume, dj.nomor, dj.bulan, dj.tahun FROM detail_jurnal dj WHERE dj.id_jurnal = (SELECT di.id_jurnal FROM daftar_isi di WHERE di.kode_artikel = (SELECT a.kode_artikel FROM artikel a WHERE a.judul LIKE '%Sistem Monitoring Informasi%')); Menampilkan Pengurus Jurnal Yang Berasal Dari Universitas Negeri Malang SELECT nama_pengurus AS 'Nama Pengurus' FROM pengurus WHERE institusi = 'Universitas Negeri Malang';
Dari Universitas Negeri Malang SELECT nama_pengurus AS 'Nama Pengurus', institusi AS 'Institusi' FROM pengurus WHERE institusi != 'Universitas Negeri Malang'; Menampilkan Jabatan Dari Anggota Tertentu SELECT p.nama_pengurus AS 'Nama Pengurus', j.nama_jabatan AS 'Jabatan' FROM jabatan j, pengurus p WHERE j.kode_jabatan IN (SELECT pj.kode_jabatan FROM pengurus_jurnal pj WHERE pj.kode_pengurus IN (SELECT sp.kode_pengurus FROM pengurus sp WHERE sp.nama_pengurus = 'Mohammad Nuh')) AND p.nama_pengurus = 'Mohammad Nuh';
Tertentu SELECT a.judul FROM artikel a WHERE a.kode_artikel IN (SELECT pa.kode_artikel FROM penulis_artikel pa WHERE pa.kode_penulis IN (SELECT p.kode_penulis FROM penulis p WHERE p.nama_penulis = 'FX. Budi Rahardjo')); Menampilkan Jumlah Pengurus Dari Jabatan Tertentu Pada Suatu Jurnal SELECT j.nama_jabatan AS 'Nama Jabatan', COUNT(pj.kode_jabatan) AS Jumlah FROM jabatan j, pengurus_jurnal pj WHERE pj.kode_jabatan = j.kode_jabatan AND pj.id_jurnal = (SELECT id_jurnal FROM detail_jurnal WHERE volume = 5 AND nomor = 1) GROUP BY j.kode_jabatan;
Tertentu SELECT judul as 'Judul Artikel' FROM artikel WHERE kode_artikel IN (SELECT kode_artikel FROM daftar_isi d WHERE d.id_jurnal IN (SELECT j.id_jurnal FROM detail_jurnal j WHERE j.tahun = 2006));
Pada Suatu Jurnal SELECT p.nama_pengurus AS 'Nama Pengurus' FROM pengurus p WHERE p.kode_pengurus IN (SELECT pj.kode_pengurus FROM pengurus_jurnal pj WHERE pj.id_jurnal = (SELECT dj.id_jurnal FROM detail_jurnal dj WHERE volume = 7 AND nomor = 1) AND pj.kode_jabatan = (SELECT j.kode_jabatan FROM jabatan j WHERE nama_jabatan = 'Penyunting Ahli'));
Tertentu SELECT p.nama_penulis FROM penulis p WHERE p.kode_penulis IN (SELECT pa.kode_penulis FROM penulis_artikel pa WHERE pa.kode_artikel IN (SELECT di.kode_artikel FROM daftar_isi di WHERE di.id_jurnal = (SELECT dj.id_jurnal FROM detail_jurnal dj WHERE volume = 5 AND nomor = 1))); Menampilkan Artikel Yang Mengandung Kata Tertentu SELECT judul FROM artikel WHERE abstrak LIKE '%penelitian%';
Lebih Atau Sama Dengan 3 Kali SELECT p.nama_penulis FROM penulis p WHERE p.kode_penulis IN (SELECT pa.kode_penulis FROM penulis_artikel pa GROUP BY kode_penulis HAVING COUNT(pa.kode_penulis) >= 3); Menampilkan Penulis Yang Tidak Menulis Artikel Pada Jurnal Tertentu SELECT p.nama_penulis FROM penulis p WHERE p.kode_penulis NOT IN (SELECT pa.kode_penulis FROM penulis_artikel pa WHERE pa.kode_artikel IN (SELECT di.kode_artikel FROM daftar_isi di WHERE di.id_jurnal = (SELECT dj.id_jurnal FROM detail_jurnal dj WHERE volume = 6 AND nomor = 2)));
Kesimpulan
Jadi dalam penciptaan suatu database kita harus memerhatikan beberapa hal agar database yang dibuat dapat: Kecepatan dan Kemudahan Kebersamaan Keamanan Kelengkapan Ketersediaan Keakuratan Efisiensi Ruang Penyimpanan
TERIMA KASIH