Selasa, 21 Oktober 2014

Laporan DBD 5 - Agregasi Sql dan View

PRAKTIKUM DESAIN BASIS DATA
Agregasi Sql dan View


Dibimbing oleh :
 Aziz Musthafa, S.Kom





Oleh :
Achsin Muflichuddin   11650036



JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAN NEGERI  MAULANA MALIK IBRAHIM
MALANG
2014


6.1 Bahasan dan Sasaran
6.1.1 Bahasan
         - Agregasi sql yang diperlukan dalam perhitungan data
      - View yang merupakan tabel bayangan yang berisi query baik dari suatu tabel maupun berbagai tabel  
6.1.2 Sasaran
       - Mahasiswa memahami operator agregasi sql sehingga mempermudah dalam hal perhitungan data
         - Mahasiswa mengetahui cara penggunaan view

6.2 Materi
6.2.1 Agregate Operator
         Fungsi agregate atau disebut fungsi ringkasan digunakan untuk melakukan penghitungan menjadi sebuah nilai dari beberapa nilai input. Berikut merupakan fungsi agregatenya :

Berikut contoh tabel pegawai :
Berikut querynya : 

6.2.2 Group By
         Group by digunakan untuk pengelompokan dari perintah SELECT. Berikut struktur querynya :

select nama_kolom from nama_tabel group by nama_kolom;





6.2.3 Having
         Having terkait dengan group by yaitu digunakan untuk menentukan kondisi bagi Group By, dimana kelompok yang memenuhi kondisi saja yang akan di hasilkan.


6.2.4 Case
         Meskipun Sql merupakan bahasa pemrograman, namun dalam prosesnya dapat dengan bebas mengontrol data yang kembali dari query. Kata WHERE menggunakan perbandingan untuk mengontrol data, sedangkan CASE perbandingan dalam bentuk output atau kolom. Berikut struktur querynya :


6.2.5 View
         View dapat juga disebut tabel bayangan tetapi bukan temporary table, bukan juga merupakan sebuah tabel yang asli. View adalah suatu relasi virtual yang tidak perlu ada database tetapi dapat diproduksi atas permintaan oleh pemakai tertentu ketika permintaan. Kelabihan view yaitu dapat menyimpan perintah query, dan dapat mewakili sebuah sebuah subset dari tabel asli dan memilih kolom atau row tertentu dari tabel biasa.

create view nama_tabel_view as query;

Berikut adalah tabel contoh kasus penggunaan VIEW :


6.3 Hasil Percobaan






6.4 Evaluasi
        Diantara PostgreSql dan MySql tidak ada perbedaan dalam struktur querynya jadi dalam penggunaan query sama diantara keduanya. Tetapi ada yang harus diperhatikan yaitu pemberian tanda koma (,) pada perintah count(*) dan case. Ketika pasa query select tidak ada koma untuk penggunaan count(*) dan case harus memberinya. Serta ketika perintah agregasi min, max dan avg apabila salah dalam pemberian spasi pada query maka akan menimbulkan efek.

6.5 Penutup
6.5.1 Kesimpulan
     Dari percobaan diatas, menurut pendapat saya beberapa fungsi diatas hampir sama dengan pertemuan sebelumnya dan merupakan kelanjutan dari materi sebelumnya. Disini dipelajari fungsi sql lebih mendalam dan meluas meskipun fungsi dan tugasnya tidak jauh berbeda dengan yang sebelumnya. Diantarannya adalah agregate operator, group by, having, case, view. 


6.5.2 Saran
         Untuk masukan diharapkan ditunjukkan contoh lain dengan permasalahan lain diluar apa yang di cari dan diinginkan berdasarkan contoh diatas supaya lebih paham secara keseluruhan. Semoga bermanfaat.


Daftar Pustaka




Selasa, 14 Oktober 2014

Laporan DBD 4 - Pengenalan Operator Dasar

PRAKTIKUM DESAIN BASIS DATA
Pengenalan Operator Dasar


Dibimbing oleh :
 Aziz Musthafa, S.Kom





Oleh :
Achsin Muflichuddin   11650036



JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAN NEGERI  MAULANA MALIK IBRAHIM
MALANG
2014


4.1 Bahasan dan Sasaran
4.1.1 Bahasan
          - Operator dasar dalam standar query sql
          - Operator dasar yang berhubungan dengan manipulasi data
4.2.2 Sasaran
          - Mahasiswa memahami operator dasar dalam struktur query sql
          - Mahasiswa memahami cara penggunaan operator dasar dalam hal manipulasi
            data

4.2 Materi
4.2.1 AS
                    AS digunakan untuk merubah nama panggilan suatu kolom tanpa merubah nama kolom itu sendiri, dan nama panggilan kolom beserta nama kolom tersebut sama-sama dapat diakses. Berikut struktur query-nya :
      SELECT [NAMA KOLOM] AS [NAMA KOLOM PENGGANTI] FROM [NAMA TABEL]; 

4.2.2 AND 
                    AND digunakan untuk melakukan pencarian dan menampilkan data yang lebih akurat. Dengan operator AND akan ditampilkan data yang hanya memenuhi kedua syarat yang ditentukan. Berikut struktur query-nya :
      SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] = '[PENCARIAN 1]' AND [NAMA KOLOM] = '[PENCARIAN 2]';

4.2.3 OR
                   OR digunakan untuk menampilkan data yang hanya memenuhi memenuhi salah satu dari kedua syarat yang ditentukan. Berikut struktur query-nya :
        SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] = '[PENCARIAN 1]' OR [NAMA KOLOM] = '[PENCARIAN 2]';

4.2.4 BETWEEN 
                    Dalam operator ini, terjadi pembatasan data yang ditampilkan. Data diberi batasan pada nilai terendah dan tertinggi. Berikut struktur query-nya :
       SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] BETWEEN '[NILAI AWAL]' AND '[NILAI AKHIR]';


4.2.5 LIKE
       Operator ini menggunakan mode pencarian berdasarkan huruf awal atau huruf akhir atau kombinasi dari keduanya dari data yang diinginkan. Berikut struktur query-nya :
       SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] LIKE '[OPERATOR]';


4.2.6 REGEXP
        Merupakan sebuah teknik atau cara untuk mencari persamaan-persamaan string data dan memanipulasinya. Biasanya lebih sering digunakan untuk string disimbolkan "~". Berikut struktur query-nya :
      SELECT * FROM [NAMA TABEL] WHERE [NAMA KOLOM] ~ '[OPERATOR REGEXP DAN PATERN]';

4.2.7 DISTINCT
         Distinct digunakan untuk menampilkan data tanpa duplikasi data pada suatu kolom, jika terdapat duplikasi data maka akan ditampilkan hanya satu data saja. Berikut struktur query-nya :
      SELECT DISTINCT [NAMA KOLOM] FROM [NAMA TABEL];

4.2.8 LIMIT
            Pembatasan atas jumlah data yang boleh ditampilkan. Berikut struktur query-nya :
      SELECT * FROM [NAMA TABEL] ORDER BY [NAMA KOLOM] LIMIT [JUMLAH DATA YANG DIINGINKAN];

4.2.9 OFFSET
     Kebalikan dari LIMIT, yaitu Menghilangkan jumlah data yang akan ditampilkan dan menampilkan sisa data yang dihilangkan. Berikut struktur query-nya :
      SELECT * FROM [NAMA TABEL] ORDER BY [NAMA KOLOM] OFFSET [JUMLAH DATA YANG DIHILANGKAN];

4.2.10  UNION, EXCEPT DAN INTERSECT
        Union digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom. 
Berikut struktur query-nya :
      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-nya :
     SELECT [NAMA KOLOM] FROM [NAMA TABEL] EXCEPT SELECT [NAMA KOLOM] FROM [NAMA TABEL];

          Intersect hanya digunakan untuk menampilkan seluruh isi dari data yang memiliki kesamaan diantara hasil kedua query tersebut. 
Berikut struktur query-nya :
     SELECT [NAMA KOLOM] FROM [NAMA TABEL] INTERSECT SELECT [NAMA KOLOM] FROM [NAMA TABEL];

