BABII DASAR TEORI
2.1 PengertianAplikasi Berbasis Web Web adalah layanan internet yang menggunakan protokol HTTP (HyperText Transfer Protocol)
disamping layanan internet lainnya seperti Gopher, Telnet, FTP,
E-Mail. Pengertian aplikasi berbasis web adalah aplikasi sisi server (server side) yang menggunakan
standar
HTTP
dan menggunakan browser untuk
menggunakan
aplikasi. Termasuk didalamnya teknologi CGI, PHP, JSP, ASP dan lainnya. Untuk membahas aplikasi berbasis web pertama kita harus melihat platform yang berada di bawahnya. Aplikasi berbasis web dibangun diatas diatas HTTP. HTTP merupakan salah satu protokol yang berjalan diatas TCP/IP (protokol internet). HTTP adalah protokol yang stateless, web server hanya memberikan informasi yang diminta, setelah itu koneksi diputus. Layanan informasi ini disediakan oleh web server dan diakses oleh web browser seperti gambar dibawah ini.
Gambar 2.1Browser dan Server Web
7
a. Web Browser Web
browser
digunakan
untuk
memperoleh
informasi
dengan
format
hypertext. Web browser akan mengirimkan request ke web server, dan menampilkan hasilnya ke pengguna. Selain itu web browser juga dapat mengirimkan form ke web server untuk diproses. Contoh dari web browser adalah NCSA Mosaic, Netscape Navigator, MacWeb, IE, Opera, Mozilla Firefox dll. b. Web Server Web
server memberikan jawaban/response dari permintaan/request web
browser. Web server juga dapat memproses form yang dikirimkan oleh web browser. Contoh dari Web server adalah, Apache, NCSA HTTPD (Unix), Webstar (Mac), IIS/PWS (Windows). c. Informasi Antarmuka web bisa mengirimkan informasi dalam bentuk text terformat (HTML), grafik/animasi, dan suara. HTTP mengirimkan informasi dengan format HTML (Hypertext Markup Language). HTML sendiri merupakan format sederhana dari standar SGML. Selain itu HTTP juga dapat mengirimkan informasi dalam bentuk lain. Yang menjadi pertanyaan sekarang adalah dimana letak aplikasi berbasis web. Aplikasi web terletak pada server, yang merupakan perpanjangan dari webserver untuk mengirim dan memporses informasi. Jadi informasi yang dikirim ke browser menjadi dinamis dengan adanya aplikasi tersebut. Proses tersebut dapat dilakukan oleh CGI (Common Gateway Interface) yang dapat dikembangkan dengan berbagai
8
bahasa pemrograman dalam berbagai platform selama menggunakan standar yang ditetapkan. Aplikasi berbasis web dapat juga dijalankan sebagai script oleh processor semacam ASP atau PHP. Script dan program tersebut akan memberikan informasi dalam format HTML ke webserver untuk diteruskan ke browser dan juga memproses informasi dari web server, misalnya menyimpan data ke basisdata. Perlu disadari bahwa aplikasi berbasis web kebayakan menggunakan database (database-driven application). Contoh aplikasi web yang sering digunakan adalah webmail yaitu aplikasi web untuk membaca dan mengirimkan email lewat browser. Adapun keunggulan dan kelemahan aplikasi berbasis web adalah sebagai berikut: a. Keunggulan 1. Klien yang kecil, tidak membutuhkan resorce yang besar untuk menjalankan aplikasinya. Cukup dengan komputer yang sanggup menjalakan web browser. 2. Kemudahan untuk depolyment/penyebaran aplikasi. 3. Cross
platform,
karena
menggunakan
standard
umum HTTP/HTML.
Bisa
dijalankan dengan berbagai macam sistem operasi. 4. Learning curve, khususnya yang telah mengenal web sebelumnya. Biasanya aplikasi web dirancang secara intuitif. 5. Kemudahan untuk digabungkan dengan layanan internet lainnya, semisal email, ftp dll. 6. Banyak tersedia modul/source untuk komponen pengembangan aplikasi. 7. Mudah diakses darimana saja, dari intranet maupun Internet.
9
8. Pengembangan lebih lanjut. Dengan web kita dapat mengunakan modul-modul yang telah dikembangkan sebelumnya. Terdapat komunitas yang kuat untuk mensupport pengembangan aplikasi opensource semisal Sourceforge.net.
b. Kelemahan 1. User Interface tidak sekaya aplikasi platform lain, karena keterbatasan standar HTML. Beberapa bisa ditingkatkan dengan javascript tetapi menimbulkan masalah cross browser. 2. Aplikasi yang stateless, diakibatkan protokol HTTP. 3. Banyak faktor yang mempengaruhi performansi aplikasi. Seperti jaringan, server dll. 4. Semua proses dilakukan diserver, ini akan memberatkan server jika proses yang dilakukan terlalu banyak. 5. Sangat tergantung pada jaringan. 2.2 PHP 5 PHP adalah singkatan dari "PHP: Hypertext Preprocessor", yang merupakan sebuah bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mirip dengan bahasa C, Java dan Perl, ditambah beberapa fungsi PHP yang spesifik.Tujuan utama penggunaan bahasa ini adalah untuk memungkinkan perancang web menulis halaman web dinamik dengan cepat. PHP 5 dirilis pada tanggal 13 Juli 2004. PHP 5 dapat digunakan pada hampir semua sistem operasi utama, seperti Linux, varian Unix (mencakup HP-UX, Solaris, dan Openbsd), Microsoft Windows, Mac OS X, RISC O, dan mungkin yang lain. PHP juga mendukung hampir semua server web, seperti Apache, Microsoft Internet
10
Information Server, Personal Web Server, Netscape, dan iPlanet Servers, Oreilly Website Pro Server, Caudium, Xitami, OmniHTTPd dan lain-lain. Sebagian besar server PHP mempunyai modul dan untuk yang mendukung standar CGI maka PHP bekerja sebagai pemeroses CGI. PHP
memberikan kebebasan untuk
memilih sistem operasi dan server
web.PHP juga memberi pilihan untuk menggunakan pemrograman biasa atau program berorientasi objek (Objek Oriented Programming/OOP) atau gabungan keduanya.PHP tidak membatasi jumlah HTML yang dihasilkan.Kemampuan PHP meliputi
dukungan
terhadap
gambar,
file
PDF
dan
bahkan
movie
Flash
(menggunakan libswf dan Ming) secara on the fly.PHP juga mendukung teks, seperti fileXHTML dan XML. Salah satu fitur paling penting pada PHP adalah PHP mendukung banyak basis data. Membuat web yang menampilkan basis data bukanlah hal sulit untuk PHP. Sistem database yang didukung oleh PHP 5 adalah : ᴥ Adabase D
ᴥ dBase
ᴥ Empress
ᴥ File Pro
ᴥ Hyperwave
ᴥ IBM DB2
ᴥ Infomix
ᴥ Ingres
ᴥ Inter Base
ᴥ Front Base
ᴥ Direct MS-SQL
ᴥ MYSQL
ᴥ ODBC
ᴥ Oracle (OCI17 dan OC18) ᴥ Ovrimos
ᴥ PostgresSQL
ᴥ SQLite
ᴥ Solid
ᴥ Sybase
ᴥ Velocis
ᴥ Unix dbm
PHP mempunyai ekstensi DBX yang memungkinkan penggunaan basis data dengan
ekstensi tersebut.Apalagi PHP
mendukung
ODBC
(Open
Database
11
Connection Standard) sehingga dapat menghubungkan PHP ke basis data mana pun yang mendukung standar dunia ini. PHP mendukung komunikasi dengan layanan lain menggunakan protocol seperti LDAP, IMAP, SNMP, NNTP, POP3, HTTP dan COM (pada windows). Kita juga dapat membuka soket jaringan dan berinteraksi dengan protocol lain. PHP mendukung
pertukaran
data
kompleks.Untuk
interkoneksi,
PHP
mendukung
perubahan objek Java dan menggunakannya sebagai objek PHP.Penggunaan ekstensi COBRA dapat digunakan untuk mengakses objek jarak jauh. PHP mempunyai fitur text processing yang sangat bermanfaat, dari POSIX Extended dan Pert Regular Expression untuk mem-parsing dokumen HTML.Untuk memparsing
dan
mengakses
dokumen
XML,
PHP
4
mendukung
standard
SAXOFON dan DOM. Untuk mengubah dokumen XSLT, dapat juga menggunakan ekstensi XSLT.Pada PHP 5 menstandardlisasi semua ekstensi XML menjadi libxml2 yang
tangguh
dan memperluas fitur dengan menambahkan SimpleXML dan
mendukung XMLREADER. Penggunaan PHP dalam bidang e-commerce meliputi pembayaran cybercash, Cybermut, Verisign Payflow Pro dan fungsi MCVE yang bermanfaat untuk program pembayaran secara online.Fitur-fitur lain yang mendukung PHP 5 adalah fungsi mesin pencari mnoGoSearch, fungsi Gateway IRC, utilitas pemadat (gzip, bz2), konversi penanggalan, terjemahan dan lain-lain.
Kelebihan PHP Ketika
e-commerce
semakin
berkembang,
situs-situs
yang
statispun
semakin ditinggalkan, karena dianggap sudah tidak memenuhi keinginan pasar, padahal situs tersebut harus tetap dinamis.Pada saat ini bahasa PERL dan CGI
12
sudah jauh ketinggalan jaman sehingga sebagian besar designer web banyak beralih ke bahasa server-side scripting yang lebih dinamis seperti PHP.Seluruh aplikasi berbasis web dapat dibuat dengan PHP. Namun kekuatan yang paling utama PHP adalah pada konektivitasnya dengan sistem database di dalam web. Sistem database yang dapat didukung oleh PHP adalah : 1)
Oracle
2)
MySQL
3)
Sybase
4)
PostgreSQL
5)
dan lainnya
PHP dapat berjalan di berbagai sistem operasi seperti windows 98/NT, UNIX/LINUX, solaris maupun macintosh.
PHP merupakan software yang open
source yang dapat anda download secara gratis dari situs resminya yaitu http://www.php.net , ataupun dari situs-situs yang menyediakan software tersebut seperti di ftp://gerbang.che.itb.ac.id.
Software ini juga dapat berjalan pada web
server seperti PWS (Personal Web Server), Apache, IIS, AOLServer, fhttpd, phttpd dan sebagainya.PHP
juga merupakan bahasa pemrograman yang dapat kita
kembangkan sendiri seperti untuk menambah fungsi-fungsi baru. Keunggulan lainnya dari PHP
adalah bahwa PHP juga mendukung
komunikasi dengan layanan seperti protocol IMAP, SNMP, NNTP, POP3 dan bahkan HTTP.
PHP dapat diinstal sebagai bagian atau modul dari apache web
server atau sebagai CGI script yang mandiri. Banyak keuntungan yang dapat diperoleh jika menggunakan PHP sebagai modul dari apache, di antaranya adalah : 1)
Tingkat keamanan yang cukup tinggi
13
2)
Waktu eksekusi yang lebih cepat dibandingkan dengan bahasa pemrograman web
lainnya yang berorientasi pada server-side
scripting. 3)
Akses ke sistem database yang lebih fleksibel seperti MySQL.
2.3 Pengertian MySQL MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya.MySQL AB menyebut produknya sebagai database open source terpopuler di dunia.Berdasarkan riset dinyatakan bahwa di platform Web dan baik untuk kategori open source maupun umum, MySQL adalah database yang paling banyak dipakai.Menurut perusahaan pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer.Puluhan hingga ratusan ribu situs mengandalkan MySQL bekerja siang malam memompa data bagi para pengunjungnya. Ada dua alasan utama mengapa tetap harus menggunakan MySQL yaitu: 1) Website sering memasukkan data ke basis data. Apabila sering melakukan perubahan terhadap basis data dengan perintah Insert intodan Update, maka jika misalnya 100 orang secara konstan melakukan logging,
mengirim pesan, dan
kegiatan lainnya, penggunaan SQLite akan terasa lambat. Hal ini dikarenakan basis data SQLite tampil sebagai file tunggal dan ketika terjadi perubahan SQLite akan menutup atau mengunci seluruh basis data sehingga orang lain yang ingin memasukkan data pada waktu yang sama harus menunggu. Adapun MySQL dapat menulis ke basis data secara terus-menerus dan dalam waktu bersamaan.
14
2) Website memerlukan keamanan dengan tingkat tinggi (high security). Jika keamanan merupakan hal utama (misal menyimpan Login dan password di basis data) maka SQLite mungkin bukan pilihan yang tepat. MySQL secara defaultakan
meminta
akses
khusus
bagi orang yang akan mengakses
databasenya, sedangkan SQLite mengizinkan semua orang melakukan akses terhadap databasenya. Orang yang mengakses MySQL hanya tertentu sehingga keamanan login dan password dapat terjaga. Sementara itu SQLite membiarkan semua orang mengakses databasenya termasuk nomor login dan password. a. Fitur MySQL Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0- terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial. Seri 4.x. Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key constraint (4.0 atau 4.1—meski InnoDB sudah menyediakan ini di 3.23.x), stored procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler.
15
b. Keunggulan MySQL Penyebab utama MySQL begitu populer di kalangan web adalah karena cocok bekerja di lingkungan tersebut. Pertama, MySQL tersedia di berbagai platform Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki Access, misalnya—padahal Access sangat populer di platform Windows. Banyak server web berbasiskan Unix, ini menjadikan Access otomatis tidak dapat dipakai karena ia pun tidak memiliki kemampuan client-server/networking. Kedua, fitur-fitur yang dimiliki MySQL memang yang biasanya banyak dibutuhkan dalam aplikasi web. Misalnya, klausa LIMIT SQL-nya, praktis untuk melakukan paging. Atau jenis indeks field FULLTEXT, untuk full text searching. Atau
sebutlah
kekayaan
fungsi-fungsi builtinnya,
mulai dari memformat dan
memanipulasi tanggal, mengolah string, regex, enkripsi dan hashing. Yang terakhir misalnya, praktis untuk melakukan penyimpanan password anggota situs. Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa diperdebatkan dengan berbagai benchmark berbeda, tapi kalau soal yang satu ini MySQL-lah juaranya. Karakteristik ini membuat MySQL cocok bekerja dengan aplikasi CGI, di mana di setiap request skripakan melakukan koneksi, mengirimkan satu atau lebih perintah SQL, lalu memutuskan koneksi lagi. Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle. Maka dengan load beberapa request per detik saja server web/database mungkin akan segera menyerah karena tidak bisa mengimbangi beban ini.Dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler.
16
2.4 Flow of Document (FOD) Flow of Document (FOD) adalah diagram yang menggambarkan aliran dokumen dan pengolahan dokumen data pada dokumen tersebut dalam suatu sistem. Simbol – simbol Flow of Document (FOD) :
Gambar 2.2 Simbol Dokumen 1. Simbol Dokumen Simbol
ini
digunakan
untuk
menggambarkan
semua
jenis
dokumen,
merupakan formulir yang digunakan untuk merekam data terjadinya transaksi, nama dokumen dicantumkan ditengah simbol.
Gambar 2.3 Simbol Akhir Arus Document 2. Akhir arus dokumen Akhir arus dokumen dan mengarahkan pembaca ke simbol penghubung halaman yang sama bernomor seperti yang tercantum didalam simbol tersebut.
Gambar 2.4 Simbol Awal Arus Dokumen
17
3. Awal arus dokumen Awal arus dokumen yang berasal dari simbol penghubung halaman yang sama yang bernomor seperti yang tercantum didalam simbol tersebut.
Gambar 2.5 Simbol Proses 4. Simbol Proses Digunakan Untuk menggambarkan kegiatan secara manual pada sistem.
Gambar 2.6 Simbol Pengarsipan 5. Simbol Pengarsipan Simbol ini digunakan untuk penyimpanan atau pengarsipan suatu file.
Gambar 2.7 Simbol Proses Program Komputer 6. Simbol Proses Program Komputer Simbol ini digunakan untuk proses dari operasi program secara mekanik atau komputer.
18
Gambar 2.8 Simbol Aliran 7. Simbol Aliran Simbol ini digunakan untuk menggambarkan bertemunya dua garis dan salah satunya mengikuti garis lainnya. 2.5 Data Flow Diagram (DFD) Data Flow Diagram (DFD) adalah suatu teknik untuk menggambarkan suatu sistem yang telah ada sistem baru secara logika tanpa mempertimbangkan lingkungan fisik.Dalam menggambarkan sistem DFD menggunakan symbol untuk memahami suatu sistem. DFD merupakan alat yang digunakan pada metodologi pengembangan sistem terstruktur. Ada dua bentuk DFD dalam penggambarannya yaitu : 1) Phisycal
Data
Flow
Diagram
(PDFD),
umumnya
digunakan
untuk
menggambarkan sistem yang ada atau yang sedang berjalan (sistem lama). PDFD ini menekankan pada bagian sistem yang diterapkan ( dengan cara apa, oleh siapa dan dimana ). 2) Logical Data Flow Diagram (LDFD), digunakan untk menggambarkan sistem yang akan diusulkan (sistem baru). LDFD ini menekankan pada proses-proses secara logika yang dibutuhkan oleh sistem. Simbol – Simbol DFD diantaranya adalah sebagai berikut :
19
1) External Entity (kesatuan luar) atau Boundary (batas sistem), terminator merupakan kesatuan diluar lingkungan sistem dapat berupa orang, organisasi, departemen didalam organisasi atau sistem lainnya yang berada dilingkungan luar sistem yang akan memberikan input atau menerima output dari sistem.
Terminator berupa persegi panjang :
Gambar 2.9 Terminator 2) Proses adalah tempat dimana kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu arus data yang masuk ke dalam proses. Pada PDFD, proses dilakukan oleh orang, mesin atau komputer, sedangkan pada LDFD, proses hanya menunjukkan proses komputer. Setiap proses harus diberi penjelasan yang lengkap meliputi : a. Identifikasi
Proses,
pada
umumnya
berupa
suatu
angka
yang
menunjukkan nomor acuan dari proses dan ditulis pada bagian atas di symbol proses. b. Nama Proses, menunjukkan apa yang dikerjakan oleh proses tersebut. Nama dari proses harus jelas dan lengkap menggambarkan kegiatan proses. c. Pemproses, untuk PDFD proses tidak hanya proses dari komputer, terapi juga proses manual, maka proses harus ditunjukkan.
20
Simbol proses dalam DFD adalah berupa lingkaran :
Gambar 2.10 Proses 3) Data Store (simpan data), merupakan simpanan dari data yang dapat berupa : a. Suatu file atau database di sistem komputer b. Suatu arsip atau catatan manual c. Suatu tabel acuan manual d. Suatu agenda Data Store disimbolkan sebagai berikut :
Gambar 2.11 Data Store Tingkatan – tingkatan DFD diantaranya adalah : 1) Diagram Konteks (Context Diagram) adalah diagram yang menggambarkan secara garis besar atau global yang berupakan tingkatan paling awal yang menggambarkan hubungan antara sistem dengan bagian luar dari sistem tersebut. 2) Diagram Nol (Diagram Zero) adalah suatu DFD yang merupakan level tertinggi dari fungsi yang ada didalam sistem. Pada diagram ini digambarkan proses – proses penting yang ada dalam sistem. Proses ini diperoleh dari pemecahan diagram konteks.
21
3) Diagram Level Satu (Diagram Detail) Pada diagram ini digambarkan rincian dari setiap proses yang ada pada diagram nol sampai ketingkat proses paling rinci.
22