A. LANDASAN TEORI


     Halo guys, bertemu lagi dengan saya kali ini ;) Semoga kalian nggak bosen yaah, tiap minggu dapet postingan laporan praktikum DBD. Ahhhahayy  ~,~

     Setelah kemaren di Modul 2  udah bahas tentang DDL dan DCL, in this moment we studying about DML. DML merupakan kependekan dari Data Manipulation Language yang merupakan salah satu sub bahasa SQL yang digunakan untuk memanipulasi data dalam database.

     Kalo database di ibaratkan sebuah rumah, DDL itu sebagai kerangka rumah dan penyangganya. DCL itu sebagai pintu, menyeleksi orang yang mau masuk ke rumah. Kalo DML, dia berfungsi sebagai pengisi rumah itu, bisa berupa kamar, ruang, dll.
Perintah SQL yang termasuk dalam DML adalah:
a. INSERT : perintah ini digunakan untuk menyisipkan atau memasukkan data baru ke dalam tabel. Syarat kamu bisa pake perintah ini , database dan tabel harus ready terlebih dahulu. 
b. SELECT : perintah ini digunakan untuk menampilkan data dari suatu tabel atau beberapa tabel yang sudah di relasikan. 
c. UPDATE : Perintah ini digunakan untuk memperbarui data yang akan di ganti dengan data yang baru. 
d. DELETE : Perintah ini digunakan untuk menghapus suatu data. Inget ya, perintah ini nggak bisa di cancel, jadi data yang udah di hapus nggak bisa di kembaliin.
     Manipulasi data berkaitan erat dengan relasi antar tabel.  Relasi antar tabel memiliki syarat yang harus dipenuhi, yakni tabel yang di relasikan harus memiliki field atau kolom dengan tipe yang sama. Dalam suatu tabel, terdapat beberapa kunci yang digunakan untuk relasi.  Kunci merupakan satu atau gabungan atribut yang bersifat unik yang dapat digunakan untuk mengidentifikasi atau membedakan setiap record dalam relasi. Kalau dibedakan nih, kunci relasi ada empat macam :
  • Kunci Kandidat (Candidate Key/CK) yaitu satu atau gabungan minimal atribut yang bersifat unik. Dalam setiap relasi, minimal mempunyai sebuah kunci kandidat
  • Kunci primer (Primary Key /PK) yaitu salah satu dari bagian CK yang dipilih sebagai kunci utama untuk membedakan setiap record dalam relasi. PK harus unik dan tidak boleh null
  • Kunci Alternatif (Alternative Key /AK) yaitu bagian dari CK yang tidak dipilih sebagai PK.
  • Kunci penghubung atau yang biasa disebut dengan foreign key (FK) yaitu satu/ gabungan sembarang atribut yang menjadi PK dalam relasi lain. FK dan PK harus mempunyai tipe dan ukuran data yang sama.

Selanjutnya, akan di ulas lebih detail tentang relasi tabel dan manipulasi data dalam DBMS.

Check it out. ^_^

B. TUGAS PRAKTIKUM


1. See the picture here. Ini adalah soal yang harus di kerjain sob... 
   Ada dua tabel yakni tabel mahasiswa dan tabel fakultas. Seperti yang telah di jelaskan sebelumnya, relasi dalam sebuah tabel membutuhkan primary key dan foreign key. Tabel fakultas dan mahasiswa memiliki nama kolom yang sama yakni id_fak. Tetapi, posisi kolom dalam setiap tabel berbeda. Dalam tabel fakultas, id_fak adalah primary key, sedangkan dalam tabel mahasiswa adalah foreign key. Kolom id_Fak inilah yang digunakan untuk merelasikan tabel fakultas dengan tabel mahasiswa.


2. Perhatikan baik-baik. Sebelum membuat tabel, lihat dulu, tabel mana yang tidak memiliki foreign key  dan yang memiliki foreign key. Prosedurnya, buat tabel yang tidak memiliki foreign key terlebih dahulu, ini Querynya:
CREATE TABLE nama_tabel (nama_kolom tipe_data(panjang), nama_kolom1 tipe_data(panjang));



3. Next, buat tabel yang memiliki foreign key. Eits, jangan di samakan dengan query di atas loh ya, ini ada sedikit tambahan.
CREATE TABLE nama_tabel (nama_kolom tipe_data(panjang), nama_kolom1 tipe_data(panjang), nama_foreignKey tipe_data not null references nama_tabel_yang_diRelasikan);
Lebih detailnya, lihat langsung pada gambar di bawah ini 

4. Masukkan data pada tabel fakultas terlebih dahulu.
     a. Untuk memasukkan satu data
        INSERT INTO nama_tabel VALUES (isi_kolom);

     b. Untuk memasukkan beberapa data
      INSERT INTO nama_tabel VALUES (isi_kolomPertama), (isi_kolomKedua);
5. Tampilkan seluruh data pada tabel mahasiswa
   SELECT*FROM nama_tabel;

6. Tampilkan data pada tabel mahasiswa berupa nim dan nama
   SELECT nama_kolom1,nama_ kolom2 FROM nama_tabel;

7. Tampilkan salah satu nama mahasiswa, jadi nanti hanya tampil satu data saja.
   SELECT nama_kolom FROM nama_tabel WHERE kondisi;

8. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa dan nama fakultas.

9. Hapus data mahasiswa yang memiliki nim 13.
DELETE FROM nama_tabel WHERE kondisi;
*WHERE disini digunakan untuk menghapus salah satu kolom yang di inginkan. Jika tidak menggunakan where, maka satu baris dari tabel tersebut akan GONE.

10. Ganti data dalam kolom alamat menjadi  'solo' dan no_hp=0857688788 pada nim_mah 12 yang ada dalam tabel mahasiswa. Querynya pake update ya guys.
UPDATE mahasiswa SET nama_kolom='data_baru' WHERE kondisi;


