Minggu, 21 September 2014

Pengenalan Data Base dan Postgre

1. DATABASE
Oke, langsung saja, sekarang saya pengen menjelaskan tentang Basis Data.
Basis Data adalah kumpulan informasi yang disimpan dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memeperoleh suatu informasi dari basis data tersebut. Untuk lebih jelasnya lihat contoh database :



oke, udah lumayan ngerti kan?
ya, walaupun nggak ngerti secara teori yang penting udah ada bayangan lah :D
Contoh yang lebih umum lagi yag udah biasa kita kenal misalnya buku telepon, buku alamat, katalog perpus, daftar nama barisan para mantan. etc.


Pada sebuah database ada berbagai elemen yang saling berhubungan sehingga membentuk sebuah relasi dan saling berhubungan antara yang satu dengan yang lainnya.  Ada setidaknya 3 elemen dasar pada sebuah database yang kita kenal.

  1. File / Entity; Objek tempat data atau record di simpan
  2. Record; Merupakan setiap baris data yang ada pada entity
  3. Field / Atribute; bagian dari record seperti kolom.
Entititas
Entititas adalah orang, tempat, kejadian atau konsep yang informasinya direkam.
Pada bidang kesehatan Entity adalah Pasien, Dokter, Kamar.
Field
Setiap entity mempunyai atribut atau sebutan untuk mewakili suatu entity. Seorang
siswa dapat dilihat dari atributnya misalnya, NIM, Nama_siswa, Alamat.
Record
Record adalah kumpulan isi elemen data (atribut) yang saling berhubungan
menginformasikan tentang suatu entity secara lengkap.

Perangkat lunak yang digunakan untuk memanipulasi basis data yang ada dalam komputer dinamakan database management system (DBMS). Ada banyak jenis DBMS yang ada di dunia manusia saat ini. seperti MySQL , Oracle, Postgre dan sebagainya (cari sendiri di google). yang pada intinya fungsi dari DBMS tersebut adalah menyimpan mengambil dan memanipulasi basis data secara mudah dan efisien.
Jadi Data Base Management System (DBMS) : Seluruh peralatan computer (Hardware+Software+Firmware). Data Base Management System (DBMS) dilengkapi dengan bhs yang bertujuan pada data (High level data language) yang kerap dimaksud juga untuk bhs generasi ke 4 (fourth generation language).
Fungsu Data Base Management System (DBMS) 

  1. Data Definition, Data Base Management System (DBMS) mesti bisa memproses pendefinisian data 
  2. Data Manipulation, Data Base Management System (DBMS) mesti bisa mengatasi keinginan dari pengguna untuk terhubung data 
  3. Data Security & Integrity, Data Base Management System (DBMS) mesti dapatmemeriksa security serta integrity data yang didefinisikan oleh DBA 
  4. Data Recovery & Concurency, Data Base Management System (DBMS) mesti bisa mengatasi kegagalan–kegagalan pengaksesan database yang bisa dikarenakan oleh sesalahan system, rusaknya disk, dsb. 
  5. Data Dictionary, Data Base Management System (DBMS) mesti sediakan data dictionary. 
  6. Performance, Data Base Management System (DBMS) mesti mengatasi unjuk kerja dari seluruh manfaat seefisien barangkali. 

Peralatan untuk mengambil keputusan/memastikan pendekatan database dimaksud DBMS.
Data Base Management System (DBMS) adalah software (serta hardware) yang kusus didesain membuat perlindungan serta memanage database.


Well, then... dari tadi kita udah ngomongin database, tapi belum ngomongin apa sih fungsinya database, penting nggak sih? ngapain kita belajar database?
sekarag kalian pernah nggak pesen tiket kereta api online, nyari buku di komputer pencari buku di gramedia, beli pulsa listrik. Itulah gampangngannya fungsi database itu buat nyimpen data - data yang kalian butuhkan. Sewaktu - waktu bisa kalian ambil, ubah atau dihapus sesuai kebutuhan. Fungsi yang simple tapi gokil bukan? :D oke sekarang fungsi yang lebih spesifiknya :

  • Mengelompokkan data, database bertujuan untuk mengelompokkan data agar mudah dipahami. Contoh dalam sebuah sistem perpustakaan, ada kelompok data buku, penerbit, transaksi peminjaman, dan mahasiswa.
  • Menghindari terjadinya duplikasi atau inkonsistensi data.
  • Memudahkan dalam menyimpan, mengakses, dan memperbaruhi, serta menghapus data.
  • Menjamin kualitas data dan informasi yang diakses sesuai dengan yang dimasukkan (Integritas data)
  • Menjadi solusi dalam proses penyimpanan sebuah data, terutama data yang besar.
  • Menunjang kinerja aplikasi yang membutuhkan sebuah penyimpanan data.

