Event

Event
My vacation with my friends FBI

Senin, 13 Oktober 2014

PRAKTIKUM DESAIN BASIS DATA IV PENGENALAN OPERATOR DASAR

PENGENALAN OPERATOR DASAR
A.    Landasan Teori
Dalam praktikum ini akan membahas mengenai bagaimana cara melakukan pengambilan data dari suatu tabel di dalam database. SQL adalah bahasa standar dalam basis data yang digunakan untuk melakukan manipulasi data. Standarisasi bahasa dilkukan oleh ANSI tahun 86,89,92 dan 99, dimana tiap perubahan tahun dilakukan peningkatan kemampuan SQL. Pada perkembangan saat ini standar yang paling banyak digunakan adalah standar ANSI 92. Hampir semua DBMS menggunakan SQL sebagai fasislitas memanipulasi data.
1.      Mengenal Perintah Select
Untuk mengambil dan menampilkan data dari database, maka perlu menggunakan peintah SELECT. Perintah ini merupakan perintah yang sangat penting dalam SQL. Dengan perintah SELECT, dapat mengambil baris-baris data dari suatu tabel atau lebih.
Sintaks umum penggunaan perintah SELECT adalah
select <nama kolom1>,<nama kolom2>,... from <nama tabel> where <kondisi>.
·         Group by <nama kolom untuk mengelompokan>
·         Having < kondisi pengelompokkan>
·         Order By <nama kolom untuk mengurutkan>
·         Limit <nilai untuk membatasi data>

Perintah SELECT memiliki beberapa klausa yang bersifat opsional. Ini berarti bahwa kita dapat menggunakan bagian tersebut atau tidak. Namun terlepas dari konteks digunakan atau tidaknya, urutan penempatan perintah harus sesuai dengan bentuk umum. Sebagai contoh , klusa LIMIT tidak dapat ditemptkan sebeleum klusa WHERE.
a.       Menggunakan AS atau alias
AS biasa digunakan untuk menampilkan label kolom dengan nama lain sehingga yang 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 kemudian diikuti dengan nama penggantinya.
Query dengan 1 kolom :
select  <nama kolom> as <namakolom pengganti> from <nama tabel>.
Query dengan banyak kolom :
select <nama kolom1> as <nama penggnti1>, <nama kolom2> as <nama pengganti2> ,[dst] from <nama tabel>.

b.      Menggunakan AND dan OR
Pada bagian sebelumnya kita menggunakan anak kalimat atau sintaks WHERE hanya pada konteks yang sederhana. Berikut query 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 ytabel beriku :
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

Berikut adalah struktur query And dan OR
select * from <nama tabel> where namakolom = 'pencarian1' and namakolom = 'pencarian2';
atau
select * from <nama tabel> where namakolom = 'pencarian1' or namakolom = 'pencarian2';

c.       Menggunakan BETWEEN
Untuk menampilkan data  yang berada di dalam rentang nilai tertentu, perlu menggunakan BETWEEN. . . AND dalam kondisi yang kita definisikan. Nilai rentang dapat diambil dari suatu kolom tertentu, biasanya berupa kolom yang bertipe numerik.
Berikut ini contoh penggunaan BETWEEN . . . AND;
Select * from <nama tabel>  where <nama_kolom> between 'nilai awal' and 'nilai akhir';
Query tanpa menggunakan between
Select * from <nama tabel>  where [nama_kolom] >='nilai awal' and [nama_kolom]<='nilai akhir';
Contoh penggunaan  NOT BETWEEN . . . OR;
Select * from <nama tabel>  where <nama_kolom> not between 'nilai awal' and 'nilai akhir';
Query tanpa menggunakan between
Select * from <nama tabel>  where [nama_kolom] < 'nilai awal' or [nama_kolom] > 'nilai akhir';

d.      Menggunakan Operator IN dan  NOT IN
Operator IN berguna dalam melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai. Berikut sintaks umum yang sering digunakan :
select * from <namatabel> where <nama_kolom> in (katakunci1, katakunci2, katakunci3, [dst]);

