Showing posts with label PostgreSQL. Show all posts
Showing posts with label PostgreSQL. Show all posts

Install PostgreSQL dan phpPgAdmin di Linux

Wednesday, January 27, 2016 Add Comment
Berikut langkah-langkah menginstal postgresql dan phppgadmin di linux :

1. Instal PostgreSQL terlebih dahulu dengan mengetikkan perintah sudo apt-get install postgresql


2. Instal phpPgAdmin dengan mengetikkan perintah sudo apt-get install phppgadmin


3. Konfigurasi apache2.conf dengan mengetikkan perintah gksudo gedit /etc/apache2/apache2.conf


4. Buka psql dengan mengetikkan perintah sudo –u postgres psql


5. Alter user


6. Buat user baru


7. Buka localhost/phppgadmin


8. Login user dan masuk ke sistem database postgresql



Sekian dan terima kasih
Semoga bermanfaat :)

Implementasi Basis Data

Tuesday, January 26, 2016 6 Comments
Pengertian
Implementasi basis data merupakan suatu tahapan dalam proses perancangan basis data. Tahap ini merupakan implementasi dari hasil pemodelan logical dan fisikal. Bahasa perintah yang digunakan, baik itu untuk definisi data ataupun penyimpanan data harus sesuai dengan DBMS yang dipilih. Implementasi penyusunan basis data dimulai dari pembuatan berkas-berkas data(tabel-tabel entity) kosong yang akan digunakan untuk menyimpan data dalam basis data. Kemudian dilanjutkan dengan pemasukan data untuk tiap instan entity.

Tahapan Implementasi Basis Data
Tahap implementasi basis data merupakan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder (disk) dengan bantuan DBMS (Database Management System) yang kita pilih. Tahap implementasi basis data diawali dengan melakukan transformasi dari model data yang telah selesai dibuat ke skema/struktur basis data sesuai dengan DBMS yang dipilih. Secara umum, sebuah diagram E-R akan direpresentasikan menjadi sebuah basis data secara fisik. Sedang komponen-komponen Diagram E-R yang berupa himpunan entitas dan himpunan relasi akan ditransformasikan menjadi tabel-tabel (file-file data) yang merupakan komponen utama pembentuk basis data. Selanjutnya atribut-atribut yang melekat pada masing-masing himpunan entitas dan himpunan relasi akan dinyatakan sebagai field-field dari tabel-tabel yang sesuai.

Performansi basis data ditentukan oleh :
• Kualitas dan bentuk perancangan basis data
• Kualitas mesin / komputer
• Platform yang dipilih
• Sistem operasi
• DBMS yang digunakan

Pengkodean/Abstaksi Data
Data yang dilihat oleh pemakai awam (end-user) bisa berbeda dengan bagaimana data / informasi itu disimpan. Apa yang dilihat oleh end-user bisa jadi merupakan hasil pengolahan yang tidak disimpan sama sekali dalam basis data, atau bisa dinyatkan dalam bentuk lain. Alasan untuk membuat suatu pengkodean adalah untuk efisiensi ruang penyimpanan. Dari pemakaiannya, ada dua bentuk pengkodean :

1. Eksternal (User-Defined Coding)
Mewakili pengkodean yang telah digunakan secara terbuka dan dikenal dengan baik oleh pemakai awam. Contoh : Nomor mahasiswa dan Kode matakuliah –> sudah dikenal baik oleh pemakai awam.

2. Internal (System Coding)
Menggambarkan bagaimana data disimpan dalam kondisi sebenarnya, sehingga lebih berorientasi pada mesin. Ada tiga bentuk pengkodean:
a. Sekuensial Pengkodean dilakukan dengan mengasosiasikan data dengan kode yang urut.
Contoh : predikat kelulusan "Sangat Memuaskan", "Cukup Memuaskan", "Memuaskan" dikodekan dengan huruf "A", "B", "C"
b. Mnemonic Pengkodean dilakukan dengan membentuk suatu singkatan dari data yang hendak dikodekan.. Contoh : "Laki-laki" -> dikodekan "L"; "Perempuan" -> dikodekan "P"
c. Blok Pengkodean dinyatakan dalam format tertentu.
Contoh : Nomor mahasiswa dengan format XX.YY.ZZZZ à terdiri atas XX = 2 digit tahun masuk, YY = 2 digit kode jurusan, ZZZZ = 4 digit nomor urut.

