Selasa, 14 Oktober 2014

Laporan Desain Basis Data 4 : Pengenalan Operator Dasar


A. Landasan Teori

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

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

#BETWEEN     BETWEEN  digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi.  Pada  BETWEEN  menggunakan  operator pembanding seperti pada tabel berikut :


#IN dan NOT IN    Operator IN berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai.

#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 : 


#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 : 




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

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

#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. EXCEPT digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan. Perintah INTERSECT  hanya akan menampilkan seluruh isi dari data yang memiliki kesaman diantara hasil kedua query tersebut.

 



B. Hasil Praktikum
     
    Di bawah ini adalah soal praktikum yang akan di jelaskan pada laporan praktikum keempat ini

Persiapan praktek : Gunakan tabel mahasiswa dan fakultas pada pertemuan ketiga.  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 


1. Menggunakan PostgreSQL

     Langkah awal telah saya jelaskan pada laporan pertama, bagaimana masuk hingga membuat tabel pada PostgreSQL. Jika sudah paham, kita lanjutkan untuk mengerjakan laporan keempat ini. Pertama yang kita gunakan adalah tabel mahasiswa dan fakultas (*praktikum ketiga) lalu tambahkan terlebih dahulu data-data nomor dan nama fakultas dalam tabel fakultas menggunakan perintah query
INSERT INTO fakultas VALUES (1, ‘saintek’),(3, ‘ekonomi’),(4, ‘humaniora’);

Selanjutnya tambahkan field yang bernama gender_mah pada tabel mahasiswa menggunakan perintah query
ALTER TABLE mahasiswa ADD COLUMN “gender_mah” varchar(1);

isi data sesuai pada keterangan dari field menggunakan perintah query
UPDATE mahasiswa SET gender_mah=’L’ WHERE nama_mah=’luki’;

Kemudian insert data mahasiswa sampai 7 baris menggunakan perintah query INSERT INTO mahasiswa VALUES (12,‘sarah’,‘bali’,‘0878866654’,4,‘P’), (13,‘hakim’,‘malang’,‘0897888373’,1,‘L’), ... ;

*nilai fields bisa di insertkan satu persatu, namun jika dirasa terlalu lama bisa dijadikan satu query dengan memberi tanda koma(,)

Lalu tampilkan isi tabel mahasiswa 
SELECT * FROM mahasiswa;


**pada langkah diatas tidak ada keterangan foto seperti sebelumnya karena pada waktu pengerjaan saya menyelesaikan sampai selesai yang ternyata query sebelumnya hanya sebagian yang terlihat pada halaman PostgreSQL Shell.


Kemudian tampilkan data mahasiswa seluruhnya. rubah label pada field mahasiswa tanpa harus merubah nama field secara permanen menggunakan perintah query  
SELECT nim_mah AS nomor_identitas, nama_mah AS nama, alamat_mah AS alamat, id_fak AS nama_fakultas FROM mahasiswa;

Perintah selanjutnya mampilkan data mahasiswa yang berjenis kelamin laki-laki menggunakan perintah query  
 SELECT * FROM mahasiswa WHERE gender_mah=’L’;


Selanjutnya tampilkan data mahasiswa yang berjenis kelamin laki-laki atau mahasiswa fakultas saintek menggunakan perintah query  
SELECT * FROM mahasiswa WHERE gender_mah=’L’ OR id_fak=1;

Pada tabel mahasiswa terdapat 7 baris, tampilkan yang bernomor 3-5 saja menggunakan BETWEEN menggunakan perintah query  
SELECT * FROM mahasiswa WHERE nim_mah BETWEEN 13 and 15;


Setelah itu tampilkan yang bukan nomor 3-5 menggunakan BETWEEN.
 SELECT * FROM mahasiswa WHERE nim_mah NOT BETWEEN 13 and 15;


Lalu tampilkan yang bukan nomor 3-5 tanpa menggunakan perintah BETWEEN menggunakan perintah query 
SELECT * FROM mahasiswa WHERE nim_mah <'13' OR nim_mah>'15';


