Pages

PRAKTIKUM DESAIN BASIS DATA III (PERINTAH DASAR SQL)


ALHAMDULILLAH kita udah menginjak praktikum pertemuan ke 4.
Jadi lebih semangat 
Pada laporan ke tiga ini (pertemuan ke 4) kita akan membahas tentang Perintah dasar SQL.
Subbab-subbab nya akan membahas tentang bagaimana kita dapat menggabungkan 2 tabel dan membuat foreign key dan lain sebagainya. Simak laporannya berikut 
LAPORAN PRAKTIKUM DESAIN BASIS DATA (PERINTAH DASAR SQL)
Bahasan
-          Perintah-perintah dasar dalam standart query SQL
-          Query untuk menampilkan, menambah, menghapus, dan memanipulasi data dalam table
Tujuan
-          Memahami perintah dasar dalam standart query sql
-          Memahami cara menambah, menghapus, dan memanipulasi data dalam table

A.    LANDASAN TEORI 
DML atau Data Manipulation Language adalah kumpulan perintah query yang digunakan untuk memanipulasi data dalam tabel, seperti menambah, merubah atau menghapus data. Perintah ini tidak terkait dengan struktur dan metadata dari objek-objek yang berada pada tabel-tabel database. (http://irpantips4u.blogspot.com/2012/10/pengertian-dml-data-manipulation.html)
pada DML terdapat perintah-perintah untuk memanipulasi data, diantaranya:  
1. INSERT
Perintah INSERT merupakan salah satu perintah untuk memanipulasi data dalam suatu table. Dalam pembahasan kali ini, akan dibahas tentang cara menyisipkan data ke dalam suatu table yang sudah di buat sebelumnya.
Bentuk umum perintah INSERT adalah sebagai berikut ini :

INSERT INTO nama_table VALUES 
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...),
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...),
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...);
 