Transformasi Model Data ke Basis Data Fisik 
Aturan umum dalam pemetaan Model Data (Level Konseptual dalam Abstraksi Data) yang digambarkan dengan Diagram E-R menjadi Basis Data Fisik (Level Fisik dalam Abstraksi Data) adalah :

1. Setiap himpunan entitas akan diimplemetasikan sebagai sebuah tabel (file data)


  

Gambar 7.1 Tranformasi Himpunan Entitas ke Basis Data Fisik

2. Relasi dengan Relasi Derajat 1-1 (satu ke satu) yang menghubungkan 2 buah himpunan entitas akan direpresentasikan dalam bentuk penambahan/penyertaan atribut-atribut relasi ke tabel yang mewakili salah satu dari kedua himpunan entitas.

Gambar 7.2 Transformasi Relasi Satu ke Satu ke Basis Data Fisik

3. Relasi dengan Derajat Relasi 1-N (satu ke banyak) yang menghubungkan 2 buah himpunan entitas, juga juga akan direpresentasikan dalam bentuk pemberian/pencantuman atribut key dari himpunan entitas pertama (yang derajat 1) ke tabel yang mewakili entitas kedua (yang berderajat N).

Gambar 7.3 Transformasi Relasi Satu ke Banyak ke Basis Data Fisik 


Gambar 7.4 Transformasi Relasi Banyak ke Banyak ke Basis Data Fisik

DBMS dan Struktur Tabel
Bagaimana pilihan-pilihan tipe data dan feature-feature tambahan untuk struktur tabel dari berbagai DBMS secara detail dapat dipelajari dari berbagai dokumen referensi ataupun fasilitas help dari setiap DBMS. Dalam menentukan struktur dari tabel, paling tidak setiap struktur tabel berisikan nama field, tipe field dan ukurannya. Tipe data yang bersifat umum antara lain :

• Data angka : Numerik atau Alfaumerik (Teks) adalah field yang isinya berupa angka, tetapi tidak menunjukkan suatu jumlah. Data demikian kurang cocok kalau dianggap sebagai data Numerik, tetapi lebih cocok digolongkan sebagai Alfanumerik. Misalnya : NIM, NIP
• Data Numerik : Bilangan bulat (integer) atau bilagan nyata (real) integer merupakan tipe data numerik.
• Data Bilangan Bulat (integer) : Byte (1 Byte), Small integer (2 byte) atau long-integer (4 Byte).
• Data Bilangan Nyata : single (4 Byte) atau double (8 byte) tipe data single dapat menampung hingga 7 digit pecahan, sedangkan double hingga 15 digit pecahan. Perlu diperhatikan, dalam komputasi, data integer akan membutuhkan waktu lebih cepat dalam pengolahan data daripada data real.
• Data Uang, jika DBMS menyediakan tipe data yang khusus untuk meyimpan data uang, maka tipe ini paling bagus untuk diterapkan pada field yang menunjukkan data uang.
• Data Teks : ukuran tetap (fixed-character) atau ukuran dinamis (variable-character). Data teks yang ukurannya pasti atau yag tidak pendek, sebaiknya menggunakan fixed-character, sedang yang berukuran panjang atau yag pnjang pendeknya sangat berfariasi, sebaiknya menggunakan variable-character

Indeks dan Struktur Penyimpanan
Pada tahap implementasi, atribut-atribut entitas/relasi yang ditetapkan sebagai kunci(key) akan diwujudkan sebagai Indeks Primer (primary key).

Dan dapat juga ditambahkan Secondary Indeks Ada dua indeks yaitu :
1. Indeks Primer (primary index)
Indeks Primer pada setiap tabel hanya ada satu dan hampir selalu berasal dari kunci primer yang telah ditetapkan dalam sebuah entitas/relasi. Indeks Primary yang baik terdiri atas field-field dengan kriteria sebagai berikut :
a. Field yang menjadi komponen Indeks Primer harus bersifat mandatory(datanya tidak boleh kosong/null)
b. bersifat unik.
c. nilai – nilainya lebih permanen
d. berukuran kecil dengan jumlah field minimal