2. POSTGRESQL

Oke, selanjutnya saya mau bahas PostgreSQL. adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.

Lets Check It Out...
untuk softwarenya bisa di download di ... (nyari sendiri di google)
udah di download sekarang diinstal, ya buat yang udah sering / pengalaman nginstall software atau game pastinya nggak akan menemui kesulitan, untuk lebih jelasnya scroll ke bawah dong mousenya.

Abis di-download ekstrak file postgresql-9.0.4-1-windows.rar hingga berubah ke dalam bentuk .exe terus klik ganda file tersebut. Kemudian akan tampilkan hlaman awal instalasi postgresql seperti yang ditunjukan pada gambar di bawah ini.

  1. Tampilan awal proses instalasi PostgreSQL. Kemudian klik  tombol Next.Pilih direktori tempat
    penginstalan, biarkan saja defaultnya atau ganti sesuai keinginan anda. Kemudian klik tombol Next.
  2. Pilih direktori tempat penyimpanan data, tetapi saya sarankan agar tidak merubahnya dan melih secara default saja. Kemudian tekan tombol Next.
  3. Kemudikan isikan password yang akan digunakan untuk koneksi ke database PostgreSQL setelah proses instalasi selesai. Misalnya kita masukan password “root”.
  4. pada jendela setup port biarkan saja secara default yaitu “5432”. Kemudian klik tombol next
  5. Dijendela setup advance options biarkan saja secara default seperti yang terlihat dalam gambar. Kemudian klik tombol next.
  6. Pada jendela  setup ready to install klik tombol next. Kemudian akan muncul jendela yang menunjukan proses instalasi sedang berlangsung, tunggu beberapa saat hingga peoses instalasi selesai.
  7. Proses instalasi selesai. Uncheck kotak Launch Stack Builder, sebab jika diberi tanda check maka proses instalasi akan dilanjutkan dengan mendownload beberapa program pendukung seperti pendukung koneksi dengan basis data, dan sebagainya: kemudian klik tombol Finish.
  8. Untuk menjalankan PostgreSQL, lewat menu Start klik all program trus cari PostgreSQL 9.0. Lalu klik pgAdmin III. Kemudian akan jendela kerja PostgreSQL seperti pada gambar dibawah ini.
  9. Untuk menjalankan PostgreSQL, lewat menu Start klik all program trus cari PostgreSQL 9.0. Lalu klik pgAdmin III. Kemudian akan jendela kerja PostgreSQL seperti pada gambar dibawah ini. 


Cara penggunaan PostgreSQL seperti pembuatan basis data, pembuatan tabel, pengaturan primary key dan foreign key, serta cara mengisi data ke dalam tabel dibahas pada tutorial “Membuat Database dan Tabel di PostgreSQL“.

Jika ada trouble saat memberikan password, bisa dicoba trick berikut :

  • Jika sudah pernah melakukan instalasi Postgres, maka pastikan bahwa pada saat intalasi yang kedua kali dan seterusnya menggunakan password yang sama.
  • Biasanya, pada saat instalasi Postgres akan membuat account baru untuk Windows 7 dengan nama account Postgres. Pastikan bahwa password Windows account untuk Postgres sama dengan password saat instalasi Postgres.
  • Jika biasanya untuk masuk ke Windows 7 Anda tidak menggunakan password, maka sebaiknya buatlah sebuah account baru sebagai Admin, sehingga trik no 2 di atas dapat kerjakan.

