PRAKTIKUM IV
PENGENALAN OPERAOR DASAR
Kembali lagi kita membahas tentang materi desain
basis data dalam praktikum tahap ke-IV kali ini. Pembahasannya tentang
“Pengenalan Operator Dasar” . sebelum memasuki lebih lanjut, telisik dulu ke
teorinya yuk.
A. Landasan Teori
Setiap data yang ada di dalam SQL bisa diatur sesuai dengan kebutuhan
kalian, guys. Bahasa SQL tersusun dari bermacam-macam key words (kata kunci). Berikut
ini adalah beberapa operator dasar SQL
yang musti kita tahu dan pelajari :
AS
Apa sih AS ?? bukan singkatan dari AliaS loh. Label ini biasanya dipakai
sebagai nama lain dari sebuah kolom yang dipilih, selain itu kita juga bisa
mengontrol teks sebuah atribut yang digunakan untuk memanggil suatu kolom
dengan menggunakan AS. AS digunakan untuk menampilkan label kolom dengan nama
lain sehingga yang akan muncul dalam hasil query bukan nama asli kolom, tetapi
nama yang mungkin lebih sesuai dan mudah dimengerti. AS digunakan setelah nama
kolom yang akan diganti yang kemudian diikuti dengan nama penggantinya.
AND biasanya dipakai untuk nampilin data dengan dua atau kondisi yang musti dipenuhi, kalo salah satu tidak terpenuhi maka pencarian tidak akan ada hasilnya, dong. Contohnya kalo kita mau mencari data yang nama depannya ‘Dewi’ dan pekerjaanya ‘programmer’. Kedua kondisi tersebut harus dipenuhi, sehingga apabila dalam tabel terdapat nama rofiq tetapi pekerjaanya konsultan, maka hasil pencarian akan kosong. Sedangkan OR dipakai untuk menampilkan data dengan dua atau lebih kondisi, tetapi pencarian ini bakalan ada hasilnya meskipun salah satu kondisi saja yang terpenuhi. Contohnya , kalo kita mau mencari data yang nama depan ‘Dewi’ atau orang lain dengan pekerjaan ‘programmer’. Kedua kondisi tersebut harus dipenuhi minimal salah satu, sehingga apabila dalam tabel tidak ada nama rofiq tetapi ada pekerjaan konsultan, maka hasil pencarian tetap diperoleh.
BETWEEN
Between dipakai untuk menentukan lebar nilai yang mau di seleksi, penentuan
lebar ini dilakukan dengan menentukan nilai terendah dan nilai tertingginya, ya.
LIKE digunakan untuk melakukan seleksi atau pemilihan tetapi tidak seperti halnya
sama dengan (=) yang cuma mau menampilkan data yang benar-benar sesuai
(suitable/match) dengan parameternya, LIKE bakalan menampilkan data yang
mengandung string parameter yang dimasukan, meskipun cuma satu karakter saja
yang sama.
Regexp disini
bukan genre musicnya orang-orang yang khas sama warna merah, hijau, sama kuning
loh..(nah loh, itu REGE kalee), tapi
Regexp di sini adalah singkatan dari Reguler Expression yaitu teknik atau cara
untuk nyari persamaan-persamaan data dan memanipulasinya. Biasanya lebih sering
dipake untuk string. Simbolnya seperti ini “~”.
Bisanya digunakan untuk mencegah terjadinya duplikasi pada output sebuah
tabel. DISTINCT sering kali diperlukan untuk mengembalikan hasil dari sebuah
query dengan tidak terdapat duplikasi, artinya pada hasil outputnya tidak
terjadi kesamaan data sedikitpun meskipun pada data sesungguhnya sangat mungkin
banyak duplikasi.
SET itu digunakan untuk melakukan perubahan parameter PostgreSQL, guys.
Penggantian dengan menggunakan perintah SET hanya berlaku untuk sekali session
saja dimana perintah SET dilakukan. Misalnya perintah SET DATESTYLE dipakai untuk mengontrol penampilan sebuah
data ketika terlihat dalam psql.
LIMIT dan OFFSET itu untuk membatasi jumlah output dari query berdasarkan
jumlah row bukan karena kondisi seperti WHERE. Bisa dibilang LIMIT itu untuk
menentukan jumlah baris yang akan ditampilkan yang dihitung dari baris pertama,
sedangkan OFFSET itu sendiri digunakan
untuk menghilangkan row sesuai dengan jumlah yang diberikan pada OFFSET.
Hasil dari dua buah query dapat dikombinasikan dengan menggunakan UNION, EXCEPT
atau INTERSECT. Kita jelaskan dulu yang UNION. UNION digunakan untuk
menggabungkan hasil dua buah query menjadi satu kolom. Untuk dapat melihat atau
menampilkan semua duplikat yang ada pada tabel-tabel maka gunakan
perintah UNION ALL. EXCEPT itu kalo dibahasa inggris artinya pengecualian, ini
biasanya digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil
query kedua tidak akan ditampilkan. Sedangkan INTERSECT , hanya akan
menampilkan seluruh isi dari data yang memiliki kesaman diantara hasil kedua
query tersebut
B. Hasil Praktikum
PostgreSQL
Pertama, nyiapin tabel mahasiswa
dan fakultas yang di praktikum sebelumnya yaitu tentang perintah dasar SQL. Trus,
tambahin kolom “gender” di tabel Mahasiswa, syntaknya :
alter table Mahasiswa add column “gender” varchar(1);
Kali ini saya tidak printscreen karena
kebanyakan gambar jadi loading lama alias “lola”. :D
Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]: shinta
Password for user shinta:
psql (9.3.5)
WARNING: Console code page (437) differs from
Windows code page (1252)
8-bit
characters might not work correctly. See psql reference
page
"Notes for Windows users" for details.
Type "help" for help.
postgres=> select*from Mahasiswa;
nim_mah |
nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+---------+--------
(0 rows)
postgres=> select*from fakultas;
id_fak |
nama_fak
--------+----------
1 |
SAINTEK
2 |
EKONOMI
(2 rows)
nah ,sudah muncul table mhs dan
fakultasnya, tapi saya mau menambahkan fakultas lagi yaitu fakultas “kedokteran”
postgres=> insert into Fakultas
values(3,'KEDOKTERAN');
INSERT 0 1
postgres=> select*from fakultas;
id_fak | nama_fak
--------+------------
1 |
SAINTEK
2 |
EKONOMI
3 |
KEDOKTERAN
(3 rows)
Abis ntu, kita insert table mhs
sampai 7 baris. Kaya begini ..
postgres=> select*from Mahasiswa;
nim_mah |
nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+---------+--------
(0 rows)
postgres=> insert into Mahasiswa values (11,'dia','bandung',1,'085725888000','L'
);
INSERT 0 1
postgres=> insert into Mahasiswa values
(12,'adit','jogja',2,'085725788000','L')
;
INSERT 0 1
postgres=> insert into Mahasiswa values
(13,'paris','jakarta',2,'085725788600','
L');
INSERT 0 1
postgres=> insert into Mahasiswa values
(14,'Iqbal','jakarta',3,'085725780990','
L');
INSERT 0 1
postgres=> insert into Mahasiswa values
(15,'Dewi','semarang',1,'085725787890','
P');
INSERT 0 1
postgres=> insert into Mahasiswa values
(16,'vani','Cimahi',2,'085725781234','P'
);
INSERT 0 1
postgres=> insert into Mahasiswa values
(17,'binta','solo',3,'085725781156','P')
;
INSERT 0 1
Kita check pake select * from
Mahasiswa;
postgres=> select*from Mahasiswa;
nim_mah |
nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
11 |
dia | bandung |
1 | 085725888000 | L
12 |
adit | jogja |
2 | 085725788000 | L
13 |
paris | jakarta |
2 | 085725788600 | L
14 |
Iqbal | jakarta |
3 | 085725780990 | L
15 |
Dewi | semarang |
1 | 085725787890 | P
16 |
vani | Cimahi |
2 | 085725781234 | P
17 | binta | solo
| 3 | 085725781156 | P
(7 rows)
Kita mulai dengan soal yang
pertama, menampilkan data mhs dengan nama dari kolomnya berubah jadi
nomor_identitas, nama, alamat, nama_fakultas tanpa harus merubah nama kolom
secara permanen.
postgres=> select nim_mah as nomor_identitas,
nama_mah as nama, alamat_mah as al
amat, nama_fak as nama_fakultas from Mahasiswa ,
Fakultas where Mahasiswa.id_fak
=fakultas.id_fak;
nomor_identitas | nama |
alamat | nama_fakultas
-----------------+-------+----------+---------------
11 | dia | bandung
| SAINTEK
12 | adit | jogja | EKONOMI
13 | paris | jakarta | EKONOMI
14 | Iqbal | jakarta | KEDOKTERAN
15 | Dewi | semarang | SAINTEK
16 | vani | Cimahi | EKONOMI
17 | binta | solo | KEDOKTERAN
(7 rows)
Lanjut ke soal kedua yaitu, menampilkan nama mahasiswa fakultas saintek
yang berjenis kelamin “L” lalu nama mhs fakultas saintek atauberjenis kelamin “L”
postgres=> select*from Mahasiswa where id_fak=1 and gender='L';
nim_mah | nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
11 | dia |
bandung | 1 | 085725888000 | L
(1 row)
postgres=> select*from Mahasiswa where id_fak=1 or gender='L';
nim_mah | nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
11 | dia |
bandung | 1 | 085725888000 | L
15 | Dewi |
semarang | 1 | 085725787890 | P
(2 rows)
Lanjut ke soal ketiga, menampilkan
data mahasiswa dari nomor 3 – 5, trus tampilkan juga data mhs yang bukan dari nomor 3 – 5 menggunakan
between dan tanpa between.
Ini struktur PostgreSQL data
mahasiswa dari no. 3 – 5 pake between :
postgres=> select*from Mahasiswa where nim_mah between 13 and 15;
nim_mah | nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
13 | paris |
jakarta | 2 | 085725788600 | L
14 | Iqbal |
jakarta | 3 | 085725780990 | L
15 | Dewi |
semarang | 1 | 085725787890 | P
(3 rows)
Ini struktur PostgreSQL data
mahasiswa dari no. 3 – 5 TANPA between :
postgres=> select*from Mahasiswa where nim_mah >= 13 AND
nim_mah<=15;
nim_mah | nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
13 | paris |
jakarta | 2 | 085725788600 | L
14 | Iqbal |
jakarta | 3 | 085725780990 | L
15 | Dewi |
semarang | 1 | 085725787890 | P
(3 rows)
Ini struktur PostgreSQL data
mahasiswa BUKAN dari no. 3 – 5 pake between :
postgres=> select*from Mahasiswa where nim_mah not between 13 and 15;
nim_mah | nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
11 | dia |
bandung | 1 | 085725888000 | L
12 | adit |
jogja | 2 |
085725788000 | L
16 | vani |
Cimahi | 2 | 085725781234
| P
17 | binta |
solo | 3 |
085725781156 | P
(4 rows)
Ini struktur PostgreSQL data
mahasiswa BUKAN dari no. 3 – 5 TANPA between :
postgres=> select*from Mahasiswa where nim_mah<13 OR nim_mah>15;
nim_mah | nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
11 | dia |
bandung | 1 | 085725888000 | L
12 | adit |
jogja | 2 |
085725788000 | L
16 | vani |
Cimahi | 2 | 085725781234
| P
17 | binta |
solo | 3 |
085725781156 | P
(4 rows)
Next, ke soal 4, kita disuruh
nampilkan mahasiswa dengan nomor 2, 3, 5 pake operator IN. Maksud dari soal ini
yaitu data mhs yang ada di urutan ke 2, 3, 5. Nah dari data mhs di sini urutan
ke 2,3,5 ada di id_mah 12, 13, 15.
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+--------------+--------
12 | adit | jogja | 2 | 085725788000 | L
13 | paris | jakarta | 2 | 085725788600 | L
15 | Dewi | semarang | 1 | 085725787890 | P
(3 rows)
Selanjutnya kita menuju ke soal 5,
menampilkan semua data mhs yang namanya berawal dari huruf “a”.(berarti pake
LIKE ‘A%’)
postgres=>
select*from Mahasiswa where nama_mah like 'A%';nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+---------------+-------
12 | adit | jogja | 2 | 085725788000 | L
(0 rows)
Setelah
itu, nampilin semua data mhs yang punya akhiran “a” dan huruf ke-3 dari nama
tsb ada huruf “n”.
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+--------------+--------
17 | binta | solo | 3 | 085725781156 | P
(0 rows)
Lanjut
ke soal ke – 7,menampilkan nomor fakultas dari table mhs dengan nomor harus
tidak ada yang sama dari awal sampai akhir
Seperti
ini !!!!
postgres=>
select distinct id_fak from Mahasiswa;
id_fak
--------
2
1
3
(3 rows)
Buru ke soal 8, menampilkan data
mhs 3 baris aja. Pake LIMIT nih..
postgres=> select * from fakultas limit 3;
id_fak | nama_fak
--------+------------
1 |
SAINTEK
2 |
EKONOMI
3 |
KEDOKTERAN
(3 rows)
postgres=> select * from Mahasiswa limit 3;
nim_mah |
nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
12 |
adit | jogja |
2 | 085725788000 | L
13 |
paris | jakarta |
2 | 085725788600 | L
14 |
Iqbal | jakarta |
3 | 085725780990 | L
(3 rows)
Ke soal 9. Kita disuruh nampilin
data mhs dengan ciri-ciri : nama awalan a trus kata selanjutnya boleh r atau d
pokoknya terserah yang penting memenuhi syarat semisal adik. Karena di table
mhs ini, yang nama nya berawalan A Cuma satu yaitu si “adit” So, aditlah yang
kita masukki.
postgres=> select * from Mahasiswa where nama_mah
~ 'a..t';
nim_mah |
nama_mah | alamat_mah | id_fak |
no_telp | gender
---------+----------+------------+--------+--------------+--------
12 |
adit | jogja |
2 | 085725788000 | L
(1 row)
Terakhir ini,... kita ke soal
tentang pembuatan table organ dalam dan organ luar ,seperti ini !!!!
postgres=> create table organ_dalam (nomor
integer ,nama varchar(21));
CREATE TABLE
postgres=> create table organ_luar (nomor integer
,nama varchar(21));
CREATE TABLE
postgres=> insert into organ_dalam values (1,
'jantung');
INSERT 0 1
postgres=> insert into organ_dalam values (2,
'paru-paru');
INSERT 0 1
postgres=> insert into organ_dalam values (3,
'tenggorokan');
INSERT 0 1
postgres=> insert into organ_luar values (1,
'hidung');
INSERT 0 1
postgres=> insert into organ_luar values (2,
'mata');
INSERT 0 1
postgres=> insert into organ_luar values (3,
'tenggorokan');
INSERT 0 1
postgres=> select*from organ_dalam;
nomor | nama
-------+-------------
1 |
jantung
2 |
paru-paru
3 |
tenggorokan
(3 rows)
postgres=> select*from organ_luar;
nomor | nama
-------+-------------
1 |
hidung
2 | mata
3 |
tenggorokan
(3 rows)
postgres=# select nama from organ_dalam union select
nama from organ_luar;
nama
-------------
tenggorokan
paru-paru
mata
hidung
jantung
(5 rows)
postgres=> select nama from organ_dalam except
select nama from organ_luar;
nama
-----------
jantung
paru-paru
(2 rows)
postgres=> select nama from organ_dalam intersect
select nama from organ_luar;
nama
-------------
tenggorokan
(1 row)
postgres=>
Akhirnyaa..... postgreSQL nya udah
rampung alias selesai...
Tinggal yang pake Mysql nih..
phpmyAdmin
Pertama, nyiapin tabel mahasiswa
dan fakultas yang di praktikum sebelumnya yaitu tentang perintah dasar SQL.
Trus, tambahin kolom “gender” di
tabel Mahasiswa.
syntaknya : alter table Mahasiswa add column “gender” varchar(1);
setelah itu kita masukin 7 data ke
dalam table mahasiswa itu.
nih hasilnya..
Sudah terbuat datanya...
Lanjut dengan soal-soal dalam
praktikum
1. Menampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen
1. Menampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen
Hasilnya..
2. Menampilkan
nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama
mahasiswa fakultas saintek atau berjenis kelamin laki-laki
Ini yang “AND” :
Ini yang “AND” :
Hasilnya..
ini yang "OR" :
3. Menampilkan
data mahasiswa dari nomor 3 sampai dengan 5, kemudian tampilkan juga data
mahasiswa yang bukan dari nomor 3 sampai dengan 5 menggunakan between dan tanpa
menggunakan between.
Data
Mhs yang ada di urutan 3 - 5 (13-15) pakai Between
Data
mhs yang ada diurutan 3 – 5 tanpa between
Data
mhs yang bukan dari urutan 3 – 5 pakai between
Data
mhs yang bukan dari urutan 3 – 5 TANPA
between
4. Menampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN
5. Menampilkan
semua data mahasiswa yang namanya mempunyai awalan huruf “a”.
6. Menampilkan
semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”.
8. Menampilkan
data mahasiswa 3 baris saja.
10. Membuat table dengan nama organ_dalam dan organ_luar sebagai berikut :
Organ_dalam :
Ini yang organ_luar
Menampilkan data dengan UNION
Menampilkan data dengan EXCEPT
Menampilkan data dengan INTERSECT
SELESAI...
PostgreSQL :
D. Kesimpulan
C. Tugas
Rumah (Evaluasi Perbandingan DBMS MySQL dan PostgreSQL)
MySQL :
1. Sintak
menampilkan gender laki-laki musti pake petik (select*from Mahasiswa where id_fak=1 and 'gender'='L')
. kata gender musti di beri tanda
petik satu (‘gender’).
2. Sintak
pada soal nomer 9 => select*from Mahasiswa where nama_mah regexp
‘d[aie]’; (dalam phpmyAdmin : tidak bisa memakai simbol regexp
(~))
3. Sintak
pada soal nomer 10 yang “except” : select nama from organ_dalam where nama not in
(select nama from organ_luar);
4. Sintak
pada soal nomer 10 yang “intersect” : select nama from organ_dalam where
nama in (select nama from organ_luar);
5. MYSQL
lebih diperhatikan tanda-tanda bacanya, kaya tanda petik (‘ .. ‘) dsb. Sangat
sensitif dengan tanda-tanda ataupun simbol-simbol
1. Sintak
menampilkan gender laki-laki nggak perlu memakai tanda petik satu (‘..’) :
select*from
Mahasiswa where id_fak=1 and gender='L';
2. Sintak
pada soal nomer 9 (REGEXP) => kita bisa pakai simbolnya (~). select*from
Mahasiswa where nama_mah ~ ‘d[aie]’;
3. Sintak
pada soal nomer 10 yang “except” : select nama from organ_dalam except select nama
from organ_luar;
4. Sintak
pada soal nomer 10 yang “intersect” : select nama from organ_dalam intersect
select nama from organ_luar);
D. Kesimpulan
AS
|
Untuk menampilkan label kolom dengan
nama lain (tidak permanen)
|
AND OR
|
Untuk memakai standar boolean .kalo
AND = nampilin data dari kedua data yang dipilih, OR = nampilin data dari
salah satu dari kedua data yang dipilih
|
BETWEEN
|
Untuk menentukan lebar nilai dari yang
terendah dan tertinggi
|
LIKE
|
Untuk mencari sebuah data yang cuma
diwakili oleh salah satu atau lebih hurufnya saja
|
DISTINCT
|
Untuk mengembalikan hasil dari query
yang tidak terdapat duplikasinya
|
LIMIT dan
OFFSET
|
Untuk membatasi jumlah output
berdasarkan jumlah row
|
UNION, EXCEPT,
INTERSECT
|
Untuk mengkombinasi dua query
|
E. Saran
dan Kritik
Dalam praktikum ini, praktikan
menemukan kebingungan dari salah satu soal. Meskipun seperti itu, urutan soal
dengan materi dari tiap operator dasar itu terurut sesuai dengan soal-soalnya.
F. Manfaat
Ini sangat membantu para pembaca,
memahami dan mengenal secara lebih jauh tentang operator dasar dalam standar
query sql, serta yang berhubungan dengan manipulasi data.
G. Sumber-sumber
Mustafa, aziz. Modul Praktikum
Desain Basis Data.pdf
Kadir, Abdul. 2002. Penuntun
Praktis Belajar SQL. Yogyakarta: Andi
Subekti, Muhammad.2004.Manajemen Basis Data.Bogor:Ghalia Indonesia
0 komentar:
Posting Komentar