11. Tampilkan data mahasiswa dan urutkan secara descending berdasarkan nim mahasiswa

12. Tampilkan data fakultas dan urutkan secara ascending berdasarkan nama fakultas

13. Tampilkan seluruh data mahasiswa dan seluruh data fakultas

14. Tampilkan seluruh mahasiswa yang berada di fakultas SAINTEK

15. Tampilkan seluruh mahasiswa yang tidak berada di fakultas SAINTEK

16. Kemudian, hapus data Fakultas SAINTEK. Sebelumnya, kalo mau ngehapus data fakultas SAINTEK, kalian hapus dulu data mahasiswa yang berada di fakultas saintek. Ibarat mau mindahin rumah, nggak langsung kan rumah nya di angkat ke tempat yang baru. Sebelumnya, pasti barang-barang yang ada di dalem rumah mesti di pindahin dulu. Baru deh kita pindah rumah.

So, hapus dulu data mahasiswa yang berada di fakultas SAINTEK
DELETE FROM mahasiswa WHERE id_fak=1;
dimana, id_fak=1 adalah SAINTEK.

17. Nah, and the Last, hapus data fakultas SAINTEK

DELETE FROM fakultas where id_fak=1;


C. TUGAS RUMAH


Seperti langkah di Postgre, kita buat perintah-perintah DML, tetapi menggunakan MySQL.

1. Siapkan CMD kalian.Login seperti biasa sob.
2. Aktifkan database.
3. Buat tabel fakultas terlebih dahulu.

4. Selanjutnya, buat tabel yang memiliki foreign key, yakni tabel mahasiswa.Sama seperti di Postgre, jangan lupa kasih REFERENCES untuk membuat relasi antar tabel.

5. Baru deh,ngisi data pada tiap tabel
   Tabel Fakultas

   Tabel Mahasiswa

6. Tampilkan seluruh data pada tabel mahasiswa

7. Tampilkan data pada tabel mahasiswa berupa nim dan nama mahasiswa

8. Tampilkan salah satu nim mahasiswa, jadi nanti hanya tampil satu data saja.Tambah dengan klausa WHERE ya sob...

9. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa dan nama fakultas.

10. Hapus data mahasiswa yang memiliki nim 13.

11. Ganti data dalam kolom alamat menjadi  'solo' dan no_hp=0857688788 pada nim_mah 12 yang ada dalam tabel mahasiswa. Querynya pake update ya guys.
12. Tampilkan data mahasiswa dan urutkan secara descending berdasarkan nim mahasiswa
13. Tampilkan data fakultas dan urutkan secara ascending berdasarkan nama fakultas

14. Tampilkan seluruh data mahasiswa dan seluruh data fakultas

15. Tampilkan seluruh mahasiswa yang hanya berada di fakultas SAINTEK

16. Tampilkan seluruh mahasiswa yang tidak berada di fakultas SAINTEK

17. Kemudian, hapus data Fakultas SAINTEK. Sebelumnya, kalo mau ngehapus data fakultas SAINTEK, kalian hapus dulu data mahasiswa yang berada di fakultas saintek. Ibarat mau mindahin rumah, nggak langsung kan rumah nya di angkat ke tempat yang baru. Sebelumnya, pasti barang-barang yang ada di dalem rumah mesti di pindahin dulu. Baru deh kita pindah rumah.
So, hapus dulu data mahasiswa yang berada di fakultas SAINTEK
DELETE FROM mahasiswa WHERE id_fak=1;
dimana, id_fak=1 adalah SAINTEK.


18. Nah, and the Last, hapus data fakultas SAINTEK

DELETE FROM fakultas where id_fak=1;

D. EVALUASI DBMS MySQL VS PostgreSQL

Tibalah saatnya kita mengevaluasi antara DBMS MySQL dan Postgre. Kita evaluasi dari segi persamaan, perbedaan, kekurangan dan kelbihan dari masing-masing DBMS yaa sob.

PERSAMAAN
Dari tugas praktikum yang menggunakan DBMS Postgre dan tugas rumah yang menggunakan MySQL, banyak persamaan yang didapatkan. Bahkan hampir seluruh query perintah dasar SQL ini sama.
Mulai dari membuat tabel, memasukkan data pada tabel (INSERT), memperbarui data pada tabel (UPDATE), menghapus data pada tabel (DELETE) dan juga pengurutan data (ORDER BY).

PERBEDAAN
NOT FOUND !

KEKURANGAN
MySQL : Tidak di tampilkan hak akses dalam tabel. Berdampak pada ketidaktahuan kita mengenai status hak akses dari tabel tersebut

Kalo kita bandingin sama yang di Postgre, 

KELEBIHAN
MySQL : Menampilkan waktu pemrosesan, sehingga dapat diketahui seberapa lama DBMS akan memproses perintah kita. ;)

Kalo di Postgre, gakk ada sob...

Ehh, ada TAMBAHAN ni sob. Kalo mau nginsert data tapi pake kosongan alias NULL, di MySQL, tampilan tabelnya akan kaya gini :

Kalo di postgre, nggak akan tampil data apa-apa,

E. KESIMPULAN

Sub bahasa query DML (Data Manipulation Language) adalah berfungsi untuk memanipulasi (mengotak-atik, mengubah-ubah) isi data pada tabel. DML ini bisa berupa perintah INSERT, UPDATE, DELETE dan SELECT. Dari keempat perintah DML tersebut, bila diimplementasikan pada kedua DBMS yang berbeda yakni Postgre dan MySQL tidak ditemukan perbedaan dalam hal penulisan sintaks.

Sekian, semoga bermanfaat. See you at next practice ;)