Jumat, 03 Oktober 2014

Perintah Dasar Structured Query Language (SQL)


PRAKTIKUM III

PERINTAH DASAR SQL

Pada kesempatan kali ini kita bakalan membahas tentang perintah dasar yang ada di SQL. Perintahnya itu apa aja sih ?. Di pembahasan kali ini kita akan kupas tuntas tentang perintah-perintah dasar SQL. Sebelumnya kemarin kan, kita udah bahas tentang manajemen pembuatan tabelnya. Seperti biasa sebelum menjurus ke inti pembahasan ini, kita awali dulu dengan landasan teorinya. Oke. 



      A.    Landasan Teori

a.      Pengertian SQL SQL atau Structured Query Language adalah bahasa yang biasanya dipakai buat ngakses data dalam basis data relasional. Standarisasi SQL itu dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhirnya dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92.
Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialeknya masing-masing, seperti manusia di masing-masing daerah pasti punya dialeknya masing-masing.

b.     
Perintah Dasar SQL
       Ini nih perintah dasar SQLnya, ada reference (Hubungan antar table),  memasukkan data, menampilkan data, menghapus data, modifikasi data, maupun  pengurutan data. Ayo, kita bahas, kawan....

(1)  
Reference (Hubungan Antar Table)

Dalam hal ini yaitu hubungan antar table atau biasa disebut reference, ada beberapa syarat yang musti dipenuhi, guys. Antara table yang ingin dihubungkan harus punya field (kolom)  dengan tipe yang sama. Dengan kata lain ada tabel yang memiliki primary key sebagai kunci untuk menghubungkan ke tabel yang lain dimana terdapat field yang mempunyai tipe data yang sama dengan kata lain yang disebut foreign key. Misalnya, terdapat tabel barang dan macam_barang. Berikut query kedua tabel tersebut :
create table macam_barang (id_mac integer not null, nama_mac varchar(15), guna_mac varchar(40), primary key (id_mac));
create table barang (id_bar integer not null, nama_bar varchar(15), id_mac integer not null references macam_barang, primary key (id_bar, id_mac));

Atau ketika kita lupa memberikan references pada tabel macam barang kita dapat memberikan query sebagai berikut :
alter table barang add constraint relasi_barang foreign key (id_mac) references macam_barang (id_mac) on update no action on delete no action;

misalnya begini gambar tablenya :

                          



(2)   Memasukkan data
Memasukkan data di sini biasanya di panggil INSERT, yaitu untuk nambahin atau masukkin data baru pada suatu table. Sintaksnya :  INSERT INTO Nama_tabel [(nama_kolom1,…)] VALUES (isi_data_kolom);
Contohnya kaya gini : masukkan data field di table identitas dengan kolom id_idn, Nama_idn, Ttl_idn, Menikah_idn, Keahlian_idn.

Langsung aja kita ketik sintaksnya :

insert into identitas values (1, ’wahyu’ , ’1992-07-23’ , false , ’programer’);

penjelasannya di sini :

- Kolom pertama berisikan (1), karena tipe datanya adalah integer maka tanda petik tidak digunakan.
- Kolom kedua („wahyu‟) dan kelima („programer‟), karena tipe datanya varchar maka tanda petik diperlukan, bila tanpa ada tanda petik maka dianggap salah.
- Kolom ketiga (‟1992-07-23‟), tipe data Date dianggap sebagai sebuah string sehingga harus menggunakan tanda petik.
- Kolom keempat (false), tipe data kolom ini Boolean yang hanya mengijinkan inputan true atau false dan tidak perlu tanda petik.

(3)   Menampilkan data
Dalam database, perintah SQL ini untuk nampilin data sebuah tabel , bisa menggunakan SELECT. Berikut struktur SQL untuk penampilan data berdasarkan kolom tertentu :

Select nama_kolom from nama_tabel;

Kemudian, bila kita ingin menampilkan 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 nama_kolom from nama_tabel where nama_kolom = kata kunci;
Apabila ingin menampilkan data dari lebih dari satu tabel, struktur SQL nya terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat pada praktikum ke-2 yaitu mahasiswa dan fakultas (Dengan syarat adanya relasi antara kedua tabel tersebut). Berikut Struktur SQL nya :
select nama_kolom, nama_kolom, nama_kolom, nama_kolom from nama_tabel_1, nama_tabel_2 where nama_tabel_1.nama_kolom = nama_tabel_2.nama_kolom;
 

