Minggu, 12 Oktober 2014

Praktikum Desain Basis Data IV -> Pengenalan Operator Dasar

1. Dasar Teori
1.1. Pada saat pengoperasian MySQL, kita perlu menggunakan perintah-perintah SQL. Perintah atau statement SQL tersebut secara garis besar dibagi dalam 2 kelompok yaitu : Data Manipulation Language (DML) dan Data Definition Language (DDL).

Yang termasuk dalam DML adalah :
• SELECT – untuk mengekstrak atau memilih data dari sebuah database
• UPDATE – untuk mengupdate data dari sebuah database
• DELETE – untuk menghapus data dari sebuah database
• INSERT – untuk memasukkan data baru ke dalam sebuah database

Sedangkan DDL yang paling penting adalah :
• CREATE DATABASE – untuk membuat sebuah database baru
• ALTER TABLE – untuk menambah, menghapus atau memodifikasi kolom dari tabel yang sudah ada
• CREATE TABLE – untuk membuat tabel baru
• DROP TABLE – untuk menghapus sebuah tabel
• CREATE INDEX – untuk membuat index (kunci pencarian)
• DROP INDEX – untuk menghapus index

    Perintah atau statement SQL bersifat tidak case sensitive, dengan kata lain perintah yang anda tulis dalam huruf kapital maupun huruf kecil akan di terjemahkan sama. Kemudian di setiap akhir dari perintah tersebut harus diberi tanda semi colon atau ; sehingga perintah akan dijalankan untuk setiap statement atau perintah tersebut.
Perlu diketahui bahwa database dapat terdiri dari beberapa tabel dan di setiap tabel dapat terdiri dari beberapa kolom dan beberapa data. Untuk lebih lengkapnya tentang DML dan DDL dapat dilihat disisni

1.2 PERINTAH DASAR DALAM MYSQL
a. 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;

b. 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.  
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’;

c. BETWEEN
    Fungsi BETWEEN dalam SQL Server merupakan pernyataan kejadian diantara dua kriteria. Fungsi tersebut bisa digunakan untuk field yang bertipe number. BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi.
Logika operator BETWEEN sebagai berikut :
1. Nilai a dalam formula “a BETWEEN x AND y” indentik dengan “a >= x AND a <= y“
2. “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’;

d. IN dan NOT IN
    Operator IN pada MySQL merupakan operator yang memungkinkan kita untuk memilih data menggunakan perintah SELECT dimana nilai yang dijadikan sebagai persyaratan dapat lebih dari satu nilai. Jadi operator ini akan melengkapi persyaratan WHERE.
Berikut Struktur yang digunakan
Select * from nama_tabel where nama_kolom in (kata_kunci1, kata_kunci2, kata_kunci13, kata_kunci14);

e. LIKE
    Operator LIKE pada MySQL akan kita gunakan pada saat membuat syarat pencarian atau pemilihan sebuah entry atau data sesuai dengan keinginan kita. Jadi operator LIKE akan menempel pada perintah SELECT bersyarat. Dalam MySQL, LIKE lebih condong menyerupai dan menyerupai berarti hanya mirip-mirip atau tidak sama persis seperti pada saat kita memilih entry atau data menggunakan WHERE namakolom=’datakolom’.
Misal :
Tabel Mahasiswa
ID Nama Alamat Kota Propinsi
1 Bambang Pemuda 123 Bekasi Jawa Barat
2 Agung Sudirman 57 Bandung Jawa Barat
3 Satria Majapahit 57 Solo Jawa Tengah
4 Tony Kelud 17 Semarang Jawa Tengah
 
Berikut aplikasi penggunaan LIKE pada MySQL :
• Mencari Mahasiswa yang berasal dari kota yang berawalan dengan huruf s. Pencarian kita kunci menggunakan ‘s%’ dimana % mewakili sembarang huruf setelah huruf s.
SELECT * FROM Mahasiswa
WHERE Kota LIKE ‘s%’
Maka hasilnya adalah :
Tabel Mahasiswa
ID Nama Alamat Kota Propinsi
3 Satria Majapahit 57 Solo Jawa Tengah
4 Tony Kelud 17 Semarang Jawa Tengah

