Sabtu, 27 September 2014

Laporan Praktikum DBD Pertemuan 2

PEMBUATAN DAN MANEJEMEN TABEL

1. Dasar Teori

         Menurut referensi yang saya ketahui, tabel adalah daftar yang berisi ikhtisar sejumlah data-data informasi yang biasanya berupa kata-kata maupun bilangan yang tersusun dengan garis pembatas. Sedangkan database adalah kumpulan informasi yang disusun berdasarkan cara tertentu dan merupakan suatu kesatuan yang utuh. Dengan sistem tersebut data yang terhimpun dalam suatu database dapat menghasilkan informasi yang berguna.

         Sebuah tabel terdiri dari baris (row) dan kolom (column), dimana jumlah dan nama kolom harus didefinisikan terlabih dahulu di awal. Sedangkan baris merupakan sebuah  variabel  yang  dapat  dihapus  dan  diisi  kapanpun,  sehingga jumlahnya  selalu berubah sesuai dengan jumlah data didalamnya. Setiap kolom dalam tabel  mempunyai tipe data, tipe data digunakan untuk membatasi jenis data yang bisa  dimasukkan, sehingga akan mempermudah dalam menggunakannya dan melakukan  pengelolaan selanjutnya. Sangat disarankan pada saat akan membuat tabel, sebaiknya  membuat sebuah aturan khusus dalam penentuan tabel-tabel yang akan dibuat dan  memberikan nama kolom maupun tipe datanya.



   Query adalah semacam kemampuan untuk menampilkan suatu data dari database dimana mengambil dari table-tabel yang ada di database, namun tabel tersebut tidak semua ditampilkan sesuai dengan yang kita inginkan. data apa yang ingin kita tampilkan.

           DDL atau Data Definition Language adalah kumpulan perintah SQL yang dapat digunakan untuk membuat dan mengubah struktur dan definisi tipe data dari objek-objek database seperti tabel, index, trigger, view, dan lain-lain. DML atau Data Manipulation Language adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table.

          Seperti yang kita ketahui Basis Data merupakan kumpulan data yang saling berhubungan (Relational). Pada prinsipnya basis data menggunakan model Relational karena pada model ini menggunakan kunci (key) untuk mengindentifikasi atau membedakan antara satu tabel dengan tabel lainya.
Kunci-kunci yang digunakan memiliki fungsi masing-masing dalam mengindentifikasi yang berbeda-beda. Berikut ini macam-macam key pada sebuah model Relational :

a. Super Key
    Super key merupakan sebuah atribut data atau kumplan atribut yang secara unik dapat mengindentifikasi sebuah tupel.
contoh : misalnya database akademik maka super key yang digunakan adalah : npm,nama_mhs,tgllahir, alamat, dst

b. Candidat Key
     Candidat key merupakan super key yang minal dapat mengindentifikasi tupel secara unik.
contoh : npm dan nama_mhs

c. Primary Key
    Primary key merupakan candidat key yang terpilih yang secara unik yang dapat mengindentifikasi tupel
contoh : npm

d. Alternate key
    Alternate key merupakan key yang tidak terpilih
contoh : nama_mhs

e. Composite key
    Composite key merupakan gabungan dua key atau lebih yang secara unik dapat menidentiifikasi sebuah tupel.
Contoh : npm, dan kode_matkul

f. Foreign Key
   Foreign Key merupakan atribut yang merupakan key pada relasi lain.

Contoh : npm, kode_matkul pada relasi ambil_matkul


        Ø   Perintah Dasar PostgreSQL

             Membuat Tabel

             Catatan :
             •  Tabel harus memiliki primary key, artinya dalam pembuatan tabel haruslah terdapat        sekelompok kolom (field) yang menyebabkan setiap  baris (record) dalam tabel tersebut tidak sama dan juga digunakan untuk mempercepat dalam pencarian.
             •  Deklarasi  primary  key  tidak  boleh  kosong  (null),  jadi  kita  harus  mendeklarasikan sebagai not null. Namun secara default PostgreSQL menganggapnya sebagai nullable (boleh kosong), jika waktu pengisian tidak menyebutkan null atau not Bull.
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.
Contoh : Membuat tabel baru dengan nama infoprib sebagai berikut :


