BAB II LANDASAN TEORI 2.1 World Wide Web Www atau World Wide Web maupun Web saja adalah sebuah sistem yang saling terkait dalam sebuah dokumen berformat hypertext yang berisi beragam informasi, baik tulisan, gambar, suara, video dan informasi multimedia lainnya dan dapat diakses melalui sebuah perangkat yang disebut web browser. Untuk menterjemahkan dokumen hypertext ke dalam bentuk dokumen yang dapat dipahami oleh Manusia, maka web browser melalui web client akan membaca halaman web yang tersimpan disebuah web server melalui protokol yang sering disebut HTTP atau Hypertext Transfer Protocol. Sedangkan software atau perangkat lunak web browser saat ini tersedia dalam berbagai produk dengan kelebihan dan kekurangannya masing-masing. Beberapa web browser yang paling terkenal saat ini adalah Mozilla Firefox, Internet Explorer, Opera, Safari dan lain sebagainya. Dokumen hypertext yang tersimpan di dalam sebuah webserver memiliki banyak link atau sambungan antara satu dokumen hypertext dengan dokumen hypertext lainnya. Dengan adanya link antar dokumen hypertext, maka hal tersebut dapat memudahkan pengakses untuk mengunjungi atau mendapatkan dokumen-dokumen terkait yang diinginkannya. 8 9 2.2 Bahasa Pemrograman 2.2.1 PHP PHP singkatan dari Personal Home Page Tools, adalah sebuah bahasa scripting yang dibundel dengan HTML, yang dijalankan disisi server. Sebagian besar perintahnya berasal dari C, Java dan Perl dengan beberapa tambahan fungsi khusus PHP. Bahasa ini memungkinkan para pembuat aplikasi web menyajikan halaman HTML dinamis dan interaktif dengan cepat dan mudah, yang dihasilkan server. PHP juga dimaksudkan untuk mengganti teknologi lama seperti CGI (Common Gateway Interface). PHP bisa berinteraksi dengan hampir semua teknologi web yang sudah ada. Developer bisa menulis sebuah program PHP yang mengeksekusi suatu program CGI di server web lain. Fleksibilitas ini amat bermanfaat bagi pemilik situs-situs web yang besar dan sibuk, karena pemilik masih bisa mempergunakan aplikasi-aplikasi yang sudah terlanjur dibuat dimasa lalu dengan CGI, ISAP atau dengan script seperti Perl, Awk atau Python selama proses migrasi ke aplikasi baru yang dibuat dengan PHP. Ini mempermudah dan memperluas peralihan antara teknologi lama dan teknologi baru. Beberapa Kelebihan PHP dari bahasa pemrograman lain ;; 1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. 2. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak. 10 3. PHP adalah bahasa open source yang dapat digunakan diberbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system. 4. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan apache, dengan configurasi yang relatif mudah. 5. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. 2.2.2 CSS Css (Cascading Style Sheet) adalah pengaturan format standar halaman web yang direkomendasikan oleh W3C. CSS memiliki fungsi mengatur tampilan dari halaman web yang akan dibuat. Dengan menggunakan css, maka halaman web dapat memiliki tampilan yang sesuai dengan yang dikehendaki dan format penulisannya pun cukup mudah. 2.3 Pemodelan Data 2.3.1 Diagram Konteks Diagram konteks merupakan alat pemodelan atau suatu diagram yang menggambarkan sistem berbasis komputer yang dirancang secara global dan merupakan suatu diagram alir data tingkat atas, dimana didalam diagram konteks ini menggambarkan seluruh jaringan, baik masukan maupun sebuah keluaran sebuah sistem. Diagram ini merupakan dasar yang digunakan untuk menentukan aliran data yang mengalir menuju sistem (input system) dan keluar dari sistem (output 11 system), yang meliputi objek berupa kesatuan luar (ekseternal entity). Diagram konteks dapat mendefinisikan jangkauan proses penurunan sistem informasi yaitu menetukan apa yang menjadi bagian dari sistem informasi dan apa yang tidak menjadi bagian sistem informasi. 2.3.2 Diagram Aliran Data (DFD) Diagram Aliran Data memodelkan kejadian dan proses mengubah data) dalam sebuah (aktifitas yang system [Studio Komputer Akuntansi, 2008, P.72]. Dari DFD dapat terlihat bagaimana data mengalir kedalam, keluar dan didalam system tersebut. Beberapa simbol yang digunakan dalam Data Flow Diagram (DFD) antara lain: 1. Proses (Process) Proses adalah simbol pertama data flow diagram. Proses dilambangkan dengan lingkaran, dimana proses ini menunjukan bagian dari sistem yang mengubah satu atau lebih input dan output. Nama proses dituliskan dengan satu kata, singkatan atau kalimat sederhana. 2. Aliran Data (Flow) Aliran Data digambarkan dengan tanda panah dari proses. Aliran data juga digunakan untuk menunjukan bagian – bagian informasi dari satu bagian ke bagian lain. Pembagian nama untuk aliran ini menunjukan sebuah arti untuk sebuah aliran. Untuk kebanyakan sistem yang dibuat, aliran data sebenarnya mengambarkan data yakni angka, huruf, pesan, dan macam - macam informasi lainnya. 12 3 Simpanan Data (Storage) Simpanan data digunakan sebagai penyimpanan bagi paket – paket data. Notasi penyimpanan data digambarkan dengan garis horizontal yang pararel. Simpanan data merupakan simpanan data dari data yang berupa suatu file atau database di sistem komputer ataupun berupa arsip atau catatan manual. Nama dari simpanan data menunjukan nama filenya. 4 Kesatuan Luar (External Entity) Setiap sistem pasti mempunyai batas sistem (boundary) yang memisahkan suatu sistem dengan lingkungan luarnya. Kesatuan luar merupakan kesatuan (entity) dilingkungan luar sistem yang dapat berupa orang, Organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberikan input atau output dari sistem. 2.3.3 Flowchart Flowchart merupakan grafik formal yang menggambarkan urutan logis dari. pekerjaan suatu proyek atau proses [Studio Komputer Akuntansi, 2008, P.82]. Setiap notasi flowchart memiliki arti khusus. Bagan, nama dan fungsinya seperti yang disajikan pada tabel berikut: ( Tabel 2.1 Simbol Flowchart ) SIMBOL NAMA FUNGSI TERMINATOR Permulaan / akhir program GARIS ALIR (FLOW LINE) Arah aliran program PREPARATION Proses inisialisasi / pemberian harga awal 13 PROSES INPUT/OUTPUT DATA PREDEFINED PROCESS (SUB PROGRAM) DECISION ON PAGE CONNECTOR OFF PAGE CONNECTOR Proses perhitungan / proses pengolahan data Proses input / output data, parameter, informasi Permulaan sub program / proses menjalankan sub program Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya Penghubung bagian-bagian flowchart yang berada pada satu halaman Penghubung bagian-bagian flowchart yang berada pada halaman berbeda MAGNETIC DISK Penyimpanan dari/dalam harddisk MANUAL INPUT Memasukan data secara manual dengan menggunkan online key DISPLAY Mencetak keluaran dalam dalam layar monitor 2.4 Data Base 2.4.1 Definisi Basis Data Basis Data terdiri dari 2 ( dua ) kata, yaitu Basis dan Data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang atau pun berkumpul. Sedangkan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia ( pegawai, siswa, pembeli, pelanggan ), barang, hewan, peristiwa, konsep, keadaan dan sebagainya yang direkam dalam bentuk 14 angka, huruf, symbol, teks, gambar, bunyi atau kombinasi. Basis Data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti berikut : 1. Himpunan kelompok data ( arsip ) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan ( redundansi ) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 3. Kumpulan file / tabel / arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. Prinsip utama Basis Data adalah pengaturan data / arsip. Dan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan kembali data / arsip tersebut dalam media penyimpanan elektronis seperti disk ( disket atau hardisk ). Satu hal yang harus diperhatikan, bahwa basis data bukan hanya sekedar penyimpanan data secara elektronis ( dengan bantuan komputer ). Artinya, tidak semua bentuk penyimpanan data secara elektronis bisa disebut basis data. Yang sangat ditonjolkan dalam basis data adalah pengaturan / pemilahan / pengelompokan / pengorganisasian data yang akan kita simpan sesuai dengan fungsi / jenisnya. Pemilahan / pengelompokan / pengorganisasian ini dapat berbentuk sejumlah file / tabel terpisah atau dalam bentuk pendefinisian kolom – kolom / field – field data dalam setiap file / tabel. 15 2.4.2 Operasi Dasar Basis Data Di dalam sebuah disk, basis data dapat diciptakan dan dapat pula ditiadakan. Kita dapat pula menempatkan beberapa basis data. Sementara dalam sebuah basis data, kita dapat menempatkan satu atau lebih file / tabel. Pada file / tabel inilah sesungguhnya data disimpan / ditempatkan. Setiap basis data umumnya dibuat untuk mewakili sebuah semesta data yang spesifik. Misalnya, ada basis data kepegawaian, akademik, inventori ( pergudangan ) dan lain sebagainya. menempatkan Sementara file dalam basis mahasiswa, data akademik, file mata_kuliah, misalnya kita dapat file dosen, file nilai dan sebagainya. Karena itu, operasi – operasi dasar yang dapat kita lakukan berkenaan dengan basis data dapat meliputi : 1. Pembuatan basis data baru ( create database ) 2. Penghapusan basis data ( drop database ) 3. Pembuatan file / tabel baru ke suatu basis data ( create table ) 4. Penghapusan file / tabel baru dari suatu basis data ( drop table ) 5. Penambahan atau pengisian data baru ke sebuah file / tabel dalam sebuah basis data ( insert ) 6. Pengambilan data dari sebuah file / tabel ( retrieve / search ) 7. Pengubahan data dari sebuah file / tabel ( update ) 8. Penghapusan data dari sebuah file / tabel ( delete ) 2.4.3 Objektif Basis Data Pemanfaatan basis data untuk pengelolaan data, juga memiliki tujuan- 16 tujuan lain. Secara lebih lengkap, pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan (objektif) seperti berikut ini : 1. Kecepatan dan Kemudahan (Speed) Pemanfaatan basis data memungkinkan kita untuk dapat menyimpan data atau melakukan perubahan/manipulasi terhadap data atau menampilkan kembali data tersebut dengan lebih cepat dan mudah. 2. Efisiensi Ruang Penyimpanan (Space) Dengan basis data, efisiensi/optimalisasi penggunaan ruang penyimpanan dapat dilakukan, karena kita dapat melakukan penekanan jumlah redundansi data, baik dengan menerapkan sejumlah pengkodean atau dengan membuat relasi-relasi (dalam bentuk file) antar kelompok data yang saling berhubungan. 3. Keakuratan (Accuracy) Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint) tipe data, domain data, keunikan data, dan sebagainya, yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidak akuratan pemasukan/penyimanan data. 4. Ketersediaan (Availability) Pertumbuhan data (baik dari sisi jumlah maupun jenisnya) sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar. Padahal tidak semua data itu selalu kita gunakan/butuhkan. Karena itu kita dapat memilah adanya data utama/master/ referensi, data transaksi, data histori hingga data kadaluarsa. Data yang sudah jarang atau bahkan tidak pernah lagi 17 kita gunakan, dapat kita atur untuk dilepaskan dari sistem basis data yang sedang aktif (menjadi off-line) baik dengan cara penghapusan atau dengan memindahkannya ke media penyimpanan off-line (seperti removable disk atau tape). Di sisi lain, karena kepentingan pemakaian data, sebuah basis data dapat memiliki data yang disebar di banyak lokasi geografis. 5. Kelengkapan (Completeness) Untuk mengakomodasi kebutuhan kelengkapan data yang semakin berkembang, maka kita tidak hanya dapat menambah record-record data, tetapi juga dapat melakukan perubahan struktur dalam basis data, baik dalam bentuk penambahan objek baru (tabel) atau dengan penambahan field-field baru pada suatu tabel. 6. Keamanan (Security) Untuk sistem yang besar dan serius, aspek keamanan juga dapat diterapkan dengan ketat. Dengan begitu, kita dapat menentukan siapa-siapa (pemakai) yang boleh menggunakan basis data beserta objek-objek di dalamnya dan menentukan jenis-jenis operasi apa saja yang oleh dilakukannya. 7. Kebersamaan Pemakaian (Sharability) Pemakai basis data seringkali tidak terbatas pada satu pemakai saja, atau di satu lokasi saja atau oleh satu sistem/aplikasi saja. Basis data yang dikelola oleh sistem (aplikasi) yang mendukung lingkungan multiuser, akan dapat memenuhi kebutuhan ini, tetapi tetap dengan menjaga/menghindari terhadap munculnya persoalan baru seperti inkonsistensi data (karena data yang sama diubah oleh banyak pemakai pada saat yang bersamaan) atau kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk 18 menggunakan data). 2.4.4 Penerapan Basis Data Hampir di semua aspek pemanfaatan perangkat komputer dalam sebuah organisasi/ perusahaan senantiasa berhubungan dengan basis data. Perangkat komputer dalam suatu organisasi/perusahaan biasanya menjalankan fungsi Pengelolaan Sistem Informasi, menjadi suatu keharusan, keakuratan, kecepatan demi untuk operasional digunakan untuk yang dewasa ini sudah meningkatkan efisiensi, organisasi/perusahaan. Dan daya saing, basis data merupakan salah satu komponen utama dalam setiap sistem informasi. Tidak ada sistem informasi yang bisa dibuat/dijalankan tanpa adanya basis data. Secara lebih teknis/nyata, bidang-bidang fungsional yang telah umum memanfaatkan basis data demi efisiensi, akurasi dan kecepatan operasi antara lain adalah: 1. Kepegawaian 2. Pergudangan ( inventory ) 3. Akuntansi 4. Reservasi 5. Layanan Pelanggan ( customer care ) 2.4.5 Database Management Sistem (DBMS) Sebuah bahasa basis data biasanya dapat dikelompokkan ke dalam dua bentuk, yaitu : 1. Data Definition Language (DDL) dan 19 2. Data Manipulation Language (DML) 2.4.6 Kardinalitas / Derajat Relasi Kardinalitas Relasi menunjukan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Dari sejumlah kemungkinan banyaknya hubungan antar entitas tersebut, Kardinalitas Relasi merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain dan begitu juga sebaliknya. Kardinalitas Relasi yang terjadi diantara dua himpunan entitas ( misalnya A dan B ) dapat berupa : 1. Satu ke Satu ( One to One ) Yang berarti setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B, dan begitu juga sebaliknya setiap entitas pada himpunan entitas B berhubungan paling banyak dengan satu entitas pada himpunan entitas A. Entitas 1 Entitas 1 A 2 Entitas B 2 Entitas Entitas 3 Entitas 3 ( Gambar 2.1 Relasi Satu ke Satu ) 2. Satu ke Banyak ( One to Many ) Yang berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, 20 dimana setiap entitas pada himpunan entitas B berhubungan paling banyak dengan satu entitas pada himpunan entitas A. A B Entitas 1 Entitas 1 Entitas 2 Entitas 2 Entitas 3 Entitas 4 ( Gambar 2.2 Relasi Satu ke Banyak ) 3. Banyak ke Satu ( Many to One ) Yang berarti setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas pada himpunan entitas B, A B Entitas 1 Entitas 1 Entitas 2 Entitas 2 Entitas 3 Entitas 4 ( Gambar 2.3 Relasi Banyak ke Satu ) 21 4. Banyak ke Banyak ( Many to Many ) Yang berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B dan demikian juga sebaliknya, dimana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A. A B Entitas 1 Entitas 1 Entitas 2 Entitas 2 Entitas 3 Entitas 3 Entitas 4 Entitas 4 ( Gambar 2.4 Relasi Banyak ke Banyak ) 2.4.7 MySQL MySQL dikembangkan sekitar tahun 1994 oleh sebuah perusahaan bernama SQL AB yang berada di Swedia. dan tujuan awal dikembangkannya MySQL adalah untuk mengembangkan aplikasi berbasis web pada client. Awalnya Michael "Monty" Widenius, pengembang satu-satunya di TcX memiliki sebuah aplikasi UNIREG dan rutin ISAM buatannya sendiri dan sedang mencari antarmuka SQL yang cocok untuk diimplementasikan ke dalamnya. Mula-mula Monty memakai miniSQL (mSQL) pada eksperimennya itu, namun SQL dirasa kurang sesuai, karena terlalu lambat dalam pemrosesan query. Akhirnya Monty menghubungi David Hughes, pembuat mSQL yang sedang merilis versi kedua 22 dari mSQL. Kemudian Monty mencoba membuat sendiri mesin SQL yang memiliki antarmuka mirip dengan SQL, tetapi dengan kemampuan yang lebih sesuai sehingga lahirlah MySQL. Tentang pengambilan nama MySQL, sampai saat ini masih belum jelas asal usulnya. Ada yang berpendapat nama My diambil dari huruf depan dan belakang Monty, tetapi versi lain mengatakan nama itu diambil dari putri Monty yang kebetulan juga bernama My. Keistimewaan MySQL Sebagai database server yang memiliki konsep database modern, MySQL memiliki banyak sekali keistimewaan. Berikut ini beberapa keistimewaan yang dimiliki oleh MySQL: 1. Portability MySQL dapat berjalan stabil pada berbagai OS seperti Windows, Linux, Unix, Mac OS, Solaris, Unix, Amiga, HP-UX, Symbian. 2. Open Source "limited" Dahulu MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga kita dapat menggunakannya secara cuma-cuma tanpa dipungut biaya. Namun, saat ini karena MySQL telah dibeli oleh SUN, maka kita tidak dapat lagi menikmati fitur-fitur baru yang ada di MySQL, karena SUN akan membatasi fitur-fitur baru ini hanya untuk user yang membeli lisensinya. Sehingga MySQL tidak lagi sebuah opensource yang benar-benar gratis lagi. MySQL sekarang hanya menyediakan fitur-fitur "dasar" saja yang saat ini sudah menggunakan versi 23 3. Multiuser MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami konflik. Hal ini memungkinkan sebuah database server MySQL dapat diakses klien secara bersamaan. 4. Performance Tuning MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 5. Column Types MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsigned integer, float, double, char, varchar, text, blob, date, time, datetime. 6. Command dan Functions MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query. 7. Security MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi. 8. Scalability dan Limits MySQL ammpu menangani database dalam skala besar dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu, batas index yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 24 9. Connectivity MySQL dapat melakukan koneksi dengan klien menggunakan TCP/IP, Unix soket (Unix), atau Named Pipes (NT). 10. Localisation MySQL dapat mendeteksi pesan kesalahan (error code) pada klien dengan menggunakan lebih dari dua puluh bahasa. 11. Interface MySQL memiliki interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 12. Clients dan Tools MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online. 13. Struktur Tabel MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan database lainnya.