e.       Menggunakan Operator LIKE
LIKE digunakan ketika ingin mencari sebuah data yang hanya diwakili oleh salah satu atau lebih hurufnya saja. Misalkan ingin mencari nama yang huruf awlnya R, maka harus menggunakan LIKE. Berikut Contoh kasus:
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 untuk pencarian data menggunakan LIKE
select * from <nama_tabel> where <nama_kolom> like 'operator';.

f.       Menggunakan Operator REGEXP
Regular Ekspression atau REGEXP, merupakan sebuah teknik atau cara untuk mencari persamaan-persamaan string data dan memanipulasnya. Biasanya lebih sering digunakan untuk string. PostgreSQL disimbolkan dengan "~" sedangkan MYSQL "Regexp".
Berikut struktur untuk pencarian data menggunakan REGEXP :
select * from <namatabel> where <namakolom> ~'operator_regexp dan pattern';

g.      Menggunakan Operator Distinct
Jika suatu query (perintah SELECT) menghasilkan jumlah baris data yang mengandung baris-baris data yang sama, maka dapat menghilangkan duplikat dari baris-baris tersebut dengan menyertakan kata kunci DISTINCT setelah perintah SELECT.
SELECT DISTINCT <. . .>

h.      Menggunakan Operator LIMIT
MySQL mendukung klausa LIMIT di dalam penggunaan perintah SELECT, yang akan meminta server MySQL untuk mengembalikan sejumlah data yang diinginkan saja. Dengan kata lain, jumlah baris data yang ditampilkan dapat dibatasi sesuai kebutuhan.
Dalam penggunaannya. LIMIT dapat memiliki satu atau dua buah argumen:
·         LIMIT  <jumlah data>
·         LIMIT <jumlah data yang diabaikan>,<jumlah data>
Perlu diperhatikan bahwa argumen yang digunakan dalam LIMIT harus berupa konstanta yang bertipe bilangan bulat (integer), tidak bisa berupa ekspresi, variabel, atau sejenisnya
select * from <nama_tabel> limit 2;
Atau
select * from< nama_tabel> offset 2; ( digunakan dalam PostgreSQL)

i.        Menggunakan Operator UNION, EXCEPT, DAN INTERSECT
Hasil dari dua buah query dapat dikombinasikan dengan menggunakan UNION, EXCEPT atau INTERSECT.
o   UNION digunakan untuk menggabungkan hasil dua buah query menjadi 1 kolom, Berikut hasil query:
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>;
o   Except digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil query kedua dan ketiga yang sama dengan hasil query kedua tidak ditampilkan. Berikut struktur query PostgreSql
select <namakolom> from <namatabel> except select <namakolom> from <namatabel>;
MySQL
select <namakolom> from <namatabel> not in select <namakolom> from <namatabel>;
o   Perintah INTERSECT hanya akan menampilkan seluruh isi dari data yang memiliki kesamaan dintara hasil kedua query tersebut. Berikut struktur query penggunaan INTERSECT :
select <nama_kolom> from <nama_tabel> except select <nama_kolom> from <nama_tabel>;
MySQL
select <nama_kolom> from <nama_tabel> in except select <nama_kolom> from <nama_tabel>;

B.     Tujuan
1)      Mahasiswa memahami operator dasar dalam standart query SQL
2)      Mahasiswa memahami cara penggunaan operator dasar dalam hal manipulasi data.

C.     Hasil Praktikum
1)      Versi PostgreSQL
Berikut ini tampilan awal psql. Tekan "Enter" jika servernya "localhost

Tekan"enter" jika muncul "database [postgres] :"
      Tekan "enter" jika nomor portnya 5432.
Tekan 'Enter' dengan mengisi username-nya 'postgres' lalu tekan enter.

Isikan password sesui dengan password saat instalasi.

koneksikan database dengan user menggunakan query "\c [nama database]". kemudian akan muncul seperti berikut ini.

Pertama kita harus menambah kolom gender pada tabel mahasiswa

kemudian update kolom gender pada tabel mahasiswa.

karena pada tabel fakultas hanya ada nama fakultas Psikologi, jadi kita harus memasukkan data nama fakultas pada tabel fakultas untuk menjawab soal di modul.

kemudian Insert data mahasiswa sebanyak 7 mahasiswa

o   Berdasarkan tabel sebelumnya yaitu pada bab 3, tampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat, nama_fakultas tanpa harus merubah nama kolom secara permanen. Menggunakan operator AS. 

