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
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 :
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.
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;
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;
Dalam menghapus data di sini kita biasanya pakai DELETE.
bentuk perintah :
DELETE FROM nama_table;
(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;
Check it out ..
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.
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 ..
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;
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;
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 ( : ), (.), (" ").
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
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