2. Indeks Sekunder(secondary index)
Digunakan untuk mendukung keberadaan Indeks Primary yang dibuat untuk suatu tabel dengan alasan untuk mempermudah berbagai cara pengaksesan ke suatu tabel. Misalnya : field nama_mahasiswa untuk memudahkan pencarian data berdasarkan nama mahasiswa disamping pencarian berdasarkan nim mahasiswa. Jumlah Indeks Sekunder dalam sebuah tabel boleh lebih dari satu. Nilai – nilai field yang menjadi pembentuk Indeks Sekunder tidak harus bersifat unik.

Struktur Penyimpanan (Storage Structure)
Yang juga berpengaruh dalam menentukan kecepatan akses dan manipulasi data adalah Struktur Penyimpanan yang kita gunakan. Berikut adalah struktur penyimpanan dasar yang dapat diterapkan pada suatu tabel :
• Heap merupakan struktur penyimapanan yang palig sederhanadan karena itu paling hematdalam membutuhkan ruang penyimpanan.
• Hash merupakan struktur penyimpanan yang menempatkan baris-baris data berdasarkan alamat fisik yang diperoleh dari hasil perhitungan (penggunaan fungsi hashing) terhadap nilai key-nya.
• Sekuensial Berindeks merupakan struktur penyimpanan yang menempatkan data dengan urutan tertentu didalam tabel (yaitu berdasarkan nilai Indeks Primernya).
• File Berindeks merupakan struktur penyimpanan yang dikembangkan dari struktur Heap.
• Hampir tidak ada DBMS yag mengakomodasi secara khusus adanya pemakaian struktur penyimpanan Pile dan Multirang. Sehingga struktur penyimpanan ini tidak perlu dipertimbangkan dalam menetukan struktur penyimapanan yang tepat bagi suatu tabel.

Referensi 
1. Waljiyanto, Sistem Basis Data : Analisis dan Pemodelan Data, Graha Ilmu, Yogyakarta, 2003 
2. http://informatika.web.id/implementasi-basis-data.htm 
3. http://lecturer.poliupg.ac.id/riniyn/BasisData/

Sub Query pada SQL

Friday, January 22, 2016 Add Comment
Hi guys, kali saya mau share tentang penggunaan sub query pada database. Subquery atau sub select merupakan bentuk query yang terdapat dalam query yang lain. Artinya dengan melakukan pada sebuah operasi pada subquery, maka query-query di dalamnya akan dieksekusi. Atau dengan kata lain berarti ada select "di dalam" select.

Perhatikan pada contoh query berikut ini :

SELECT * FROM tbl_personal
WHERE "dt_TglLahir" = (SELECT MAX("dt_TglLahir") FROM tbl_personal)

Query diatas menunjukkan bahwa where di bandingkan dengan hasil dari perintah select bukan dengan nilai konstan.
Sekarang mari kita coba implementasinya di database. Pertama, buat tabel dengan nama mahasiswa dan dosen yang struktur dan isi datanya berikut ini :

- Tabel Mahasiswa


- Tabel Dosen


Setelah maka kita coba menampilkan data dosen berjenis kelamin laki-laki dengan umur yang paling tua. Query sebagai berikut :

Kita coba lagi menampilkan data mahasiswa berjenis kelamin laki-laki dengan umur yang paling tua. Query sebagai berikut :


Sekian dan terima kasih.
Semoga bermanfaat :)

Trigger

Wednesday, January 06, 2016 Add Comment
Pada postingan kali ini saya akan membahas penggunaan trigger di database. Trigger digunakan untuk menyisipkan sebuah fungsi pada saat suatu record di-INSERT, UPDATE dan DELETE. Trigger sangat ideal untuk mengecek atau memodifikasi sebuah data pada kolom sebelum dimasukkan ke dalam database, sehingga sebuah fungsi dapat dipanggil setiap saat secara otomatis ketika sebuah row akan dimodifikasi. Ciri khas dari fungsi yang diperuntukkan untuk trigger adalah menghasilkan output bertipe OPAQUE. Tipe opaque adalah sebuah tipe yang menginformasikan pada database bahwa fungsi tersebut tidak menghasilkan satu dari tipe data yang ditetapkan SQL dan tidak secara langsung dapat digunakan dalam statemen SQL. Language (bahasa) PL/PGSQL dapat digunakan untuk trigger procedure, fungsi untuk trigger ini memiliki beberapa variabel khusus yang terdeklarasi secara otomatis. 