o   Tampilkan nama mahasiswa fakultas Saintek yang berjenis kelamin laki-laki.  Operator AND

kemudian tampilkan nama mahasiswa fakultas saintek atau berjeni kelamin laki-laki. Operator OR

sebelum itu kita harus mengurutkan data berdasarkan nim_mah (nim mahasiswa). ASC

o   Suatu tabel mahasiswa terdapat 7 baris data mahasiwa. Tampilkan data mahasiswa dari nomor 3-5 menggunakan between.

Tampilkan data mahasiswa dari nomor 3-5 tanpa between. 

Tampilkan data mahasiswa bukan dari nomor 3-5 menggunakan between. 

Tampilkan data mahasiswa bukan dari nomor 3-5 tanpa menggunakan between 

o   Tampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN 

o   Tampilkan semua data mahasiswa yang namanya mempunyai awalan huruf "a". Operator LIKE

o   Tampilkan semua data mahasiswa yang namanya mempunyai akhiran "a" dan huruf ke-3 dari nama tersebut terdapat huruf "n". Operator LIKE 

o   Tampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir . Menggunakan operator DISTINCT. 

o   Tampilkan data mahasiswa 3 baris saja menggunakan operator LIMIT

o   Tampilkan data mahasiswa dengan ciri-ciri memilki nama awalan a kemudian kata selanjutnya boleh r atau t atau d. Misalkan yang memnuhi kriteria ciri tersebut seperti adi, atik, arif, adam dll. Operator REGEXP

o   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)      Organ_luar
Nomor
Nama
1
Hidung
2
Mata
3
Tenggorokan


kemudian insert data pada kedua tabel sesuai dengan soal pada tabel.


o   Tampilkan data tabel dengan menggunakan operator UNION 

o   Tampilkan data tabel dengan menggunakan operator EXCEPT 

o   Tampilkan data tabel dengan menggunakan operator UNION .

2)      Versi MySQL Shell
Berikut ini tampilan awal mysql. Isi dengan query mysql -u root.

koneksikan dengan database menggunakan query use [nama database];

Pertama kita harus menambah kolom gender pada tabel mahasiswa

kemudian update kolom gender pada tabel mahasiswa.

karena pada tabel fakultas hanya ada nama fakultas Psikologi, jadi kita harus memasukkan data nama fakultas pada tabel fakultas.

kemudian Insert data mahasiswa sebanyak 7 mahasiswa

o   Berdasarkan tabel sebelumnya yaitu pada bab 3, tampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat, nama_fakultas tanpa harus merubah nama kolom secara permanen. Menggunakan operator AS. 

o   Tampilkan nama mahasiswa fakultas Saintek yang berjenis kelamin laki-laki. Operator AND 

kemudian tampilkan nama mahasiswa fakultas saintek atau berjeni kelamin laki-laki. Operator OR 

sebelum itu kita harus mengurutkan data berdasarkan nim_mah (nim mahasiswa).

o   Suatu tabel mahasiswa terdapat 7 baris data mahasiwa. Tampilkan data mahasiswa dari nomor 3-5 menggunakan between.

Tampilkan data mahasiswa dari nomor 3-5 tanpa between. 

Tampilkan data mahasiswa bukan dari nomor 3-5 menggunakan between. 

Tampilkan data mahasiswa bukan dari nomor 3-5 tanpa menggunakan between 

o   Tampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN 

o   Tampilkan semua data mahasiswa yang namanya mempunyai awalan huruf "a". Operator LIKE 

o   Tampilkan semua data mahasiswa yang namanya mempunyai akhiran "a" dan huruf ke-3 dari nama tersebut terdapat huruf "n". Operator LIKE 

o   Tampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir . Menggunakan operator DISTINCT. 

o   Tampilkan data mahasiswa 3 baris saja menggunakan operator LIMIT

o   Tampilkan data mahasiswa dengan ciri-ciri memilki nama awalan a kemudian kata selanjutnya boleh r atau t atau d. Misalkan yang memnuhi kriteria ciri tersebut seperti adi, atik, arif, adam dll. Operator REGEXP

o   Buatlah tabel dengan nama organ_dalam dan organ_luar sebagai berikut :
                                                                                                        i.            Tabel organ_dalam
