Selasa, 14 Oktober 2014

Pengenalan Operator Dasar


Melanjutkan praktikum yang ke-4, kali ini saya akan membahas pengenalan operator dasar melanjutan dari pertemuan ke-3. semoga apa yang materi saya tampilkan pada blog ini dapat bermanfaat bagi semua pengunjung blog.

AS 
AS biasa 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. Berikut struktur querynya : 
select namakolom as namakolompengganti from namatabel; 
Contoh : 


AND dan OR 
  Pada bagian sebelumnya kita menggunakan anak kalimat atau sintaks  WHERE hanya pada  konteks 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 standar logika boolean three-valued seperti pada tabel berikut ;  



A  NOT A 
Berikut struktur SQL untuk penampilan data : 
select * from namatabel  where namakolom = ‘pencarian 1’ and namakolom = ‘pencarian 2’; 
Atau 
select * from namatabel where namakolom = ‘pencarian 1’ or namakolom = ‘pencarian 2’; 
Contoh : 




Kondisi A  Kondisi B  A AND B  A OR B 
BETWEEN 
BETWEEN  digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi.  Pada BETWEEN  menggunakan  operator pembanding seperti pada tabel 
berikut; 
Operator  Penjelasan 

Logika operator BETWEEN sebagai berikut : 
¨  Nilai a dalam formula “a BETWEEN x AND y” indentik dengan “a >= x AND a <= y“ 
¨  “a NOT BETWEEN x AND y “ identik dengan “a < x OR a > y” 
Berikut Struktur yang digunakan : 
select * from nama_tabel where nama_kolom between ‘nilai_awal’ and ‘nilai_akhir’; 
Contoh  : Memunculkan data pegawai dimana tanggal lahirnya antara tanggal 9-9-
1999 sampai 1-1-2001. 

 IN dan NOT IN 
  Operator IN berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai. Berikut Struktur yang digunakan  
Select * from  nama_tabel where nama_kolom in (kata_kunci1, kata_kunci2, kata_kunci13, kata_kunci14); 
Contoh : menampilkan data pegawai yang memiliki ip 1,2, dan 3 


 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. Berikut adalah tabel contoh kasus 
penggunaan LIKE : 

Kasus  Operator 
Berikut struktur SQL untuk pencarian data menggunakan LIKE : 
select * from nama_tabel where nama_kolom like ‘operator’; 
Contoh : Mencari data pegawai yang mempunyai nama dengan huruf awalan r.  

REGEXP 
 Regular Expression atau Regex, merupakan sebuah teknik atau cara untuk mencari persamaan - presamaan string atau data dan memanipulasinya. Biasanya lebih sering digunakan untuk string. Didalam PostgreSQL disimbolkan dengan “~”. Berikut 
tabel daftar simbol pada reguler expression : 

  Berikut struktur SQL untuk pencarian data menggunakan REGEXP : 
select * from nama_tabel where nama_kolom  ~  ‘operator_regexp dan patern’; 
Contoh : 


 DISTINCT 
DISTINCT sering kali diperlukan untuk mengembalikan hasil dari sebuah query  dengan tidak terdapat duplikasi, artinya pada hasil outputnya tidak terjadi kesamaan data meskipun pada data sesungguhnya sangat mungkin banyak duplikasi.. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikut struktur perintah 
dasar SQL : 
select distinct nama_kolom from nama_tabel; 
  Contoh : 


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 OFFSET digunakan untuk menghilangkan  baris  sesuai dengan jumlah yang diberikan pada OFFSET. Berikut struktur perintah dasar SQL : 
select * from nama_tabel limit 2; 
Atau 
select * from nama_tabel offset 2; 
  Contoh : 

  
UNION, 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 : 
select nama_kolom from nama_tabel union select nama_kolom from nama_tabel; 
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 : 
select  nama_kolom from nama_tabel  except select nama_kolom from nama_tabel; 
Perintah  INTERSECT  hanya akan menampilkan seluruh isi dari data yang memiliki kesaman diantara hasil kedua query tersebut. Berikut struktur query penggunaan INTERSECT : 
select  nama_kolom from nama_tabel  except select nama_kolom from nama_tabel; 
Dari uraian materi tentang UNION, EXCEPT dan INTERSECT dapat digambarkan sebagai berikut : 

 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);



  
 Tugas Praktikum 