4.3 Hasil Percobaan

Berikut merupakan percobaan yang kami lakukan :

1. Menambah kolom gender dalam tabel mahasiswa

2. Meng-insertkan data mahasiswa
 
 

3. Menampilkan data mahasiswa

4. Mengganti nama kolom tidak secara permanen menggunakan operator AS

5. Menampilkan mahasiswa saintek dan atau berjenis kelamin laki-laki

6. Menampilkan data mahasiswa antara nim 13 sampai 15

7. Menampilkan data mahasiswa selain 13 sampai 15  

8. Menampilkan nim 12,13,15 dalam tabel mahasiswa

 9. Menampilkan nama mahasiswa yang diawali dengan huruf "a"

10. Menampilkan nama mahasiswa diawali huruf "a" dan mengandung huruf "n"

11. Menampilkan data yang tidak berurutan berdasarkan id_fakultas

12. Menampilkan data nama mahasiswa 3 baris saja


 13. Menampilkan data mahasiswa yang diawali huruf "s" dan mengandung huruf "n,i,a"

14. Membuat 2 tabel baru seperti dibawah ini

15. Meng-insert data organ_dalam

16. Meng-insert data organ_luar

17. Menampilkan isi tabel organ_dalam, organ_luar, union, except serta intersect


4.4 Evaluasi 
      Dari percobaan menggunakan postgresql diatas, dan perbandingan antara mysql dan postgresql dalam hal query hampir sama diantara keduanya. Masing-masing memiliki karaktiristik query tersendiri, postgresql juga cukup mudah untuk dipelajari karena struktur query-nya tidak rumit. Cukup lengkap dalam memenuhi kebutuhan pengguna untuk mendapatkan data , query cukup lengkap sehingga lebih mendetail dalam pencarian data.

4.5 Penutup
4.5.1 Kesimpulan
      Perintah operator dasar SQL memiliki banyak query yang memiliki fungsi masing-masing sesuai dengan kebutuhan pengguna dalam pencarian data. Mulai dari mengganti nama kolom sementara hingga mengenai relasi atau hubungan beberapa tabel yang memiliki data yang sama.

4.5.2 Saran 
      Mengenai query dan contoh dalam praktikum kali ini sudah cukup jelas dan cukup mudah dipahami. Mungkin untuk praktikum selanjutnya lebih diperbanyak contoh dan lebih mendetail sesuai kebutuhan yang sering maupun yang jarang dipakai oleh pengguna, agar suatu saat kita mengetahui secara keseluruhan fungsi/query yang belum terdapat di praktikum kali ini. Semoga bermanfaat bagi penulis dan pembaca sekalian, mohon maaf bila terdapat kesalahan dalam pengerjaan laporan ini, terima kasih. 



Selasa, 07 Oktober 2014

Laporan DBD 3 - Perintah Dasar SQL

PRAKTIKUM DESAIN BASIS DATA
Perintah Dasar SQL


Dibimbing oleh :
 Aziz Musthafa, S.Kom





Oleh :
Achsin Muflichuddin   11650036



JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAN NEGERI  MAULANA MALIK IBRAHIM
MALANG
2014



3.1 Bahasan dan Sasaran
3.1.1 Bahasan
  • Perintah-perintah dasar dalam standar query sql
  • Query untuk menampilkan, menambah, menghapus dan memanupulasi data dalam tabel
3.1.2 Sasaran
  1. Mahasiswa memahami perintah dasar dalam standart query sql 
  2. Mahasiswa memahami cara menambah, menampilkan, menghapus, dan memanipulasi data