Struktur query yang digunakan menghapus tabel :


drop table namatabel;

Manipulasi Data

Dalam  pembuatan  tabel  sebaiknya  direncanakan  field  dan  tipe  datanya  untuk meminimalisir  kesalahan  saat  tabel  telah  berisi  data.  Namun  meskipun  begitu  bukan berarti tabel tidak bisa diubah dan dihapus. PostgreSQL telah menyediakan utilitas untuk manipulasi  ini  dan  perlu  diingat  hal  ini  bukan  manipulasi  data  melainkan  manipulasi struktur tabelnya.

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);

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);

GRANT dan REVOKE

Pada  saat  membuat  tabel  pada  user  tertentu  maka  hanya  user  tersebut  dan  user postgres   yang  dapat  mengakses  tabel  itu.  Namun  jika  kita  ingin  agar  tabel  yang  telah dibuat pada user kita dapat diakses oleh user tertentu atau semua user yang berada pada PostgreSQL,  maka  semua  itu  dapat  dilakukan  dengan  perintah  GRANT.  Jika  ingin mencabut hak akses kita bisa menggunakan perintah 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;

Turunan (Inheritance)

INHERITANCE  dipergunakan  jika  ingin  membuat  sebuah  tabel  baru  yang
berhubungan dengan tabel yang ada, dengan kata lain turunan tabel pertama.

Struktur penggunaan query INHERITANCE :

create  temporary  table  namatabel  (namakolom    tipedata  keterangan  ,
namakolom  tipedata  keterangan) inherits (namatabelinduk);

Ø  Perintah Dasar MySQL

Membuat Database
        Create Database_nama
Menghapus database
        Drop Database db_nama
Membuat Tabel
        Create Table Tbk_name(field 1 type_data, field 2 type_data)
Mengahapus tabel
        Drop Table tb_name
Menambah Primary Key
        Alter Table tb_name ADD Primary Key (field_name)
Menghapus hak akses
Revoke ALL on nama_db.nama_tabel from nama_user@localhost identified by ‘password’
                 Memberikan hak akses
  Grant all privileges on tb_name to user_name@localhost identified by ‘password’
                                                                           

2. Hasil Praktikum Dan Tugas Rumah


  •  Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya.
                      
          





  •  Buatlah  sebuah  tabel  lagi  dengan  nama  pegawai  dan  nama  field  sama  dengan  tabel identitas
          



  •  Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.
           



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


       

  • Ubah  nama  tabel  pegawai  menjadi  pekerjaNIM  kemudian  ubah  nama  kolom 

“pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.

           




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

           


  •  Hapus tabel pekerjaNIM

            


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


          

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

          

  •  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. Berhubung di mysql nggak bisa pakek inheritance , makanya saya pakek manual saja seperti contoh soal pertama =D hahaha



TUGAS RUMAH

Buat  database  dan  tabel  sistem  pada  pertemuan  1  menggunakan  query  dan  dilengkapi dengan tampilan strukturnya.

Jawabannya :

Menurut Pemahamana saya, Berikut ini adalah query pembuatan database “Rental_Mobil” sesuai dengan rancangan ERD pada tugas Minggu lalu atau pertemuan yang pertama. Dan pembuatan tabel beserta tampilan strukturnya.

a.       Tabel penyewa
b.      Tabel Mobil
c.       Tabel Transaksi


               3. Evaluasi perbandingan PostgreSQL dan MySQL

                       
