Laporan Praktikum Desain Basis Data I

Sunday, September 21, 2014


Tugas Praktikum

A. Teori

   Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi. Pendefinisian basis data meliputi spesifikasi berupa tipe data, struktur, dan juga batasan-batasan data yang akan disimpan. Basis data merupakan aspek yang sangat penting dalam sistem informasi dimana basis data merupakan gudang penyimpanan data yang akan diolah lebih lanjut. Basis data menjadi penting karena dapat menghidari duplikasi data, hubungan antar data yang tidak jelas, organisasi data, dan juga update yang rumit.

   Proses memasukkan dan mengambil data ke dan dari media penyimpanan data memerlukan perangkat lunak yang disebut dengan sistem manajemen basis data (database management system | DBMS). DBMS merupakan sistem perangkat lunak yang memungkinkan user untuk memelihara, mengontrol, dan mengakses data secara praktis dan efisien. Dengan kata lain semua akses ke basis data akan ditangani oleh DBMS. Ada beberapa fungsi yang harus ditangani DBMS yaitu mengolah pendefinisian data, dapat menangani permintaan pemakai untuk mengakses data, memeriksa sekuriti dan integriti data yang didefinisikan oleh DBA (Database Administrator), menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun disk, dan menangani unjuk kerja semua fungsi secara efisien.


 >> Source: http://www.termasmedia.com/65-pengertian/69-pengertian-database.html

Data Base Management System ( DBMS )

   DBMS merupakan software ,firmware dan hardware yang diciptakan untuk melindungi dan manajemen data base. DBMS dilengkapi dengan berbagai bahasa generasi 4 atau bahasa tingkat tinggi yang dapat di pahami oleh seorang programmer.

Fungsi dari DBMS yaitu sebagai berikut :

  • Definisi data dan hubungannya
  • Manipulasi data
  • Keamanan dan integritas data
  • Security dan integritas data
  • Recovery/perbaikan dan concurrency data
  • Data dictionary
  • Unjuk kerja / performance
>> Source: http://novtani.wordpress.com/2013/04/11/pengertian-database/

   Tujuan utama dari DBMS adalah untuk memberikan tinjauan abstrak data kepada user (pengguna). Jadi sistem menyembunyikan informasi tentang bagaimana data disimpan, dipelihara, dan tetap dapat diambil (akses) secara efisien. Pertimbangan efisien di sini adalah bagaimana merancang struktur data yang kompleks tetapi masih tetap bisa digunakan oleh pengguna awam tanpa mengetahui kompleksitas strukturnya.

B.Hasil Tugas Praktikum

Menggunakan PostgreSQL

Ctype            |   Access privileges
-----------------+----------+----------+----------------------------+-----------
-----------------+-----------------------
 Coba            | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 alfan10650046   | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 innamul13650019 | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 ismail13650047  | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 postgres        | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 template0       | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 | =c/postgres          +
                 |          |          |                            |
                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 | =c/postgres          +
                 |          |          |                            |
                 | postgres=CTc/postgres
(7 rows)


postgres=# create database contoh1
postgres-# create database contoh1;
ERROR:  syntax error at or near "create"
LINE 2: create database contoh1;
        ^
postgres=# CREATE DATABASE contoh1;
CREATE DATABASE
postgres=# \l
                                                    List of databases
      Name       |  Owner   | Encoding |          Collate           |
Ctype            |   Access privileges
-----------------+----------+----------+----------------------------+-----------
-----------------+-----------------------
 Coba            | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 alfan10650046   | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 contoh1         | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 innamul13650019 | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 ismail13650047  | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 postgres        | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 template0       | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 | =c/postgres          +
                 |          |          |                            |
                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 | =c/postgres          +
                 |          |          |                            |
                 | postgres=CTc/postgres
(8 rows)


postgres=# drop contoh1;
ERROR:  syntax error at or near "contoh1"
LINE 1: drop contoh1;
             ^
postgres=# drop database contoh1;
DROP DATABASE
postgres=# \l
                                                    List of databases
      Name       |  Owner   | Encoding |          Collate           |
Ctype            |   Access privileges
-----------------+----------+----------+----------------------------+-----------
-----------------+-----------------------
 Coba            | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 alfan10650046   | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 innamul13650019 | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 ismail13650047  | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 postgres        | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 |
 template0       | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 | =c/postgres          +
                 |          |          |                            |
                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | English_United States.1252 | English_Un