3.2 Materi
3.2.1 Hubungan antar tabel (Reference)
          Relasi adalah Hubungan antara tabelyang mempresentasikan hubungan antar objek di dunia nyata, relasi merupakan hubungan yang terjadi pada suatu tabel satu dengan yang lainnya yang mempresentasikan hubungan antar objek di dunia nyata dan berfungsi untuk mengatur operasi suatu database. Hubungan yang dapat dibentuk dapat mencakup 3 macam hubungan, yaitu :
  1. One To One (1-1) adalah Setiap baris data pada tabel pertama dihubungkan hanya ke satu baris data pada tabel kedua. Contoh relasi antara tabel mahasiswa dengan tabel orang tua.
  2. One To Many (1-N) adalah Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau lebih data pada tabel kedua. Contoh relasi perwalian antara tabel dosen dan tabel mahasiswa.
  3. Many To Many (N-M) adalah Satu baris atau lebih data pada tabel pertama bisa dihubungkan ke satu atau lebih baris data pada tabel kedua, artinya ada banyak baris di tabel satu dan tabel dua yang saling berhubungan satu sama lain. Contoh relasi antar tabel mahasiswa dan tabel mata kuliah.
          Dalam hal hubungan antar tabel, ada beberapa syarat yang hars dipenuhi seperti antara tabel yang ingin dihubungkan harus memiliki sebuah field atau kolom dengan tipe data yang sama. Dengan kata lain ada tabel yang memiliki primary key sebagai kunci untuk menghubungkan ke tabel yang lain dimana terdapat field yang mempunyai tipe data sama dengan kata lain disebut foreign key. Misalkan terdapat tabel barang dan macam_barang, berikut struktur query-nya :
  • create table macam_barang (id_mac integer not null, nama_mac varchar(15), guna_mac varchar(40), primary key (id_mac));
  • create table barang (id_bar integer not null, nama_bar varchar(15), id_mac integer not null references macam_barang, primary key (id_bar,id_mac));
          Atau ketika anda lupa memberikan references pada tabel macam barang kita dapat memberikan query sebagai berikut :
  • alter table barang add constraint relasi_barang foreign key (id_mac) references macam_barang (id_mac) on update no action on delete no action;
3.2.2 Memasukkan Data
          Sebuah data dapat dimasukkan kedalam tabel menggunakan perintah INSERT. Namun hal yang perlu diperhatikan yaitu struktur tabel yang akan digunakan untuk memasukkan data. Sebagai contoh memasukkan data kedalam tabel dengan nama identitas :
insert into identitas values (1, 'wahyu', '1992-07-23', false, 'programer');

Berikut penjelasan :
  • Kolom pertama berisikan (1) karena tipe datanya adalah integer maka tanda petik tidak digunakan.
  • Kolom kedua ('wahyu') dan kelima ('programer') karena tipe datanya varchar maka tanda petik diperlukan, bila tanpa ada tanda petik maka di anggap salah.
  • Kolom ketiga ('1992-07-23') tipe data Date di anggap sebagai sebuah string sehingga harus menggunakan tanda petik.
  • Kolom keempat (false) tipe data kolom ini Boolean yang hanya mengijinkan inputan true atau false dan tidak perlu tanda petik.
3.2.3 Menampilkan Data
          Dalam database, perintah SQL untuk menampilkan data sebuah tabel bisa menggunakan SELECT. Berikut struktur SQL untuk penampilaan data berdasarkan kolom tertentu :

          Select nama_kolom from nama_tabel;

Contoh :

          Jika ingin menampilkan keseluruhan kolom dan keseluruhan baris suatu tabel bisa mengganti nama_kolom menggunakan tanda asterisk (*).

Contoh :

       Kemudian jika kita ingin menampilkan berdasarkan baris tertentu bisa menggunakan perintah WHERE yang di letakkan dibelakang nama tabel dan diisikan nama kolom beserta kata kunci sebagai dasar ata syarat dari pencarian baris. Berikut struktur SQLnya :

          Select nama_kolom from nama_tabel where nama_kolom = kata kunci;

Contoh :

          Apabila ingin menampilkan data dari lebih dari satu tabel, struktur SQL nya terdapat sedikit perbedaan. Berikut contoh struktur SQL nya :

     Select nama_kolom, nama_kolom, nama_kolom, nama_kolom from nama_tabel_1, nama_tabel_2 where nama_tabel_1.nama_kolom  nama_tabel_2.nama_kolom;

Contoh :


       Perintah SQL diatas akan menampilkan nim mahasiswa, nama mahasiswa, nomor fakultas, dan nama fakultas. Pada perintah setelah WHERE terdapat 2 nama kolom id_fk hal tersebut dimaksudkan penyamaan antara primary key milik dari tabel fakultas dengan foreign key milik dari tabel mahasiswa. 

3.2.4 Menghapus Data
      Pada database PostgreSQL, DELETE digunakan untuk menghapus data pada sebuah tabel, berikut struktur yang digunakan ;
      
          delete from namatabel;

Maksudnya adalah menghapus semua baris data dari nama tabel yang tertulis. Namun bisa juga digunakan penghapusan berdasarkan spesifikasi baris atau baris tertentu saja. Berikut strukturnya :

          delete from nama_tabel where nama_kolom = kata_kunci;

Contoh :

3.2.5 Modifikasi Data
          Dalam memodifikasi database bisa menggunakan perintah UPDATE. Berikut contoh struktur SQL untuk memodifikasi data pada kolom tertentu berdasarkan baris tertentu.

          update nama_tabel set nama_kolom = isi_data where nama_kolom = kata_kunci;

Contoh :


3.2.6 Pengurutan Data 
          Maksud dari pengurutan data dengan perintah ORDER BY adalah jika data sebuah tabel diurutkan ddengan perintah tersebut, maka data tadi akan diurutkan dari atas ke bawah berdasarkan abjad. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom :

          Select * from nama_tabel order by nama_kolom;

Contoh :
Data fakultas diurutkan berdasarkan kolom nama fakultas secara ascending.

Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom secara descending :

          Select * from nama_tabel order by nama_kolom desc;

Berikut struktur perintah SQL untuk pengurutan berdasarkan beberapa kolom :

         Select * from nama_tabel order by nama_kolom asc, nama_kolom desc;

Berikut struktur perintah SQL untuk pengurutan berdasarkan nomor kolom :

         Select * from nama_tabel order by nomor_kolom desc;

# Nomor_kolom dimulai dari kiri, contoh terdapat kolom nim dan nama, maka jika ingin mengurutkan berdasarkan nama kita perlu mengganti nomor_kolom menjadi 2.


3.3 Hasil Percobaan

Pertama buat tabel sesuai dengan gambar dibawah ini :


Membuat tabel sesuai gambar diatas :




Mengisi data pada tabel yang masih kosong :



Menampilkan data berdasarkan nim dan nama :




Menghapus salah satu isi kolom :


Merubah salah satu data dalam kolom :


Menampilkan berdasarkan nim dan  nomor kolom :



Menampilkan seluruh data mahasiswa dan fakultas :




Menghapus data fakultas :



3.4 Perbandingan DBMS MySQL dan PostgreSQL

Perbedaan
  • MySQL memiliki struktur tabel yang lebih fleksibel dibandingkan PostgreSQL
  • MySQL dapat dgunakan oleh beberapa user dalam waktu yang bersamaan(multiuser)
  • MySQL lebih cepat 
  • PostgreSQL lebih lengkap
  • Dll
Persamaan

  • Query keduanya hampir sama baik dalam hal pembuatan database, user dll
  • Struktur tabel sama, perbedaaan sedikit hanya terletak pada querynya saja  
  • Dll
Kelebihan
  • PostgreSQL free atau gratis
  • PostgreSQL lebih mudah dipahami
  • Dll
Kekurangan
  • MySQL Berbayar
  • Query nya agak lebih rumit dibandingkan PostgreSQL
  • Dll

3.5 Penutup
3.5.1 Kesimpulan
      Berdasarkan analisa saya, antara MySQL dan PostgreSQL memiliki kemampuan dan keterbatasan yang berbeda-beda, kelebihan dan kekurangan masing-masing dan diantara keduanya menggunakan query yang intinya hampir sama untuk penyelesaian maslaah yang sama.

3.5.2 Saran
     Sebaiknya dalam percobaan ditunjukkan juga pemakaian yang lain bukan hanya PostgreSQL agar kedepan kita tidak hanya bisa menguasai PostgreSQL saja, akan tetapi minimal mengetahui karakteristik dari masing-masing DBMS.

Semoga penjelasan diatas bermanfaat bagi saya dan terutama bagi pembaca sekalian,, terima kasih.

Daftar Pustaka