Instruksi
PostgreSQL
MySQL
Membuat Tabel
Create Table nama_tabel (nama_kolom type_data ket);
Create Table nama_tabel (nama_kolom type_data ket);
Koneksi ke database
\c nama_db;
Use nama_db;
Menampilkan struktur tabel
\d nama_tabel;
desc nama_tabel;
Menghapus Kolom
alter Table nama_tabel drop column “nama_kolom”;
alter Table nama_tabel drop column nama_kolom;
Menambahkan kolom
Column “nama_kolom” type_data;
alter Table nama_tabel add column nama_kolom type_data;
Mengubah nama tabel
Alter Table “nama_lama” rename to “nama_baru”;
Alter Table nama_lama rename to nama_baru;
Mengubah nama kolom
Alter Table nama_tabel rename column “nama_kolom_asal” to nama_kolom_baru;
Alter Table nama_tabel Changde nama_lama nama_baru type_data;
Memberikan primary Key pada tabel
Alter Table nama_tabel add primary Key (nama_kolom);
Alter Table nama_tabel add primary Key (nama_kolom);
Mengganti type data pada kolom
Alter Table nama_tabel rename column “nama_lama” to “nama_baru”;
Alter Table nama_tabel modify nama_kolom type_data;
Menghapus tabel
Drop Table nama_tabel;
Drop Table nama_tabel;
Mencabut hak akses tabel untuk semua fungsi pada salah satu user
Revoke all on Table nama_table from nama_user;
Revoke all on nama_db nama_tabel from nama_user@localhost identified by ‘password’;
Mencabut hak akses tabel untuk salah satu fungsi kepada salah satu user, Misalnya select
Revoke all on Table nama_tabel from nama_user;
Revoke select on nama_db.nama_tabel from nama_user@localhost identifed by ‘password’;
Memberikan semua hak akses salah satu pada tabel kepada user
Grant all on Table nama_tabel to nama_user;
Grant all on nama_db.nama_tabel to nama_user@localhost identified by ‘password;
Membuat tabel temporary
Create temporary Table nama_tabel (nama_kolom type_data ket);
Create temporary Table nama_tabel (nama_kolom tipe_data ket);
Membuat tabel turunan atau Inheritance
Create temporary Table nama_tabel (nama_kolom tipe_data ket) inherits (nama_tabel_induk);
Pada MyQSL tidak ada Inherits kata lainnya tidak bisa menggunakan Inherits.


           4. KESIMPULAN

                Setelah saya melakukan percobaan antara ke dua DBMS ini, pembuatan tabel dimana memerlukan Sintak-sintak untuk manajemenkan suatu tabel dalam database meliputi pembuatan, pengeditan, menghapus, pemberian primary Key, pemberian hak akses pada salah satu user, dll. Sintak-sintak dalam kedua DBMS ini PostgreSQL dan MySQL sangat penting karena apa, karena dapat mengetahui query untuk manajemen tabel tidak hanya bisa menggunakan 1 DBMS. Dan setidaknya kita dapat membandingkan antara kedua DBMS itu mana yang lebih mudah di pakai, walaupun tiap database memiliki kekurangan dan kelebihan masing-masing.

                KRITIK DAN SARAN 

        Dalam pembuatan laporan ini, saya cukup bingung dan kurang jelas tugas yang diberikan praktikan dengan soal yang ada di modul. Dan juga saya kurang mengerti tentang materi revoke dan Grant di MySQL. Dan juga saya cukup bingung dengan pembuatan tabel turunan di MySQL.

        MANFAAT BAGI PEMBACA

        Pembaca dapat mengetahui perbandingan antara kedua DBMS ini PostgreSQL maupun MySQL. Dimana mengetahui Sintak-sintaknya yang lebih mudah dipakai dan membedakan antara kelebihan dan kekurangannya. Dan semoga ilmu yang saya itu di blog ini semoga bermanfaat :)

                         SEKIAN dan TERIMA KASIH =)

               DAFTAR PUSTAKA

  • Nugroho, Adi. “Perancangan dan Implementasi Sistem Basis Data”, Yogyakarta : C.V Andi Offset, 2011.
  • “Seri Panduan Praktis : Pengolahan Database dengan MySQL”, Semarang : C.V Andi Offset, 2006.
  • http://www.duniailkom.com/tutorial-belajar-mysql-cara-membuat-dan-menghapus-user-mysql-create-user/
  • http://lunarphue.wordpress.com/basis-data/ddl-dan-dml/
  • http://sukamikir.wordpress.com/2008/10/08/macam-macam-kunci-pada-basis-data/