(4)   Modifikasi data
Dalam memodifikasi database, kita bisa menggunakan perintah UPDATE. Berikut contoh struktur SQL untuk memodifikasi data pada kolom tertentu berdasarkan baris tertentu :
update namatabel set namakolom = isidata where namakolom = katakunci;

(5)   Menghapus data
Dalam menghapus data di sini kita biasanya pakai DELETE.

bentuk perintah :
DELETE FROM nama_table;

sintak di atas adalah perintah menghapus tabel beserta field-fieldnya.
 

(6)   Pengurutan data
Maksud dari pengurutan data dengan perintah ORDER BY adalah kalau data sebuah tabel diurutkan dengan perintah tersebut, maka data tadi akan diurutkan dari atas ke bawah berdasarkan abjad. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom :
select * from nama_tabel order by nama_kolom; 

Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom secara descending:
select * from nama_tabel order by nama_kolom desc; 

Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom secara ascending:
select * from nama_tabel order by nama_kolom asc; 




      B.    Hasil Praktikum



Dalam praktikum kali ini, kita punya 11 soal. Dari ke-11 soal itu penuh ama perintah-perintah yang ada di SQL, baik itu perintah membuat atau meng-create table, menambahi field, menghapus data, dll. Seperti biasa kita akan mecoba berpraktikum dengan dua aplikasi SQL sekaligus. Yang pertama kita mulai dulu sama PostgreSQL nya ya.

PostgreSQL

Kita lihat dulu tabel yang dijadiin soal. Ini nih..

                             


Setelah itu liat perintah selanjutnya. Di perintah ini kita musti nambahin kolom yang diperlukan dari kedua tabel di atas. Seperti biasa kita masuk dulu ke sql shell, trus tulis deh syntaknya. Tapi terlebih dahulu kita create Fakultas beserta kolom-kolomnya untuk menghubungkannya ke table Mahasiswa lalu baru create Mahasiswa beserta kolom-kolom yang dibutuhin di dalamnya. Kaya yang di bawah ini.
  

karena di dalam kolom Mahasiswa ada kolom nama_fak, jadi kita pake id_fak buat kasih kode kalo id_fak itu miliknya fakultas saintek ataupun psikologi. So, kita insert/masukin data id_faknya dulu. Caranya begini :
insert into Fakultas values(1365, 'SAINTEK');
insert into Fakultas values(1305, 'PSIKOLOGI');
Nah, udah terbuat kan..yang berupa angka-angka di dalam sintaks itu adalah id_faknya Jadi kita bisa manggil nama_fak yang bersangkutan pake id_fak yang udah dibuat itu. Belum selesai ini, guys. Kita masukin dulu data dari beberapa kolom-kolom yang ada dari masing-masing table. Cara masukkinnya urut sesuai urutan kolom dari masing-masing table ya. semisal yang pertama ada kolom Nim_mah, so kamu masukkin dulu data Nim nya yaitu semisal =12. Seperti ini deh.

  


Oke, lanjut untuk menampilkan data Mahasiswa berupa Nim sama Namanya aja.

Udah langsung saya tampilin syntak dan hasilnya, guys.

Abis itu, kita disuruh nampilin salah satu mhs nya aja tapi berdasarkan NIM dari salah satu mhs tsb. Begini nih :


Gambar di atas semisal kita Cuma mau nampilin datanya mahasiswa yang ber-NIM 14 yaitu Luki. Jadi dah.

Sekarang kita tinggal praktikan lagi buat nampilin data Mahasiswa sama Fakultas, diambil dari Nim, nama mhs, nama fak.,
Langsung aja kita liat printscreennya :



Setelah dibuat ketiga data itu, kita disuruh menghapus data yang punya Nim=13. Siapa dia ??


Alhasil yang berNim=13 adalah Mahasiswa yang bernama Sinta.


Abis itu, kita mau ubah data yang punya Nim 12. Kita ubah alamatnya jadi Solo dan no_telp nya 0857688788




Jadinya kaya gini. Si Edi udah berubah alamat n no_telp nya.



Nah, sekarang kita mau nyoba cara pengurutan data Descending yang dari besar ke kecil (ie:10 -> 1) dan Ascending dari kecil ke besar (1 -> 10). Perintah yang descending kita urutkan berdasarkan NIM tapi yang ascending berdasarkan nama_fak.



