18 Oktober 2014



Assalamu’alaikum,, kali ini saya akan membahas tentang Agregasi Sql dan View. Apa itu agregasi? Apa itu View? Mari kita bahas.
         A.  Dasar Teori
1.      Agregasi  SQL
Agregasi dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau kombinasi kolom yang dipilih.
Untuk mendapatkan fungsi agregat, kita harus menggunakan aggregate operator atau fungsi agregat.  Berikut ini adalah beberapa fungsi atau operator untuk agregasi.
a.       MAX(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai terbesar dari suatu atribut hasil query.
b.      MIN(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai terkecil dari suatu atribut hasil query.
c.       COUNT(*) : fungsi ini digunakan untuk mendapatkan nilai banyaknya record dari query.
d.      SUM(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai total suatu atribut bertipekan numeric dari query.
e.       AVG(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu atribut bertipe numeric hasil query.
Bentuk query untuk menggunakan agregat operator ini adalah select [operator agregat] from [nama_tabel];
2.      Group By
Group By merupakan fungsi yang digunakan untuk melakukan pengelompokan dari perintah SELECT. Group by seringkali diperlukan untuk menjalankan agregate menjadi sebuah kelompok dari hasil Query. Berikut struktur SQL untuk penampilan data :
select [nama_kolom] from [nama_tabel] group by [nama_kolom];
3.      Having
Pemakaian HAVING terkait dengan GROUP BY, kegunaanya adalah untuk menentukan kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan di hasilkan. Berikut Struktur yang digunakan :
select [nama_kolom] from [nama_tabel] group by [nama_kolom] having [kondidsi];
4.      Case
Kata WHERE menggunakan perbandingan untuk mengontrol pemilihan data, sedangkan CASE perbandingan dalam bentuk output kolom. Jadi intinya penggunaan CASE akan membentuk output tersendiri berupa sebuah kolom baru dengan data dari operasi yang di dalamnya. Struktur di dalam select seperti berikut :
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result] END
5.      View
Views merupakan suatu tampilan tabel virtual. Views berisi perintah SELECT ke tabel dalam database. Views dapat digunakan untuk mempermudah kita dalam pembuatan laporan atau tampilan database yang diinginkan dengan cepat. Dengan kata lain, views merupakan perintah SELECT yang disimpan, sehingga setiap saat kita membutuhkannya, kita dapat langsung memanggilnya tanpa perlu mengetikkan perintah SELECT kembali.
View dibuat atau didefinisikan dengan menggunakan perintah CREATE VIEW. Bentuk umum perintah untuk membuat (mendefinisikan) view, sebagai berikut: create view nama_tabel_view as query;
Yang dimaksud query pada perintah tersebut adalah perintah select yang kita inginkan. Sedangkan untuk menampilkan view kita tinggal ketik perintah select*from [nama_view];

          B.  Hasil Praktikum
Seperti biasa, saya akan mengerjakan tugas praktikum dengan DBMS PostgreSQL dan MySQL. Dengan PostgreSQL saya menggunakan psql dan dengan MySQL saya menggunakan phpMyAdmin. Berikut ini adalah tugas praktikum saya.
1.      Dari tabel mahasiswa yang telah dibuat tambahkan 3 data lagi , tambahkan kolom gender kemudian update datanya dan tampilkan banyaknya data mahasiswa yang telah di inputkan. Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
2.      Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14.
3.      Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:
Nama Fakultas            Count(*)
Saintek                                    2
Psikologi                     1
4.      Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
5.      Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
6.      Buatlah view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

·         Menggunakan PostgreSQL (psql)
            1.   Pertama kita lihat dulu tabel mahasiswa yang telah kita buat dulu dengan select*from mahasiswa.




Seperti terlihat di atas, kolom gender sudah ada, jadi kita langsung menegerjakan soalnya. Untuk menampilkan data mahasiswa yang telah diinputkan, ketik select count(*) from mahasiswa;
Kemudian untuk menampilkan nim mahasiswa terkecil, ketik select min(nim_mah) from mahasiswa;
Untuk menampilkan nim mahasiswa dengan nim mahasiswa terbesar, ketik select max(nim_mah) from mahasiswa;
Untuk menampilkan rata-rata nim mahasiswa, ketik select avg(nim_mah) from mahasiswa;
Di bawah ini adalah screenshoot hasil querynya.
           


2.      Untuk menampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14, ketik select avg(nim_mah) from mahasiswa where nim_mah>14; seperti di bawah ini.
3.      Untuk menampilkan jumlah mahasiswa berdasarkan fakultas seperti soal, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak; seperti di bawah ini.
4.      Untuk meampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak having count(nama_fak)>=2; seperti di bawah ini.
5.      Untuk menampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan, ketik select nim_mah, nama_mah, alamat_mah, no_telp, id_fak, case when gender='L' then 'Laki-Laki' else 'Perempuan' end as gender from mahasiswa; seperti di bawah ini.
6.      Untuk membuat view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas, ketik create view data_mahasiswa as select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak; Lalu kita tampilkan dengan mengetikkan select*from data_mahasiswa; seperti di bawah ini.




·         Menggunakan MySQL (phpMyAdmin)
            1.   Pertama kita lihat dulu tabel mahasiswa yang telah kita buat dulu dengan select*from mahasiswa.
            


            Kemudian klik go dan hasilnya seperti di bawah ini.
            


Seperti terlihat di atas, kolom gender sudah ada, jadi kita langsung menegerjakan soalnya. Untuk menampilkan data mahasiswa yang telah diinputkan, ketik select count(*) from mahasiswa;
           


           Kemudian klik go dan hasilnya seperti di bawah ini.
           


Kemudian untuk menampilkan nim mahasiswa terkecil, ketik select min(nim_mah) from mahasiswa;
           


           Kemudian klik go dan hasilnya seperti di bawah ini.
           


Untuk menampilkan nim mahasiswa dengan nim mahasiswa terbesar, ketik select max(nim_mah) from mahasiswa;
           


           Kemudian klik go dan hasilnya seperti di bawah ini.
           


Untuk menampilkan rata-rata nim mahasiswa, ketik select avg(nim_mah) from mahasiswa;
          


          Kemudian klik go dan hasilnya seperti di bawah ini.
          


2.      Untuk menampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14, ketik select avg(nim_mah) from mahasiswa where nim_mah>14; seperti di bawah ini.
            Kemudian klik go dan hasilnya seperti di bawah ini.
           



3.      Untuk menampilkan jumlah mahasiswa berdasarkan fakultas seperti soal, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak; seperti di bawah ini.
          Kemudian klik go dan hasilnya seperti di bawah ini.
         



4.      Untuk meampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak having count(nama_fak)>=2; seperti di bawah ini.
          Kemudian klik go dan hasilnya seperti di bawah ini.
        



5.      Untuk menampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan, ketik select nim_mah, nama_mah, alamat_mah, no_telp, id_fak, case when gender='L' then 'Laki-Laki' else 'Perempuan' end as gender from mahasiswa; seperti di bawah ini.
      Kemudian klik go dan hasilnya seperti di bawah ini.
      


6.      Untuk membuat view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas, ketik create view data_mahasiswa as select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak; 
      
Jika sukses, akan muncul seperti di bawah ini
    



 Lalu kita tampilkan dengan mengetikkan select*from data_mahasiswa; seperti di bawah ini.
 


      Kemudian klik go dan hasilnya seperti di bawah ini.
      


          C. Tugas Rumah
Tugas rumah kali ini saya mendapatkan tugas yang sama lagi, yaitu evaluasi perbedaan kelebihan dan kemudahan dari kedua DBMS yaitu PostgreSQL dan MySQL. Namun pada praktikum kali ini memiliki banyak persamaan.
      Persamaan : Dalam praktikum kali ini, setelah saya mengerjakan nomor 1 sampai nomor 6, semua query yang dipakai sama. Alasannya, karena bahasa yang dipakai oleh kedua DBMS yaitu MySQL maupun PostgreSQL adalah bahasa SQL, yaitu suatu bahasa (language) yang digunakan untuk mengakses database yang sudah memiliki standar ISO dan ANSII ditetapkan untuk SQL. Sehingga termasuk pada praktikum kali ini, yaitu pada fungsi agregat dan fungsi view, struktur query yang dipakai untuk kedua fungsi tersebut sama. Jadi teman-teman, fungsi agregasi dan view pada DBMS PostgreSQL dan DBMS MySQL adalah sama. Sehingga lebih mudah bagi kita untuk menggunakannya pada kedua DBMS tersebut.
Apabila kita membicarakan kelebihan dan kekurangan dari DBMS tersebut, menurut saya hampir sama, selama praktikum ini. Karena seperti yang telah kita ketahui persamaan dari keduanya.
          D.   Evaluasi Perbandingan DBMS MySQL dan DBMS PostgreSQL
Pada bagian ini, saya tidak akan meng-capture satu-satu setiap nomor yang akan saya bandingkan, karena sudah terjawab di bagian tugas rumah tadi, bahwa dalam praktikum kali ini, setelah saya mengerjakan nomor 1 sampai nomor 6, semua query yang dipakai  pada fungsi agregat dan view pada kedua DBMS adalah sama. Alasannya, karena bahasa yang dipakai oleh kedua DBMS yaitu MySQL maupun PostgreSQL adalah bahasa SQL, yaitu suatu bahasa (language) yang digunakan untuk mengakses database yang sudah memiliki standar ISO dan ANSII ditetapkan untuk SQL. Sehingga termasuk pada praktikum kali ini, yaitu pada fungsi agregat dan fungsi view, struktur query yang dipakai untuk kedua fungsi tersebut sama. Jadi teman-teman, fungsi agregasi dan view pada DBMS PostgreSQL dan DBMS MySQL adalah sama. Sehingga lebih mudah bagi kita untuk menggunakannya pada kedua DBMS tersebut.
Apabila kita membicarakan kelebihan dan kekurangan dari DBMS tersebut, menurut saya hampir sama, selama praktikum ini. Karena seperti yang telah kita ketahui persamaan dari keduanya.
E.     Kesimpulan, Saran, Kritik dan Manfaat bagi Pembaca
1.      Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan bahwa Agregasi dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau kombinasi kolom yang dipilih. Fungsi agrgasi dapat digunakan menggunakan operator-operator agregasi seperti COUNT, MIN, MAX, SUM dan AVG. Kita juga dapat menggunkan fungsi Group By, Having dan Case. Sedangkan View merupakan suatu tampilan tabel virtual. Dengan kata lain, views merupakan perintah SELECT yang disimpan, sehingga setiap saat kita membutuhkannya, kita dapat langsung memanggilnya tanpa perlu mengetikkan perintah SELECT kembali.
2.      Saran
Diperlukan pembelajaran lebih lanjut mengenai agregasi dan view dalam database menggunakan PostgreSQL maupu MySQL agar praktikan dapat menguasai kedua DBMS tersebut dalam membuat database yang lebih baik.
3.      Kritik
Dalam laporan ini, masih banyak terdapat kekurangan karena terbatasnya pengetahuan saya dalam menguasai 2 DBMS yang digunakan dalam praktikum ini.        
4.      Manfaat
Manfaat yang akan didapat pembaca dalam laporan ini antara lain dapat mengetahui struktur query fungsi agregasi dan operator-operator agregasi yang digunkan  dalam database. Pembaca juga dapat mengetahui fungsi view dalam sebuah database. Pembaca juga dapat mengetahui persamaan dari kedua DBMS tersebut.

Posted on Sabtu, Oktober 18, 2014 by Baiti

No comments

12 Oktober 2014


Assalamu'alaikum, teman-teman sekarang kita akan membahas tentang operator dasar SQL. Seperti biasanya, saya akan menggunakan DBMS PostgreSQL dan MySQL, lalu kita lihat perbandingannya di akhir praktikum nanti. Oke kita mulai! 
      A.  Dasar Teori
Operator dasar pada SQL ada banyak, kali ini akan saya bahas beberapa diantarnya,
1.      Operator AS
 Operator AS digunakan untuk menampilkan nama kolom dengan nama lain, tetapi nama kolom yang asli tidak berubah. Struktur query operator AS secara umum yaitu
SELECT namakolomlama AS namakolombaru FROM namatabel;
2.      Operator AND dan OR
Operator OR digunakan untuk memilih baris yang memenuhi setidaknya satu dari kondisi yang diberikan, kita dapat menggunakan operator logis, OR. Jika ingin memilih baris yang harus memenuhi semua kondisi yang diberikan, Anda dapat menggunakan operator logis, AND. Struktur query operator AND dan OR secara umum yaitu
select * from namatabel where namakolom = ‘pencarian 1’ [operator AND atau OR] namakolom = ‘pencarian 2’;
3.      Operator BETWEEN
BETWEEN digunakan untuk menentukan lebar nilai dari nilai terendah dan nilai tertinggi. Pada BETWEEN menggunakan operator pembanding seperti >, <, >=, <=, =, <> atau !=. Bisa juga menggunakan NOT BETWEEN untuk lawan dari BETWEEN. Struktur query operator BETWEEN secara umum yaitu
select * from nama_tabel where nama_kolom between ‘nilai_awal’ and ‘nilai_akhir’;
4.      Operator IN dan NOT IN
Operator IN berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai. Bisa juga menggunakan NOT IN untuk lawan dari IN. Struktur querynya secara umum yaitu
Select * from nama_tabel where nama_kolom in (kata_kunci1, kata_kunci2);
5.      Operator LIKE
Operator ini menggunakan mode pencarian berdasarkan huruf awal atau huruf akhir atau kombinasi dari keduanya dari data yang diinginkan. Untuk tujuan ini kita menggunakan karakter wildcard '%'. Struktur querynya secara umum yaitu
select * from nama_tabel where nama_kolom like ‘operator’;
6.      Operator 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. Kalau di PostgreSQL menggunakan symbol “ ~ ”.
SELECT nama_kolom_tampil FROM nama_tabel WHERE nama_kolom_cari REGEXP keyword_reguler_expression
7.      Operator DISTINCT
Operator DISTINCT, operator ini digunakan untuk menampilkan data tanpa duplikasi data pada suatu kolom, jika terdapat duplikasi data maka yang ditampilkan hanya satu data saja. Operator ini dapat mengurangi redudansi data.
select distinct nama_kolom from nama_tabel;
8.      Operator LIMIT and OFFSET
Kegunaan operator LIMIT terletak pada pembatasan atas jumlah data yang boleh ditampilkan, contohnya kita hanya ingin menampilkan 3 data pada tbl_anggota, maka hanya 3 data terataslah yang akan ditampilkan. Apabila operator LIMIT yang membatasi jumlah data yang ditampilkan, operator ini adalah kebalikannya , dia akan menghilangkan jumlah data yang akan ditampilkan dan menampilkan sisa dari data yang dihilangkan.
select * from nama_tabel [limit atau offset] 2;
9.      UNION, EXCEPT dan INTERSECT
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.
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;
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.
SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2;
Untuk MySQL, menggunakan operator IN.
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.
SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2;
                        Untuk MySQL, menggunakan operator NOT IN.
 
      B.  Hasil Praktikum
Dalam bagian ini, saya akan menjawab soal praktikum di kelas praktikum saya di praktikum desain basis data.
Berikut ini adalah tugas praktikum saya.        
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 :
 Tabel organ_dalam 
Nomor Nama
1           Jantung
2           Paru-Paru
3           Tenggorokan
Tabel  organ_luar
Nomor  Nama
1           Hidung
2           Mata
3           Tenggorokan 
Tampilkan data dari kedua tabel tersebut menggunakan UNION, EXCEPT dan INTERSECT.
Untuk menjawab tugas di atas, kita menggunakan PostgreSQL dan MySQL.
  •    Menggunakan PostgreSQL
Pertama, kita persiapkan dulu database dan kita gunakan tabel fakultas dan tabel mahasiswa. Kita insert dulu nama-nama fakultas. Kemudian kita tambahkan kolom di tabel mahasiswa yang sudah ada, dengan alter table mahasiswa add column “gender” varchar(2); . Lalu kita update gender data mahasiswa yang sudah ada dengan update mahasiswa set gender=’L’ where nim_mah=14; seperti di bawah ini.
Kemudian kita tambahkan data mahasiswa sampai 7 baris dengan insert into mahasiswa values (15, 'ratna', 'malang', '085708345126',
1, 'P'), (16, 'binta', 'surabaya', '089765436578', 3, 'P'), (17, 'rizki', 'kedir
i', '089564321786', 1, 'L'), (18, 'hanafi', 'blitar', '087645321786', 4, 'L'), (
19, 'isfa', 'tulungagung', '085776432007', 2, 'P'), (20, 'kamil', 'tulungagung',
 '089765456832', 1, 'L'); seperti di bawah ini.
 
1.      Untuk menjawab soal nomor 1, kita gunakan operator AS yaitu 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; seperti di bawah ini.


2.      Menampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Untuk menjawabnya kita gunakan operator AND yaitu select*from mahasiswa where id_fak=1 and gender='L'; . Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki, kita gunakan operator OR yaitu select*from mahasiswa where id_fak=1 or gender='L'; seperti di bawah ini.
3.      Pada database saya ini, data 3 sampai dengan 5 adalah nim 16, 17, dan 18. Dengan between querynya select*from mahasiswa where nim_mah between 16 and 18; sedangkan tanpa menggunakan between querynya select*from mahasiswa where nim_mah>=16 and nim_mah<=18; seperti di bawah ini.
Untuk menampilkan data yang bukan 3 sampai 5, dengan menggunakan between querynya select*from mahasiswa where nim_mah not between 16 and 18; sedangkan tanpa menggunakan between select*from mahasiswa where nim_mah<16 or nim_mah>18; 
4. Untuk menampilkan data ke 2,3 dan 5, kita gunakan query select*from mahasiswa where nim_mah in (15, 16, 18); seperti di bawah ini.
5.      Untuk mencari data mahasiswa dengan nama awalan saja, saya menggunakan operator like dengan awalan I dengan query select*from mahasiswa where nama_mah like 'i%';
6.      Untuk menjawab soal nomor 6, kita bisa gunakan operator regexp dengan query select*from mahasiswa where nama_mah ~ '..n.a';

     Kita juga bisa menggunakan operator like yaitu select*from mahasiswa where nama_mah like '__n_a';
 
7.      Untuk soal nomor 7, yaitu menampilkan nomor fakultas di tabel mahasiswa agar tidak di ulang kita gunakan operator distinct yaitu select distinct id_fak from mahasiswa; seperti di bawah ini.

 
8.      Untuk soal nomor 8, yaitu menampilkan 3 data mahasiswa, kita gunakan operator limit yaitu select*from mahasiswa limit 3; seperti di bawah ini.
9.      Untuk soal nomor 9, yaitu mencari nama mahasiswa seperti yang dimaksudkan soal kita gunakan operator regexp lagi yaitu select*from mahasiswa where nama_mah ~ 'r[aiu]'; seperti di bawah ini.
10.      Untuk nomor 10, kita buat dulu tabelnya yaitu dengan create table organ_dalam (nomor integer not null, nama varchar(20)); kemudian masukkan datanya dengan insert into organ_dalam values (1, 'Jantung'), (2, 'Paru-Paru'), (3,'Tenggorokan'); Lalu kita gunakan cara yang sama untuk membuat tabel organ_luar seperti di bawah ini.

    Lalu kita gunakan operator union untuk menggabungkan data keduanya. Kita bisa menggunakan query select*from organ_dalam union select*from organ_luar; dengan satu kali perulangan data tenggorokan atau select*from organ_dalam union all select*from organ_luar; dengan data tenggorokan diulangi sua kali seperti di bawah ini.
     Untuk except atau menampilkan data yang berbeda dari kedua tabel kita gunakan query select*from organ_dalam except select*from organ_luar; lalu untuk intersect atau menampilkan irisan dari kedua tabel querynya select*from organ_dalam intersect select*from organ_luar; seperti di bawah ini.


  •          Menggunakan MySQL
Pertama, kita persiapkan dulu database dan kita gunakan tabel fakultas dan tabel mahasiswa. Kita insert dulu nama-nama fakultas. Kemudian kita tambahkan kolom di tabel mahasiswa yang sudah ada, dengan alter table mahasiswa add column “gender” varchar(2); . Lalu kita update gender data mahasiswa yang sudah ada dengan update mahasiswa set gender=’L’ where nim_mah=14; seperti di bawah ini.
 

      Kemudian kita tambahkan data mahasiswa sampai 7 baris dengan insert into mahasiswa values (15, 'ratna', 'malang', '085708345126',
1, 'P'), (16, 'binta', 'surabaya', '089765436578', 3, 'P'), (17, 'rizki', 'kedir
i', '089564321786', 1, 'L'), (18, 'hanafi', 'blitar', '087645321786', 4, 'L'), (
19, 'isfa', 'tulungagung', '085776432007', 2, 'P'), (20, 'kamil', 'tulungagung',
 '089765456832', 1, 'L'); seperti di bawah ini.
 
1.      Untuk menjawab soal nomor 1, kita gunakan operator AS yaitu 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; seperti di bawah ini.


 

2.      Menampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Untuk menjawabnya kita gunakan operator AND yaitu select*from mahasiswa where id_fak=1 and gender='L'; . Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki, kita gunakan operator OR yaitu select*from mahasiswa where id_fak=1 or gender='L'; seperti di bawah ini.
 
3.      Pada database saya ini, data 3 sampai dengan 5 adalah nim 16, 17, dan 18. Dengan between querynya select*from mahasiswa where nim_mah between 16 and 18; sedangkan tanpa menggunakan between querynya select*from mahasiswa where nim_mah>=16 and nim_mah<=18; seperti di bawah ini.
Untuk menampilkan data yang bukan 3 sampai 5, dengan menggunakan between querynya select*from mahasiswa where nim_mah not between 16 and 18; sedangkan tanpa menggunakan between select*from mahasiswa where nim_mah<16 or nim_mah>18;


4.      Untuk menampilkan data ke 2,3 dan 5, kita gunakan query select*from mahasiswa where nim_mah in (15, 16, 18); seperti di bawah ini.
5.      Untuk mencari data mahasiswa dengan nama awalan saja, saya menggunakan operator like dengan awalan I dengan query select*from mahasiswa where nama_mah like 'i%';
6.      Untuk menjawab soal nomor 6, kita bisa gunakan operator regexp dengan query select*from mahasiswa where nama_mah regexp '..n.a';

   Kita juga bisa menggunakan operator like yaitu select*from mahasiswa where nama_mah like '__n_a';



7.      Untuk soal nomor 7, yaitu menampilkan nomor fakultas di tabel mahasiswa agar tidak di ulang kita gunakan operator distinct yaitu select distinct id_fak from mahasiswa; seperti di bawah ini.


8.      Untuk soal nomor 8, yaitu menampilkan 3 data mahasiswa, kita gunakan operator limit yaitu select*from mahasiswa limit 3; seperti di bawah ini.


9.      Untuk soal nomor 9, yaitu mencari nama mahasiswa seperti yang dimaksudkan soal kita gunakan operator regexp lagi yaitu select*from mahasiswa where nama_mah regexp 'r[aiu]'; seperti di bawah ini.


10.      Untuk omor 10, kita buat dulu tabelnya yaitu dengan create table organ_dalam (nomor integer not null, nama varchar(20)); kemudian masukkan datanya dengan insert into organ_dalam values (1, 'Jantung'), (2, 'Paru-Paru'), (3,'Tenggorokan'); Lalu kita gunakan cara yang sama untuk membuat tabel organ_luar seperti di bawah ini.


       Lalu kita gunakan operator union untuk menggabungkan data keduanya. Kita bisa menggunakan query select*from organ_dalam union select*from organ_luar; dengan satu kali perulangan data tenggorokan atau select*from organ_dalam union all select*from organ_luar; dengan data tenggorokan diulangi sua kali seperti di bawah ini.

     Untuk except atau menampilkan data yang berbeda dari kedua tabel kita gunakan query select*from organ_dalam where nama not in (select nama from organ_luar); lalu untuk intersect atau menampilkan irisan dari kedua tabel querynya select*from organ_dalam where nama in (select nama from organ_luar); seperti di bawah ini.


C.    Tugas Rumah
Tugas rumah kali ini saya ditugaskan untuk menjelaskan evaluasi dari DBMS MySQL dan PostgreSQL berdasarkan tugas praktikum 1-10. (evaluasi meliputi perbedaan atau kesamaan, kelebihan atau kekurangan, tambahan dari penulis).
Dalam praktikum kali ini, postgresql dan mysql memiliki beberapa persamaan dan beberapa perbedaan dalam struktur querynya. Semua query dari nomor 1 sampai 10 sama, kecuali beberapa nomor di bawah ini.
     Pada soal nomor 6 dan nomor 9, di postgresql saya harus menggunakan symbol “~”  untuk regexp seperti di bawah ini.
sedangkan di mysql saya harus mengetikkan langsung regexp
Pada bagian ini, postgresql memiliki keunggulan yaitu memiliki query yang lebih pendek yaitu hanya dengan symbol ~.
2.      Perbedaan lain yaitu pada soal nomor 10 untuk menampilkan irisan (intersect) dari 2 tabel dan perbedaan dari 2 tabel (except).
Postgresql = except : select*from organ_dalam except select*from organ_luar;
            Intersect : select*from organ_dalam intersect select*from organ_luar;
 
MySQL = except : select*from organ_dalam where nama not in (select nama from organ_luar);
Intersect : select*from organ_dalam where nama not in (select nama from organ_luar);

Pada bagian ini, postgresql lebih unggul dan lebih mudah karena memiliki struktur query yang lebih sedikit dengan hanya mengetikkan except maupun intersect.

D.    Evaluasi Perbandingan DBMS MySQL dan DBMS PostgreSQL
Pada tugas rumah di atas sudah saya jelaskan perbandingan di antara kedua DBMS yaitu PostgreSQL dan MySQL. Kali ini akan saya bahas lagi secara singkat perbandingannya.
·         Operator Regexp
PostgreSQL : menggunakan symbol ~ .
MySQL: menggunakan peirintah regexp dengan langsung mengetiknya tanpa menggunakan symbol seperti postgreSQL.
·         Except
PostgreSQL : menggunakan perintah seperti select*from organ_dalam except select*from organ_luar;
MySQL: menggunakan perintah seperti select*from organ_dalam where nama not in (select nama from organ_luar);
·         Intersect
PostgreSQL : menggunakan perintah seperti select*from organ_dalam intersect select*from organ_luar;
MySQL: menggunakan perintah seperti select*from organ_dalam where nama not in (select nama from organ_luar);
Menurut saya, postgresql lebih mudah dan lebih unggul karena memiliki struktur query yang lebih mudah dipahami dan lebih sederhana.
E.     Kesimpulan, Saran, Kritik dan Manfaat bagi Pembaca
1.      Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan bahwa operator dasar pada SQL antara lain As, And dan Or, Between, In, Not In, Like, Limit dan Offset, Distinct, Regexp, Union, Except dan Intersect. Setelah mempraktikkan operator dasar tersebut menggunakan 2 DMBS yaitu PostgreSQL dan MySQL terdapat kesamaan dan beberapa perbedaan diantara keduanya. Diantaranya adalah penggunaan operator Regexp serta operator Union, Except dan Intersect.
2.      Saran
Diperlukan pembelajaran lebih lanjut mengenai operator-operator dasar SQL dalam database menggunakan PostgreSQL maupu MySQL agar praktikan dapat menguasai kedua DBMS tersebut dalam membuat database yang lebih baik.

3.      Kritik
Dalam laporan ini, masih banyak terdapat kekurangan karena terbatasnya pengetahuan saya dalam menguasai 2 DBMS yang digunakan dalam praktikum ini.        
4.      Manfaat
Manfaat yang akan didapat pembaca dalam laporan ini antara lain dapat mengetahui operator-operator dasar SQL secara umum. Pembaca juga dapat mengetahui persamaan dan perbedaan penggunaan operator dasar dari kedua DBMS tersebut.


Posted on Minggu, Oktober 12, 2014 by Baiti

No comments