(http://catatanku.web.id/catatan/perintah-insert-pada-mysql/)

2. UPDATE
Berikut ini adalah beberapa contoh pengaplikasian dari perintah UPDATE pada MySql. Bentuk umumnya adalah sebagai berikut :
UPDATE nama_table
SET kolom_1=nilai_baru_1,
    kolom_2=nilai_baru_2,
    .....................
WHERE kondisi;
Pemakaian WHERE bersifat opsional/pilihan. Jika di sertakan, artinya :
  • jika disertakan, maka yang diubah hanya baris tertentu saja
  • jika tidak disertakan, maka semua baris akan berubah
SET digunakan untuk menentukan kolom-kolom yang akan di rubah.
Contoh merubah sebuah kolom untuk baris tertentu adalah sebagai berikut :

UPDATE mahasiswa
SET nama='gunawan wijaya'
WHERE nim=123456;
 
(http://catatanku.web.id/catatan/perintah-update-pada-mysql/)

3. DELETE
Apabila suatu data pada sebuah table tidak digunakan lagi, kita dapat menghapus data tersebut dengan menggunakan pernyataan DELETE. Bentuk umum perintah DELETE adalah sebagai berikut:

DELETE
FROM nama_table
[WHERE kondisi];
 
Pemakaian WHERE bersifat opsional, artinya :
  • jika disertakan, maka hanya baris tertentu saja yang terhapus.
  • jika tidak disertakan, semua baris pada tabel bersangkutan akan dihapus.
Berhati-hatilah dalam penggunaan perintah DELETE.
(http://catatanku.web.id/catatan/perintah-delete-pada-mysql/)

4. FOREIGN KEY DAN PRIMARY KEY

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.
Perhatikan baris kode pada table mhs,
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
Itulah cara mendefinikan foreign key pada mysql. Id_matkul didefinisikan sebagai foreign key yang mereferensikan(mengacu) pada table matkul pada kolom id_matkul.
Yang ingin saya fokus bicarakan pada artikel ini adalah bagaimana bila data matkul misalnya data dengan id_matkul=’IF123’ dihapus? Apakah data mahasiswa yang mengambil id_matkul akan dihapus juga atau akan dibiarkan apa adanya?
DELETE FROM matkul WHERE id_matkul=’IF123’
Maka pasti terjadi error
“Cannot delete or update a parent row: a foreign key constaint fails (‘test’.’mhs’,CONSTRAINT ‘mhs_ibfk_3’ FOREIGN KEY (‘id_matkul’) REFERENCES ‘matkul’ (‘id_matkul))
Maksudnya adalah tidak dapat menghapus atau mengupdate kolom pada table induk karena bereferensi pada table mhs.
Lalu bagaimana solusinya?
Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key.
(http://terusbelajar.wordpress.com/2009/11/13/foreign-key-di-mysql/ )

5. SELECT
Biasanya pada saat ingin menampilkan data, 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:

SELECT apa_yang_akan_ditampilkan
FROM tabel_apa
WHERE kondisi_apa_data_ditampilkan;

5.1 Menampilkan semua isi tabel
Mungkin inilah query SELECT yang paling mudah diingat dan paling populer, yaitu cara menampilkan seluruh data dari sebuah tabel.
Format dasar query select untuk menampilkan seluruh isi tabel adalah:
SELECT * FROM nama_tabel
Tanda bintang (*) adalah wildcard untuk menampilkan seluruh kolom
5.2 Menampilkan kolom tertentu dari sebuah tabel
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 nama_kolom1, nama_kolom2,... FROM nama_tabel
nama_kolom1 dan nama_kolom2 adalah nama kolom yang ingin kita tampilkan.
5.3 Memfilter/Menyeleksi data dari tabel MySQL (SELECT…WHERE…)

Jika kita menginginkan hanya data yang memenuhi kriteria tertentu saja yang akan ditampilkan, maka hal ini dapat dilakukan dengan menambahkan perintah WHERE pada query SELECT.
Kondisi WHERE pada perintah SELECT digunakan untuk menyeleksi data yang diinginkan, sedangkan data yang tidak memenuhi kriteria, tidak akan ditampilkan.
Format dasar query SELECT…WHERE adalah:

SELECT nama_kolom1, nama_kolom2,... FROM nama_tabel WHERE kondisi

5.4 Mengurutkan hasil tampilan data MySQL (SELECT…ORDER BY)

MySQL menyediakan perintah opsional ORDER BY untuk mengurutkan data yang di hasilkan. Query dasar untuk SELECT…ORDER BY adalah:

SELECT nama_kolom1,... FROM nama_tabel WHERE kondisi ORDER BY nama_kolom_urut
nama_kolom_urut adalah kolom yang akan kita ututkan. Pengurutan bisa dari paling kecil ke besar, ataupun besar ke kecil. Pilihan ini dapat diatur dengan penambahan instruksi ASC (singkatan dari ascending) 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.
(http://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/)

B.     HASIL PRAKTIKUM
Dalam perintah dasar query pada MySQL, kita akan mencobanya langsung berdasarkan syntax berikut.
Mahasiswa
Nim_mah
Nama_mah
Alamat_mah
Id_fak
Primary key=nim_mah
Foreign key=id_fak

Fakultas
Id_fak
Nama_fak
Primary key=id_fak

Nah, dengan kondisi table diatas, kita harus mengurutkan langkah (urutan) pembuatan kedua table tersebut. Pertama-tama kita harus membuat table fakultas, karena data yang ada di table fakultas dibutuhkan di table mahasiswa. Jadi, apabila kita membuat table mahasiswa terlebih dahulu, maka akan terjadi eror, karna id_fak yang ada di table mahasiswa tidak punya rujukan (yang merupakan foregin key) dalam table tersebut. Baiklah..
Jadi kita harus (wajib) bikin table yang tidak ada foreign key nya yaitu table fakultas.
Query untuk pembuatan table
Create table nama_tabel
(nama_kolom1 tipedata keterangan,
Nama_kolom2 tipedata keterangan
);
Berikut adalah syntax untuk melakukan query untuk MySQL dalam pembuatan table fakultas
Create table fakultas
(id_fak integer not null primary key,
Nama_fak varchar (10)
);
Berikut adalah hasil yang diperoleh (syntaks pada MySQL xampp) -> Query OK, berhasil J
Kita cek nih, struktur tabelnya 
Selesailah urusan :D
Lalu, tugas kita yang kedua yaitu membuat table mahasiswa yang memberi rujukan pada table fakultas (pada kolom id_fak)
Pada postgresql kita dapat menamai id_fak pada table mahasiswa dengan nama yang berbeda, akan tetapi kita tidak dapat memberikan nama yang berbeda pada masing-masing table yang ada di database (yang mau direferensikan)
Berikut adalah syntax untuk melakukan query pembuatan table dengan menggunakan references pada table lain
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
);
Agar lebih jelas, simak query yang sudah saya lakukan di MySQL pada xampp
Dan dibawah ini adalah struktur table yang udah berhasil kita buat 
Oiya, pada soal yang diperoleh pada modul praktikum dbd III kita harus menginsert data yang ada data telponnya, jadi kita perlu untuk membuatkan kolom no_tlp pada table mahasiswa 
Berikut adalah sintaks untuk melakukan query penambahan kolom (mengulang ilmu minggu lalu hehe, Alhamdulillah ga lupa)
Alter table nama_table add column nama_kolom tipedata (keterangan);
Sehingga jawabannya untuk menambahkan kolom pada sebuah table adalah sebagai berikut :
Alter table mahasiswa add column no_tlp varchar (20);

Nah, waktunya untuk menjawab no.1
1.      Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3 data mahasiswa sebagai berikut :
Nim : 12
Nama : edi
Alamat : malang
No.telp : 0856453428
Fakultas : SAINTEK

Nim : 13
Nama : sinta
Alamat : jogja
No.telp : 0813347565675
Fakultas : SAINTEK

Nim : 14
Nama : luki
Alamat : ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI
Untuk menjawab soal no.1 kita dapat melakukan query insert. Pada hal ini, kita harus mendahulukan table fakultas, karena data yang ada pada fakultas, dibutuhkan untuk table 
Pada MySQL, sintaks untuk insert adalah sebagai berikut :
Perintah bentuk pertama
INSERT INTO tabel (kolom1, kolom2,...)VALUES (data_kolom1, data_kolom2,...);
                                  
Perintah bentuk kedua
INSERT  INTO tabel SET kolom1 = data_kolom1, Kolom 2 = data_kolom2,...;

Perintah bentuk ketiga
INSERT  INTO tabel VALUES (data_kolom1, data_kolom2,...);
                                   
Jadi, yang harus diperhatikan dalam inset tabel :
1.      Urutan kolom
2.      Tipedata (selain integer menggunakan petik)
Langsung dijawab saja ya
Insert into fakultas
Values (1, ‘SAINTEK’), (2, ’PSIKOLOGI’);

Lalu untuk table mahasiswa, berikut adalah sitaks untuk mengisi data pada table mahasiswa
Insert into mahasiswa
Values (12, ‘edi’, ‘malang’, 1, ‘086453428’),
(13, ‘sinta’, ‘jogja’, 1, ‘08133475675’),
(14, ‘luki’, ‘ponorogo’, 2, ‘082576568798’);

Urusan selesai :D
Soal no.2 Tampilkan data mahasiswa berupa nim dan nama

Untuk menampilkan seluruh isi data yang ada pada table, kita dapat menggunakan sintaks
Select * from nama_table;
Untuk menjawab soal no.2 kita hanya perlu menampilkan dua kolom dari table mahasiswa yaitu kolom nim_mah sama kolom  nama_mah.
Jadi kita menggunakan sintaks berikut
Select nim_mah, nama_mah from mahasiswa;
Nah, berikut hasil yang akan muncul (hasil dari query diatas)

Soal no.3 Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.
Untuk menjawab soal diatas, kita menggunakan query berikut :
Select nim_mah, nama_mah, alamat_mah, no_tlp from mahasiswa where nim_mah=12;

Maka muncullah table berikut yang berisikan salah satu data mahasiswa.
 

Nah, beranjak ke soal no.4
Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Untuk menjawab soal 4, kita dapat melakukan query berikut
Select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;

Berikut adalah hasil dari query diatas :
Semua data yang ada pada kolom nim nama akan dimunculkan, setelah itu ada nama_fak yang diambil dari table fakultas.

Urusan selesai :D
Soal no.5 Hapus data mahasiswa yang memiliki nim : 13
Untuk menjawab soal no.5, kita menggunakan sintaks berikut
Delete from nama_table where nama_kolom=ket;

Dan jawaban untuk no.5 sebagai berikut :
Soal no.6 Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12
Gunakan query update untuk mengganti data yang pernah diisi pada table, berikut adalah sintaksnya :
Update nama_tabel set nama_kolom1=’isi_kolom’, nama_kolom=’isi_kolom’ where nama_kolom=ket;

Berikut adalah hasil yang diperoleh dengan penggantian data pada salah satu mahasiswa
Soal no.7 Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa. Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

Untuk menjaawab no.7, kita perlu melakukan query select dengan mengurutkan data yang ada di kolom.
Select * from nama_tabel order by nama_kolom desc;

* yang merupakan symbol untuk menampilkan semua data
Desc = untuk mengurutkan data dari besar ke kecil (descending)
Berikut jawaban untuk no.7
Kemudian untuk menjawab yang kedua, kita dapat melakukan query order by saja:
Soal no. 8 Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.
Lakukan query berikut untuk menjawab soal no.8
Select nama_kolom1, nama_kolom2, nama_kolom3, nama_kolom4 from nama_tabel1, nama_tabel2 where nama_tabel1.nama_kolom=nama_tabel.nama_kolom;

Untuk lebih jelasnya, kita simak sintaks untuk menjawab soal no.8
Urusan selesai :D

Soal no.9 Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.
Untuk menjawab soal no.9, lakukan query berikut:
Select * from nama_tabel where nama_kolom=isi_tabel;

Lebih jelasnya, lihat gambar berikut yang menampilkan semua data mahasiswa yang id_faknya  sama dengan 1, maka yang tampil adalah edi dengan nim_mah 12 yang merupakan mahasiswa dari SAINTEK  

Soal no.10 Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.

Kebalikan dari no.9, kita dapat menambahkan tanda ‘!’ yang merupakan symbol tidak sebelum sama dengan (‘=’).
Berikut adalah sintaksnya
Select * from nama_tabel where nama_kolom!=isi_tabel;

Soal terakhir adalah Hapus data fakultas “SAINTEK”.
Karena salah satu kolom pada table fakultas merupakan foreign key (references kolom) pada table mahasiswa, maka kita perlu menghapus semua data yang berkaitan dengan saintek pada table mahasiswa kemudian kita dapat menghapus saintek pada table fakultas
Berikut adalah query untuk melakukan penghapusan
Delete nama_kolom from nama_tabel where kondisi;

Berikut adalah tampilan setelah penghapusan data saintek

Beres urusan :D
EVALUASI PERBANDINGAN 2 DBMS MYSQL DAN POSTGRESQL
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]

KESIMPULAN
Dalam memanipulasi data di sebuah tabel, yang harus diperhatikan adalah tipedata, dan relasi sebuah tabel. karena kalau tidak hati-hati akan sering terjadi error.
untuk perbandingan antara 2 DBMS MySQL dan postgreSQL tidak lah banyak perbandingan, jadi sangat mudah untuk mengoperasikan sebuah database.

Kritik dan saran : untuk perintah select sebenarnya masih banyak modifikasinya, mungkin bisa ditambahkan, seperti select limit dan lain-lain

Manfaat : Bab yang kita bahas kali ini sangatlah bermanfaat dalam pembangunan suatu database

DAFTAR PUSTAKA
http://irpantips4u.blogspot.com/2012/10/pengertian-dml-data-manipulation.html
http://catatanku.web.id/catatan/perintah-insert-pada-mysql/
http://catatanku.web.id/catatan/perintah-delete-pada-mysql/
http://terusbelajar.wordpress.com/2009/11/13/foreign-key-di-mysql/
http://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/

fitri

2 komentar:

Pengunjung

Instagram