Variabel tersebut antara lain: 
• NEW: Variabel yang berisi nilai baru suatu record pada saat INSERT atau UPDATE, bertipe RECORD. 
• OLD: Variabel yang berisi nilai lama suatu record pada saat UPDATE atau DELETE, juga bertipe RECORD. 

Berikut ini beberapa contoh penggunaan fungsi sebagai trigger procedure: Contoh : trigger berikut ini memastikan isi field atau kolom nama pada tabel anggota selalu huruf besar. 


langkah pertama buatlah fungsinya terlebih dahulu :
db_personal=> CREATE FUNCTION tes_trigger()
db_personal-> RETURNS opaque
db_personal-> AS 'BEGIN
db_personal'> NEW.nama := UPPER(NEW.nama);
db_personal'> RETURN NEW;
db_personal'> END;'
db_personal-> LANGUAGE 'plpgsql';
CREATE

kemudian lanjutkan dengan pembuatan trigger yang berfungsi untuk memanggil fungsi secara otomatis ketika kita melakukan INSERT ataupun UPDATE pada tabel anggota.
db_personal=>
CREATE TRIGGER tes1_trigger
db_personal-> BEFORE INSERT
db_personal-> ON anggota
db_personal-> FOR EACH ROW
db_personal-> EXECUTE PROCEDURE tes_trigger();
CREATE

cobalah INSERT beberapa data ke dalam tabel anggota:

db_personal=> INSERT INTO anggota (id, nama)
db_personal-> VALUES (26, 'andhie');
INSERT 70831 1
db_personal=> INSERT INTO anggota
db_personal-> VALUES (83, 'rWatia');
INSERT 70832 1

tampilkan isi dari tabel anggota, hasilnya seperti pada tabel di bawah ini. Jadi setiap data yang kita INSERT walaupun dalam penulisannya menggunakan huruf kecil namun secara otomatis trigger akan memanggil fungsi yang bertugas untuk mengganti setiap data yang masuk agar hasilnya nanti selalu menjadi huruf besar: db_personal=> SELECT * FROM anggota;
id | nama
--------+-------------
26 | ANDHIE
83 | RWATIA (2 rows)

Berikut adalah contoh implementasinya di database :

Fungsi dan PL/PGSQL

Monday, January 04, 2016 Add Comment
1. Fungsi
Kali ini saya ingin membahas penggunaan fungsi di postgreSQL. Fungsi SQL adalah sebuah kumpulan query, biasanya query yang detail dan panjang yang dibungkus menjadi satu dan disimpan dalam database dan kemudian apabila diperlukan hanya tinggal mengaksesnya tanpa mengetikan query detail.

Ada beberapa konsep yang menarik dari fungsi antara lain:

• Bahasa yang dipakai dapat didefenisikan sendiri dengan tersedianya parameter LANGUAGE, tanpa harus mengkompilasi ulang PostgreSQL.
• Kita dapat membuat dua buah fungsi dengan nama yang sama namun parameter masukkannya yang berbeda, baik tipe data maupun jumlahnya.

Selain itu ada beberapa faktor yang perlu diperhatikan dalam membuat fungsi antara lain:
• Nama Fungsi
• Nomor dari fungsi argument
• Tipe data dari setiap argument
• Tipe dari hasil fungsi
• Fungsi action
• Bahasa yang digunakan oleh fungsi action.

Berikut adalah contoh pembuatan fungsi pada postgreSQL :


2. PL/PGSQL
PL/PGSQL merupakan bahasa yang lain untuk membuat sebuah fungsi, biasanya bahasa ini digunakan untuk menangani fungsi yang lebih kompleks. Pl/pgsql sudah terdapat dalam instalasi PostgreSQL.

Berikut Struktur pembuatan fungsi dalam pl/pgsql
CREATE [OR REPLACE] FUNCTION nama_fungsi ( [ argtype [, ...] ])
RETURNS return_type
AS $$definition$$
LANGUAGE langname;

Badan Fungsi atau isi dari definition
DECLARE /* deklarasi variabel, type dan subprogram lokal */
BEGIN /* prosedural dan SQL masuk disini */ / blok ini yang wajib */
END;