ited States.1252 | =c/postgres          +
                 |          |          |                            |
                 | postgres=CTc/postgres
(7 rows)


postgres=# \c innamul13650019;
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
You are now connected to database "innamul13650019" as user "postgres".
innamul13650019=# select
innamul13650019-# 9-5+5*0+3:2
innamul13650019-# ;
ERROR:  syntax error at or near ":"
LINE 2: 9-5+5*0+3:2
                 ^
innamul13650019=# \r
Query buffer reset (cleared).
innamul13650019=# 9-5+5*0+3:2;
ERROR:  syntax error at or near "9"
LINE 1: 9-5+5*0+3:2;
        ^
innamul13650019=# \r
Query buffer reset (cleared).
innamul13650019=# 9-5+5*0+3/2;
ERROR:  syntax error at or near "9"
LINE 1: 9-5+5*0+3/2;
        ^
innamul13650019=# \r
Query buffer reset (cleared).
innamul13650019=# 9-5+5*0+3/2
innamul13650019-# ;
ERROR:  syntax error at or near "9"
LINE 1: 9-5+5*0+3/2
        ^
innamul13650019=# \r
Query buffer reset (cleared).
innamul13650019=# select
innamul13650019-# 9-5+5*0+3/2
innamul13650019-# ;
 ?column?
----------
        5
(1 row)


innamul13650019=# select
innamul13650019-# 5%2
innamul13650019-# ;
 ?column?
----------
        1
(1 row)


innamul13650019=# select current_date;
    date
------------
 2014-09-17
(1 row)


innamul13650019=# select current_time;
     timetz
-----------------
 03:54:32.203+07
(1 row)


innamul13650019=# select
innamul13650019-# select current_date-1995-08-15;
ERROR:  syntax error at or near "select"
LINE 2: select current_date-1995-08-15;
        ^
innamul13650019=# select current_date;
    date
------------
 2014-09-17
(1 row)


innamul13650019=# ;select
innamul13650019-# select current_date;
ERROR:  syntax error at or near "select"
LINE 2: select current_date;
        ^
innamul13650019=# select
innamul13650019-# select current_date
innamul13650019-# -1995-08-15
innamul13650019-# ;
ERROR:  syntax error at or near "select"
LINE 2: select current_date
        ^
innamul13650019=# \p
select
select current_date
-1995-08-15
;
innamul13650019=# select
innamul13650019-# select round(5/2::float);
ERROR:  syntax error at or near "select"
LINE 2: select round(5/2::float);
        ^
innamul13650019=# select round(5/2::float);
 round
-------
     3
(1 row)


innamul13650019=# select round(9-5+5*0+3/2::float);
 round
-------
     6
(1 row)


innamul13650019=# setcurrent_time
innamul13650019-# setcurrent_tim;e
ERROR:  syntax error at or near "setcurrent_time"
LINE 1: setcurrent_time
        ^
innamul13650019-# set current_tim;e
ERROR:  syntax error at or near "e"
LINE 1: e
        ^
innamul13650019-# set current_tiem;
ERROR:  syntax error at or near "e"
LINE 1: e
        ^
innamul13650019=# set current_time;
ERROR:  syntax error at or near "current_time"
LINE 1: set current_time;
            ^
innamul13650019=# setcurrent_time;
ERROR:  syntax error at or near "setcurrent_time"
LINE 1: setcurrent_time;
        ^
innamul13650019=# select current_time;
     timetz
-----------------
 04:02:58.703+07
(1 row)


innamul13650019=# select current_date;
    date
------------
 2014-09-17
(1 row)


innamul13650019=# select current_time;
     timetz
----------------
 04:03:14.75+07
(1 row)


innamul13650019=# select extract(day from now()-cast('1995-08-15'as"timestamp"))

innamul13650019-# select extract(day from now()-cast('1995-08-15'as"timestamp"))