Kemudian tampilkan data mahasiswa yang bernomor 2,3,5 dengan menggunakan perintah IN. 
SELECT * FROM mahasiswa WHERE nim_mah in (12,13,15);


Lalu tampilkan data seluruh mahasiswa yang mempunyai nama huruf awalan a menggunakan perintah query  
SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘a%’;


Tampilka seluruh data mahasiswa yang mempunyai nama huruf akhiran a dan huruf ketiga n menggunakan perintah query  
  SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘%a’;
 SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘__%n’;


Selanjutnya tampilkan nomor fakultas di tabel mahasiswa dengan syarat nomor tidak ada yang sama menggunakan perintah query
SELECT DISTINCT id_fak FROM mahasiswa;


Tampilkan data mahasiswa 3 menggunakan perintah query
SELECT * FROM mahasiswa LIMIT 3;


Kemudian tampilkan data mahasiswa dengan ciri-ciri nama huruf awal a, dan huruf selanjutnya bole  r atau t atau d, sedangkan di sini saya menggunakan huruf lain agar hasil tidak kosong dengan menggunakan perintah query
SELECT * FROM mahasiswa WHERE nama_mah ~ ‘s[ar]’;


*Hasilnya akan kosong jika tidak memenuhi kriteria.

Kemudian buatlah dua tabel yang bernama organ dalam dan organ luar dengan menggunakan perintah query 
CREATE TABLE organ_dalam (nomor integer not null, nama varchar(27));


CREATE TABLE organ_luar (nomor integer not null, nama varchar(27));



Lalu masukkan datanya sesuai yang ditentukan dengan menggunakan perintah query
INSERT INTO organ_dalam VALUES (1, ‘jantung’), ... ;


INSERT INTO organ_dalam VALUES (1, ‘jantung’), ... ;


Langkah terakhir kita lakukan perintah UNION, EXCEPT dan INTERSECT menggunakan perintah query
SELECT * FROM organ_dalam UNION SELECT * FROM organ_luar;
SELECT * FROM organ_dalam EXCEPT SELECT * FROM organ_luar;
SELECT * FROM organ_dalam INTERSECT SELECT * FROM organ_luar;



2. Menggunakan MySQL
Sebelumnya, koneksikan dulu pada database yang ingin digunakan. Lalu tambahkan field yang bernama gender_mah pada tabel mahasiswa yang telah dibuat pada praktikum sebelumnya  menggunakan perintah query
ALTER TABLE mahasiswa ADD COLUMN gender_mah varchar(1);


serta isi datanya sesuai pada keterangan dari field lainnya 
UPDATE mahasiswa SET gender=’L’ WHERE nim_mah=14;


Kemudian insert data mahasiswa sampai 7 baris menggunakan perintah query
INSERT INTO mahasiswa VALUES (11,‘shinta’,‘makasar’, ‘08566321000,3,‘P’),(12,‘fiersa’,‘bandung’,‘08199456003,4,‘L’), ... ;


Lalu tampilkan isi tabel mahasiswa dengan menggunakan perintah query
SELECT * FROM mahasiswa;


Kemudian tampilkan data mahasiswa seluruhnya. rubah label pada field mahasiswa tanpa harus merubah nama field secara permanen menggunakan perintah query  
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;


Tampilkan data mahasiswa yang berjenis kelamin laki-laki dengan menggunakan perintah query
SELECT * FROM mahasiswa WHERE gender=’L’;


Tampilkan data mahasiswa yang berjenis kelamin laki-laki atau mahasiswa fakultas saintek dengan menggunakan perintah query
SELECT * FROM mahasiswa WHERE gender=’L’ OR id_fak=1;



Tampilkan data mahasiswa yang bernomor 2,3,5 dengan menggunakan IN dengan perintah query
SELECT * FROM mahasiswa WHERE nim_mah in (12,13,15);


Pada tabel mahasiswa terdapat 7 baris, tampilkan yang bernomor 3-5 saja menggunakan BETWEEN dengan perintah query
SELECT * FROM mahasiswa WHERE nim_mah BETWEEN 13 and 15;