Persiapan praktek : Gunakan tabel mahasiswa dan fakultas pada pertemuan 3.  Tambahkan kolom gender di tabel mahasiswa kemudian update data mahasiswa.  Insert data mahasiswa hingga 7 baris. 
1.  Berdasarkan tabel sebelumnya yaitu bab 3, tampilkan data mahasiswa dengan  nama dari kolomnya  berubah menjadi nomor_identitas, nama, alamat,nama_fakultas  tanpa harus merubah nama kolom secara permanen. 
2.  Tampilkan  nama mahasiswa  fakultas saintek  yang berjenis kelamin laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki 
3.  Suatu tabel mahasiswa terdapat 7 baris data mahasiswa. Tampilkan 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. 
4.  Tampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN. 
5.  Tampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”. 
6.  Tampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”. 
7.  Tampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir. 
8.  Tampilkan data mahasiswa 3 baris saja. 
9.  Tampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh r atau boleh t atau boleh d. misalkan yang memenuhi kriteria ciri tersebut seperti adi, atik, arif, adam dll.  
*Boleh dengan awalan dan ciri yang lain namun karakteristiknya harus sesuai soal 
10. Buatlah tabel dengan nama organ_dalam dan organ_luar sebagai berikut : 
a.  Tabel organ_dalam 
Nomor  Nama 
1  Jantung  
2  Paru-paru 
3  Tenggorokan 
b.  Tabel organ_luar 
Nomor  Nama 
1  Hidung  2  Mata 
3  Tenggorokan 
  Tampilkan data  dari kedua tabel tersebut menggunakan UNION, EXCEPT dan 
INTERSECT 
Tugas Rumah 
1.  Buat laporan, Tampilkan perintah-perintah SQL menggunakan DBMS MYSQL 
beserta hasilnya di blog anda. Perintahnya sesuai dengan tugas praktikum 1-10. 
2.  Jelaskan evaluasi dari DBMS MySQL dan PostgreSQL dalam blog anda berdasarkan 
tugas praktikum 1-10. (evaluasi meliputi perbedaan atau kesamaan, kelebihan atau 
kekurangan, tambahan dari penulis)
Jawaban
kita tampilkan tabel mahasiswa pada pertemuan ke3, jika belum mari kita membuat dari awal lagi.


setelah itu menampilkan tabel mahasiswa dengan nama dari kolomnya secara sementara menjadi nomor_identitas, nama, alamat, nama_fakultas dengan query :
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;


menampilkan nama mahasiswa fakultas saintek yang ber gender laki laki maka:
select*from mahasiswa where id_fak=65 and gender='L';


sama dengan diatas hanya saja diantaranya terdapat kata "atau" maka;
select*from mahasiswa where id_fak=65 or gender='L';

manampilkan data mahasiswa dari no 3-5, menggunakan between maka:
select*from mahasiswa where nim_mah between 14 and 16; 
dan bukan between:
select*from mahasiswa where nim_mah>=14 and nim_mah<=16;




menampilkan mahasiswa yang bukan dari no3-5 menggunakan not between 
select*from mahasiswa where nim_mah not between 14 and 16;


menampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN:
select*from mahasiswa where nim_mah in(15,16,18);


menampilkan semua data mahasiswa yang namanya awalan huruf "a":
select*from mahasiswa where nama_mah like 'a%';
menampilkan data mahasiswa yang berakhiran "a" dan huruf ketiganya adalah "n":
select*from mahasiswa where nama_mah like '___n%a';



menampilkan nomor fakultas di tabel mahasiswa dengan nomor tidak boleh ada yang sama:
select distinct id_fak from mahasiswa;


menampilkan mahasiswa 3 baris :
select*from mahasiswa limit 3;


menampilkan data mahasiswa yang awalannya "a" lalu "t" dan juga "d":
select*from mahasiswa where nama_mah regexp 'a[dt]';


membuat tabel organ dalam:
create table organ_dalam (nomor integer not null, nama varchar(15));
insert into organ_dalam values (1,'jantung'),(2,'paru-paru'),(3,'tenggorokan');



membuat tabel organ luar:
create table organ_luar (nomor integer not null, nama varchar(15));
insert into organ_luar (1,'hidung'),(2,'mata"),(3,'tenggorokan');


union 
select*from organ_dalam select*from organ_luar;


except
select*from organ_dalam where(nomor,nama) not in (select*from organ_luar);


intersect
Select*from organ_dalam where (nomor,nama) in (select*from organ_luar);




Perbandingan MySQL dan PostgreSQL
1.pada regexp
pada MySql:
select*from mahasiswa where nama_mah regexp 'a[dt]';
pada postgreSql:
select*from mahasiswa where nama ~'a[dt]';
2.pada except
pada MySql:
select*from organ_dalam where(nomor, nama) not in (select*from organ_luar);
pada postgresQl:
select*from organ_dalam except select*from organ_luar;
3.pada intersect
pada MySql:
select*from organ_dalam where(nomor, nama)in(select*from organ_luar);
pada postgreSql:
select*from organ_dalam intersect select*from organ_luar;

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.

 Daftar Pustaka
Sutanta Edhy, 2011, Basis Data Dalam Tinjauan Konseptual. Yogyakarta: Andi
Kadir Abdul, 2000, Konsep & Tuntutan Praktis Basis Data, Yogyakarta: Andi
Hindro H, 2012. Media Pengetahuan Teknologi Informasi http://www.termasmedia.com \\diakses tanggal 2 Oktober 2013.
Radit, 2011, Operator Dasar SQL http://raditz21.blogspot.com/2011/10/pengenalan-operator-dasar-di-sql-shell.html \\diakses tanggal 2 Oktober 2013

1 komentar:

  1. Training Scriptcase di Indonesia, kunjungi www.OwenSolution.com

    BalasHapus