Join The Community

Blog Competition

Search

Senin, 13 Oktober 2014

Laporan Praktikum Desain Basis Data "Pengenalan Operator Dasar"


A.    Materi/ Teori
Penrintah/ query pengenalan operator dasar pada BAB ini semuanya sama, hanya saja ada perbedaan dalam penampilan EXCEPT dan INTERSECT.



1. AS
    Command AS dalam bahasa inggris artinya adalah "Sebagai" dalam query biasanya digunakan untuk menampilkan kolom dengan nama lain sehingga 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 dan kemudian diikuti dengan nama penggantinya. Berikut Struktur Querynya :
    SELECT [Nama Kolom] AS [Nama Kolom Pengganti] FROM [Nama Tabel];

2. Command AND dan OR
    Command ini adalah lanjutan dari sintaks WHERE. Di mana pada materi sebelumnya kita menggunakan sintaks WHERE pada query yang sederhana. Berikut ini kita akan mencoba menggunakan WHERE untuk konteks yang lebih kompleks, query WHERE akan bekerja lebih baik menggunakan kata AND dan OR. SQL menggunakan standar logika Boolean Three-Valued Seperti pada tabel berikut :




Berikut adalah struktur query untuk penampilan data :

    SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] = ‘[PENCARIAN 1]’ AND [NAMA KOLOM] = ‘[PENCARIAN 2]’; Atau
SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] = ‘[PENCARIAN 1]’ OR [NAMA KOLOM] = ‘[PENCARIAN 2]’;


3 . Command BETWEEN
BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi. Pada BETWEEN menggunakan operator pembanding seperti pada tabel berikut;

Logika operator BETWEEN sebagai berikut :
-  Nilai a dalam formula "a BETWEEN x AND y" identic dengan "a >= x AND a <= y"
- "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. Command LIKE
LIKE digunakan ketika kita ingin mencari sebuah data yang hanya diwakili oleh salah satu atau lebuh hurufnya saja. Misalkan kita ingin mencari nama yang huruf awalnya R, maka kita harus menggunakan LIKE.


Berikut Struktur SQL untuk pencarian menggunakan LIKE :
    SELECT * FROM [Nama Tabel] WHERE [Nama Kolom] LIKE '[Operator]';   

5, Command 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 SQL untuk DISTINCT
    SELECT DISTINCT [Nama Kolom] FROM [Nama Tabel];

6. Command 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 SQL untuk LIMIT
    SELECT * FROM [Nama Tabel] ORDER BY [Nama Kolom] LIMIT 2;

7. 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 “~”. BerikutBerikut struktur SQL untuk pencarian data menggunakan REGEXP :
  

select * from nama_tabel where nama_kolom ~ ‘operator_regexp dan
patern’;