Nomor
Nama
1
Jantung
2
Paru-paru
3
Tenggorokan

                                                                                                      ii.            Organ_luar
Nomor
Nama
1
Hidung
2
Mata
3
Tenggorokan


kemudian insert data pada kedua tabel sesuai dengan soal pada tabel.


o   Tampilkan data tabel dengan menggunakan operator UNION 

o   Tampilkan data tabel dengan menggunakan operator EXCEPT 

o   Tampilkan data tabel dengan menggunakan operator UNION .


D.    Tugas Rumah
Evaluasi DBMS MySQL dan DBMS PostgreSQL
                                i.            Perbedaan
Dalam praktikum tentang penegnalan operator dasar hanya terjadi beberapa perbedaan pada penulisan query. Misalkan
·         Menampilkan data dari tabel mahasiswa yang nama mahasiswa huruf akhirnya "a" dan huruf ke-3 "n"
MySQL : select * from mahasiswa where nama_mah regexp 'a[rtd]';
PostgreSQL : select * from mahasiswa where nama_mah ~'a[rtd]';
·         Menampilkan data dengan operator INTERSECT
MySQL : select * from organ_dalam in select * from organ_luar;
PostgreSQL : select * from organ_dalam intersect select * from organ_luar;
·         Menampilkan data dengan operator EXCEPT
MySQL : select * from organ_dalam not in select * from organ_luar;
PostgreSQL : select * from organ_dalam except select * from organ_luar;
                              ii.            Persamaan
Dari tugas praktikum 1-10 terjadi banyak persamaan, hanya berbeda pada REGEXP, EXCEPT dan INTERSECT
                            iii.            Kelebihan
Dari praktikum 1-10 dapat dimabil manfaatnya karena dapat memanipulasi data secara lebih detail dan rinci. Mencari data dalam database jadi lebih mudah dengan menggunakan banyak operator yang sangat bermanfaat dan cepat. Hal ini dapat menghemat waktu .
                            iv.            Kekurangan
Sintaks  soal praktikum 1-10 lebih sulit karena telah mengalami perkembangan.  Bahasa query nya lebih sulit dan kebanyakan  memiliki kesamaan dengan query MySQl, ini menyebabkan pengguna mengalami kebingungan

E.     Evaluasi Perbandingan PostgreSQL dan MySQL Shell
Berdasarkan query-querynya :
Instruksi
PostgreSQL
MySQL
Operator AS
select  <nama kolom> as <namakolom pengganti> from <nama tabel>.

select  <nama kolom> as <namakolom pengganti> from <nama tabel>.

Operator AND
select * from <nama tabel> where namakolom = 'pencarian1' and namakolom = 'pencarian2';

select * from <nama tabel> where namakolom = 'pencarian1' and namakolom = 'pencarian2';

Operator OR
select * from <nama tabel> where namakolom = 'pencarian1' or namakolom = 'pencarian2';

select * from <nama tabel> where namakolom = 'pencarian1' or namakolom = 'pencarian2';

Between .  . . AND
Select * from <nama tabel>  where <nama_kolom> between 'nilai awal' and 'nilai akhir';

Select * from <nama tabel>  where <nama_kolom> between 'nilai awal' and 'nilai akhir';

Tanpa between (AND)
Select * from <nama tabel>  where [nama_kolom] >='nilai awal' and [nama_kolom] <='nilai akhir';

Select * from <nama tabel>  where [nama_kolom] >='nilai awal' and [nama_kolom] <='nilai akhir';

Not Between
Select * from <nama tabel>  where <nama_kolom> not between 'nilai awal' and 'nilai akhir';

Select * from <nama tabel>  where <nama_kolom> not between 'nilai awal' and 'nilai akhir';

Tanpa between (OR)
Select * from <nama tabel>  where [nama_kolom] < 'nilai awal' or [nama_kolom] > 'nilai akhir';

Select * from <nama tabel>  where [nama_kolom] < 'nilai awal' or [nama_kolom] > 'nilai akhir';

Operator IN
select * from <namatabel> where <nama_kolom> in (katakunci1, katakunci2, katakunci3, [dst]);

select * from <namatabel> where <nama_kolom> in (katakunci1, katakunci2, katakunci3, [dst]);