Menghapus fungsi
DROP FUNCTION nama_fungsi(paramater[, parameter[, parameter ... );
Contoh : DROP FUNCTION pembagian(text);

Berikut adalah contoh pembuatan fungsi dengan bahasa PL/PGSQL: 

Indeks

Wednesday, December 23, 2015 Add Comment
Hai! Kali ini saya mau share mengenai indeks di dalam database. Indeks berguna dalam suatu pencarian nilai atau data dalam database. Dalam suatu kasus ketika mengakses sebuah tabel biasanya DBMS akan membaca seluruh tabel baris perbaris hingga selesai. Ketika baris sangat banyak dan hasil dari query hanya sedikit, maka hal ini sangat tidak efisien. Seperti halnya ketika kita membaca sebuah buku dan ingin mencari kata atau istilah tertentu dalam buku maka biasanya akan di cari dengan membuka setiap halaman dari awal sampai akhir. Dengan adanya indeks buku maka kita cukup dengan membuka indeks, sehingga akan cepat dalam pencarian kata tersebut. PostgreSQL tidak bisa membuat indeks dengan otomatis, sehingga user dapat membuat indeks tersebut untuk seringkali digunakan kolom, biasanya dalam clause WHERE.


Struktur SQL sebagai berikut :
CREATE INDEX [nama index] ON [nama tabel] (nama kolom);

Contoh :


Unique index mirip dengan indeks tetapi lebih digunakan untuk mencegah duplikasi nilai yang terdapat dalam tabel. Jadi dengan adanya unique index berarti pembaca tidak dapat meng-insert nilai yang sama dalam sebuah tabel.


Struktur SQL sebagai berikut :
CREATE UNIQUE INDEX [nama index] ON [nama tabel] (nama kolom);

Contoh :

Agregasi SQL

Friday, August 07, 2015 Add Comment
Halo gaes, kali ini saya mau share mengenai fungsi agresgasi di PostgreSQL. Fungsi aggregate (agregasi) biasa disebut fungsi ringkasan digunakan untuk melakukan penghitungan menjadi sebuah nilai dari beberapa nilai input. Adapun fungsi agregate yang disediakan oleh PostgreSQL berikut ini :

COUNT(*) : Menghitung jumlah baris
SUM(NAMA KOLOM) : Menghitung penjumlahan data
MAX(NAMA_KOLOM) : Mencari nilai terbesar
MIN(NAMA KOLOM) : Mencari nilai terkecil
AVG(NAMA KOLOM) : Mencari nilai rata-rata

Simak contohnya sebagai berikut :

1. buatlah tabel mahasiswa dengan data seperti dibawah ini :


2. kemudian mencoba fungsi aggregate


Sekian tutorial dari saya, terima kasih dan semoga bermanfaat :)

Except, Union dan Intersect

Wednesday, August 05, 2015 Add Comment
Halo gaes, kali ini saya mau share mengenai penggunaan fungsi EXCEPT, UNION dan INTERSECT di postgresql. Pertama-tama mungkin ada yang belum tahu penggunaan dari fungsi-fungsi tersebut. Saya jelaskan sedikit mengenai kegunaannya berikut ini :

EXCEPT : digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan.
UNION : digunakan untuk menggabungkan hasil dua buah query menjadi satu kolom.
INTERSECT : digunakan hanya akan menampilkan seluruh isi dari data yang memiliki kesaman diantara hasil kedua query tersebut.



Ilustrasinya gini deh :














Gambar pertama menyatakan EXCEPT dimana object yang diambil hanya yang kuning. Sehingga objek yang merah atau objek kuning yang sama dengan objek merah tidak diambil.









Gambar kedua menyatakan UNION yaitu gabungan dari kedua buah objek.









Gambar ke tiga menyatakan INTERSECT yaitu mengambil objek yang berwarna hijau atau objek memiliki kandungan dari objek kuning dan merah.

Pertama-tama buat tabel dan isikan datanya sebagai berikut :
 

a.       Tabel organ_dalam
Nomor
Nama
1
Jantung
2
Paru-paru
3
Tenggorokan




a.       Tabel organ_luar
Nomor
Nama
1
Hidung
2
Mata
3
Tenggorokan




Kemudian lakukan uji coba dengan operasi query EXCEPT, UNION dan INTERSECT.
Contoh query EXCEPT :


Contoh query UNION :


Contoh query INTERSECT :



Oke sekian tutorial dari saya, semoga bermanfaat :)