BAB IV
PENGENALAN
OPERATOR DASAR
A.
Dasar Teori
Operator dasar merupakan sebuah perintah dasar yang bisa digunakan
untuk mengekspresikan suatu kondisi. Operator dasar pada MySQL berdasarkan
fungsinya dapat dikategorikan menjadi sebagai berikut:
·
Operator Aritmatik
Operator
|
fungsi
|
keterangan
|
+
|
Penambah
|
Melakukan penjumlahan pada operasi matematika.
|
-
|
Pengurang
|
Melakukan pengurangan pada operasi matematika.
|
*
|
Pengali
|
Melakukan perkalian pada operasi matematika.
|
/
|
pembagi
|
Melakukan pembagian pada operasi matematika.
|
%
|
Sisa bagi (modulus)
|
Melakukan proses modulus pada operasi matematika.
|
·
Operator Logika
Operator
|
fungsi
|
Keterangan
|
NOT atau !
|
Sebagai negasi atau pembalik nilai.
|
NOT perempuan, !perempuan (berarti laki-laki).
|
OR atau ||
|
Atau
|
Nilai menjadi benar (TRUE) jika salah satu nilai adalah benar.
Contoh :
Mangga OR jambu,
Merah || Kuning
|
AND or
&&
|
Dan
|
Nilai menjadi benar (TRUE) jika kedua nillai adalah benar.
Contoh :
Baju AND celana, Piring && Mangkok
|
·
Operator Pembanding
operator
|
keterangan
|
Contoh
|
=
|
Sama dengan (memiliki kesamaan dengan)
|
Nama = “amin”
Harga = 1000
|
>
|
Lebih besar
|
Diskon > 500
Tinggi > 180
|
<
|
Lebih kecil
|
Tebal < 10
Lebar < 5
|
>=
|
Lebih besar atau sama dengan
|
Diskon >= 500
Tinggi >= 180
|
<=
|
Lebih kecil atau sama dengan
|
Tebal <= 10
Lebar <= 5
|
!=
|
Tidak sama dengan
|
Nama !=”Amin”
Diskon !=500
|
<>
|
Tidak sama dengan
|
Nama <> “Amin”
Diskon <> 500
|
IS NOT NULL
|
Apakah semua nilai adalah tidak NULL?
|
Nama IS NOT NULL
(Apakah nama di isi atau kosong?)
|
IS NULL
|
Apakah sebuah nilai adalah NULL
|
Nama IS NULL
(Nama Dikosongkan) |
BETWEEN
|
Apakah sebuah nilai diantara dua batasan nilai?
|
Harga BETWEEN 1000 AND 2000
|
IN
|
Apakah sebuah nilai berada di dalam pilihan yang ada?
|
Nama IN (“Amin”,”Aman”)
|
NOT IN
|
Apakah sebuah nilai tidak berada di dalam pilihan yang ada?
|
Nama NOT IN (“Amin”,”Aman”)
|
LIKE
|
Apakah sebuah nilai mirip dengan kriteria tertentu?
|
Nama LIKE (“Am%”)
|
NOT LIKE
|
Apakah sebuah nilai tidak mirip dengan kriteria tertentu?
|
Nama NOT LIKE (“Am%”)
|
REGEXP
|
Singkatan dari “Regular Expression”. NIlai menjadi benar (TRUE)
bila nilai a sama dengan nilai b.
|
A REGEXP b
|
NOT REGEXP
|
Nilai menjadi benar bila nilai benar-benar tidak sama dengan
nilai b.
|
A NOT REGEXP b
|
ó
|
Nilai menjadi benar bila kedua nilai yang dibandingkan adalah sama.
Dan ini juga berlaku untuk NULL.
|
A ó b
|
AS bisa digunakan untuk menampilkan label kolom dengan nama lain sehingga yang akan mucul 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. Berikut struktur querynya :
SELECT
namakolom AS namakolompengganti FROM namatabel;
Pada bagian sebelumnya kita menggunakan anak kalimat atau sintaks WHERE hanya pada kontes yang sederhana. Berikut ini kita akan mencoba menggunakan WHERE untuk konteks yang lebih kompleks lagi, anak kalimat WHERE yang kompleks akan bekerja dengan baik dengan menggunakan kata AND dan OR. SQL menggunakan stadar logika Boolean three-valued seperti pada table berikut:
Kondisi A
|
Kondisi B
|
A AND B
|
A OR B
|
True
|
True
|
True
|
True
|
True
|
False
|
False
|
True
|
True
|
Null
|
Null
|
True
|
False
|
False
|
False
|
False
|
False
|
Null
|
False
|
Null
|
Null
|
Null
|
Null
|
Null
|
A
|
NOT A
|
True
|
False
|
False
|
True
|
Null
|
Null
|
SELECT * FROM namatabel WHERE namakolom = ‘pencarian 1’ and namakolom = ‘pencarian 2’;
Atau
SELECT
* FROM namatable WHERE namakolom = ‘pencarian 1’ or namakolom = ‘pencarian 2’; 3. BETWEEN
BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi. Pada BETWEEN menggunakan operator pembanding seperti pada tabel berikut;
Operator
|
Penjelasan
|
|
<
|
Kurang Dari
|
|
>
|
Lebih Dari
|
|
<=
|
Kurang Dari atau Sama Dengan
|
|
>=
|
Lebih Dari atau Sama Dengan
|
|
=
|
Sama Dengan
|
|
<> Atau !=
|
Tidak Sama Dengan
|
- "a BETWEEN x AND y" identic dengan "a < x OR a > y"
Berikut Struktur Query yang digunakan :
SELECT * FROM [Nama Tabel] WHERE [Nama
Kolom] BETWEEN '[Nilai Awal]' OR '[Nilai Akhir]'; 4. LIKE
Like digunakan ketika kita ingin mencari sebuah data yang hanya diwakili oleh salah satu atau lebih hurufnya saja. Misalkan kita ingin mencari nama yang huruf awalnya R, maka kita harus menggunakan LIKE.
Kasus
|
Operator
|
Diawali dengan huruf A
|
LIKE 'A%'
|
Diakhiri dengan huruf A
|
LIKE '%D'
|
Huruf A pada posisi ke dua
|
LIKE '_A%'
|
Diawali dengan huruf A dan mengandung huruf
I.
|
LIKE 'A%I%'
|
Tidak diawali dengan huruf A
|
NOT LIKE 'A%'
|
Berikut Struktur SQL untuk pencarian menggunakan
LIKE :
SELECT * FROM [Nama Tabel] WHERE [Nama Kolom]
LIKE '[Operator]'; 5. DISTINCT
DISTINCT sering kali diperlukan untuk mengembalikan hasil dari sebuah query dengan tidak terdapat duplikasi, artinya pada hasil outputnya tidak terjadi kesamaan dan meskipun pada data sesungguhnya sangat mungkin banyak duplikasi. al ini juga berlaku jika data yang ada dalam bentuk angka.
Berikut Struktur SQL untuk DISTINCT :
SELECT DISTINCT [Nama Kolom] FROM [Nama Tabel];
6. LIMIT
Limit dan Offset digunakan untuk membatasi jumlah output dari query berdasarkan jumlah row bukan karena kondisi seperti WHERE. bisa dikatakan LIMIT adalah untuk menentukan jumlah baris yang akan ditampilkan yang dihitung dari baris pertama, sedangkan OOFSET digunakan untuk menghilangkan baris sesuai dengan jumlah yang diberikan pada OFFSET
Berikut struktur SQL untuk LIMIT
SELECT * FROM [Nama Tabel] ORDER BY [Nama Kolom] LIMIT 2;
Regular Expression atau Regex, merupakan sebuah teknik atau cara untuk mencari persamaan - presamaan string atau data dan memani pulasinya. Biasanya lebih sering digunakan untuk string. Didalam Postgre SQL disimbolkan dengan “~”. Berikut struktur SQL untuk pencarian data menggunakan REGEXP :
SELECT * FROM namatabel WHERE namakolom ~ 'operator_regexp dan patern';
Dibagian ini terdapat perbedaan antara perintah di MySQL serta PostgreSQL, yaitu pada bagian EXCEPT dan INTERSECT. Hasil dari dua buah query dapat dikombinasikan dengan menggunakan UNION, EXCEPT, atau INTERSECT. UNION digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom. berikut struktur query untuk UNION dari MySQL dan PostgreSQL :
atau
select nama_kolom from nama_tabel union all select nama_kolom from nama_tabel; EXCEPT digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan.
Berikut struktur query penggunaan EXCEPT (PostgreSQL) :
Select nama_kolom from nama_tabel except select nama_kolom from nama_tabel; Perintah INTERSECT hanya akan menampilkan seluruh isi dari data Yangmemiliki kesaman diantara hasil kedua query tersebut.
Berikut struktur query penggunaan INTERSECT (PostgreSQL) :
select nama_kolom from nama_tabel except select nama_kolom from nama_tabel; Sedangkan pada MySQL tidak ada perintah EXCEPT dan INTERSECT, namun digantikan dengan IN untuk INTERSECT dan NOT IN untuk EXCEPT. Syarat tabelnya harus terdiri hanya 1 field/ kolom saja.
IN/ INTERSECT query sebagai berikut:
SELECT * FROM tabel1 WHERE nama_field IN (SELECT * FROM tabel2);
NOT IN/ EXCEPT query
sebagai berikut:
SELECT * FROM tabel1 WHERE nama_field NOT IN (SELECT * FROM tabel2)
B. Hasil Praktikum
Gunakan tabel mahasiswa dan fakultas pada pertemuan seelumnya, kemudian tambahkan kolom gender di
tabel mahasiswa kemudian update data mahasiswa. Insert data mahasiswa hingga 7
baris dengan salah satu nama adalah ‘binta’ dan insert data fakultas hingga 3
baris.
1. Berdasarkan
tabel yang telah kita buat sebelumnya, menampilkan data mahasiswa dengan nama
dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa
harus merubah nama kolom secara permanen. Berikut querynya
- select nim_mah as nomor_identitas, nama_mah as nama, alamat_mah as alamat, nama_fak as nama_fakultas from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
2. Menampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki. Berikut query dari soal di atas.
- select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and gender=’L';
- select*from mahasiswa where id_fak=1 or gender=’L';
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. berikut querynya :
- select*from mahasiswa where nim_mah>=3 and Nim_mah<=5;
- select*from mahasiswa where nim_mah between 3 and 5;
- select*from mahasiswa where nim_mah not between 3 dan 5;
- select*from mahasiswa where nim_mah<3 or nim_mah>5;
4. Menampilkan
mahasiswa dengan nomor 2,3,5 menggunakan operator IN. Berikut query yang bisa
digunakan
- select*from mahasiswa where nim_mah in (2, 3, 5);
6. Menampilkan
semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari
nama tersebut terdapat huruf “n”. Berikut query dari soal berikut
- select*from mahasiswa where nama_mah like ‘a%';
- select*from mahasiswa where nama_mah like ‘__%n%a';
7. Menampilkan
nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari
baris pertama sampai akhir. Berikut query dari operator DISTINCT
- select distinct id_fak from mahasiswa;
8. Menampilkan
data mahasiswa 3 baris saja, menggunakan operator LIMIT. Berikut query yang
bisa digunakan
- select*from mahasiswa limit 3;
9. Menampilkan
data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata
selanjutnya boleh b atau boleh m atau boleh d. misalkan yang memenuhi kriteria
ciri tersebut seperti abi, amik, adik, adam dll. Gunakan operator RGEXP untuk
menyelesaikan soal tersebut. Berikut query yang bisa digunakan
- select*from mahasiswa where nama_mah regexp ‘^k[aid]‘;
10. Menampilkan data dari beberapa table secara UNION, INTERSECT dan EXCEPT. pertama, buat dulu tabel baru
dengan nama organ_dalam dan organ_luar. Dengan nama kolom nomor dan nama,
kemudian pada organ_dalam isi tabel dengan (1, jantung), (2, paru-paru),
(3, tenggorokan) kemudian pada tabel organ luar isi tabel dengan (1,
hidung), (2, mata), (3, tenggorokan). Setelah modifikasi tabel tersebut dengan
perintah UNION, INTERSECT dan EXCEPT
- select nama from organ_dalam union select nama from organ_luar;
- select*from organ_dalam where nama in (select nama from organ_luar);
- select*from organ_dalam where nama not in (select nama from organ_luar);
C. Perbedaan antara MySQL dengan PosgreSQL
Dari percobaan yang telah dilakukan dan dengan hasil praktikum yang telah diketahui sebelumnya maka dapat kita lihat bahwa ada beberapa perbedaan antara kedua DBMS ini, diantaranya adalah :
- Pada operator REGEXP terdapat sedikit perbedaan antara kedua DBMS ini, pada PostgreSQL operator REGEXP dituliskan dalam bentuk simbol ( ~ ), tapi apabila dalam MySQL operator REGEXP tidak di tulis dalam simbol tetapi ditulis operatornya langsung yaitu dengan menuliskan (REGEXP) saat penulisan querynya. Berikut perbedaan query dasarnya :
PostgreSQL
SELECT * FROM namatabel
WHERE namakolom ~ ‘keywordREGEXP';
MySQL
SELECT * FROM namatabel WHERE namakolom
REGEXP ‘keywordREGEXP’ ;- Pada perintah INTERSECT dan EXCEPT juga terdapat perbedaan antara kedua DBMS ini, pada PostgreSQL kita langsung bisa mengetikkan perintah INTERSECT dan EXCEPT pada querynya, sedangkan pada MySQL, perintah INTERSECT dan EXCEPT tidak di sediakan. Jadi untuk mengoperasikan perintah ini kita bisa menggunakan operator IN untuk INTERSECT dan NOT IN untuk EXCEPT. berikut perbedaan query dasarnya :
PostgreSQL
- SELECT namakolom FROM namatabel
EXCEPT SELECT namakolom FROM namatabel;
- SELECT namakolom FROM namatabel
INTERSECT SELECT namakolom FROM namatabel;
MySQL
- SELECT * FROM namatabel1 WHERE syarat1 IN
(SELECT * FROM namatabel2) ;
- SELECT * FROM namatabel1 WHERE syarat1 NOT
IN (SELECT * FROM namatabel2) ;
D. Kesimpulan
Dari beberapa data dan percobaan di atas menunjukkan bahwasanya dalam
bab ini, yaitu bab “Pengenalan Operator Dasar”, kedua DBMS ini memiliki
beberapa perbedaan diantaranya adalah pada pengoprasian REGEXP, terdapat sedikit perbedaan antara
kedua DBMS ini, pada PostgreSQL operator REGEXP dituliskan dalam bentuk simbol
( ~ ), tapi apabila dalam MySQL operator REGEXP tidak di tulis
dalam simbol tetapi ditulis operatornya langsung yaitu dengan menuliskan
(REGEXP) saat penulisan querynya. Selanjutnya, pada perintah INTERSECT dan
EXCEPT terdapat perbedaan yang sangat jauh, apabila pada PostgreSQL disediakan
sendiri perintah INTERSECT dan EXCEPT, tetapi jika di MySQL
perintah INTERSECT dan EXCEPT tidak di sediakan. Jadi untuk mendapatkan
perintah ini kita bisa menggunakan operatop IN untuk INTERSECT dan NOT IN untuk
EXCEPT.
E. Daftar Pustaka
Bugroho,
Bunafit, Administrasi Database MySQL pada server Linux dan Windows, Penerbit
Graha Ilmu, 2005.
http://myhacorp.blogspot.com/2013/02/mysql.html (tanggal akses : 13/10/2014 pukul : 20.15 WIB)
Tugas
Evaluasi kedua DBMS
(MySQL dan PostgreSQL)
Berdasarkan hasil praktikum dan hasil percobaan di atas, mulai dari pengerjaan soal no 1 - 10, dapat diketahui bahwa kedua DBMS ini memiliki beberapa kesamaan dan perbedaan. misalnya pada pengerjaan soal no 1 - 8, kedua DBMS ini memiliki persamaan dalam hal query dasarnya, yakni pada pengoperasian dari operator (as, and/or, between, in/not in, like, distinc, dan limit). Sedangkan jka kita lihat pada pengerjaan soal no 9 dan 10, kita dapat menemukan perbedaan query antara MySQL dengan PostgreSQL, yakni dalam pengoperasian dari operator (REGEXP, EXCEPT dan INTERSECT ). pada DBMS PostgreSQL kita bisa mengoperasikan operator REGEXP dengan simbol (~), sedangkan pada DBMS MySQL kita tidak bisa menggunakan simbol (~), melainkan kita perlu mengetikkan REGEXP pada querynya. Serta, pada DBMS MySQL kita tidak bisa menggunakan operator EXCEPT dan INTERSECT secara langsung seperti saat kita mengoperasikannya pada DBMS PostgreSQL, melainkan kita harus menggantinya dengan IN untuk (EXCEPT) dan NOT IN untuk (INTERSECT). kedua DBMS ini juga memiliki kelebihan dan kekurangan masing-masing, baik dalam hal querynya ataupun dalam hal yang lainnya.
2 comments:
materi masih kurang...coba ambil dari reverensi lain juga
...no 6 coba pekek like... '__n%a' ...
secara keseluruhan bagus...
semangat...CHANGE
planet win 365 planet win 365 fun88 fun88 bk8 bk8 カジノ シークレット カジノ シークレット 1xbet 1xbet william hill william hill 920
Posting Komentar