Setelah itu kita tampilkan yang bukan nomor 3-5 menggunakan BETWEEN
dengan perintah query
SELECT * FROM mahasiswa WHERE nim_mah NOT BETWEEN 13 and 15;



Lalu tampilkan yang bukan nomor 3-5 tanpa menggunakan BETWEEN dengan perintah query
SELECT * FROM mahasiswa WHERE NOT nim_mah >= 13 and nim_mah <= 15;


Tampilkan data seluruh mahasiswa yang mempunyai nama huruf awalan a menggunakan perintah query
SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘a%’;

*Tertulis Empty set , yang berarti hasilnya akan kosong karena tidak ada yang cocok.

Tampilkan seluruh data mahasiswa yang mempunyai nama huruf akhiran a dan huruf ketiga n menggunakan perintah query
SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘__n%a’;


Tampilkan nomor fakultas di tabel mahasiswa dengan syarat nomor tidak ada yang sama dengan menggunakan perintah query
SELECT DISTINCT id_fak as nomor_fakultas FROM mahasiswa;


Tampilkan data mahasiswa 3 menggunakan perintah query
SELECT * FROM mahasiswa LIMIT 3;


Tampilkan data mahasiswa dengan ciri-ciri nama huruf awal a, dan huruf selanjutnya boleh  r atau t atau d, akan tetapi pada data mahasiswa yang dibuat tidak ada maka saya menggunakan awalan huruf b dengan perintah query
SELECT * FROM mahasiswa WHERE nama_mah REGEXP ‘b[nta]’;


Kemudian buatlah dua tabel yang bernama organ dalam dan organ luar dengan menggunakan perintah query 
CREATE TABLE organ_dalam (nomor integer not null, nama varchar(27));
CREATE TABLE organ_luar (nomor integer not null, nama varchar(27));
 

Lalu masukkan data tabel organ dalam dan organ luar sesuai yang ditentukan dengan menggunakan perintah query
INSERT INTO organ_dalam VALUES (1, ‘jantung’), ... ;


Lalu kita lakukan perintah UNION dengan menggunakan perintah query
SELECT * FROM organ_dalam UNION SELECT * FROM organ_luar;


Kemudian untuk EXCEPT dan INTERSECT berbeda dengan PostgreSQL, buatlah dua buah tabel lagi tetapi hanya satu kolom saja dengan perintah query
CREATE TABLE organ_dalam2 (nama varchar(15));
CREATE TABLE organ_luar2 (nama varchar(15));


Untuk INTERSECT dan EXCEPT menggunakan perintah query 
SELECT * FROM organ_dalam2 WHERE nama IN (SELECT * FROM organ_luar2);
SELECT * FROM organ_dalam2 WHERE nama NOT IN (SELECT * FROM organ_luar2);


C. Perbandingan PostgeSQL dan MySQL

  Dari percobaan di atas bisa di lihat bahwa perbedaan query antara PostgreSQL dan MySQL terletak pada perintah EXCEPT dan INTERSECT yang menggunakan NOT dan NOT IN pada MySQL sedangkan pada PostgreSQL menggunakan perintah EXCEPT dan INTERSECT saja. Lalu perintah REGREXP pada PostgreSQL disimbolkan dengan “~” sedangkan pada MySQL menggunakan perintah REGREXP.

D. Kritik, Saran dan Manfaat

     Tentunya segala macam ilmu dan informasi baik sedikit ataupun banyak akan bermanfaat begitu juga dengan laporan praktikum keempat ini semoga bermanfaat dan menambah ilmunya para pembaca. Saran saya untuk diri sendiri dan pembaca agar selalu mencoba, mencoba dan mencoba tentu saja dengan dibarengi doa dan ikhtiar :) Semoga bermanfaat.

E. Referensi
Materi Praktikum Desain Basis Data 2013.pdf
http://blog.akakom.ac.id/detotty/dasar-dasar-sql-structured-query-language/
Unknown Web Developer

Tidak ada komentar:

Posting Komentar