3. HASIL PRAKTIKUM (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 |
 muzakki13650026 | 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 |
 muzakki13650026 | 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 |
 muzakki13650026 | 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 muzakki13650026;
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 "muzakki13650026" as user "postgres".
muzakki13650026=# select
muzakki13650026-# 9-5+5*0+3:2
muzakki13650026-# ;
ERROR:  syntax error at or near ":"
LINE 2: 9-5+5*0+3:2
                 ^
muzakki13650026=# \r
Query buffer reset (cleared).
muzakki13650026=# 9-5+5*0+3:2;
ERROR:  syntax error at or near "9"
LINE 1: 9-5+5*0+3:2;
        ^
muzakki13650026=# \r
Query buffer reset (cleared).
muzakki13650026=# 9-5+5*0+3/2;
ERROR:  syntax error at or near "9"
LINE 1: 9-5+5*0+3/2;
        ^
muzakki13650026=# \r
Query buffer reset (cleared).
muzakki13650026=# 9-5+5*0+3/2
muzakki13650026-# ;
ERROR:  syntax error at or near "9"
LINE 1: 9-5+5*0+3/2
        ^
muzakki13650026=# \r
Query buffer reset (cleared).
muzakki13650026=# select
muzakki13650026-# 9-5+5*0+3/2
muzakki13650026-# ;
 ?column?
----------
        5
(1 row)


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


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


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


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


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


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


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


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


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


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

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

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

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


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


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


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


4. MYSQL VS POSTGRE

Kalian pernah nonton Barca vs Real Madrid? ya itu namanya el clasico itu pertandingan seru banget, pastinya itu nggak ada hubungannya sama postgre & mySQL :D . serius banget sih?
Oke, langsung aja, sebenernya maksud saya ngomongin el clasico tadi, mau ngebahas perandingan antara MySQL dan Postgre. Check it out...

Perbandingan
Mysql
Postgresql
Tujuan Desain
berkembang dari solusi yang dipakai oleh pembuatnya, TcX AB, dalam memroses data untuk aplikasi Web. Fokusnya adalah pada kecepatan
berkembang dari riset akademik. Fokus pengembangan PostgreSQL adalah pada fitur OO, reliabilitas, dan dukungan SQL yang mantap
Pengembangan
diatur secara sentral oleh perusahaan komersial di Swedia bernama MySQL AB (sebelumnya TcX AB)
dikembangkan secara lebih terdesentralisasi dan merakyat, namun tetap diatur oleh sebuah kelompok online bernama PostgreSQL Development Group
Arsitektur dan Portabilitas
memiliki arsitektur multithreading
memiliki arsitektur multiproses (forking)
        Lisensi
lisensi di bawah GPL, tidak boleh dimodifikasi menghasilkan produk turunan yang closed-source
Lisensi PostgreSQL lebih liberal
Kecepatan
(Relatif), terkenal cepat dalam melakukan query sederhana. Dengan kata lain, dapat memproses lebih banyak SQL per satuan waktu. Tapi dalam kondisi load tinggi (jumlah koneksi simultan besar)
(Relatif),namun sudah mencukupi kecepatan umum
Fungsi Built-In
Kaya fungsi built-in, seperti modifikasi string (REPLACERIGHT,LTRIMLCASE), matematika (LOGLOG10), tanggal, dsb. Dalam hal ini MySQL lebih unggul
Memiliki fungsi built-in tetapi tidak sebanyak Mysql
                                                    Tipe Data
sudah mendukung semua tipe data umum
PostgreSQL lebih kaya dalam hal tipe data (terutama yang domain-specific seperti tipe data geometris dan MONEY)
            Fitur OO dan
             SQL
MySQL pun tidak memiliki fitur OO seperti pewarisan tabel dan tipe data, atau tipe data array
Postgresql memiliki lebih banyak fitur jika dibandingkan dengan Mysql
Fitur Unik

memiliki arsitektur yang memungkinkan sebuah database terdiri dari beberapa jenis tabel, MySQL mendukung protokol terkompresi yang bisa menghemat bandwidth dan mengurangi latensi
memiliki tipe data array, pewarisan tabel dan tipe data, serta sistem rule. PostgreSQL memiliki tipe-tipe data “antik.” Di PostgreSQL Anda dapat menulis stored procedure (atau procedural language, istilah di PostgreSQL) dalam beberapa bahasa: PL/Perl, PL/Tcl, atau PL/PgSQL. PostgreSQL mendukung set/himpunan

So, the conclusion is...
Database merupakan kumpulan data yang saling berhubungan. Hubungan antar data dapat ditunjukan dengan adanya field/kolom kunci dari tiap file/tabel yang ada. salah satu hal yang harus dipikirkan apakah kita membuat aplikasi web yang dibutuhkan adalah kecepatan. maka mysql adalah yang terbaik karena memilki kecepatan dan kompatibel dengan banyak web based development. namun jika membutuhkan foreign key dan transaction postgresql lebih baik dalamhalini. Sebenarnya jika dilhat dari tabel fitur postgresql menawakan fitur yang lebih daripada mysql. Namun postgreql lebih jarang digunakan pada aplikasi web. ada pandangan bahwa fitur tersebut memperlambat performa postgresql sehingga tidak cocok untuk web.
Jadi dua - duanya memilki kelemahan dan kekuatan masing-masing.  Bahkan jika dibandingkan lebih cermat tidak ada yang saling melebihi, karena keduanya memilki porsinya masing-masing dalam dunia database, bahkan kedua database ini dapat digunakan untuk suatu sistem misalnya untuk GIS pada web, kita dapat menyimpan data GIS pada postgresql dan menggunakan pula mysql sebagai buffer untuk mempercepat akses basis data melalui web. Namun kalo menurut saya pribadi, baik MySQL ataupun PostgreSQL sama saja karena saya belum menguasai keduanya. :D

4. TUGAS ERD

Sekarang saatnya saya menjelaskan tentang apa itu ERD.ERD (Entity Relationship Diagram) adalah merupakan salah satu model yang digunakan untuk mendesain database dengan tujuan menggambarkan data yang berelasi pada sebuah database. Umumnya setelah perancangan ERD selesai berikutnya adalah mendesain database secara fisik yaitu pembuatan tabel, index dengan tetap mempertimbangkan performance. Kemudian setelah database selesai dilanjutkan dengan merancang aplikasi yang melibatkan database. Komponen penyusun ERD adalah sebagai berikut :

Entitas adalah objek dalam dunia nyata yang dapat dibedakan dengan objek lain, sebagai contoh mahasiswa,dosen,departemen. Entitias terdiri atas beberapa atribut sebagai contoh atribut dari entitas mahasiswa adalah nim,nama,alamat,email, dll. Atribut nim merupakan unik untuk mengidentifikasikan / membedakan mahasiswa yg satu dengan yg lainnya. Pada setiap entitas harus memiliki 1 atribut unik atau yang disebut dengan primary key.
Relasi adalah hubungan antara beberapa entitas. sebagai contoh relasi antar mahaiswa dengan mata kuliah dimana setiap mahasiswa bisa mengambil beberapa mata kuliah dan setiap mata kuliah bisa diambil oleh lebih dari 1 mahasiswa. relasi tersebut memiliki hubungan banyak ke banyak. Berikut adalah contoh ERD.
Kardinalitas menyatakan jumlah himpunan relasi antar entitias. pemetaan kardiniliat terdiri dari
  • one-to-one :sebuah entitas pada A berhubungan dengan entitas B paling banyak 1contoh diatas relasi pegawai dan departemen dimana setiap pegawai hanya bekerja pada 1 departemen
  • one-to-many : sebuah entitas pada A berhubungan dengan entitas B lebih dari satu contoh diatas adalah 1 depertemen memiliki banyak pegawai
  • many-to-many : sebuah entitas pada A berhubungan dengan entitas B lebih dari satu dan B berhubungan dengan A lebih dari satu jugan contoh diatas adalah relasi mahasiswa dengan mata kuliah.

Berikut adalah metode/tahap untuk membuat ERD :




  1. Menentukan Entitas
  2. Menentukan Relasi
  3. Menggambar ERD sementara
  4. Mengisi Kardinalitas
  5. Menentukan Kunci Utama
  6. Menggambar ERD berdasar Key
  7. Menentukan Atribut
  8. Memetakan Atribut
  9. Menggambar ERD dengan Atribut

4. DAFTAR CONTEKAN

http://klmpk10id101k.blogspot.com/2012/10/perbandingan-database-mysql-dan.html
http://kumpulanmateripenting.blogspot.com/2013/04/pengertian-dan-konsep-sistem-basis-data.html
http://blogging.co.id/fungsi-database
http://informatika.web.id/pengertian-basis-data.htm
http://sharingk.com/berita-160-instalasi-postgresql-di-windows.html

0 komentar:

Posting Komentar