Operator NOT IN
select * from <namatabel> where <nama_kolom>  not in (katakunci1, katakunci2, katakunci3, [dst]);

select * from <namatabel> where <nama_kolom>  not in (katakunci1, katakunci2, katakunci3, [dst]);

Operator LIKE
select * from <nama_tabel> where <nama_kolom> like 'operator';

select * from <nama_tabel> where <nama_kolom> like 'operator';

Operator REGEXP
select * from <namatabel> where <namakolom> ~'operator_regexp dan pattern';

select * from <namatabel> where <namakolom>  regexp 'operator_regexp dan pattern';

Operator DISTINCT
Select distinct <namakolom> from <namatabel>
Select distinct <namakolom> from <namatabel>
Operator LIMIT
select * from <nama_tabel> limit 2;

select * from <nama_tabel> limit 2;

Operator OFFSET
select * from< nama_tabel> offset 2;
-
Operator UNION
select <nama_kolom> from <nama_tabel> union select <nama_kolom> from <nama_tabel>;

select <nama_kolom> from <nama_tabel> union select <nama_kolom> from <nama_tabel>;

Operator INTERSECT
select <nama_kolom> from <nama_tabel> intersect select <nama_kolom> from <nama_tabel>;

select <nama_kolom> from <nama_tabel> in select <nama_kolom> from <nama_tabel>;

Operator EXCEPT
select <nama_kolom> from <nama_tabel> except select <nama_kolom> from <nama_tabel>;

select <nama_kolom> from <nama_tabel> not in select <nama_kolom> from <nama_tabel>;

Koneksi database
\c [nama database]
Use [nama database]
Melihat Struktur tabel
Desc [nama tabel]
\d [nama tabel]
Memasukkan data pd tabel
Insert into <nama tabel> values (kolom1,kolom2 dst)
Insert into <nama tabel> values (kolom1,kolom2 dst)

F.      Kesimpulan
Dapat disimpulkan dari praktikum  tentang pengenalan operator dasar, kita terlebih dahulu harus mengenal perintah SELECT artinya perintah  yang digunakan untuk mengambil dan menampilkan data dari database, maka perlu menggunakan peintah SELECT. Perintah ini merupakan perintah yang sangat penting dalam SQL. Dengan perintah SELECT, dapat mengambil baris-baris data dari suatu tabel atau lebih. Perintah select tersebut terdiri dari beberapa operator dasar. Antara lain AS yang digunakan sebagai untuk menampilkan label kolom dengan nama lain sehingga yang muncul dalam hasil query bukan nama asli kolom, tetapi nama yang  mungkin lebih sesuai dan mudah dimengerti . Yang kedua AND dan OR yang digunakan untuk mencari data dalam tabel . Ketiga between yakni untuk menampilkan rentang data dalam nilai tertentu. Keempat yakni  IN dan NOT IN artinya menampilkan data ada dan tidaknya dalam tabel. Kelima yakni LIKE yang digunakan dalam mencari data dengan kondisi satu huruf saja. Keenam REGEXP yang merupakan sebuah teknik atau cara untuk mencari persamaan-persamaan string data dan memanipulasnya. Ketujuh Distinct yaitu untuk menampilkan agar tidak ada pendoubelan data, Limit, Unio, Intersect dan except.
Kritik
Dalam praktiku kali ini belum ada kritik yang harus disampaikan
Saran
Tugas rumah yang sama dengan perbandingan  dalam laporan menyebabkan praktikan bingung.

G.    Daftar Pustaka
  1. Raharjo, Budi.Belajar Otodidak Membuat Database menggunakan MySQL.Informatika : Bandung.2011.
  2. Horn,John W. & Grey, Michael.MySQL : Essential Skills.McGraw : Osborne.2004.
  3. http://www.duniailkom.com/tutorial-belajar-mysql-pencarian-data-dari-tabel-mysql-select-like/
  4. http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html
  5. https://www.scribd.com/doc/98258075/Fungsi-Union-Intersect-Dan-Except-Dbname-Angka
  6. http://gunchan.blogspot.com/2012/06/union-intersect-except.html





Tidak ada komentar:

Posting Komentar

© Copyright 2010 My Esperienza Blog
Welcome to My Esperienza Blog