8. Command UNION, EXCEPT dan INTERSECT
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 (MySQL dan PostgreSQL sama) :
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 (PostgreSQL) :
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 (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 dan Tugas Rumah


1.    Hasil Praktikum PostgreSQL
a.    Kita tambahkan terlebih dahulu data fakultas SAINTEK dalam tabel fakultas yang telah dibuat pada praktikum sebelumnya “INSERT INTO fakultas VALUES (1, ‘SAINTEK’);”. Coba tampilkan tabel fakultas “SELECT * FROM fakultas;”.

b.    Tambahkan field yang bernama ‘gender’ pada tabel mahasiswa yang telah dibuat pada praktikum sebelumnya “ALTER TABLE mahasiswa ADD COLUMN “gender” varchar(1);”, serta isi datanya sesuai pada keterangan dari field lainnya “UPDATE mahasiswa SET gender=’L’ WHERE nama_mah=’luki’;”. Lalu tampilkan isi tabel mahasiswa “SELECT * FROM mahasiswa;”.


c.    Kemudian insert data mahasiswa sampai 7 baris. Contoh salah satu querynya: “INSERT INTO mahasiswa VALUES (1, ‘wana’, ‘malang’, ‘088976567876’, 1, ‘P’);”. Strukturnya “INSERT INTO nama_tabel VALUES (nim_mah, ‘nama_mah’, ‘alamat_mah’, ‘no_telp’, id_fak, ‘gender’);”. Tampilkan tabel mahasiswa jika ingin mengeceknya.

d.    Kemudian tampilkan data mahasiswa seluruhnya, namun dengan merubah label pada field nim_mah menjadi nomor_identitas, nama_mah menjadi nama, alamat_mah menjadi alamat, nama_fak menjadi nama_fakultas. Namun tanpa harus merubah nama field secara permanen. “SELECT nim_mah as nomor_identitas, nama_mah as nama, alamat_mah as alamat, id_fak as id_fakultas, gender FROM mahasiswa;”.

e.    Tampilkan data mahasiswa yang berjenis kelamin laki-laki. “SELECT * FROM mahasiswa WHERE gender=’L’;”.

f.    Tampilkan data mahasiswa yang ebrjenis kelamin laki-laki atau mahasiswa fakultas saintek. “SELECT * FROM mahasiswa WHERE gender=’L’ OR id_fak=1;”.

g.    Pada tabel mahasiswa terdapat 7 baris, tampilkan yang bernomor 3-5 saja menggunakan BETWEEN. “SELECT * FROM mahasiswa WHERE nim_mah BETWEEN 3 and 5;”.

h.    Setelah itu kita tampilkan yang bukan nomor 3-5 menggunakan BETWEEN. “SELECT * FROM mahasiswa WHERE nim_mah NOT BETWEEN 3 and 5;”.

i.    Lalu tampilkan yang bukan nomor 3-5 tanpa menggunakan BETWEEN. “SELECT * FROM mahasiswa WHERE NOT (nim_mah >= 3 and nim_mah <= 5);”.

j.    Tampilkan data mahasiswa yang bernomor 2,3,5 dengan menggunakan IN. “SELECT * FROM mahasiswa WHERE nim_mah in (2,3,5);”.

k.    Tampilkan data seluruh mahasiswa yang mempunyai nama huruf awalan a. “SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘a%’;”.

l.    Tampilka seluruh data mahasiswa yang mempunyai nama huruf akhiran a dan huruf ketiga n. “SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘__n%a’;”.

m.    Tampilkan nomor fakultas di tabel mahasiswa dengan syarat nomor tidak ada yang sama. “SELECT DISTINCT id_fak as nomor_fakultas FROM mahasiswa;”.

n.    Tampilkan data mahasiswa 3 barus saja. “SELECT * FROM mahasiswa LIMIT 3;”.

o.    Tampilkan data mahasiswa dengan ciri-ciri nama huruf awal a, dan huruf selanjutnya bole  r atau t atau d. “SELECT * FROM mahasiswa WHERE nama_mah ~ ‘a[rtd]’; “. Hasilnya akan kosong, karena di tabel yang kita buat tidak ada mahasiswa yang memenuhi kriteria.

p.    Coba masukkan insert data mahasiswa yang sesuai ciri-ciri kriteria di atas. “INSERT INTO mahasiswa VALUES (7, ‘ari’, ‘boyolali’, ‘099667555678’, 2, ‘L’);”. Kemudian tampilkan sesuai query di atas “SELECT * FROM mahasiswa WHERE nama_mah ~ ‘a[rtd]’;”.

q.    Kita buat dua tabel yang bernama organ dalam dan organ luar. “CREATE TABLE organ_dalam (nomor integer not null, nama varchar(20));” untuk organ dalam, untuk organ luar “CREATE TABLE organ_luar (nomor integer not null, nama varchar(20));”.

r.    Insert datanya sesuai yang ditentukan, contohnya “INSERT INTO organ_dalam VALUES (1, ‘jantung’);”. Strukturnya “INSERT INTO nama_tabel VALUES (nomor, ‘nama’);”. Kemudian coba tampilkan kedua isi tabel.

s.    Lalu kita lakukan perintah UNION “SELECT * FROM organ_dalam UNION SELECT * FROM organ_luar;”. EXCEPT “SELECT * FROM organ_dalam EXCEPT SELECT * FROM organ_luar;”. INTERSECT “SELECT * FROM organ_dalam INTERSECT SELECT * FROM organ_luar;”.


2.    Hasil Praktikum MySQL
a.    Tambahkan field yang bernama ‘gender’ pada tabel mahasiswa yang telah dibuat pada praktikum sebelumnya “ALTER TABLE mahasiswa ADD COLUMN gender varchar(1);”, serta isi datanya sesuai pada keterangan dari field lainnya “UPDATE mahasiswa SET gender=’L’ WHERE nim_mah=14;”.

b.    Kemudian insert data mahasiswa sampai 7 baris. Contoh salah satu querynya: “INSERT INTO mahasiswa VALUES (1, ‘wana’, ‘malang’, ‘085677886545, 1, ‘P’);”. Strukturnya “INSERT INTO nama_tabel VALUES (nim_mah, ‘nama_mah’, ‘alamat_mah’, ‘no_telp’, id_fak, ‘gender’);”. Tampilkan tabel mahasiswa jika ingin mengeceknya.

c.    Kemudian tampilkan data mahasiswa, namun dengan merubah label pada field nim_mah menjadi nomor_identitas, nama_mah menjadi nama, , nama_fak menjadi nama_fakultas. Namun tanpa harus merubah nama field secara permanen. “SELECT nim_mah as nomor_identitas, nama_mah as nama, nama_fak as nama_fakultas FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak;”.

d.    Tampilkan data mahasiswa yang berjenis kelamin laki-laki. “SELECT * FROM mahasiswa WHERE gender=’L’;”.

e.    Tampilkan data mahasiswa yang ebrjenis kelamin laki-laki atau mahasiswa fakultas saintek. “SELECT * FROM mahasiswa WHERE gender=’L’ OR id_fak=1;”.

f.    Pada tabel mahasiswa terdapat 7 baris, tampilkan yang bernomor 3-5 saja menggunakan BETWEEN. “SELECT * FROM mahasiswa WHERE nim_mah BETWEEN 3 and 5;”. Setelah itu kita tampilkan yang bukan nomor 3-5 menggunakan BETWEEN. “SELECT * FROM mahasiswa WHERE nim_mah NOT BETWEEN 3 and 5;”. Lalu tampilkan yang bukan nomor 3-5 tanpa menggunakan BETWEEN. “SELECT * FROM mahasiswa WHERE NOT (nim_mah >= 3 and nim_mah <= 5);”.

g.    Tampilkan data mahasiswa yang bernomor 2,3,5 dengan menggunakan IN. “SELECT * FROM mahasiswa WHERE nim_mah in (2,3,5);”.

h.    Tampilkan data seluruh mahasiswa yang mempunyai nama huruf awalan a. “SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘a%’;”.

i.    Tampilka seluruh data mahasiswa yang mempunyai nama huruf akhiran a dan huruf ketiga n. “SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘__n%a’;”.

j.    Tampilkan nomor fakultas di tabel mahasiswa dengan syarat nomor tidak ada yang sama. “SELECT DISTINCT id_fak as nomor_fakultas FROM mahasiswa;”.
k.    Tampilkan data mahasiswa 3 barus saja. “SELECT * FROM mahasiswa LIMIT 3;”.

l.    Tampilkan data mahasiswa dengan ciri-ciri nama huruf awal a, dan huruf selanjutnya bole  r atau t atau d. “SELECT * FROM mahasiswa WHERE nama_mah REGEXP ‘a[rtd]’; “. Hasilnya akan kosong, karena di tabel yang kita buat tidak ada mahasiswa yang memenuhi kriteria.

m.    Coba manipulasi querynya agar sesuai dengan sata yang ada di tabel mahasiswa “SELECT * FROM mahasiswa WHERE nama_mah REGEXP ‘t[etd]’;”.

n.    Kita buat dua tabel yang bernama organ dalam dan organ luar. “CREATE TABLE organ_dalam (nomor integer not null, nama varchar(20));” untuk organ dalam, untuk organ luar “CREATE TABLE organ_luar (nomor integer not null, nama varchar(20));”.

o.    Insert datanya sesuai yang ditentukan, contohnya “INSERT INTO organ_dalam VALUES (1, ‘jantung’);”. Strukturnya “INSERT INTO nama_tabel VALUES (nomor, ‘nama’);”. Kemudian coba tampilkan kedua isi tabel.

p.    Lalu kita lakukan perintah UNION “SELECT * FROM organ_dalam UNION SELECT * FROM organ_luar;”.

q.    Kemudian untuk EXCEPT dan INTERSECT kita buat dua buah tabel lagi tapi hanya satu field/ kolom saja. “CREATE TABLE organ_dalam2 (nama varchar(15));” untuk organ dalam, untuk organ luar “CREATE TABLE organ_luar2 (nama varchar(15));”. Lalu insert kan data yang sama seperti tabel organ dalam dan luar sebelumnya.

r.    Untuk INTERSECT “SELECT * FROM organ_dalam2 WHERE nama IN (SELECT * FROM organ_luar2);”. Untuk EXCEPT “SELECT * FROM organ_dalam2 WHERE nama NOT IN (SELECT * FROM organ_luar2);”.

C.    Evaluasi Perbandingan DBMS PostgreSQL dan MySQL (Tugas Rumah)
Dalam praktikum BAB kali ini kebanyakan semua perintahnya sama, hanya saja ada perbedaan dalam bagian Regular Expression (REGEXP), dalam PostgreSQL menggunakan simbol (~), sedangkan dalam MySQL menggunakan (REGEXP).
Kemudian perbedaan dalam bagian INTERSECT dan EXCEPT. Pada PostgreSQL tetap mengguanakn kata INTERSECT dan EXCEPT saat menjalankan operasinya, sedangkan dalam MySQL kedua menggunakan IN untuk INTERSECT dan NOT IN untuk EXCEPT. Dalam PostgreSQL boleh berapaun kolomnya, namun dalam MySQL harus hanya ada 1 kolom.
MySQL lebih nyaman saat digunakan, apalagi saat menampilkan atau melakukan pencari, MySQL tidak ada efeknya ketika menggunakan huruf besar atau kecil, namun untuk PostgreSQL harus sesuai besar kecilnya.

D.    Kesimpulan, Kritik, Saran, dan Manfaat
Bab kali ini membahas tentang pengenalan operator dasar. Terdapat beebrapa perbedaan antara hasil praktikum yang dilakukan di PostgreSQL dan MySQL. Seperti pada perintah EXCEPT dan INTERSECT. Dalam praktikum kali ini hanya dilakukan dalam satu tabel saja kebanyakan, kalau bisa praktik yang dilakukan dapat dengan dua tabel atau lebih agar lebih menantang. Manfaat bagi pembaca semoga dapat mempermudah dan memperluas wawasannya tentang pengenalan operator dasar SQL, utamanya untuk PostgreSQL dan MySQL.

E.    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.

0 komentar:

Posting Komentar