Nah di atas itu struktur sama hasil dari pengurutan Descending. Trus yang ascendingnya mana ??? sabar.. nih ada di bawahnya ..


Udah tahu kan sekarang.
Lanjut aja ya ke perintah soal yang lain. Kita disuruh nampilin data mhs beserta data fakultasnya.
Begini strukturnya sama hasilnya 

 
Setelah kita nampilin semua data seperti di atas. Kita coba nampilin data mahasiswa yang kuliah di fak.SAINTEK. kita panggil dmhs ybs pake id_fak SAINTEK=1365.




Jadi dah.

Lanjut buat nampilin data mhs yang ngga kuliah di fak.SAINTEK , siapa dia??
Caranya kita cuma nambahin tanda seru (!) setelah tulisan id_fak, begini loh




Oke, sekarang kita menuju ke perintah yang terakhir yaitu menHapus data SAINTEK dari masing-masing table.

Check it out ..


 


Akhirnya selesai juga pake postgreSQL. Sekarang giliran nyoba pake PhpmyAdmin.

PhpmyAdmin




Kita buat kolom-kolom yang dibutuhin dari masing-masing tablenya ya. otomatis kita masuk dulu ke phpmyAdminnya. Kita masuk ke database shinta13650099, Abis itu ketik sintaks nya. Kita create table fakultas dulu baru mahasiswanya. Sintaknya :



 Lalu klik Go, dan hasilnya terbentuklah table fakultas dan mahasiswa. Abis itu kita pake INSERT buat masukkin data dari masing-masing kolom. Begini caranya    



Dan ini the result.. liatnya pake select*from Mahasiswa; 



Abis itu, kita nampilin data mhs berupa nim sama nama mhs nya. Ini struktur dan hasilnya.




Lah trus kita mau nampilin salah satu mhs tapi berdasarkan nim nya. Gimana ? Jangan bingung.. gini caranya : pilih dulu mhs mana yang mau kamu tampilin, di sini kita coba tampilin mhs yang berNIM=14 yaitu Luki. Langsung aja.





Muncul kan..
Trus kalo kita mau nampilin data mahasiswa sama fakultasnya berdasarkan nim, nama mhs, dan nama fakultasnya, gimana nih??

Begini, kawan..
 




Tuh, diatas udah ada struktur sama hasilnya.Setelah itu ,kita lanjut ke perintah hapus data mhs yang punya Nim = 13. Syntaknya : delete from Mahasiswa where Nim_mah=13;  





Klik OK, ya. trus ketik select*from Mahasiswa; nanti bakalan muncul kaya di bawah ini.




Udah terhapus data mhs ybs. Perintah berikutnya kita ubah data mhs yang berNim = 12, ubah alamatnya jadi Solo, trus no.telp nya 0857688788. Pake perintah update ya.


update Mahasiswa set alamat_mah='Solo', No_telp=0857688788 where Nim_mah=12;






Next, ke bagian pengurutan data (descending n ascending).Yang descending , pengurutan data mhs dari besar ke kecil berdasarkan nim nya. Langsung aja ya



Lanjut ke ascending data fakultas berdasarkan nama_fak.
seperti ini ..




Oke, sekarang kita tampilin seluruh data mahasiswa dan data fakultasnya.
select Nim_mah, nama_mah, alamat_mah, no_telp, nama_fak from Mahasiswa, fakultas where Mahasiswa.id_fak=Fakultas.id_fak;
 

 



Sekarang kita pilih buat nampilin data mhs yang kuliah di Fakultas SAINTEK ada dua struktur yang bisa kita pakai.
select Nim_mah, nama_mah, alamat_mah, no_telp, nama_fak from Mahasiswa where id_fak=1365;
atau
select * from Mahasiswa where id_fak=1365;
gini dah hasilnya..





Abis itu, sebaliknya kita tampilin data mhs yang ngga kuliah di fakultas SAINTEK, biar ngga iri..
Struktur nya : select Nim_mah, nama_mah, alamat_mah, no_telp from Mahasiswa where id_fak!=1365;
 Ada perbedaannya kita pakai tanda seru (!) abis tulisannya where id_fak.