innamul13650019-# ;
ERROR:  syntax error at or near "select"
LINE 2: select extract(day from now()-cast('1995-08-15'as"timestamp"...
        ^
innamul13650019=# select extract(day from now(current time_stamp)-cast('1995-08-
15'as"timestamp"))
innamul13650019-# ;
ERROR:  syntax error at or near "time_stamp"
LINE 1: select extract(day from now(current time_stamp)-cast('1995-0...
                                            ^
innamul13650019=# select ex tract(day from now(current time_stamp)-cast('1995-08
-15'as"timestamp"))
innamul13650019-# ;
ERROR:  syntax error at or near "("
LINE 1: select ex tract(day from now(current time_stamp)-cast('1995-...
                       ^
innamul13650019=# select extract(day from now(current time_stamp)-cast('1995-08-
15'as"timestamp"))
innamul13650019-# ;
ERROR:  syntax error at or near "time_stamp"
LINE 1: select extract(day from now(current time_stamp)-cast('1995-0...
                                            ^
innamul13650019=# select extract(day from now()-cast('1995-08-15'as"timestamp"))

innamul13650019-# ;
 date_part
-----------
      6973
(1 row)


innamul13650019=# select round(5/2::float);
 round
-------
     3
(1 row)


innamul13650019=# select extract(minute from now()-cast('1995-08-15'as"timestamp
"))
innamul13650019-# ;
 date_part
-----------
        14
(1 row)


innamul13650019=# select extract(minute from now()-cast('1995-08-15'as"timestamp

Menggunakan MySQL (SQLyog)

    Untuk menggunakan MySQL, maka yang perlu kamu install, yaitu XAMPP dan SQLyog untuk mempermudah penggunaan MySQL. Untuk instalasi XAMPP kamu bisa liat di postingan sebelumnya "Membuat WEB Local Host Menggunakan XAMPP" 






C. Perbandingan:

PostgreSQL =>
   Kelebihan:
  • tampilan shell sangat klasik (mirip CMD) dan memberikan kesan “hanya orang tertentu yang bisa”
   Kelemahan:
  • pengetikan manual, 
  • jika ingin menampilkan database / user dsb harus dengan query, 
  • bilangan hitung desimal hanya dapat dihasilkan dengan query tertentu
MySQL (SQLyog) =>
   Kelebihan: 
  • pengetikan query lebih cepat dan efisien,
  • tampilan bagus, 
  • daftar database terlihat disebelah kiri, 
  • dapat menghitung bilangan hasil desimal, 
  • hasil query dan error ditampilkan pada kotak sebelah bawah (messages/result)
   Kelemahan:
  • Setelah query di run (f9), hasil tidak ditampilkan langsung dipanel database hingga di refresh terlebih dahulu (f5)
D. Kesimpulan

   Saya rasa SQLyog lebih mempermudah user dalam mengetik Query, misalnya saja kita bisa menggunakan tombol tab untuk mempercepat pengetikan Query tersebut, berbeda dengan Postgre yang agak sulit dan lagi dari segi tampilan, saya rasa sudah jelas SQLyog memiliki tampilan yang menawan dan membuat user lebih nyaman pastinya. Semua database yang telah dibuat pun akan langsung terlihat pada sisi kiri. Tapi meski semua DBMS memiliki perbedaan baik berupa kelebihan atau kelemahan, lebih baik untuk dipelajari semuanya agar pengetahuan kita ngga buntu pada satu DBMS aja, dan dengan pengulangan query yang kita lakukan pada setiap DBMS yang kita pelajari maka akan meningkatkan penguasaan query yang dibutuhkan.


Tugas ERD

   Entity Relationship Diagram (ERD) adalah kegiatan awal untuk memodelkan data-data dalam membuat suatu proyek atau sebuah rancangan sistem suatu database sebelum dibuat menjadi database. Dan keliatannya ada kemiripan dengan Flowchart di Algoritma.

   ERD ini berkenaan tentang "Sistem Peminjaman CD Game", dan seratus persen buat sendiri B-). 

   Entitas : Anggota, Pengembalian, Pegawai, Peminjaman dan CD Game
   Atribut : Nama, Nama Depan, Nama Belakang, ID Anggota, Alamat, Tanggal Kembali, Kode Kembali, ID Pegawai, Nama Pegawai, Kode Pinjam, Tanggal Kembali, Tanggal Pinjam, No. CD, Jumlah Keping CD, Judul Game
   Relasi : Mengembalikan, Mengelola Pengembalian, Mengelola Peminjaman, Transaksi Peminjaman


   Mohon kritik dan sarannya kalo banyak salah, komentar dibawah, bagi "copaser" jangan lupa sourcenya dari sini (setengah hati ngasi-nya) -_-