mengirim data dalam jumlah yang besar. Kemudian yang tidak kalah pentingnya adalah name nama dari inputan data, karena nama dari
kontrol data ini akan menjadi variabel yang membawa data isian dari form.
2.4 PostgreSQL
PostgreSQL merupakan salah satu sistem database server yang dapat diinterasikan dengan halaman web melalui berbagai cara. Salah satunya adalah
dengan menggunakan modul PHP dalam Apache web server. Namun penggunaan sistem database server seperti postgreSQL yang diinterasikan dengan web juga
menimbulkan berbagai masalah. Salah satunya adalah masalah keamanan situs web dan sistem databasenya. Oleh sebab itu masalah keamanan database menjadi
salah satu hal yang pokok dalam sistem database dan administrasinya. Perhatikan serius terhadap masalah keamanan database berbasis web merupakan keharusan
bagi sistem database dan administratornya. PostgreSQL, apache dan PHP merupakan perangkat lunak yang bersifat
open source, yang berarti bahwa kode sumber dari postgreSQL, apache dan PHP dapat digunakan secara bebas. Penggunaan perangkat lunak yang bersifat open
source memiliki kelebihan diantaranya sebagai berikut : 1.
Biaya – Tidak ada biaya yang harus dikeluarkan untuk membayar lisensi. 2.
Terbuka – Isi dari perangkat lunak dapat kita lihat secara jelas karena kode sumbernya disertakan.
3. Kebebasan – Bebas untuk mengubah isi dari perangkat Lunak
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
4. Keamanan – Update masalah keamanan jika terjadi akan lebih cepat.
PostgreSQL mrupakan object Relational Database Management System ORDMS yang bersifat open source yang mendukung Standart Query Language
SQL dengan kemampuan antara lain transactions, subqueries, triggers dan lain- lain. PostgreSQL juga menyediakan antarmuka untuk berbagai bahasa seperti
Phyton, C, C++, Java, Perl, PHP dan Tcl. Sebagai salah satu database server yang bersifat open source lainnya, yakni MySQL. Perbandingan antara PostgreSQL dan
MySQL telah dilakukan oleh bebrapa orang dengan hasil bahwa postgreSQL mampu melewati test Atomicity Consistency Isolation Durability ACID
sedangkan MySQL tidak Jepson, 2001. postgreSQL memiliki kecepatan lebih dibandingkan MySQL pada suatu situs yang sering diakses Perdue, 2001.
2.4.1. Keamanan PostgreSQL
Pada bagian ini masalah keamanan yang diteliti adalah mengenai keamanan saat
menjalankan postgreSQL, user, password dan hak akses PostgreSQL melaui web.
PHPNUKE juga digunakan pada server untuk uji coba keamanannya.
Keamanan saat menjalankan postgreSQL secara gratis besar dapat berbagai dua.
Pertama mengenai atribut postgres, user yang berhak menjalankan postgreSQL dan hak
aksesnya terhadap postgreSQL. Kedua mengenai opsi yang digunakan untuk menjalankan
PostgreSQL. PostgreSQL dalam GNU Linux merupakan sebuah program yang berjalan
dengan sifat sebagai daemon, postgreSQL akan menunggu aksi dari klien dan
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
memberikan reaksi. Dalam sistem operasi GNU Linux setiap program yang bersifat
daemon umumnya dijalankan oleh suatu user tertentu, misalnya apache dijalankan oleh
user dengan nama nobody, atd oleh user daemon, dan lain sebagainya.
Dalam GNU Linux, postgreSQL hanya dapat dijalankan oleh user postgres.
PostgreSQL tidak dapat dijalankan selain dengan postgres. PostgreSQL dijalankan oleh
root dengan memanggil suatu script tertentu. Script rc.pgsql pada contoh ini digunakan
untuk menjalankan postgreSQL. Cuplikan script ini adalah
sebagai berikut:
echo”RunningPostgreSQL...................” su - PGSQLUSER -c “PGSQLD start -D
PGSQLDATA -s -1 PGSQL” echo -n postgresql
;;
Pada script di atas postgreSQL dijalankan oleh root dengan perintah su -
PGSQLUSER
dengan
PGSQLUSER
menjalankan PostgreSQL dengan hak akses postgres. Nama postgres merupakan user dalam sistem operasi GNU Linux yang
digunakan untuk menjalankan postgreSQL. File etcpasswd dan etcshadow dalam
GNU Linux digunakan untuk menyimpan atribut dari semua penggunanya. Perubahan pada file etcshadow yang merupakan tempat menyimpan
password yang telah terenskripsi dapat dilakukan untuk meningkatkan keamanan.
Pada bagian postgres di file etcshadow dapat dilakukan perubahan menjadi
sebagai berikut :
postgres::11830:0:99999:7::::
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
File etcshadow dibagi dalam kolom yang dibatasi dengan titik dua :. kolom
kedua pada file etcshadow yang terenskripsi. Dengan mengubah kolom kedua dari
sebuah enskripsi seperti
16AewQi9q01 zW9zFv.MN9PFP429i.
Menjadi maka postgres tidak dapat digunakan untuk login sepeti user pada
umumnya. User postgres hanya akan dapat digunakan oleh root dengan
menggunakan perintah su. Jadi dengan cara seperti ini hanya root yang berhak
menjalankan postgreSQL dengan menggunakan perintah su.
PostgreSQL menggunakan pg_ctl, yaitu sebuah script yang digunakan untuk
menjalankan, menghentikan dan melihat status dari postgreSQL. Maka pg_ctl juga
memiliki hak akses sebagai berikut :
-rwxr-x--- 1 postgres postgres 9471 Feb 23 16:39 pg_ctl
Dengan demikian yang dapat menjalankan PostgreSQL hanya postgres, jika hak aksesnya
diubah menjadi :
-rwxr-xr-x 1 postgres postgres 9471 Feb 23 16:39 pg_ctl
maka postgreSQL tetap tidak akan dapat dijalankan karena pada
postgreSQL membutuhkan hak akses untuk menulis direktori usrlocalpgsqldata
sedangkan direktori ini memiliki hak akses,
drwx----- 7 postgres postgres 4096 Feb 23 22:09 data
Berikut pesan jika hal tersebut dilakukan :
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
FATAL1 : cannot open
usrlocalpgsqldataPG_VERSION; Permission
denied
PostgreSQL juga tidak mengijinkan root untuk menjalankan sistem database. Hal ini dikarenakan root mendapatkan user yang memiliki hak akses
tertinggi didalam sistem operasi GNU Linux. Jika suatu program berjalan dengan hak akses root, bila program tersebut memiliki bug maka dimungkinkan untuk
menjadi masalah keamanan yang serius. Pesan yang ditampilkan jika root mencoba postgreSQL adalah sebagai berikut :
postmaster succesfully started “root” execution of the PostgreSQL server
is not permitted. The Server must be started under an unprivilleged user id\
to prevent a possible system security compromise. See the documentation for more information on how to properly
start the server.
Dengan berjalannya postgreSQL menggunakan user postgres dan bukan
root maka hak akses yang dimiliki oleh postgreSQL akan sama dengan hak yang diberikan GNU Linux kepada postgres. Perubahan pada file etcshadow menjadi
postgres tidak dapat digunakan untuk melakukan login secara normal. Hal ini akan membuat mengurangi masalah kemanan.
2.4.2. Koneksi ke PostgreSQL melalui PHP
Dalam aplikasi web, untuk autentikasi ke dalam sistem database dapat menggunakan antarmuka berbagai aplikasi atau program seperti CGI maupun
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
server API. Apache Web Server dapat berinteraksi dengan sistem database dengan menggunakan modul seperti PHP, JSP atau CGI dan dapat digunakan untuk
menghubungkan klien dengan server database. Program CGI, script PHP atau JSP dapat berisi nama user dan password untuk autentikasi ke database server.
PHP telah memiliki fungsi yang lengkap untuk berinteraksi dengan postgreSQL, informasi yang lengkap mengenai fungsi ini dapat dilihat pada situs
http:www.php.netmanualref.pgsql.php Pada bab ini hanya akan ditinjau sekilas mengenai bagaimana PHP
behubungan dengan postgreSQL. Sebuah contoh script PHP sederhana untuk melakukan koneksi ke postgreSQL adalah sebagai berikut :
? php dbkoneksi=pg_connect “dbaname=puskesmas user=deni”;
query=”SELECT from pendaftar”; hasil=pg_querydbkoneksi, query;
echo “Jumlah Pendaftar :”.pg_numrowshasil; pg_freeresulthasil;
pg_closedbkoneksi; ?
Sebelum dapat berinteraksi dengan postgreSQL, pertama-tama yang perlu dilakukan adalah membuka koneksi dengan postgreSQL. Setiap koneksi
direpresentasikan dengan variabel. Pada contoh diatas adalah dbkoneksi. PHP dapat membuat multiple koneksi sendiri, fungsi pg_connect merupakan koneksi
fungsi yang digunakan oleh PHP untuk membuka koneksi dengan postgreSQL. Contoh fungsi ini adalah sebagai berikut :
? php dbkoneksi=pg_connect“dbname=puskesmas user=deni”;
?
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Penggunaan variabel PHP dapat digunakan untuk membuka database, seperti berikut :
? php dbkoneksi=pg_connect“dbname=namadb user=namauser”;
?
Jika koneksi berhasil dilakukan maka fungsi pg_connect akan memberikan
nilai true sehingga apakah koneksi berhasil atau tidak akan dapat dideteksi. Script PHP berikut merupakan contoh untuk mendeteksi suatu koneksi.
?php dbkoneksi=pg_connect“dbname=bali user=aswin”;
if dbkoneksi { echo koneksi berhasil; }
else { echo koneksi tidak berhasil; }
ppg_closedbkoneksi; ?
Setelah terjadi koneksi maka akan dapat dilihat informasi dari koneksi yang telah dibangun. Informasi yang diperoleh dapat berupa nama database, nama host dan
port yang digunakan server. Script PHP berikut dapat melihat informasi setelah koneksi terjadi:
?php dbkoneksi=pg_connectdbname=bali user=aswin;
echo “h1Informasi koneksih1”; echo “Nama Database : ”pg_dbnamedbkoneksi .”br\n”
echo “Hostname : ”pg_hostdbkoneksi .”br\n” echo “No Post : ”pg_portdbkoneksi .”br\n”
pg_closedbkoneksi; ?
Pemutusan pg_close merupakan fungsi PHP yang digunakan untuk memutuskan koneksi ke postgreSQL, seperti contoh berikut :
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
?php pg_closedbkoneksi;
?
2.6 ExtJs
ExtJs merupakan library JavaScript untuk membangun aplikasi web dengan menggunakan teknik seperti Ajax, DHTML dan DOM scripting. ExtJs
dibangun berdasarkan YUI Library, JQuery, dan beberapa prototype lain. Dengan kata lain ExtJs merupakan framework yang digunakan untuk membangun suatu
aplikasi web dimana aplikasi web tersebut berinteraksi dengan user layaknya aplikasi desktop. Adapun beberapa komponen widget ExtJs antara lain:
1. Text Field dan kontrol input area.
2. Date Field dengan pop-up date-picker.
3. Number Field.
4. List box dan combo box.
5. Radio dan check box.
6. Editor html kontrol.
7. Grid Editor editor grid ataupun read only gid, sortable data, kolom yang bisa
di drag dan beberapa fitur lainnya. 8.
TreeNode. 9.
Tab panel. 10.
Toolbar. 11.
Aplikasi Desktop. 12.
Region Panel yang dapat didesain untuk menampung beberapa komponen. 13.
Sliders.
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
14. Flash chart.
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
31
BAB III ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa