Senin, 06 Oktober 2014

Praktikum Desain Basis Data III -> Perintah Dasar SQL

 1. Dasar Teori   
    1.1 Hubungan Antar Tabel (Reference)


     Tabel-Tabel dalam database bisa dihubungkan dengan menggunakan REFERENCES. Untuk melakukannya maka diperlukan beberapa syarat, antara lain :
1.      Tabel yang dihubungkan harus memiliki sebuah field dengan tipe data yang sama.
2.      Harus dibentuk Primary Key dan Foreign Key pada kedua field bertipe data 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 yang sama dengan kata lain yang disebut foreign key. Misalnya, terdapat tabel barang dan macam_barang. Berikut query kedua tabel tersebut :
  • 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 kita 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;

   1.2 Memasukkan Data
     Sebuah data dapat dimasukkan ke dalam tabel menggunakan perintah INSERT. Namun hal yang perlu diperhatikan yaitu struktur tabel yang akan digunakan untuk memasukkan data. Sebagai contoh memasukkan data ke dalam 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 dianggap salah.
- Kolom ketiga (‟1992-07-23‟), tipe data Date dianggap 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.

1.3 Menampilkan Data

     Dalam database, perintah SQL untuk menampilkan data sebuah tabel bisa menggunakan SELECT. Berikut struktur SQL untuk penampilan 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, bila ingin menampilkan berdasarkan baris tertentu bisa menggunakan perintah WHERE yang diletakkan dibelakang nama tabel dan isikan nama kolom beserta kata kunci sebagai dasar atau syarat dari pencarian baris. Untuk lebih jelasnya berikut struktur perintah SQL nya :
  • select nama_kolom from nama_tabel where nama_kolom = kata kunci;
Contoh :

Atau

Apabila ingin menampilkan data dari lebih dari satu tabel, struktur SQL nya terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat pada praktikum ke-2 yaitu mahasiswa dan fakultas (Dengan syarat adanya relasi antara kedua tabel tersebut). Berikut 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.



    1.4 Menghapus Data
     Pada database PostgreSQL, DELETE digunakan untuk menghapus data pada sebuah tabel. Berikut Struktur yang digunakan :
  • delete from namatabel ;
Arti dari struktur diatas yaitu 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 namakolom = katakunci;
contoh :


     1.5 Modifikasi Data
    Dalam memodifikasi database bisa menggunakan perintah UPDATE. Berikut contoh struktur SQL untuk memodifikasi data pada kolom tertentu berdasarkan baris tertentu :
  • update namatabel set namakolom = isidata where namakolom = katakunci;
Contoh :
 
     
 1.6 Pengurutan Data
     Maksud dari pengurutan data dengan perintah ORDER BY adalah jika data sebuah tabel diurutkan dengan 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;
*catatan : nomor_kolom dimulai dari kiri, misal terdapat kolom nim, nama. Maka jika ingin 
mengurutkan berdasarkan nama kita perlu mengganti nomor_kolom menjadi 2.

2. Hasil Praktikum 
  2.1 Menggunakan PostgreSQL
 
 1. Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3 data mahasiswa sebagai berikut :
    Nim : 12
    Nama : edi
    Alamat : malang
    No.telp : 0856453428
    Fakultas : SAINTEK
 
    Nim : 13
    Nama : sinta
    Alamat : jogja
    No.telp : 0813347565675
    Fakultas : SAINTEK
 
    Nim : 14
    Nama : luki
    Alamat : ponorogo
    No.telp : 082576568798
    Fakultas : PSIKOLOGI
 
 


 2. Tampilkan data mahasiswa berupa nim dan nama.

 3. Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.

4. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

5. Hapus data mahasiswa yang memiliki nim : 13

6. Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12

7. Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa. Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

8. Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.

9. Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.

10. Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.

11. Hapus data fakultas “SAINTEK”.
  
3. Tugas Rumah
    3.1 Menggunakan MySQL 

1. Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3 data mahasiswa, sebagai berikut:
    Nim : 12
    Nama : edi
    Alamat : malang
    No.telp : 0856453428
    Fakultas : SAINTEK
 
    Nim : 13
    Nama : sinta
    Alamat : jogja
    No.telp : 0813347565675
    Fakultas : SAINTEK
 
    Nim : 14
    Nama : luki
    Alamat : ponorogo
    No.telp : 082576568798
    Fakultas : PSIKOLOGI

 
2. Tampilkan data mahasiswa berupa nim dan nama.

3. Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.

4. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

5. Hapus data mahasiswa yang memiliki nim : 13

6. Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12

7. Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa. Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

8. Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.

9. Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.

10. Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.

11. Hapus data fakultas “SAINTEK”.
 
  3.2 Evaluasi dari DBMS MySQL dan PostgreSQL
 

4. Kesimpulan dan Saran
  4.1 Kesimpulan
   Dalam membuat tabel perlu memerhatikan entitas di dalamnya, dan juga perlu memperhatikan hubungannya dengan entitas entitas pada table lain. References digunakan sebagai penghubung dari setiap entitas entitas tersebut. Pada praktikum kali ini, tidak banyak perbedaan masukan antara MySQL dan PostgreSQL. 
    Untuk memasukkan data ke dalam Tabel gunakan command INSERT.
    Untuk menampilkan data dalam tabel gunakan command SELECT
    Untuk menghapus data dalam tabel gunakan command DELETE.
    Untuk modifikasi data dalam tabel gunakan command UPDATE.
    Untuk mengurutkan data dalam tabel gunakan command ORDER BY.
 
  4.2 Saran dan Manfaat bagi pembaca
    Semoga tetap bisa konsisten mengikuti semua praktikum dan dengan adanya laporan ini, saya dan pembaca dapat mendapatkan manfaat ilmunya. Dan tidak lupa penulis mengucapkan Selamat Hari Raya Idul Adha,.. :)


Daftar Pustaka

- Sanjaya, Ridwan. 2005. Pengolahan Database MySQL dengan Java 2. Yogyakarta: Andi
- Nugroho, Bunafit. 2005. Administrasi Database MySQL. Yogyakarta:Graha Ilmu 
- Modul Praktikum DBD Bab II

 

Senin, 29 September 2014

Praktikum Desain Basis Data II -> Pembuatan dan Manajemen Tabel


1. Dasar Teori


1.1 Mengenal Lingkungan Database
        Database memilik beberapa istilah-istilah baik pada struktur maupun perintahnya. Ada 4 istilah yang muncul, yaitu:
   1. Database
        Database adalah sebuah file yang mengkoordinasi tabel-tabel data yang saling berhubungan dan memiliki suatu kepentingan yang sama sehingga akan mempermudah pengolahan. karena database merupakan kumpulan dari beberapa tabel maka untuk membuat tabel, database harus dibuat dulu sebagai 'induk' yang memayungi induk-induk dibawahnya.
   2. Tabel (Table)
           Table adalah kumpulan data dalam record-record yang disatukan untuk kepentingan tertentu.
   3. Record
            Record adalah kumpulan field-field yang disatukan dalam baris.
   4. Field
           Field adalah jenis atau tipe data dari suatu item data beserta batasan nilainya.

1.2 Bahasa dalam Database
   A. Data Defnition Language (DDL)
             DDL adalah perintah-perintah yang digunakan untuk membangun isi database. DDL bertugas untuk membuat objek dan menyimpan definisinya dalam tabel. Contoh dari objek yang dimaksud diatas adalah tabel, view, dan index. Pembuatan tabel, perubahan struktur tabel, perubahan nama tabel, serta perintah untuk mengahapus tabel, dilakukan dengan sub bahasa yang tergolong dalam DDL. Perintah-perintah yang dilakukan dalam DDL adalah:
          1. Create
         Perintah ini digunakan untuk membuat database, tabel, dan objek lain dalam   database.
          2. Alter
              Perintah ini digunakan untuk memodifikas table, seperti mengganti nama tabel, mengubah jenis/tipe field, mengubah nama field, menambah field baru atau mengurangi field tertentu.
          3. Drop
                 Perintah ini digunakan untuk menghapus database, tabel, dan objek lain dalam database.
   
    B. Data Manipulation Language (DML)
                  DML digunakan untuk menampilkan, mengubah, menambah, dan menghapus baris dalam tabel. Perintah-perintah yang digolongkan dalam DML antara lain:
           1. Select
             Perintah ini digunakan untuk menampilkan isi table. Baik semua is table atau sebagian isi table. Bahkan bisa pula menampilkan isi table yang dihubungkan dengan tabel-tabel yang lain.
           2. Insert
           Perintah ini digunakan untuk mengisi atau menambah table. Pengisian dapat dilakukan dengan seluruh feld atau hanya sebagian feld saja.
           3. Update
                  Seperti terlihat pada perintahnya, update digunakan untuk mengubah item-item tertentu dalam satu tabel.
            4. Delete
                  Perintah ini digunakan untuk menghapus record-record dengan krteria tertentu.
    
    C. Data Control Language (DCL)
              DCL adalah perintah yang akan membantu mengontrol keamanan setiap database atau sebagian isi dari database dengan membuat hak-hak akses tertentu bagi setiap user.
            1. Grant
                Grant digunakan untuk memberikan hak-hak tertentu kepada seorang user. Grant dberikan oleh user yang mempunyai hak untuk mengganti grant atau administrator (root).
            2. Revoke
                   Kebalikan dari grant. Revoke digunakan untuk mencabut hak-hak dari seorang user terhadap database tertentu atau sebagian isi dari database.

 1.2 Postgre SQL
      A. Membuat Tabel
            Struktur query yang digunakan membuat tabel dengan dua kolom:
               create table namatabel (namakolom tipedata keterangan, namakolom tipedata keterangan);
   *Cttn : Untuk melihat struktur tabel yang telah dibuat ketikkan perintah \d dan melihat semua tabel menggunakan \z.
            Struktur query yang digunakan menghapus tabel :
                     drop table namatabel; 
      
      B. Manipulasi Tabel 
               Struktur query yang digunakan untuk menghapus kolom :
alter table namatabel drop column “namakolom”;
Struktur query yang digunakan untuk menambah kolom:
alter table namatabel add column “namakolom” tipe data;
Struktur query yang digunakan untuk mengubah nama tabel :
alter table namatabelasal rename to namatabelbaru;
Struktur query yang digunakan untuk mengubah nama kolom :
alter table namatable rename column “namakolom asal” to namakolombaru;
Struktur query yang digunakan untuk mengubah type dari kolom tertentu :
alter table namatable alter column namakolom type namatypepengganti;
Struktur query yang digunakan untuk menambahkan primary key pada tabel :
                        alter table namatabel add primary key (namakolom); 
   
       C.  Temporary Tabel
              Temporary tabel sifatnya hanya sementara artinya akan aktif hanya ketika kita sedang berada atau login ke database namun ketika kita logout dari psql database maka secara otomatis temporary tabel akan terhapus. Struktur query yang digunakan membuat tabel dengan dua kolom:
                      create temporary table namatabel (namakolom tipedata keterangan, namakolom tipedata keterangan); 
      
       D. GRANT dan REVOKE
            Berikut struktur penggunaan GRANT untuk semua hak akses :
                         grant all on table namatabel to namauser;
           

            Berikut struktur penggunaan REVOKE untuk semua hak akses :
                         revoke all on table namatabel from namauser;
          

            Struktur query untuk menghapus salah satu hak akses, misalnya UPDATE :
                         revoke update on tabel namatabel from namauser;
            

            Struktur query untuk memberi salah satu hak akses, misalnya DELETE :
                         grant delete on tabel namatabel to namauser;

2. Hasil Praktikum
2.1 Menggunakan PostgreSQL
       1.  Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya


2. Buatlah sebuah tabel lagi dengan nama pegawai dan nama field sama dengan tabel identitas
 

       3. Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.
 
        4. Tambahkan kolom “pekerjaan_idn” dengan type data varchar dan tampilkan struktur tabel  pegawai.

        5. Ubah nama tabel pegawai menjadi pekerjaNIM kemudian ubah nama kolom “pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.

       6. Berikan Primary key pada tabel pekerjaNIM dan ubah type data pada kolom “alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.

       7. Hapus tabel pekerjaNIM. 

       8. Buat temporary tabel dengan nama mahasiswa_sementara dengan 3 kolom yaitu id, nama, tanggal lahir dan tampilkan tabel atau strukturnya.

       9. Hapus semua hak akses tabel tertentu kepada salah satu user yang telah dibuat dan lakukan pengecekan. Kemudian berikan semua hak akses kembali dan lakukan pengecekan kembali. Hapus hak akses SELECT tabel tertentu kepada salah satu user dan lakukan pengecekan.

       10. Buat tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan tabel number 1 dan tambahkan kolom gaji kotor, pajak, dan gaji bersih. Kemudian tampilkan strukturnya.


 

 2.2 Menggunakan MySQL
  
 
     1. Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya
        Dalam membuat tabel pada MySQL maka digunakan query berikut : 
        Setelah membuat tabel, dapat dicek dengan mysql> show tables; kemudian describe nama_table;
  
      2. Buatlah sebuah tabel lagi dengan nama pegawai dan nama field sama dengan tabel identitas
         
          Sama dengan no.1, hanya menambah table lagi
   
     3. Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.




   4. Tambahkan kolom “pekerjaan_idn” dengan type data varchar dan tampilkan struktur tabel   pegawai.

      5. Ubah nama tabel pegawai menjadi pekerjaNIM kemudian ubah nama kolom “pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.

    6. Berikan Primary key pada tabel pekerjaNIM dan ubah type data pada kolom “alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.

    7. Hapus tabel pekerjaNIM.

    8. Buat temporary tabel dengan nama mahasiswa_sementara dengan 3 kolom yaitu id, nama, tanggal lahir dan tampilkan tabel atau strukturnya.

    9. Hapus semua hak akses tabel tertentu kepada salah satu user yang telah dibuat dan lakukan pengecekan. Kemudian berikan semua hak akses kembali dan lakukan pengecekan kembali. Hapus hak akses SELECT tabel tertentu kepada salah satu user dan lakukan pengecekan.

    10. Buat tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan tabel number 1 dan tambahkan kolom gaji kotor, pajak, dan gaji bersih. Kemudian tampilkan strukturnya.
(karena tidak menemukan query INHERITS pada mysql, maka disini digunakan query membuat tabel biasa)

 3. Tugas Rumah 
    3.1. Buat database dan tabel sistem pada pertemuan 1 menggunakan query dan dilengkapi dengan tampilan strukturnya.

Berikut adalah screenshot dalam mysql-nya:

3.2  Perbandingan MySQL dan PostgreSQL
MySQL 
  1. User biasa tidak diberi hak APAPUN dan tidak bisa melihat apapun(user, database, tabel, dll) sehingga perlu diberi HAK
  2. Tidak diberi kewenangan apapun artinya :
    - tidak bisa membuat database
    - tidak bisa membuat tabel 
  3. Pemberian Hak Ada 2 yaitu :
    - edit hak user di database user milik mysql (misal ingin hak super user)
    - edit hak  user oleh pemilik database atau dari user superuser(grant) 
  4. ketika posisi menggunakan database posisi dibawah ini tidak berubah mysql> 
  5. Bisa exit dari user, dengan mengetik >mysql quit
  6. Pada Query diantarannya adalah:
  • koneksi database dinyatakan dengan mysql> use nama_database;  
  • Menampilkan struktur tabel dengan mysql>  desc/describe nama_tabel;                           
  • Menghapus kolom alter table dengan mysql> nama_tabel drop column nama_kolom;
  • Mengganti type data pada kolom alter dengan mysql> table nama_tabel modifyd engan mysql> nama_kolom type_data;
  • dst
PSQL
  1. user biasa diberi kewenangan berupa hak melihat :
    - user
    - database
    - tabel
    - Tapi tidak diberi hak edit apapun 
  2. Diberi kewenangan membuat:
    - database
    - table
    - grant untuk user lain
  3. Pemberian Hak itu Ada 2 yaitu :
    - dimulai saat pembuatan user (misal ingin hak super user)
    - edit hak  user oleh pemilik database atau dari user superuser(grant)
  4. ketika posisi menggunakan database simbol posisi dibawah ini berubah menjadi nama database:
  5. Tidak bisa exit dari use melainkan close psql comand
  6. Pada Query diantarannya adalah:
  • koneksi database dinyatakan dengan \c nama_database;   
  • Menampilkan struktur tabel dengan \d nama_tabel;; 
  • Menghapus kolom alter table dengan alter table nama_tabel drop column “nama_kolom”;
  • Mengganti type data pada kolom alter dengan alter table nama_tabel rename column “nama_lama” to “nama_baru“;
  • dst 
 4. Kesimpulan dan Saran

4.1 Kesimpulan
 Dari Pembuatan dan Manajemen Tabel dapat disimpulkan bahwa:
   1. Bahasa dalam Database dibag menjadi 3, yaitu: Data Defnition Language (DDL), Data Manipulation Language (DML), dan Data Control Language (DCL) 
    2. Dalam memasukkan query dalam psql dan mysql tidak sama, dengan melakukan praktikum dengan 2 DBMS berbeda membuat kita dapat belajar keduanya dan mengetahui kelebihan dan kekurangannya.

4.2 Saran
      Semoga di praktikum selanjutnya kakak asisten dosen bisa lebih sabar dan dapat menjelaskan tugas-tugasnya pada praktikan secara jelas, sehingga kami dapat mengerti.

4.3 Manfaat Bagi Pembaca
      Dapat menambah pengetahuan tentang DBMS mysql dan psql, sehingga bsa memilih sesuai yang dibutuhkan. Dengan laporan ini, pembaca juga dapat ikut belajar mengenai pembuatan tabel.


 Daftar Pustaka
Sanjaya, Ridwan. 2005. Pengolahan Database MySQL dengan Java 2. Yogyakarta: Andi
Modul Praktikum DBD Bab II
belajarsql.net/download/.../Bahasa%20Basis%20Data.pdf
http://kinabipoetra.blogspot.com/2013/03/contoh-bahasa-basis-data-ddl-definition.html