PRAKTIKUM
DESAIN BASIS DATA
Pengenalan
dan instalasi
PostgreSQL
vs mysql pada XAMPP
Landasan
teori dan materi
PostgreSQL
PostgreSQL merupakan database RDMBS ‘bebas’ yang powerful dan tidak kalah
dengan database komersil sekelasnya Oracle, maupun Sybase, dan Informix,
seperti Blue Elephant yang menjadi gambar logonya. Pengembang PostgreSQL selama
ini adalah ratusan orang di banyak universitas dan organisasi yang melakukan
kominikasi lewat internet.
Berbagai fitur yang ada di PostgreSQL, merupakan jawaban untuk
mereka yang memerlukan fasilitas
tersebut tapi belum menemukannya di MySQL. Anda akan diajak pula dari melakukan
instalasi sampai mempergunakan tool-tool berbasis gratis untuk melakukan
pemeliharaan database dan sebagai user PostgreSQL. Kelebihan Postgres
dibandingkan dbms lainnya adalah: sifatnya yang free dan open-source, dukungan
dokumentasinya yang luar biasa, fleksibilitasnya dan fitur-fiturnya yang tidak
kalah dengan dbms komersial. Selain mendukung model data object-relational,
postgres juga mendukung penggunaan basis data spasial (biasanya untuk
penggunaan Sistem informasi geografis). Postgres, juga mendukung operasi
multi-user dan multi-threaded, bahkan mungkin lebih bagus dari mysql dari sisi
keamanan.
PostgreSQL tersedia baik berupa kode sumber maupun paket binari untuk
berbagai distribusi Linux, Mac OS X, FreeBSD, Solaris dan MS-Windows yang
semuanya dapat diunduh di situs pengembangnya.
Berikut cara penginstallannya :
Setelah
mendownload file postgresql di link ini : http://www.enterprisedb.com/products-services-training/pgdownload, klik ganda
file tersebut. kemudian akan tampilkan halaman awal instalasi postgresql
seperti yang ditunjukan pada gambar di bawah ini.
- 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.
- Pilih direktori tempat penyimpanan data, tetapi saya sarankan agar tidak merubahnya dan melih secara default saja. Kemudian tekan tombol Next.
- Kemudikan isikan password yang akan digunakan untuk koneksi ke database PostgreSQL setelah proses instalasi selesai. Misalnya kita masukan password “root”.
- pada jendela setup port biarkan saja secara default yaitu “5432”. Kemudian klik tombol next
- Dijendela setup advance options biarkan saja secara default seperti yang terlihat dalam gambar. Kemudian klik tombol next.
- 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.
- 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.
-
(http://sharingk.com/berita-160-instalasi-postgresql-di-windows.html)
Hasil
praktikum Desain Basis Data
Menggunakan PosgresSQL tepatnya
SQL Shell (psql)
Server
[localhost]:
Database
[postgres]:
Port [5432]:
Username [postgres]:
Password for
user postgres:
psql (9.3.5)
WARNING:
Console code page (850) differs from Windows code page (1252)
8-bit characters might not work
correctly. See psql reference
page "Notes for Windows
users" for details.
Type
"help" for help.
1. Buatlah user baru dengan nama user nama depan
pribadi mahasiswa dan password menggunakan nim masing – masing.
postgres=#
create user ayu with createdb password '13650039';
CREATE ROLE
postgres=#
\du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
ayu
| Create DB | {}
postgres
| Superuser, Create role, Create DB, Replication | {}
2. Buatlah 2 database dengan nama : namaNIM
masing-masing praktikan. Misal : “aziz05550057” dan
nama
database : contoh1.
postgres=#
create database ayu13650039;
CREATE
DATABASE
postgres=#
\l
List of databases
Name
| Owner | Encoding | Collate | Ctype
|
Access privileges
-------------+----------+----------+---------------------------+----------------
-----------+-----------------------
ayu13650039 | postgres | UTF8 | Indonesian_Indonesia.1252 |
Indonesian_Indo
nesia.1252
|
postgres
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
template0
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
=c/postgres +
| | | |
| postgres=CTc/postgres
template1
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
=c/postgres +
| | | |
| postgres=CTc/postgres
(4 rows)
postgres=#
create database contoh1;
CREATE
DATABASE
postgres=#
\l
List of databases
Name
| Owner | Encoding | Collate | Ctype
|
Access privileges
-------------+----------+----------+---------------------------+----------------
-----------+-----------------------
ayu13650039 |
postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252
|
contoh1
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252
|
postgres
| postgres | UTF8 | Indonesian_Indonesia.1252 |
Indonesian_Indo
nesia.1252 |
template0
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
=c/postgres +
| | | |
| postgres=CTc/postgres
template1
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
=c/postgres +
| | | |
| postgres=CTc/postgres
(5 rows)
3. Hapuslah database contoh1.
postgres=#
drop database contoh1;
DROP
DATABASE
postgres=#
\l
List of databases
Name
| Owner | Encoding | Collate | Ctype
|
Access privileges
-------------+----------+----------+---------------------------+----------------
-----------+-----------------------
ayu13650039 |
postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252
|
postgres
| postgres | UTF8 | Indonesian_Indonesia.1252 |
Indonesian_Indo
nesia.1252 |
template0
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
=c/postgres +
| | | |
| postgres=CTc/postgres
template1
| postgres | UTF8 |
Indonesian_Indonesia.1252 | Indonesian_Indo
nesia.1252 |
=c/postgres +
| | | |
| postgres=CTc/postgres
(4 rows)
4. Jawablah soal matematika berikut menggunakan
query buffer 9 - 5 + 5 x 0 + 3 : 2 = .... ?
postgres=#
select 9-5+5*0+3/2;
?column?
----------
5
(1 row)
postgres=#
select 9-5+5*0+3/2::float; (untuk menjadikan pecahan)
?column?
----------
5.5
(1 row)
postgres=#
select round (9-5+5*0+3/2::float); (untuk membulatkan hasil)
round
-------
6
(1 row)
5. Jawablah soal matematika berikut menggunakan
query buffer 5%2=...?
postgres=#
select 5%2;
?column?
----------
1
(1 row)
6. Tampilkan qurey untuk memperoleh tanggal dan
jam sekarang?
postgres=#
select current_timestamp;
now
----------------------------
2014-09-20 08:56:20.703+07
(1 row)
postgres=#
select current_date;
date
------------
2014-09-20
(1 row)
7. Tampilkan selisih hari dalam untuk
pengurangan waktu sekarang dengan waktu lahir
praktikan?
postgres=#
select extract (day from now () -cast ('1995-01-01' as "timestamp"));
date_part
-----------
7202
(1 row)
postgres=#
select (cast ('2014-09-20' as "timestamp")) -(cast ('1995-01-01' as
"
timestamp"));
?column?
-----------
7202 days
(1 row)
postgres=#
Pekerjaan rumah
Pada pekerjaan rumah ini, saya memakai cmd mySQL pada XAMPP untuk membandingkan dengan SQL Shell pada PostdreSQL. Berikut sedikit pengertiannya :
XAMPP
merupakan singkatan dari X yaitu4 sistem opertasi apapun, Apache, MySQL, PHP,
Perl. XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu
buah paket yang mana paketnya sudah terdapat Apache yaitu web server, MySQL
yaitu database, PHP yaitu server sidw scripting, Perl, FTP server, phpMyAdmin
dan berbagai pustaka bantu lainnya. Sehingga dengan menginstall XAMPP maka
XAMPP akan menginstall dan mengkonfigurasikan semua itu secara otomatis. Selain
itu, XAMPP tersedia untk Linux, Windows, Mac OS X maupun Solaris sehingga
memudahkan membuat webserver multiplatform. XAMPP juga 100% open source,
tersedia bebas dan legal.
MySQL pada
XAMPP perkembangannya disebut SQL yang merupakan kepanjangan dari Structure
Query Language. SQL ini merupakan bahasa terstruktur yang khusus digunakan
untuk mengolah database. Tidak kalah dengan PostgreSQL, SQL ini juga bisa
mengelola database mulai dari yang terkecil hingga terbesar dan mengelola
database-database yang ada di dalamnya.
menggunakan
cmd >> mysql xampp
Microsoft
Windows [Version 6.1.7600]
Copyright
(c) 2009 Microsoft Corporation. All
rights reserved.
C:\Users\Ayu>cd..(cd ini di gunakan untuk untuk keluar dari direktori (karena awal masuk di Command Prompt kita
berada di direktori Users\ayu))
C:\Users>cd.. (cd ini di gunakan untuk untuk keluar dari direktori (karena awal masuk di Command Prompt kita
berada di direktori Users))
C:\>cd\xampp\xampp
terbaru\xampp\mysql\bin (ini untuk masuk ke xampp\bin)
C:\xampp\xampp
terbaru\xampp\mysql\bin>mysql -u root -p (ini untuk masuk ke bin\mysql)
Enter
password:
Welcome to
the MySQL monitor. Commands end with ;
or \g.
Your MySQL
connection id is 149
Server
version: 5.5.25a MySQL Community Server (GPL)
Copyright
(c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a
registered trademark of Oracle Corporation and/or its
affiliates.
Other names may be trademarks of their respective
owners.
Type 'help;'
or '\h' for help. Type '\c' to clear the current input statement.
1. Buatlah user baru dengan nama user nama depan
pribadi mahasiswa dan password menggunakan nim masing – masing.
mysql>
create user ayu identified by '13650039';
Query OK, 0
rows affected (0.00 sec)
2. Buatlah 2 database dengan nama : namaNIM
masing-masing praktikan. Misal : “aziz05550057” dan
nama
database : contoh1.
mysql>
create database ayu13650039;
Query OK, 1
row affected (0.02 sec)
mysql>
show databases;
+--------------------+
|
Database |
+--------------------+
|
information_schema |
|
ayu13650039 |
| cdcol |
| mysql |
|
performance_schema |
|
phpmyadmin |
| test |
|
webauth |
+--------------------+
8 rows in
set (0.00 sec)
mysql>
create database contoh1;
Query OK, 1
row affected (0.00 sec)
mysql>
show databases;
+--------------------+
|
Database |
+--------------------+
|
information_schema |
|
ayu13650039 |
| cdcol |
|
contoh1 |
| mysql |
|
performance_schema |
|
phpmyadmin |
| test |
|
webauth |
+--------------------+
9 rows in
set (0.00 sec)
3. Hapuslah database contoh1.
mysql>
drop database contoh1;
Query OK, 0
rows affected (0.01 sec)
mysql>
show databases;
+--------------------+
|
Database |
+--------------------+
| information_schema
|
|
ayu13650039 |
| cdcol |
| mysql |
|
performance_schema |
|
phpmyadmin |
| test |
|
webauth |
+--------------------+
8 rows in
set (0.00 sec)
mysql>
select 9-5+5*0+3/2;
+-------------+
|
9-5+5*0+3/2 |
+-------------+
| 5.5000 |
+-------------+
1 row in set
(0.01 sec)
mysql>
select round (9-5+5*0+3/2);
+---------------------+
| round
(9-5+5*0+3/2) |
+---------------------+
| 6 |
+---------------------+
1 row in set
(0.03 sec)
4. Jawablah soal matematika berikut menggunakan
query buffer 9 - 5 + 5 x 0 + 3 : 2 = .... ?
mysql>
select 9-5+5*0+3/2::float;
ERROR 1064
(42000): You have an error in your SQL syntax; check the manual that
corresponds
to your MySQL server version for the right syntax to use near '::flo
at' at line
1 (tidak bisa dengan ‘float’)
5. Jawablah soal matematika berikut menggunakan
query buffer 5%2=...?
mysql>
select 5%2;
+------+
| 5%2 |
+------+
| 1 |
+------+
1 row in set
(0.00 sec)
6. Tampilkan qurey untuk memperoleh tanggal dan
jam sekarang?
mysql>
select current_timestamp;
+---------------------+
|
current_timestamp |
+---------------------+
| 2014-09-20
12:34:31 |
+---------------------+
1 row in set
(0.00 sec)
mysql>
select current_date;
+--------------+
|
current_date |
+--------------+
|
2014-09-20 |
+--------------+
1 row in set
(0.00 sec)
7. Tampilkan selisih hari dalam untuk
pengurangan waktu sekarang dengan waktu lahir
praktikan?
mysql>
select extract (day from now()-cast ('1995-01-01' as "timestamp"));
ERROR 1064
(42000): You have an error in your SQL syntax; check the manual that
corresponds
to your MySQL server version for the right syntax to use near 'from
now()-cast
('1995-01-01' as "timestamp"))' at line 1
mysql>
select (cast ('2014-09-20'as "timestamp"))-cast ('1995-01-01' as
"timesta
mp"));
ERROR 1305
(42000): FUNCTION cast does not exist (syntax tidak
sama seperti di SQL Shell)
mysql>
select to_days(now())-to_days('01-01-1995');
+--------------------------------------+
|
to_days(now())-to_days('01-01-1995') |
+--------------------------------------+
| NULL |
+--------------------------------------+
1 row in
set, 1 warning (0.00 sec) (format tgl tidak bisa ‘tgl-bln-thn’,
harus ‘thn-bln-tgl’)
mysql>
select to_days(now())-to_days('1995-01-01'postgres=# select extract (day from
now () -cast ('1995-01-01' as "timestamp"));
postgres=#
select (cast ('2014-09-20' as "timestamp")) -(cast ('1995-01-01' as
"
timestamp"));
mysql>
select extract (day from now()-cast ('1995-01-01' as "timestamp"));
ERROR 1064
(42000): You have an error in your SQL syntax; check the manual that
corresponds
to your MySQL server version for the right syntax to use near 'from
now()-cast
('1995-01-01' as "timestamp"))' at line 1
mysql>
select (cast ('2014-09-20'as "timestamp"))-cast ('1995-01-01' as
"timesta
mp"));
ERROR 1305
(42000): FUNCTION cast does not exist (syntax tidak
sama seperti di SQL Shell)
mysql>
select to_days(now())-to_days('01-01-1995');
+--------------------------------------+
|
to_days(now())-to_days('01-01-1995') |
+--------------------------------------+
| NULL |
+--------------------------------------+
1 row in
set, 1 warning (0.00 sec) (format tgl tidak bisa ‘tgl-bln-thn’,
harus ‘thn-bln-tgl’)
mysql>
select to_days(now())-to_days('1995-01-01'
);
+--------------------------------------+
|
to_days(now())-to_days('1995-01-01') |
+--------------------------------------+
| 7202 |
+--------------------------------------+
1 row in set
(0.00 sec)
mysql>
Perbandingan
dengan cmd mysql pada XAMPP
Menurut hasil
praktikum dan hasil pekerjaan rumah yang telah saya kerjakan, tidak banyak
perbedaan antara SQL Shell dan cmd mysql pada Xampp. Hanya beberapa syntax pada
SQL Shell yang tidak bisa di baca di dalam cmd mysql pada Xampp, seperti
berikut :
-syntax pada
soal create user :
postgres=#
create user ayu with createdb password '13650039';
dan
mysql> create user ayu identified by
'13650039';
-syntax pada
soal perhitungan 9-5+5*0+3/2,
pada postgres jika tidak ditambah kan “::float” maka hasilnya pasti bilangan
bulat, bukan pecahan. Tidak seperti di mysql, jika ditambahkan “::float” maka
hasilnya akan ERROR, dan jika tidak ditambahkan “::float” maka hasilnya pasti
pecahan atau hasil aslinya. Berikut syntaxnya :
postgres=# select 9-5+5*0+3/2;
mysql>
select 9-5+5*0+3/2;
-selain itu,
syntax untuk mengetahui sudah berapa hari kita lahir juga tidak sama, apabila
syntax di postgres di jalankan di mysql maka hasilnya akan error. Sehingga di my
sql menggunakan syntax yang berbeda. Tetapi pada psql dan cmd mysql mempunyai
kesamaan pada format tanggalnya, yaitu th-bl-tgl. Jika dibalik maka hasilnya
akan NULL seperti pembahasan di atas.
postgres=# select extract (day from now ()
-cast ('1995-01-01' as "timestamp"));
postgres=#
select (cast ('2014-09-20' as "timestamp")) -(cast ('1995-01-01' as
"
timestamp"));
mysql>
select extract (day from now()-cast ('1995-01-01' as "timestamp"));
ERROR 1064
(42000): You have an error in your SQL syntax; check the manual that
corresponds
to your MySQL server version for the right syntax to use near 'from
now()-cast
('1995-01-01' as "timestamp"))' at line 1
mysql>
select (cast ('2014-09-20'as "timestamp"))-cast ('1995-01-01' as
"timestamp"));
ERROR 1305
(42000): FUNCTION cast does not exist (syntax tidak
sama seperti di SQL Shell)
mysql> select
to_days(now())-to_days('1995-01-01'); (ini syntax yg di
gunakan pada mysql)
Pada psql, untuk mendeteksi
kesahalan atau eror itu cukup jelas tidak seperti di cmd mysql yang hanya di
beritahukan eror. Seperti dibawah ini :
postgres=#
create user ayu with creatdb password '13650039';
ERROR: unrecognized role option "creatdb"
LINE 1:
create user ayu with creatdb password '13650039';
^
mysql>
select extract (day from now()-cast ('1995-01-01' as "timestamp"));
ERROR 1064
(42000): You have an error in your SQL syntax; check the manual that
corresponds
to your MySQL server version for the right syntax to use near 'from
now()-cast ('1995-01-01' as
"timestamp"))' at line
Begitulah perbandingan menurut
saya, yang mana perbandingannya tidak begitu banyak. hanya beberapa syntax yang berbeda, dan pendeteksi error yang lebih baik pada postgres (SQL Shell) dan hasil perhitungan yang lebih rinci saat menggunakan cmd mysql pada XAMPP.
kesimpulan
Kesimpulan dari hasil praktikum dan pekerjaan rumah yang telah
saya kerjakan adalah :
-
# Pada SQL Shell dan cmd mySQL mempunyai kelebihan masing-masing.
-
# Pada psql maupun pada cmd mysql, syntaxnya sangat sensitif.dan
apabila terdeteksi kesalahan tulis , maka pendeteksi lebih spesifik adalah
adalah pada SQL Shell.
-
# Pada cmd mySQL (XAMPP),
hasil perhitungannya lebih rinci tanpa di tambah syntax.
Kritik dan
saran
Kritik
ini untuk para pemula yang baru belajar tentang pembuatan database agar memperhatikan
dasar-dasarnya, dan untuk para senior agar membantu mengembangkan blog ini.
Saran saya untuk para pembaca
yaitu agar lebih teliti dan lebih memperhatikan jika menulis syntax dan sebelum
melakukan agar berdoa terlebih dahulu supuya sukses dan berhasil saat membuat
program. Semoga blog ini bermanfaat bagi pembaca khusus para pemula seperti
saya untuk memulai belajar PostgreSQL dan MySQL pada XAMPP. Terakhir,
terimakasih telah membaca blog saya.. ^_^
-
Tidak ada komentar:
Posting Komentar