• Mencari mahasiswa yang berasal dari kota yang mengandung kata ara. Pencarian kita kunci menggunakan ‘%ara%’ dimana % mewakili sembarang huruf sebelum dan sesudah kata ara.
SELECT * FROM Mahasiswa
WHERE Kota LIKE ‘%ara%’
Maka hasilnya adalah:
Tabel Mahasiswa
ID Nama Alamat Kota Propinsi
4 Tony Kelud 17 Semarang Jawa Tengah


Berikut struktur SQL untuk pencarian data menggunakan LIKE :
select * from nama_tabel where nama_kolom like ‘operator’;

f. REGEXP
   Regular Expression atau Regex, kepanjangan dari regular expression, berfungsi sama dengan operator like, namun lebih disempurnakan lagi. Dapat juga diartikan sebuah teknik atau cara untuk mencari persamaan - presamaan string atau data dan memanipulasinya. Biasanya lebih sering digunakan untuk string.
Dalam pengoperasiannya, operator ini menggunakan kode-kode tambahan seperti dibawah ini :

Berikut struktur MySQL untuk pencarian data menggunakan REGEXP :
Select * from nama_tabel where nama_kolom regexp ‘operator_regexp dan patern’;

g. 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;
 
h. 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;

i. UNION, INTERSECT dan EXCEPT
a. UNION
    UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama. Dapat juga berarti perintah Union ini digunakan untuk menggabungkan 2 atau lebih hasil dari perintah SELECT pada MySQL.

b. INTERSECT
    INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.
Syntax : SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.

c. EXCEPT / Set Difference
    EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.
Syntax : SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2
Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.

 Ketiganya digambarkan seperti ini:

2. Hasil Praktikum
2.1 Menggunakan PostgreSQL
      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.
--> Menampilkan mahasiswa nomor 16-18, dan yang bukan nomor 16-18 menggunakan BETWEEN
 --> Menampilkan mahasiswa nomor 16-18, dan yang bukan nomor 16-18 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

b. Tabel organ_luar


 Tampilkan data dari kedua tabel tersebut menggunakan UNION, EXCEPT dan INTERSECT



  

3. Tugas Rumah
3.1 Menggunakan MySQL
      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
b. Tabel organ_luar


Tampilkan data dari kedua tabel tersebut menggunakan UNION, EXCEPT dan INTERSECT 




3.2 Evaluasi dari DBMS MySQL dan PostgreSQL
 
4. Kesimpulan dan Saran
 4.1 Kesimpulan
     Pada praktikum kali ini, kita sudah banyak belajar operasi-operasi dasar pada SQL yaitu AS untuk memberi nama kolom dengan nama lain, AND dan OR, BETWEEN untuk menentukan lebar nilai, IN untuk pencocockan, LIKE untuk mewakili salah satu huruf atau lebih huruf,  REGEXP untuk mencari persamaan data dan memanipulasi, DISTINCT untuk mengembalikan hasil sebuah query, LIMIT untuk membatasi jumlah output, UNION untuk menggabungkan hasil dua buah query menjadi satu kolom, EXCEPT untuk menampilkan hanya query pertama, dan INTERSECT untuk menampilkan seluruh isi data yang memiliki kesamaan diantara kesamaan diantara hasil kedua query tersebut.

4.2 Saran dan Manfaat Bagi Pembaca
      Setelah melakukan dua kali percobaan, maka akan terlihat bahwa pada PostgreSQL dan MySQL tidak semua sama. Pada praktikum kali ini, perbedaan terlihat pada operasi REGREXP, EXCEPT, dan INTERSECT. Semoga postingan kali ini membantu pembaca agar dapat belajar database dengan mudah dan menyenangkan.


Daftar Pustaka
-  Modul Praktikum Desain Basis Data 
- Sanjaya, Ridwan. 2005. Pengolahan Database MySQL dengan Java 2. Yogyakarta: Andi
- Nugroho, Bunafit. 2005. Administrasi Database MySQL. Yogyakarta:Graha Ilmu
-  http://yulisoraya.wordpress.com/2011/01/13/perintah-dasar-sql/
- http://ustnahuswatun.blogspot.com/2013/11/perintah-dasar-pada-mysql.html
 

 

Tidak ada komentar:

Posting Komentar