Laporan Praktikum 3 (Perintah Dasar SQL)
07.41
Bismillahirrahmanirahim..
Asalammualaikum,
asisten Lab Praktikum DBD yang nge-cek laporan Ade (lagi)..
semoga gak bosen-bosen yaa, visit blog ini :D
Semoga Laporannya mendapatkan nilai yang terbaik yaa mas ^_^
-aamiin-
Kali ini saya akan membuat laporan praktikum yang berjudul "Perintah Dasar SQL", praktikum ini ialah praktikum saya yang keempat bersama pak Aziz dan mas Charis selaku asisten Lab. Dan pada pertemuan ini, kita membahas modul 3 yang materinya jauh lebih menarik dari sebelumnya, untuk itu ndak usah berlama-lama yuk kita lihat laporan nya :D ...
- DASAR TEORI
1. Hubungan Antar Tabel
Dalam dunia basis data, terdapat istilah hubungan antar tabel atau refernces. Untuk mengolah basis data sangat diperlukanlah yang namanya hubungan antar tabel tersebut agar setiap tabel yang di buat bisa saling terkait. Kita kenal kunci utama (primary key) dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan antara 2 atau lebih table. Primary key adalah satu atau beberapa kolom pada table yang mengidentifikasikan tiap kolom dan baris pada table tersebut. Sedangkan Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya. Misalnya kita memiliki 2 tabel, yaitu tabel mhs dan matkul ;
- CREATE TABLE matkul( id_matkul CHAR(5) NOT NULL PRIMARY KEY, nm_matkul VARCHAR(30) NOT NULL, jml_sks VARCHAR (5) NOT NULL);
- CREATE TABLE mhs( nim INT NOT NULL PRIMARY KEY, nama VARCHAR(50) NOT NULL, alamat VARCHAR(60) NOT NULL, id_matkul INT, FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul) );
Tabel ‘matkul’ sebagai tabel induk kita buat terlebih dahulu, kemudian baru kita buat tabel mhs sebagai tabel yang akan di berikan foreign key dari tabel matkul.
2. Memasukkan data
Dari tabel mhs dan matkul kemudian kita isi tabel seperti contoh tabel berikut ;
Table mhs
Nim Nama Alamat Id_matkul
7644 Adi Artupida Bekasi 123
7634 Herman Bandung 222
7635 Budianto Nahrowi Semarang 111
7636 Sinta Bekasi 333
Table Matkul
Id_matkul Nm_matkul Jml_sks
123 Pemrograman Web 3
111 Pemrograman C 3
222 Pemrograman Java 3
333 Pemrograman OOP 3
Untuk memasukkan data ke dalam tabel kita dapat menggunakan perintah INSERT, dengan query seperti contoh di bawah ;
- INSERT INTO mhs VALUES (7633,’Adi Artupida’,’Bekasi’,123), (7634,’Herman’,’Bandung’,222), (7635,’Budianto Nahrowo’,’Semarang’,111), (7636,’Sinta’,’Bekasi’,333);
- INSERT INTO matkul VALUES (123,’Pemrograman Web’,3), (111,’Pemrograman C’,3), (222,’Pemrograman Java’,3), (333,’Pemrograman OOP’,3);
Dalam memasukkan data ada beberapa ketentuan yang harus di penuhi salah satunya adalah ketika kita memasukkan data yang bertipe VARCHAR kita harus memberikan tanda petik atas (‘ ‘) pada data tersebut. Akan berbeda pada data yang bertipe INT, BOOLEAN kita tidak perlu memberikan tanda petik (‘ ‘) ketika memasukkan data.
3. Menampilkan data
Menampilkan data dari sebuah tabel mungkin merupakan hal paling sering kita lakukan dalam menangani database. Pembuatan tabel MySQL hanya perlu di lakukan sekali di awal implementasi, namun input data (INSERT) dan menampilkannya kembali (SELECT) dalam format yang diinginkan merupakan rutinitas selama database masih digunakan. Perintah SELECT akan dibahas berkaitan dengan opsi WHERE, ORDER BY, dan LIMIT.
Format dasar ketika kita ingin menampilkan data, setidaknya kita butuh setidaknya 3 hal:
1. Apa saja kolom yang ingin ditampilkan,2. Nama tabel yang akan ditampilkan, dan
3. Kondisi untuk menampilkan data.
Query SELECT pada dasarnya juga terdiri dari 3 hal tersebut:
1. Apa saja kolom yang ingin ditampilkan,2. Nama tabel yang akan ditampilkan, dan
3. Kondisi untuk menampilkan data.
Query SELECT pada dasarnya juga terdiri dari 3 hal tersebut:
- SELECT apa_yang_akan_ditampilkan FROM tabel_apa WHERE kondisi_apa_data_ditampilkan ;
Sebagai contoh kita ingin menampilkan isi semua tabel matkul, seperti contoh tabel di atas. query yang akan kita tuliskan adalah :
- SELECT*FROM matkul;
Tanda bintang (*) adalah wildcard atau tanda yang di gunakan untuk menandai semua data. Maka hasilnya semua data pada tabel matkul akan muncul.
Table Matkul
Id_matkul Nm_matkul Jml_sks
123 Pemrograman Web 3
111 Pemrograman C 3
222 Pemrograman Java 3
333 Pemrograman OOP 3
Jika kita ingin menampilkan hanya sebahagian dari seluruh kolom dari sebuah tabel, kita dapat menentukan kolom mana saja yang akan ditampilkan. Format dasarnya adalah sebagai berikut:
- SELECT namakolom1, namakolom2 . . . FROM namatabel ;
Kemudian, jika kita ingin menyeleksi tamilpilan berdasarkan baris tertentu bisa menggunakan perintah WHERE yang diletakkan dibelakang nama tabel dan isikan nama kolom beserta kata kunci sebagai dasar atau syarat dari pencarian baris. Untuk lebih jelasnya berikut struktur perintah SQL nya :
- SELECT namakolom1, namakolom2 . . . FROM namatabel WHERE namakolom=’kondisi’ ;
Kita contohkan dengaan menggunakan tabel mhs untuk menampilkan nama dan nim mahasiswa yang beralamat di bekasi :
- SELECT Nim, Nama FROM mhs WHERE alamat=’bekasi’ ;
Maka akan menampilkan Nim dan Nama mahasiswa yang beralamat di bekasi ;
Nim Nama
7644 Adi Artupida
MySQL menyediakan perintah opsional ORDER BY untuk mengurutkan data yang di hasilkan. Pengurutan bisa dari paling kecil ke besar, ataupun besar ke kecil. Pilihan ini dapat diatur dengan penambahan instruksi ASC (singkatan dariascending) untuk pengurutan dari kecil ke besar, dan DESC (singkatan dari descending) untuk urutan dari besar ke kecil. Jika tidak di dijelaskan, secara default bawaan MySQL, perintah ORDER BY akan menggunakan ASC.Query dasar untuk SELECT…ORDER BY adalah:
- SELECT namakolom1, namakolom2 . . . FROM namatabel WHERE nama_kolom_yang_diurutkan ORDER BY namakolomurut ; //nama kolom urut bisa di isi DESCENDING atau ASCENDING
Apabila kita ingin menampilkan data dari lebih dari satu tabel, struktur query nya terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat yaitu tabel mhs dan tabel matkul (Dengan syarat adanya relasi antara kedua tabel tersebut). Berikut Struktur query nya :
- SELECT namakolom1, namakolom2, namakolom3, namakolom4 FROM namatabe1, namatabel2 WHERE namatabel1.namakolom = namatabel2.namakolom ;
Query di atas akan menampilkan nama kolom dari dua tabel yang telah di beri relasi antara keduanya.
4. Modifikasi Data
Dalam memodifikasi database bisa menggunakan perintah UPDATE untuk memodifikasi isi tabel. Dengan query UPDATE kita bisa mengganti data lama dengan data bar. Berikut query UPDATE untuk mengganti data tabel :
UPDATE
nama_tabel
SET
nama_kolom = data_baru
WHERE
kondisi
- UPADATE namatabel SET namakolom = databaru WHERE kondisi ;
Kita bisa menambahkan perintah logika berupa OR atau AND.
5. Mengahapus Data
Pada MySQL, perintah DELETE digunakan untuk menghapus data pada sebuah tabel. Berikut Struktur yang digunakan :
- DELETE FROM namatabel ;
Dari query kita akan menghapus semua baris data dari nama tabel yang tertulis. Namun apabila kita ingin menghapus berdasarkan spesifikasi baris atau baris tertentu saja. Kita bisa menggunakan struktur query sebagai berikut :
- DELETE FROM namatabel WHERE namakolom = katakunci ;
Dengan struktur quey di atas kita bisa menghapus kolom yang kita inginkan.
(*sumber : Materi Praktikum Desain Basis Data 2014 ditambah dengan tulisan penulis)
- HASIL PRAKTIKUM
Pada bahasan ini kita akan mempraktekan perintah perintah dasar SQL di atas menggunkan 2 tabel yaitu tabel mahasiswa dan fakultas. Kita mulai dengan membuat 2 tabel terlebih dahulu dengan memberi relasi antara kedua tabel tersebut.
1. Membuat Tabel dengan Relasi
Untuk pertama kita membuat tabel fakultas dengan isi kolom id_fak dan nama_fak, berikut query nya :
mysql> create table fakultas ( id_fak INT NOT NULL PRIMARY KEY, nama_fak varchar (10));
Kemudian kita akan membuat tabel mahasiswa yang kemudian kita relasikan dengan tabel fakultas, berikut query ;
mysql> create table mahasiswa (nim_mah INT NOT NULL PRIMARY KEY, nama_mah varchar (10), alamat_mah varchar (10), id_fak INT NOT NULL, foreign key (Id_fak) references fakultas (id_fak));
2. Memasukkan Data
Seperti yang telah di terangkan di atas kita akan menggunakan perintah INSERT untuk memasukkan data ke tabel. Berikut query yang akan kita tuliskan untuk memasukkan data ke dalam tabel ;
mysql> insert into mahasiswa values (12, ‘edi’, ‘malang’, 1, 0856453428), (13, ‘sinta’, ‘jogja’, 1, 0813347565675), (14, ‘luki’, ‘ponorogo’, 2, 08257658798);
mysql> insert into fakultas values (1, ‘SAINTEK’), (2, ‘PSIKOLOGI’);
3. Menampilkan Data Berupa nim dan nama
Untuk menampilkan data dari tabel mahasiswa berpa nim dan nama kita akan menggunakan perintah SELECT.
mysql> select nim_mah, nama_mah from mahasiswa;
4. Menampilkan Data Dari 2 Tabel
Menampilkan data dari 2 tabel yang di ambil berdasarkan nim, nama mahasiswa, nama fakultas. Kita akan menggunakan perintah SELECT yang di berikan perintah WHERE.
mysql> select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
5. Menghapus Data Mahasiswaa yang Diingikan
Disini kita akan menghapus data mahasiswa yang memiliki nim = 13
mysql> delete from mahasiswa where nim_mah=13;
6. Merubah Data
Untuk merubah data kita menggunakan query UPDATE seperti teori di atas, kita rubah data di kolom no_telp dan alamat_mah pada mahasiswa yang memiliki nim=12. Berikut query nya ;
mysql> update mahasiswa set alamat_mah = ‘solo’ where nim_mah=12;
mysql> update mahasiswa set no_telp = 0857688788 where nim_mah=12;
7. Menampilkan Data Berdasarkan Nomor Urut
Mengurutkan data dari besar ke kecil berdasarkan nim mahasiswa kemudian menampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
mysql> select*from mahasiswa order by nim_mah desc;
mysql> select*from fakultas order by 2 asc;
8. Menampilkan Seluruh Data Dari 2 Tabel
Menampilkan seluruh data dari tabel mahasiswa dan fakultas menggunakan perintah SELECT.
mysql> select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
9. Menampilkan Data Mahasiswa Denagn Logika AND
Menampilkan seluruh dat mahasiswa yang berada di SAINTEK dan PSIKOLOGI
mysql> select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak=’SAINTEK';
mysql> select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak=’PSIKOLOGI';
10. Menampilkan Data Mahasiswa Dengan Logika !=
Menampilkan data mahasiswa yang tidak berada si fakultas saintek
11. Menghapus Data
Hapus Data fakultas SAINTEK. Untuk menghapus data yang berada di SAINTEK, kita harus menghapus terlebih dahulu data yang berhubungna dengan SAINTEK pada tabel mahasiswa.
mysql> delete from mahasiswa where id_fak=1;
mysql> delete from fakultas where nama_fak=’SAINTEK';
mysql> delete from fakultas where nama_fak=’SAINTEK';
C. Perbedaan, Kesamaan, Kelebihan dan Kekurangan Pada DBMS PostgreSQL dan MySQL
Umumnya pada setiap DBMS memiliki perbedaan pada Struktur Query, tetapi perbedaan itu tidaklah sepenuhnya berbeda. Kadang pada perintah tertentu memiliki kesamaan Struktur Query. Termasuk pada DBMS PostgreSQL dan pada MySQL kadang juga memiliki kesamaan. Pada paparan perintah dasar MySQL di atas terlihat bahwa MySQL dan PostgreSQL memiliki kesamaan pada Struktur Query nya. Baik itu pada perintah INSERT, SELECT, UPDATE, dan DELETE pada MySQL sama persis dengan perintah yang ada pada PostgreSQL.
Untuk Khususnya, perhatikan tabel dibawah ini yaa
Untuk Khususnya, perhatikan tabel dibawah ini yaa
Perintah
|
MySQL
|
Postgresql
|
Keterangan
|
Relasi antar table (references)
|
create table mahasiswa (Nim_mah integer not null, Nama_mah
varchar (20), Alamat_mah varchar (20), Id_fak integer,
Primary key (nim_mah, id_fak),
Foreign key (id_fak) references
fakultas
);
|
create table mahasiswa (nim_mah integer not null, nama_mah
varch
ar (20), alamat_mah varchar (20), id_fak integer not null
references fakultas, p
rimary key (nim_mah, id_fak));
|
Terdapat penambahan foreign key pada mysql jika ingin
merelasikan dua table, dan penamaan kolom pada mysql boleh tidak sama (pada
kedua table)
|
Memasukkan data
|
insert into fakultas values (1,‘SAINTEK'), (2, ‘PSIKOLOGI’);
|
insert into fakultas values (1, 'SAINTEK'), (2, ‘PSIKOLOGI’);
|
Masukkan data untuk table yang akan menjadi foreign key pada
table lain
|
Menampilkan semua data
|
Select * from mahasiswa;
|
Select * from mahasiswa;
|
Sama
|
Menampilkan beberapa kolom dari sebuah tabel
|
select nim_mah, nama_mah from mahasiswa;
|
select nim_mah, nama_mah from mahasiswa;
|
Sama
|
Menampilkan beberapa data pada tabel dengan kata kunci
tertentu
|
select nim_mah, nama_mah, alamat_mah, no_tlp from mahasiswa
where nim_mah=12;
|
select nim_mah, nama_mah, alamat_mah, no_tlp from mahasiswa
wher
e nim_mah=12;
|
Sama
|
Menampilkan data dari 2 tabel
|
select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas
where mahasiswa.id_fak=fakultas.id_fak;
|
select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas
where mahasiswa.id_fak=fakultas.id_fak;
|
Sama
|
Mengganti data yang sudah ada
|
update mahasiswa set alamat_mah='solo', no_tlp='0857688788'
wher
e nim_mah=12;
|
update mahasiswa set alamat_mah='solo', no_tlp='0857688788'
wher
e nim_mah=12;
|
Sama
|
Mengurutkan data
|
select * from mahasiswa order by nim_mah desc;
|
select * from mahasiswa order by nim_mah desc;
|
Sama
|
Menghapus data dengan kata kunci tertentu
|
delete from fakultas where nama_fak='saintek';
|
delete from fakultas where nama_fak='saintek';
|
Jika ada relasi dalam pada table, maka table yang tidak
menjadi reference kpd sebuah table, maka harus dihapus terlebih dahulu
atau dapat menambahkan ON DELETE/ON UPDATE [opsi] |
D. Kesimpulan
Dalam basis data terdapat istilah hubungan antar tabel atau lebih di kenal references. Kita dapat memanipulasi setiap data yang kita masukkan, baik menggunakan perintah INSERT, SELECT, UPDATE, atau DELETE. Kita bisa menggunakan DBMS PostgreSQL ataupun MySQL untuk memanipulasi data tersebut. karena pada PostgreSQL dan MySQL memiliki kesamaan pada perintah tersebut.
2 komentar
Untuk minggu depan, tolong masalah evaluasi perbandingan diperinci lagi, jangan penjelasan secara umum saja....
BalasHapuskalau bisa malah dibikin tabel perbandingan.. biar mantap...
mas sudah ade tambahkan tabel penilaian nya.. (biar mantap ) :D
BalasHapus