Terakhir.. perintah hapus data fakultas “SAINTEK” dari kedua table
Begini..
Ketik syntak : delete from Mahasiswa where id_fak=1365;
           delete from Fakultas where id_fak=1365;
muncul proses dulu..




Klik OK
Terhapuslah,..




 

Selesai sudah akhirnya...



      C.    Tugas Rumah

Jelaskan evaluasi dari DBMS MySQL dan PostgreSQL dalam blog anda berdasarkan tugas  (evaluasi meliputi perbedaan atau kesamaan, kelebihan atau kekurangan, tambahan dari penulis). 


No.
Persamaan
Perbedaan
.
Banyak kesamaan pada struktur ataupun syntaknya
MySQL : tanda titik koma (;) dibelakang sintaks tidak berpengaruh
PostgreSQL : tanda titik koma (;) lumayan berpengaruh.


MySQL : butuh database sebelum meng-create table.
PostgreSQL : bisa langsung create table (alias database otomatis)


MySQL : Lebih terkenal
PostgreSQL : belum seterkenal MySQL


Sintaks MySQL dalam hal menampilkan data yang diinginkan ada cara praktisnya selain mengetik sintak select*from nama_tabel, yaitu klik table yang sudah tertera di database ybs letaknya di sebelah kiri (penulis). Tapi, kalo di postgreSQL musti ngetik sintaksnya.


MySQL : perintah menghapus di MySQL (phpmyadmin) bisa langsung klik drop. Tapi, kalo postgresql musti ngetik sintaks perintah delete.


No.
Kelebihan
Kekurangan
1.
MySQL : lebih cepat & mudah dipake

PostgreSQL : kurang fokus dalam hal kecepatan
2.
PostgreSQL : dalam penggunaan tulisan yang perlu tanda (:) masih bisa terbaca dengan cara pake tanda (“ “) .cont: “no.telp”
MySQL : dalam penggunaan tulisan yang ada tanda (:) tidak bisa terbaca meskipun sudah diberi tanda (“ “)
3.
MySQL : lebih fleksibel dalam ALTER TABLE
PostgreSQL sendiri terbatas hanya bisa melakukan penambahan kolom, penggantian nama kolom, dan penggantian nama tabel
  
      D.    Evaluasi Perbandingan DBMS MySQL dan PostgreSQL
Evaluasi dalam praktikum ini jawabannya sama dengan tugas rumah di atas. Intinya perintah struktur antar MySQL dengan PostgreSQL sama alias tidak ada yang berbeda, terkecuali ada sedikit yaitu dalam penggunaan tanda baca, seperti ( : ), (.), (" ").



     E.    Kesimpulan

      Dari percobaan praktikum di atas dapat kita simpulkan bahwa perintah-perintah dasar SQL yang terdapat pada masing-masing tool banyak kesamaan alias jarang ditemukannya perbedaan. Baik itu dari postgreSQL maupun phpmyAdmin. Dalam hal ini, kita juga membuktikan bahwa setiap tool pasti memilki kelebihan dan kekurangannya masing-masing.
  
     F.     Saran dan Kritik

      Dalam praktikum ketiga ini yaitu tentang perintah dasar SQL, ada beberapa pertanyaan yang membuat bingung praktikan untuk melakukan ataupun menyelesaikan percobaan praktikum ini. Ditambah dengan format dari laporan dan tugas rumah yang diberikan punya artian yang sama yaitu sama-sama memerintahkan para praktikan untuk meng-evaluasi DBMS MYSQL dan PostgreSQL, jadi cukup ambigu untuk dipahami.



     G.    Manfaat
 
      Dari praktikum ini, kita bisa mengambil manfaatnya khususnya bagi para pembaca. Kita mampu memahami perintah dasar dalam standar query sql, kita juga bisa memahami cara menambah, menampilkan, menghapus, dan memanipulasi data. Selain itu kita juga bisa mengerti persamaan maupun perbedaan struktur dari masing-masing tool, baik itu phpmyAdmin dan postgreSQL.


Sumber           :
Musthofa, Aziz.Modul Praktikum Desain Basis Data.Malang
Subekti, Muhammad.2004.Sistem      Manajemen Basis Data.Bogor.Ghalia Indonesia
http://www.master.web.id/mwmag/issue/04/content/fokus-mysql_vs_postgresql/fokus-mysql_vs_postgresql.html












 




 

0 komentar:

Posting Komentar