5 BAB II TINJAUAN PUSTAKA Tinjauan pustaka membahas mengenai teori dasar Pengelolaan Keuangan Badan Layanan Umum (PK-BLU), akuntansi keuangan, sistem informasi, dan beberapa proses bisnis yang terkait dengan sistem yang akan dibuat. 2.1 Pengelolaan Keuangan Badan Layanan Umum (PK-BLU) Pengelolaan Keuangan Badan Layanan Umum merupakan basis tata kelola yang direncanakan Universitas Udayana sebagai langkah konkret untuk menuju good university governance. Basis tata kelola tersebut mengharapkan Universitas Udayana dapat mengoptimalkan pelayanan yang dapat mendorong dan menumbuh-kembangkan efisiensi, efektivitas, transparansi, serta akuntabilitas dalam pengelolaan keuangan. Dilihat dari aspek keuangan, PK-BLU dituntut untuk dapat menyajikan laporan keuangan konsolidasi secara periodik, yang setidaknya terdiri dari: 1. Laporan Realisasi Anggaran 2. Neraca (balance sheet) 3. Laporan Arus Kas (Statement of Cash Flows) 4. Catatan (pengungkapan/penjelasan) atas Laporan Keuangan 5. Laporan Aktivitas Sesuai Peraturan Menteri Keuangan Nomor 92/PMK.05/2011 tentang Rencana Bisnis dan Anggaran serta Pelaksanaan Anggaran Badan Layanan Umum, sebagai lembaga BLU, kemampuan pendapatan yang diperkirakan akan diterima Universitas Udayana terdiri dari: 1. Pendapatan yang akan diperoleh dari layanan yang diberikan kepada masyarakat 2. Hibah tidak terikat dan/atau hibah terikat yang diperoleh dari masyarakat atau badan lain 3. Hasil kerja sama BLU dengan pihak lain dan/atau hasil usaha lainnya 4. Penerimaan lainnya yang sah 5 6 5. Penerimaan anggaran yang bersumber dari APBN. Penerimaan untuk point 1 sampai 4 dilaporkan sebagai Penerimaan Negara Bukan Pajak (PNBP) Kementrian Negara/Lembaga. Mekanisme Penerimaan Negara Bukan Pajak (PNBP) pada point 1 adalah dengan menyetorkan SPP/SDPP dan atau pendapatan pendidikan lainnya oleh mahasiswa atau pihak lain ke rekening pemimpin BLU. Penerimaan SPP dan SDPP yang dimaksud sebelumnya akan berubah menjadi penerimaan SPP tunggal. Perkembangan selanjutnya kebijakan SPP tunggal ini dikenal dengan Uang Kuliah Tunggal (UKT) yang telah ditetapkan melalui Surat Edaran Dirjen Dikti No. 21/E/T/2012 tanggal 4 Januari 2012 dan No. 274/E/T/2012 tanggal 16 Februari 2012 serta kebijakan ini rencananya akan mulai diterapkan pada tahun ajaran 2012/2013. Berdasarkan Surat Edaran Dirjen Dikti nomor 488/E/T/2012 tanggal 21 Maret 2012 tentang Tarif Uang Kuliah SPP di Perguruan Tinggi, UKT merupakan penjumlahan semua biaya yang akan ditanggung oleh mahasiswa mulai dari SPP, BOP, biaya praktikum, biaya KKN, biaya wisuda dan biaya-biaya lainnya yang memang masih berkaitan dengan mahasiswa sesuai jurusannya. Penentuan besarannya, UKT menggunakan prinsip Akuntansi Biaya (Unit Cost). Jumlah Unit Cost ini merupakan hasil dari penjumlahan semua biaya yang dibutuhkan mahasiswa sesuai dengan jurusannya dibagi masa studi selama menempuh perkuliahan (8 semester). Mekanisme pencairan anggaran dari sumber dana PNBP memiliki dua sistem yaitu pemberian uang muka kerja (sistem tidak langsung) dan pembayaran langsung berdasarkan faktur. Pencairan dana dengan sistem tidak langsung dilakukan untuk pemberian uang muka kerja yang dapat berupa Uang Persediaan (UP), Tambahan Uang Persediaan (TUP), dan penggantian uang persediaan (GUP). Pencairan dana dengan sistem langsung (LS) dilakukan untuk: biaya pengadaan tanah; belanja pegawai (non PNS), lembur, honor/vakasi; belanja non pegawai (pengadaan barang dan jasa, pembayaran Biaya Langganan Daya dan Jasa, belanja perjalanan dinas). 7 2.2 Akuntansi Keuangan Akuntansi keuangan berhubungan dengan masalah pencatatan transaksi untuk suatu perusahaan atau organisasi dan penyusunan berbagai laporan berkala dari hasil pencatatan tersebut. 2.2.1 Definisi Akuntansi Akuntansi bisa didefinisikan sebagai suatu pengidentifikasian, pengukuran, dan pengkomunikasian informasi keuangan tentang entitas ekonomi kepada pemakai yang berkepentingan. Akuntansi Keuangan (Financial Accounting) adalah sebuah proses yang berakhir pada pembuatan laporan keuangan menyangkut perusahaan secara keseluruhan untuk digunakan baik oleh pihak - pihak internal maupun pihak eksternal perusahaan (Baridwan, 1992). 2.2.2 Terminologi Dasar Akuntansi Keuangan Akuntansi keuangan bergantung pada sekelompok konsep yang digunakan untuk mengidentifikasi, mencatat, mengklasifikasi, dan menginterpretasikan transaksi serta kejadian lainnya yang berhubungan dengan perusahaan. Beberapa terminologi dasar yang dipakai dalam mengumpulkan data akuntansi adalah sebagai berikut (Baridwan, 1992) : 1. Kejadian (Event) Event merupakan peristiwa yang berpengaruh. Suatu kejadian yang umumnya merupakan sumber atau penyebab dari perubahan aktiva, kewajiban, dan ekuitas. Kejadian bisa bersifat eksternal ataupun internal. 2. Transaksi (Transaction) Kejadian eksternal yang melibatkan transfer atau pertukaran antara dua entitas atau lebih. 3. Akun (Account) Catatan sistematis yang memperlihatkan pengaruh dari transaksi dan kejadian lainnya terhadap aktiva tertentu atau ekuitas. Akun yang terpisah digunakan untuk setiap aktiva, kewajiban, pendapatan, beban, dan modal (ekuitas pemilik). 8 4. Akun Riil dan Nominal Akun riil (permanen) adalah akun-akun aktiva, kewajiban, dan ekuitas; akun-akun ini muncul pada neraca. Akun nominal (temporer) adalah akunakun pendapatan, beban, dan dividen; akun-akun ini muncul pada laporan laba-rugi, kecuali dividen. Akun nominal akan ditutup secara periodik; sementara akun riil tidak. 5. Buku Besar (Ledger) Suatu dokumen yang mengandung akun-akun. Setiap akun biasanya memiliki halaman tersendiri. Buku besar umum berisi semua akun aktiva, kewajiban, ekuitas pemilik, pendapatan, dan beban. Buku besar pembantu mencatat rincian yang berhubungan dengan akun buku besar umum tertentu. 6. Jurnal Buku pencatatan awal di mana transaksi dan kejadian-kejadian lainnya dicatat pertama kali. Berbagai jumlah yang terdapat dalam jurnal kemudian dipindahkan ke buku besar. 7. Pemindahbukuan (Posting) Proses pemindahan fakta-fakta dan angka-angka penting dari jurnal ke akun buku besar. 8. Neraca Saldo (Trial Balance) Daftar semua akun terbuka dalam buku beserta saldonya. Neraca saldo yang tercipta setelah semua penyesuaian dipindahkan ke buku besar disebut dengan Neraca Saldo Yang Disesuaikan. Neraca saldo yang tercipta setelah semua ayat jurnal penutup di-posting dinamakan Neraca Saldo Pascapenutupan. Neraca saldo bisa dibuat kapan saja. 9. Ayat Jurnal Penyesuaian (Adjusting Entries) Ayat jurnal yang dibuat pada akhir periode akuntansi untuk memperbaharui semua akun agar laporan keuangan yang tepat bisa dibuat. 10. Laporan Keuangan Laporan yang mencerminkan pengumpulan, tabulasi, dan ikhtisar akhir dari data akuntansi. Empat laporan yang umum adalah : (1) Neraca, yang menunjukkan kondisi keuangan perusahaan pada akhir periode akuntansi, 9 (2) Laporan Laba Rugi, yang mengukur hasil-hasil operasi selama periode bersangkutan, (3) Laporan Arus Kas, yang melaporkan kas yang disediakan oleh aktivitas operasi, investasi, dan pembiayaan selama suatu periode, dan (4) Laporan Laba Ditahan, yang merekonsiliasi saldo akan laba ditahan dari awal periode sampai akhir periode. 11. Ayat Jurnal Penutup Proses formal yang dipakai untuk mengurangi semua akun nominal menjadi nol dan menentukan serta metransfer laba bersih atau rugi bersih ke akun ekuitas pemilik yang umumnya diistilahkan dengan penutupan buku besar. 2.3 Informasi Informasi dapat didefinisikan sebagai hasil dari pengolahan data dalam bentuk yang lebih berguna dan lebih berarti bagi organisasi karena dapat menggambarkan kejadian yang nyata untuk digunakan dalam pengambilan keputusan. Output informasi dari komputer digunakan oleh para manajer, non manajer serta orang-orang dan organisasi-organisasi dalam lingkungan perusahaan. Jadi informasi ibarat darah-darah yang mengalir di dalam tubuh organisasi sehingga informasi sangat penting bagi suatu organisasi. 2.3.1 Siklus Informasi Siklus informasi adalah gambaran secara umum mengenai proses terhadap data sehingga menjadi informasi yang bermanfaat bagi pengguna. Gambaran dari siklus informasi dapat dilihat pada Gambar 2.1: 10 Proses (Model) Input (Data) Dasar Data Output (Informasi) Data (ditangkap) Penerima Hasil Tindakan Keputusan/ tindakan Gambar 2.1 Siklus Informasi Data yang diolah melalui suatu model menjadi informasi, penerima kemudian menerima informasi tersebut, membuat suatu keputusan dan melakukan tindakan, yang berarti menghasilkan suatu tindakan yang lain yang akan membuat sebuah data kembali. Data tersebut akan ditangkap sebagai input, diproses kembali lewat suatu model dan seterusnya membuat suatu siklus. Siklus ini oleh John Burch disebut dengan siklus informasi (Information Cycle) atau siklus pengolahan data (Data Processing Cycles) (Jogianto, HM.,MBA.,Akt.,h.D, 2005:14). 2.3.2 Sistem Informasi Perkembangan perangkat lunak komputer dengan segala kecanggihannya membawa dampak yang positif dan negatif dalam dunia bisnis informasi. Dampak positifnya adalah proses data dan informasi yang menjadi tulang punggung dunia bisnis dapat dilakukan dengan cepat, akurat dan tepat waktu. Sedangkan dampak negatifnya akan timbul kejahatan penyelewengan dari penggunaan perangkat 11 keras tersebut. Terlepas dari semua itu, kemajuan teknologi yang dapat mendukung pengolahan informasi menjadi alat pemicu persaingan dunia bisnis dan ekonomi yang semakin kompetitif. Komputer sebagai alat penunjang pemrosesan data dan informasi institusinya. Selain itu dengan adanya komputer maka kinerja institusi dan operasionalnya dapat ditingkatkan sehingga secara tidak langsung kualitas dan mutu produk yang dihasilkan oleh institusi dapat bersaing. Suatu sistem informasi yang baik dengan menggunakan bantuan komputer sangat dibutuhkan oleh organisasi karena dapat menerima data dari berbagai sumber dari dalam maupun dari luar organisasi (sebagai input), dapat mengolah data untuk menghasilkan informasi, dan dapat memberikan informasi bagi pihak yang berkepentingan. Sistem informasi dengan bantuan komputer biasa disebut dengan Computer Based Information System. Pengertian sistem informasi tidak bisa dilepaskan dari pengertian sistem dan informasi. Secara lugas sistem informasi didefinisikan sebagai kumpulan orang, prosedur, hardware, software yang saling berinteraksi untuk memberikan suatu pelayanan informasi bagi user. Informasi merupakan sesuatu yang nyata / setengah nyata yang dapat mengurangi derajat ketidak-pastian tentang suatu keadaan / kejadian. Dapat juga diartikan sebagai data yang telah dimanipulasi sehingga dapat berguna bagi seseorang. Informasi juga meliputi data atau sumber daya yang tersedia dalam suatu perusahaan yang dapat mempengaruhi hasil kinerja bagian–bagian atau elemen–elemen yang ada dalam perusahaan. Adapun sumber daya utama suatu perusahaan dapat terdiri dari manusia, material, mesin, uang yang memiliki wujud fisik dan dapat disentuh dan jenis sumber daya informasi yang memiliki nilai dari apa yang diwakili (bukan dalam bentuk wujudnya). 2.4 Perangkat Pemodelan Sistem Terdapat beberapa teknik dalam pemodelan sistem sehingga sistem dapat dibaca dan dipahami secara lebih jelas. 12 2.4.1 Diagram Konteks Diagram Konteks merupakan diagram yang menggambarkan sebuah sistem secara garis besar dan dari diagram ini dapat dipecah menjadi prosesproses atau bagian yang lebih kecil lagi yang disebut DFD. 2.4.2 Data Flow Diagram (DFD) Diagram arus data (data flow diagram atau DFD) adalah diagram yang menggunakan notasi-notasi tertentu untuk menggambarkan arus dari data sistem. DFD sering digunakan untuk menggambarkan suatu sisterm yang telah ada atau sistem baru yang akan dikembangkan secara fisik dimana data tersebut mengalir (misalnya lewat telepon atau surat) atau lingkungan fisik dimana data tersebut akan disimpan. DFD merupakan alat yang digunakan pada metodologi pengembangan sistem yang terstruktur. DFD juga merupakan dokumentasi dari sistem yang baik. 2.4.2.1 Simbol yang Digunakan DFD Beberapa simbol yang digunakan di DFD untuk maksud mewakili: 1. External entity (kesatuan luar) atau boundary (batas sistem) Kesatuan luar merupakan kesatuan di lingkungan luar sistem yang dapat berupa orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberi input atau menerima output dari sistem. Suatu kesatuan luar dapat disimbolkan dengan suatu notasi kotak atau suatu kotak dengan sisi kiri dan atasnya berbentuk garis tebal. Kesatuan luar dapat diberi identifikasi dengan huruf kecil di ujung kiri atas sebagai berikut : ID NAMA INTERFACE Gambar 2.2 Notasi kesatuan luar di DFD Notasi kesatuan luar di DFD juga dikenal dengan sebutan notasi terminator. Terminator dapat juga berupa departemen, divisi atau sistem di luar sistem yang berkomunikasi dengan sistem yang sedang dikembangkan. 13 2. Data flow (arus data) Arus data (data flow) di DFD diberi simbol suatu panah. Arus data mengalir diantara proses, simpanan data dan kesatuan luar. 1 Rincian belanja a Proses Pembuatan kwitansi Subunit Gambar 2.3 Arus data yang mengalir dari kesatuan luar ke proses. Arus data ini menunjukkan arus dari data yang dapat berupa masukkan untuk sistem atau hasil dari proses sistem. Arus data sebaiknya diberi nama yang jelas dan mempunyai arti. Konsep dari arus data yang perlu diperhatikan : a) Konsep paket dari data (packet of data) Data yang mengalir secara bersama-sama harus ditunjukkan sebagai suatu arus data, walaupun misalnya terdiri dari beberapa dokumen. 1 Rincian belanja, SK a Proses Pembuatan kwitansi subunit Gambar 2.4 Konsep paket dari data Data tersebut dianggap sebagai satu alur data tunggal, karena data itu mengalir bersama-sama sebagai satu paket. b) Konsep Arus Data Menyebar Arus data yang menyebar menunjukkan sejumlah tembusan dari arus data yang sama dari sumber yang sama ke tujuan yang berbeda. 14 2 Proses Pembuatan sptb b 1 unit kuitansi Proses pembuatan kuitansi Gambar 2.5 Konsep arus data menyebar Konsep arus data paket, data yang kompleks dibagi menjadi beberapa elemen data yang dikirim ke tujuan yang berbeda, atau alur data ini membawa paket data yang memiliki nilai yang berbeda yang akan dikirim ke tujuan yang berbeda. c) Konsep Arus Data Mengumpul Berikut adalah contoh gambar yang menjelaskan konsep arus data mengumpul. 1 Proses Pembuatan kuitansi kuitansi a unit Bukti kas masuk 2 Proses pembuatan bukti kas masuk Gambar 2.6 Konsep arus data mengumpul Arus data mengumpul menunjukkan bebarapa arus data yang berbeda dari sumber yang berbeda bergabung bersama-sama menuju ke tujuan yang sama. d) Konsep Sumber dan Tujuan Arus Data Semua arus data harus dihasilkan dari suatu proses atau menuju ke suatu proses (dapat salah satu atau kedua-duanya, yaitu berasal dari suatu proses menuju ke bukan suatu prosas atau berasal dari bukan suatu proses tetapi 15 menuju ke suatu proses atau berasal dari suatu proses dan menuju ke suatu proses). 3. Process (proses) Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin, atau komputer dari hasil suatu arus data yang masuk ke dalam proses untuk dihasilkan arus data yang akan keluar dari proses. Identifikasi Nama proses Gambar 2.7 Notasi proses di DFD Setiap proses harus diberi penjelasan yang lengkap meliputi berikut ini : a) Identifikasi proses Identifikasi ini umumnya merupakan suatu angka yang menunjukkan nomor acuan dari proses dan di tulis pada bagian atas simbol proses. b) Nama proses Nama proses menunjukkan apa yang dikerjakan oleh proses tersebut, biasanya berbentuk suatu kalimat dan diawali dengan kata kerja. c) Pemroses Bila proses dilakukan secara manual, tidak dengan komputer maka pemroses harus ditunjukkan. Identifikasi Nama proses Pemroses Gambar 2.8 Penjelasan di simbol proses Umumnya kesalahan proses di DFD adalah sebagai berikut ini: a) Proses mempunyai input tetapi tidak menghasilkan output. Kesalahan ini disebut dengan black hole (lubang hitam). 16 b) Proses menghasilkan output tetapi tidak pernah menerima input dan kesalahn ini disebut dengan miracle (ajaib). 4. Data store (simpanan data) Simpanan data (data store) merupakan simpanan data yang dapat berupa sebagai berikut: a) Suatu file atau database di sistem komputer b) Suatu arsip atau catatan manual c) Suatu kotak tempat data di meja seseorang d) Suatu tabel acuan manual e) Suatu agenda atau buku. Simpanan data di DFD dapat disimbolkan dengan sepasang garis horizontal parallel yang tertutup di salah satu ujungnya. Media Nama data store Gambar 2.9 Notasi simpanan data di DFD Beberapa kemungkinan arus data terkait dengan proses antara lain : a) Suatu proses yang menerima sebuah arus data dan menghasilkan sebuah arus data. b) Suatu proses yang menerima lebih dari arus data dan menghasilkan sebuah arus data. c) Suatu proses yang menerima suatu arus data dan menghasilkan lebih dari sebuah arus data. Supaya gambar dari DFD tidak ruwet karena banyaknya garis arus data yang saling berpotongan, maka kesatuan luar dan simpanan data dapat digambarkan lebih dari sebuah, seperti pada Gambar 2.10 berikut: a a subunit a subunit atau a subunit subunit * Gambar 2.10 Duplikasi dari simpanan data * 17 Duplikasi dari kesatuan luar dapat diidentifikasi dengan garis miring (/) atau dengan asterik (*). Sedangkan duplikasi dari simpanan data dapat diidentifikasikan dengan garis vertikal ( | ) atau dengan asterik (*). 2.4.2.2 Bentuk Diagram Arus Data Terdapat 2 bentuk DAD, yaitu diagram arus data fisik (physical data flow diagram) dan diagram arus data logika (logical data flow diagram). 1. Diagram Arus Data Fisik (DADF) DADF lebih tepat digunakan untuk menggambarkan sistem yang ada (sistem yang lama). Penekanan dari DADF adalah bagaimana proses-proses dari sistem di terapkan (dengan cara apa, oleh siapa dan dimana), termasuk prosesproses manual. DADF harus memuat sebagai berikut : a) Proses manual juga digambarkan. b) Nama arus data harus menunjukkan fakta penerapannya semacam nomor formulir dan medianya. c) Simpanan data dapat menunjukkan simpanan non komputer. d) Nama dari simpanan data harus menunjukkan tipe penerapannya apakah secara manual atau komputerisasi. e) Proses harus menunjukkan nama dari pemroses. 2. Diagram Arus Data Logika (DADL) DADL lebih tepat digunakan untuk menggambarkan sistem yang akan diusulkan (sistem yang baru). DADL tidak menekankan pada bagaimana sistem diterapkan, tetapi penekanannya hanya pada logika dari kebutuhan– kebutuhan sistem. Untuk proses komputerisasi, penggambaran DADL yang hanya menunjukkan kebutuhan-kebutuhan proses dari sistem yang diusulkan secara logika, biasanya proses-proses yang digambarkan hanya merupakan proses-proses komputer saja. 2.4.2.3 Pedoman Menggambar DAD Pedoman untuk menggambar DAD adalah sebagai berikut : 1. Identifikasi terlebih dahulu semua kesatuan luar yang terlibat di sistem. 18 2. Identifikasi semua input dan output yang terlibat dengan kesatuan luar. 3. Gambarlah terlebih dahulu suatu diagram konteks (context diagram). 4. Gambarlah diagram berjenjang (hirarchy chart ) untuk semua proses yang ada di sitem terlebih dahulu. 5. Gambarlah sketsa DAD untuk overview diagram (Level 0) berdasarkan proses di bagian berjenjang. 6. Gambarlah DAD untuk level-level berikutnya, yaitu Level 1 dan seterusnya untuk tiap-tiap proses yang di pecah-pecah sesuai dengan bagan berjenjangnya. 7. Menggambar DAD untuk pelaporan manajemen yang digambar terpisah. 8. Menggabungkan semua DAD dalam suatu diagram 2.4.2.4 Perbedaan DAD dengan Bagan Alir DAD sangat berbeda dengan bagan alir. Perbedaannya adalah sebagai berikut: 1. Proses di DAD dapat berlangsung secara paralel, sehingga proses–proses dapat dilakukan secara serentak. 2. DAD lebih nmenunjukkan arus data dari data di suatu sistem, sedangkan bagan alir lebih menunjukkan arus dari prosedur dan bagan alir program lebih menunjukkan arus dari algoritma. 3. DAD tidak menunjukkan proses perulangan (loop) dan proses keputusan (decision) sedangkan bagan alir menunjukkannya. 2.4.2.5 Keterbatasan DAD Keterbatasan dari DAD adalah sebagai berikut : 1. DAD tidak menunjukkan proses perulangan (loop). 2. DAD tidak menunjukkan proses keputusan (decision). 3. DAD tidak menunjukkan proses perhitungan. 2.4.3 Entity Relationship Diagram (ERD) ERD merupakan model konseptual yang mendeskripsikan hubungan antar penyimpanan (dalam DFD). ERD digunakan untuk memodelkan struktur data dan 19 hubungan antar data, karena hal ini relatif kompleks. ERD menggunakan sejumlah notasi dan simbol untuk menggambaran struktur dan hubungan antar data. Ada tiga macam simbol, yaitu: 1. Entity Entity adalah suatu obyek yang dapat diidentifikasi dalam lingkungan pemakai, sesuatu yang lebih penting bagi pemakai dalam konteks sistem yang akan dibuat. Entity digambarkan menggunakan segi empat. User Gambar 2.11 Contoh entity Terdapat dua macam entitas yaitu entitas kuat dan entitas lemah. Entitas kuat merupakan entitas yang tidak memiliki ketergantungan dengan entitas lainnya. Contohnya entitas anggota. Sedangkan entitas lemah merupakan entitas yang kemunculannya tergantung pada keberadaaan entitas lain dalam suatu relasi. 2. Atribut Entity mempunyai elemen yang disebut atribut., dan berfungsi mendeskripsikan karakter entity. Kode unit unit Nama unit alamat Gambar 2.12 Atribut entity Setiap ERD bisa terdapat lebih dari satu atribut. Isi dari suatu atribut mempuyai sesuatu yang dapat mengidentifikasi isi entity satu dengan yang lainnya. 20 3. Hubungan satu sama lain. Entity dapat berhubungan satu sama lain. Hubungan ini dinamakan relationship. Sebagaimana halnya entity, maka dalam hal hubungan pun harus dibedakan antara hubungan atau bentuk antar entity dengan isi dari hubungan itu sendiri. Pada suatu hubungan (relationship) terdapat tiga jenis relasi antar entitas, yang meliputi : a) Hubungan satu ke satu ke satu (one-to-one) Sebuah relasi dikatakan one-to-one bila sebuah record pada tabel A berhubungan tepat dengan hanya satu record di tabel B, sebaliknya satu record di tabel B berhubungan tepat dengan satu record di tabel A. Adapun contoh relasi one-to-one adalah sebagai berikut: 1 1 unit Memiliki Nomor npwp Gambar 2.13 Hubungan satu ke satu Pada one-to-one ini tidak diharuskan membentuk suatu tabel baru. b) Hubungan satu ke banyak atau banyak ke satu (one-to-many or many-toone) Sebuah relasi dikatakan one-to-many bila sebuah record pada tabel A berhubungan dengan satu atau lebih record di tabel B dan begitupun satu record di tabel B berhubungan dengan lebih dari satu record di tabel A. Adapun contoh relasi one-to-many or many-to one adalah sebagai berikut: M 1 unit Memiliki Gambar 2.14 Hubungan satu ke banyak atau banyak ke satu subunit 21 Relasi ini merupakan relasi yang paling umum terjadi dalam dunia database. Pada one-to-many ini boleh membentuk tabel baru dan boleh juga tidak. c) Hubungan banyak ke banyak (many-to-many) Sebuah relasi dikatakan many-to-many bila sebuah record pada tabel A behubungan dengan lebih dari satu record di tabel B, dan begitupun record di tabel B berhubungan dengan lebih dari satu record di tabel A. Adapun contoh relasi many-to-many adalah sebagai berikut : M M Komponen kegiatan memiliki Output kegiatan Gambar 2.15 Hubungan banyak ke banyak Relasi many-to-many merupakan relasi yang rumit dan banyak mengundang masalah. Masalah yang terjadi biasanya adalah banyaknya pengulangan data (redunant data), kesulitan untuk proses pengisian data, pembaruan data maupun penghapusan data perlu dilakukan suatu tindakan khusus, yang biasanya dengan menciptakan suatu tabel khusus yang menjembatani hubungan tersebut (biasa disebut tabel penghubung / linking table). 2.4.4 Normalisasi Proses normalisasi merupakan proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entitas dan relasinya. Pada proses normalisasi selalu diuji pada beberapa kondisi. Apakah terdapat kesulitan pada saat menambah, menghapus, mengubah, dan membaca pada suatu database. Bila kesulitan pada pengujian tersebut maka relasi tersebut dipecah pada beberapa tabel lagi. 22 Tahapan-tahapan dalam teknik normalisasi adalah sebagai berikut : 1. Bentuk Tidak Normal (Unnormalized Form) Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya. 2. Bentuk Normal Kesatu (First Normal Form) Bentuk normal kesatu memiliki ciri yaitu setiap data dibentuk dalam flat tabel (tabel datar), data dibentuk dalam satu record demi satu record dan nilai dari field-field berupa ”atomic value”, tidak ada set atribut yang berulang-ulang atau bernilai ganda. 3. Bentuk Normal Kedua (Second Normal Form) Bentuk normal kedua memiliki syarat yaitu bentuk data telah memenuhi kriteria bentuk normal kesatu. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama (primary key, atribut yang mengidentifikasi secara unik suatu kejadian yang spesifik dan dapat mewakili setiap kejadian dari suatu entitas). Untuk membentuk normal kedua haruslah sudah ditentukan field-field kunci. Field kunci haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya. 4. Bentuk Normal Ketiga (Third Normal Form) Relasi haruslah dalam bentuk normal kedua untuk menjadi bentuk normal ketiga dan semua atribut bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribut bukan merupakan kunci haruslah bergantung hanya pada primary key secara menyeluruh. 5. Bentuk Normal Boyce-Codd (Boyce-Codd Normal Form) Bentuk Normal Boyce-Codd merupakan bentuk paksaan yang lebih kuat dari bentuk normal ketiga. Untuk menjadi bentuk normal Boyce-Codd, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung fungsi pada atribut superkey (kunci super). 23 2.5 Konsep Database Management System (DBMS) Perancangan sistem yang baik harus sesuai dengan beberapa komponen konsep dalam database management system. Konsep tersebut diantaranya : 2.5.1 Definisi Database Basis data (database) adalah kumpulan data terhubung yang disimpan secara bersama pada suatu media, tanpa adanya suatu kerangkapan data, sehingga mudah untuk digunakan kembali, dapat digunakan oleh satu atau lebih program aplikasi secara optimal, data disimpan tanpa mengalami ketergantungan pada program yang akan menggunakannya, data disimpan sedemikian rupa sehingga apabila ada penambahan, pengambilan dan modifikasi data dapat dilakukan dengan mudah dan terkontrol. 2.5.2 Definisi DBMS DBMS merupakan kumpulan tabel yang saling berkaitan bersama dengan program sebagai pengelolanya. Basis data adalah kumpulan datanya, sedangkan program pengelolanya berdiri sendiri dalam suatu paket program untuk membaca data, mengisi data, menghapus data, melaporkan data dalam basis data. 2.5.3 Istilah-Istilah dalam Sistem Basis Data Beberapa istilah yang penting dan sering digunakan dalam penyusunan suatu basis data adalah : 1. Enterprise, yaitu suatu bentuk organisasi. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh : Sekolah, Rumah Sakit, Bank dan lain sebagainya. 2. Entitas, yaitu obyek yang dapat dibedakan dengan obyek lainnya. Contoh: dalam enterprise sekolah terdapat entitas mahasiswa, mata kuliah. 3. Atribut, yaitu sebutan untuk mewakili suatu entity. Contoh : dalam entitas mahasiswa memiliki atribut NIM, Nama, Alamat dan Agama. 4. Nilai Data atau Data Value, yaitu informasi yang tercakup dalam setiap elemen data. Isi dari atribut disebut Nilai Data. 24 5. Record (Tuple), yaitu kumpulan field-field yang saling berkaitan yang menginformasikan tentang suatu entity secara lengkap. 6. File, yaitu kumpulan record-record yang sejenis dimana mempunyai panjang elemen yang sama, atribut yang sama namun berbeda-beda data value-nya. 7. Database, yaitu kumpulan file-file yang mempunyai ikatan antara satu file dengan file lainnya sehingga membentuk suatu bangunan data. 2.5.4 Kegunaan DBMS Tujuan awal dan utama dalam pengelolaan data dalam sebuah basis data adalah agar kita dapat memperoleh atau mencari data dengan mudah dan cepat. Selain itu pemanfaatan basis data dilakukan untuk memenuhi tujuan berikut : 1. Kecepatan dan kemudahan. Basis data memungkinkan kita untuk dapat menyimpan dan melakukan perubahan terhadap data dan menampilkan kembali dengan cepat dan mudah. 2. Efisiensi ruang penyimpanan (space). Efesiensi ruang penyimpanan dapat dilakukan karena dapat dilakukan penekanan jumlah redudansi data, baik dengan penerapan sejumlah pengkodean atau dengan menggunakan relasi-relasi antar kelompok data yang saling berhubungan. 3. Keakuratan (accuracy). Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan menerapkan aturan tipe data, domain data dan lainnya secara ketat dapat menekan ketidakakuratan pemasukan data atau penyimpanan data. 5 Ketersediaan (availability). Pertumbuhan data sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar, padahal tidak semua data digunakan. Karena itu kita dapat memilih adanya data utama, data transaksi, data historis hingga data kadaluarsa. 25 5. Kelengkapan (completeness). Lengkapnya data yang dikelola dalam sebuah basis data bersifat relatif dan untuk menambah kelengkapan, maka dapat ditambahkan record-record data. 6. Keamanan (security). Dalam membangun basis data, kita dapat menentukan siapa saja yang berhak menggunakan basis data dan operasi apa saja yang boleh dilakukan. 7. Kebersamaan pemakaian (share ability). Pemakaian basis data umumnya tidak terbatas pada satu pemakai atau satu lokasi saja. Basis data juga dapat dikelola oleh sistem yang didukung lingkungan banyak pemakai (multiuser). 2.5.5 Komponen DBMS Sistem basis data yang lengkap akan memiliki komponen-komponen utama yaitu sebagai berikut : 1. Perangkat Keras (Hardware) Perangkat keras yang mendukung sistem basis data antara lain : a) Unit pusat pengolah (CPU), berjumlah satu untuk sistem stand alone atau lebih dari satu untuk sistem jaringan. b) Media penyimpan data, berupa harddisk atau removable disk untuk keperluan backup data. c) Media input, berupa keyboard, kamera, scanner. d) Perangkat jaringan untuk koneksi, berupa LAN card, modem, wireless, inframerah. e) Media output, berupa monitor untuk tampilan visual atau printer untuk mencetak laporan. 2. Perangkat Lunak (Software) Perangkat lunak yang digunakan untuk mengoperasikan sistem basis data adalah sistem operasi dan program pendukung DBMS. Sistem operasi adalah program yang mengaktifkan atau memfungsikan sistem komputer, mengendalikan seluruh sumber daya seperti proses I/O, memanajemen file- 26 file. Sistem operasi yang banyak digunakan antara lain Microsoft Windows 98/Me/2000/NT/XP/2003, LINUX, UNIX, MS-DOS. Program pendukung DBMS antara lain DBaseIII/IV, Foxbase, Foxpro, MySQL, SQL Server, Ms. Access, Oracle. 3. Basis Data (Database). Sistem database dapat memiliki beberapa database. Setiap database memiliki sejumlah objek database seperti tabel, indeks, prosedur tersimpan dan lain-lain. Disamping menyimpan data, setiap database juga menyimpan definisi struktur baik untuk database maupun objek-objeknya secara detail. Yang sangat ditonjolkan dalam database adalah pengaturan, pemilahan, pengelompokan dan pengorganisasian data yang akan kita simpan sesuai fungsi dan jenisnya. Pemilahan, pengelompokkan dan pengorganisasian ini dapat berbentuk sejumlah tabel terpisah atau dalam bentuk pendefinisian kolom-kolom atau field-field data dalam setiap tabel. Dalam setiap tabel terdapat record-record yang sejenis, sama bentuk. Satu record terdiri dari field-field yang saling berhubungan untuk menunjukkan bahwa field tersebut dalam satu pengertian yang lengkap dan direkam dalam satu record. Operasi yang berkenaan dengan pembuatan database dan tabel merupakan operasi awal yang hanya dilakukan sekali dan berlaku seterusnya. Sedangkan operasi-operasi yang berkaitan dengan isi tabel (data) merupakan operasi rutin yang akan berlangsung berulan-ulang dan karena itu operasi-operasi inilah yang lebih tepat mewakili aktivitas pengelolaan dan pengolahan data dalam database. 4. Pemakai (User) Manusia merupakan elemen penting pada sistem basis data. Pemakai ini terbagi atas empat kategori : a) System Engineer yaitu tenaga ahli yang bertanggung jawab atas pemasangan sistem basis data dan juga mengadakan peningkatan serta melaporkan kesalahan dari sistem tersebut kepada pihak penjual. 27 b) Administrator Basis Data, yaitu tenaga ahli yang mempunyai tugas mengawasi basis data , merencanakan dan mengaturnya. c) Programmer, yaitu bertugas membuat program aplikasi yang diperlukan oleh pemakai akhir dengan menggunakan data yang terdapat dalam sistem basis data. d) Pemakai Akhir, yaitu tenaga ahli yang menggunakan data untuk mengambil suatu keputusan yang diperlukan dalam suatu instansi atau perusahaan. 5. Aplikasi (Perangkat Lunak) Lain. Aplikasi lain ini bersifat opsional. Artinya ada tidaknya tergantung pada kebutuhan kita. DBMS yang digunakan lebih berperan dalam pengorganisasian data dalam database, sementara bagi pemakai database khususnya yang menjadi end user dapat dibuatkan program aplikasi khusus untuk melakukan pengisian, pengubahan dan pengambilan data. Program aplikasi ini ada yang disediakan bersama dengan DBMS-nya, ada juga yang dirancang dan dibuat sendiri dengan menggunakan aplikasi lain yang khusus untuk pengorganisasian database. 2.5.6 Abstraksi DBMS Pembuatan DBMS dan aplikasi basis data memiliki tujuan untuk menyediakan layanan antar muka (interface) dalam melihat data pemakai. Untuk itu, hal detail tentang bagaimana data disimpan dan dipelihara akan disembunyikan oleh sistem. Maka dari itu, sering kali data yang dilihat oleh pemakai sebenarnya berbeda dengan yang tersimpan secara fisik. Abstraksi data merupakan tingkatan atau level bagaimana melihat data dalam sebuah sistem database. Terdapat 3 (tiga) tingkat abstraksi data, yaitu : 1. Tingkat Fisik (Physical Level) Bagaimana sesungguhnya suatu data itu disimpan ditunjukkan pada tingkat ini. Pada tingkat ini juga pemakai berkompeten dalam mengetahui bagaimana representasi fisik dari penyimpanan dan pengorganisasian data. 2. Tingkat Logik atau Konseptual (Conceptual Level) 28 Dalam tingkat ini digambarkan data apa yang disimpan sebenarnya dalam database dan hubungannya dengan data yang lain. 3. Tingkat Penampakan (View Level) Merupakan tingkat tertinggi dari abstraksi data. Pada tingkat ini hanya sebagian data yang ditunjukkan dari database. Hanya sebagian data atau informasi dalam database yang dibutuhkan pemakai dan yang kemunculannya di depan pemakai diatur oleh program aplikasi yang digunakan. 2.5.7 Bahasa DBMS DBMS merupakan perantara bagi pemakai dengan database dalam media penyimpanan seperti harddisk maupun removable disk. Cara berinteraksi antara pemakai dengan database tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu disebut sebagai Bahasa Database atau Database Language yang terdiri atas sejumlah perintah (statement) yang diformulasikan dan dapat diberikan pemakai dan dikenali oleh DBMS untuk melakukan suatu aksi seperti permintaan (query) data tertentu. Contoh bahasa database seperti SQL (Structured Query Language). Sebuah bahasa database biasanya dapat dipilah ke dalam dua kategori yaitu : 1. Data Definition Language (DDL) DDL adalah bahasa yang disepesifikasikan untuk medifinisikan data dan objek database. Jika perintah ini digunakan, entri akan dibuat kedalam kamus data (data dictionary). Di dalam kategori ini terdapat beberapa contoh-contoh perintah seperti pada Tabel 2.1. Tabel 2.1 Contoh perintah-perintah Data Definition Language (DDL) Perintah CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEKS DROP INDEKS CREATE VIEW DROP VIEW Fungsi Membuat tabel baru Menambah satu atau lebih kolom (field) pada tabel yang baru dibuat Menghapus suatu tabel Membuat indeks Menghapus tabel yang sudah terindeks Memanipulasi data Menghapus file view 29 2. Data Manipulation Language (DML) Data manipulation language (DML) adalah bahasa yang diperbolehkan pemakai untuk mengakses atau memanipulasi data yang telah diorganisasikan sebelumnya dalam model data yang tepat. Beberapa perintah yang termasuk dalam DML seperti pada Tabel 2.2. Tabel 2.2 Contoh perintah-perintah Data Manipulation Language (DML) Perintah Fungsi SELECT Menentukan data atau informasi yang akan keluar dari tabel-tabel UPDATE Mengubah isi record pada suatu tabel Menghapus sebuah field DELETE Menyisipkan suatu record INSERT Commit Menuliskan perubahan kedalam Disk Rollback Membatalkan perubahan yang dilakukan setelah perintah Commit yang terakhir Beberapa fasilitas yang telah disediakan dalam DML antara lain seperti pada Tabel 2.3. Tabel 2.3 Contoh fasilitas Data Manipulation Language (DML) Perintah Fungsi ALL Mendapatkan semua baris yang sesuai dengan WHERE DISTINCT Mendapatkan baris yang tidak duplikat WHERE Menyatakan kondisi yang akan digabungkan dengan operator logika seperti AND, OR, NOT, dengan operator pembanding <, >, = GROUP BY Mengelompokkan baris-baris dengan isi kolom yang sama ORDER BY Menyusun tabel hasil dengan nilai pada satu atau lebih dari satu kolom COUNT Menghitung jumlah baris SUM Menghitung jumlah nilai AVG Menghitung nilai rata-rata MIN Menghitung nilai minimal 2.6 MySQL MySQL adalah multiuser database yang mengunakan bahasa SQL (Structured Query Language). MySQL dalam operasi client-server melibatkan server daemon MySQL disisi server dan berbagai macam program serta library yang berjalan pada sisi client. 30 2.6.1 Keunggulan MySQL Menurut Saputro (2003), beberapa pertimbangan pemrogram dalam memilih MySQL sebagai tulang punggung dari pengolahan database yaitu: 1. Kecepatan. Berdasarkan hasil pengujian, MySQL memiliki kecepatan paling baik dibanding RDBMS lainnya. 2. Mudah digunakan. Perintah dalam MySQL dan aturan-aturannya relatif mudah diingat dan diimplementasikan, karena MySQL menggunakan SQL sebagai bahasa standar database. 3. Open Source. MySQL sudah menggunakan konsep open source, artinya siapapun dapat berkecimpung dalam mengembangkan MySQL dan hasil pengembangannya dipublikasikan kepada para pemakai. 4. Kapasitas. MySQL mampu memproses data yang tersimpan dalam database dengan jumlah 50 juta record, 60 ribu tabel dan 5 milyar jumlah baris. 5. Keamanan. MySQL menerapkan sistem keamanan dan hak akses secara bertingkat, termasuk dukungan dengan keamanan data secara pengacakan lapisan data. Adanya tingkatan pengguna dan jenis akses yang beragam. Terdapat sistem pengacakan password. 6. Lintas Platform. MySQL dapat dijalankan pada beberapa sistem operasi diantaranya adalah Microsoft Windows, Linux, FreeBSD, Mac OS, X Server, Solaris, Amiga, HP UX dan masih banyak lagi. 2.6.2 Tipe Data MySQL Data yang terdapat dalam sebuah table berupa field-field yang berisi nilai dari data tersebut. Nilai data dalam field memiliki tipe sendiri-sendiri. MySQL mengenal beberapa tipe data field, yaitu: 1. Tipe data numerik Tipe data numerik dapat dibedakan menajdi dua kelompok, yaitu tipe data integer dan tipe data floating point. Tipe data integer untuk data bilangan bulat sedangkan tipe data floating point digunakan untuk bilangan desimal. Tipe data numerik selengkapnya dapat dilihat pada Tabel 2.4. 31 Tabel 2.4 Tipe data Numerik dalam MySQL Tipe data TINYINT SMALLINT MEDIUMINT INT BIGINT FLOAT(p) FLOAT DOUBLE Kisaran Nilai (-128) – 127 atau 0 – 225 (-32768) – 32767 atau 0 – 65535 (-3888608) – 8388607 atau 0– 16777215 (-21447683648) – 21447683647 atau 0 – 4294967295 (-922337203685775808) – 9223372036854775807 atau 0 184467440737099551615 (-3.4E+38) – (-1.17E-38),0, dan 1.175E38 – 3.4E+38 (-3.4E+38) – (-1.17E-38),0, dan 1.175E38 – 3.4E+38 (-1.79E+308) – (-2.225E-308),0, dan 2.225E-308 – 1.79E+308 Kapasitas memori penyimpanan 1 byte 2 byte 3 byte 4 byte 8 byte 4 byte jika 0<=p<=24, 8 byte jika25<==p<=53 4 byte 8 byte 2. Tipe Data String String adalah rangkaian karakter. Berikut adalah tipe data string: Tabel 2.5 Tipe data String dalam MySQL Tipe data Kisaran Nilai Kapasitas memori penyimpanan CHAR 1 - 255 karakter VARCHAR 1 - 255 karakter TINYBLOB, TINYTEXT BLOB, TEXT MEDIUMBLOB, MEDIUMTEXT LONGBLOB, LONGTEXT 1 - 255 karakter 1 - 65535 karakter M byte, 0<=M<=255 L+1 byte, dimana L<=M 0<=M<=255 L+1 byte, dimana L<2^8 L+2 byte, dimana L<2^16 1 - 16777215 karakter L+3 byte, dimana L<2^24 1 - 4294967295 karakter L+4 byte, dimana L<2^32 ENUM Maksimum 65535 SET Maksimum 64 elemen dan 1 atau 2 byte, tergantung jumlah nilai yang ada 1,2,3,4 atau 8 byte, tergantung jumlah nilai yang ada 3. Tipe Data Tanggal Berikut adalah tipe data tanggal : Tabel 2.6 Tipe data date dalam MySQL Tipe data DATETIME DATE TIMESTAMP TIME YEAR Kisaran Nilai 1000-01-01 00:00 sampai 9999-12-31 23-59-59 1000-01-01 sampai 9999-12-31 1970-01-01 00:00:00 sampai 2037 -839:59:59 sampai 838:59:59 1901 sampai 2155 Kapasitas memori penyimpanan 3 byte 8 byte 4 byte 3 byte 1 byte 32 2.7 HTML (Hypertext Markup Language) Salah satu bahasa pemrograman yang digunakan untuk mendesain suatu web adalah HTML. HTML merupakan suatu format yang digunakan dalam pembuatan dokumen dan aplikasi yang berjalan dihalaman web. Bahasa pemrograman ini akan memformat teks biasa agar bisa dijalankan diatas web browser. Protokol yang digunakan untuk mentransfer data antara web server ke web browser adalah HTTP (Hypertext Transfer Protocol). 2.8 PHP (Hypertext Preprocessor ) PHP merupakan singkatan dari "PHP: Hypertext Preprocessor", adalah sebuah bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mirip dengan Bahasa C, Java dan Perl, ditambah beberapa fungsi PHP yang spesifik. Database pasangannya biasanya MySQL, dijalankan bersama Webserver Apache di atas system operasi Linux maupun Windows. Tujuan utama bahasa ini adalah untuk memungkinkan perancang web menulis halaman web dinamik dengan cepat. 2.8.1 Interface antara PHP dan HTML Halaman web biasanya disusun dari kode-kode html yang disimpan dalam sebuah file berekstensi .html. File html ini dikirimkan oleh server (atau file) ke browser, kemudian browser menerjemahkan kode-kode tersebut sehingga menghasilkan suatu tampilan yang indah. Lain halnya dengan program php, program ini harus diterjemahkan oleh web-server sehingga menghasilkan kode html yang dikirim ke browser agar dapat ditampilkan. Program ini dapat berdiri sendiri ataupun disisipkan di antara kode-kode HTML sehingga dapat langsung ditampilkan bersama dengan kode-kode HTML tersebut. Program php dapat ditambahkan dengan mengapit program tersebut di antara tanda <? dan ?>. Tandatanda tersebut biasanya disebut tanda untuk escaping (kabur) dari kode html. File HTML yang telah dibubuhi program php harus diganti ekstensi-nya menjadi .php atau .php3. PHP merupakan bahasa pemograman web yang bersifat server-side HTML=embedded scripting, di mana script-nya menyatu dengan HTML dan 33 berada si server. Artinya adalah sintaks dan perintah-perintah yang kita berikan akan sepenuhnya dijalankan di server tetapi disertakan HTML biasa. PHP dikenal sebgai bahasa scripting yang menyatu dengan tag HTML, dieksekusi di server dan digunakan untuk membuat halaman web yang dinamis seperti ASP (active Server Pages) dan JSP (Java Server Pages). 2.8.2 Kelebihan PHP Banyak keuntungan yang dapat diperoleh jika menggunakan PHP sebagai modul dari apache di antaranya adalah : 1. Tingkat keamanan yang cukup tinggi. 2. Waktu eksekusi yang lebih cepat dibandingkan dengan bahasa pemograman web lainnya yang berorientasi pada server-side scripting. 3. Akses ke sistem database yang lebih fleksibel. seperti MySQL. Dalam modul ini kita akan mempelajari PHP sebagai server-side scripting yang menggunakan apache sebagai webserver. Versi PHP yang kita gunakan adalah PHP4 untuk windows. 2.8.3 Sintak PHP PHP adalah bahasa pemrograman server-side scripting yang menyatu dengan HTML untuk membuat halaman web yang dinamis. Maksud dari serverside scripting adalah sintaks dan perintah yang diberikan akan sepenuhnya dijalan kan di-server tetapi disertakan pada dokumen HTML. Ada beberapa cara menuliskan script PHP, yaitu: 1. <? php ……(Script PHP anda) ?> 2. <? ……?> 3. <script language=”PHP”>……</script> 2.9 Framework Framework adalah sekumpulan fungsi, class, dan aturan-aturan dalam pemrograman. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework bersifat menyeluruh mengatur bagaimana membangun sekaligus 34 mempermudah pembuatan aplikasi web. Sebuah framework selain menyediakan lingkungan pengembangan sendiri, juga menyediakan berbagai macam fungsi siap pakai yang bisa digunakan dalam pembuatan website. Banyak kode atau fungsi yang terlihat tidak seperti biasanya, karena fungsi fungsi tersebut merupakan fungsi bawaan framework dan bukan fungsi asli dari PHP. Fungsi tersebut terkadang merupakan pengembangan atau penyesuaian fungsi asli PHP agar lebih mudah digunakan atau agar lebih sesuai dengan kebutuhan pengguna. Framework memungkinkan untuk membangun aplikasi dengan lebih cepat karena setiap developer akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security, umumnya telah disediakan oleh framework. Disamping itu dengan aturan-aturan yang jelas dan harus dipatuhi, aplikasi yang dibuat akan lebih solid, “more readable”, dan kolaborasi dalam tim dapat lebih mudah dilaksanakan. 2.10 CodeIgniter CodeIgniter merupakan salah satu dari sekian banyak framework PHP yang ada. CodeIgniter dikembangkan oleh Rick Ellis. Tujuan dari pembuatan framework CodeIgniter ini adalah untuk menghasilkan framework yang dapat digunakan untuk pengembangan proyek pembuatan website secara lebih cepat dibandingkan dengan pembuatan website, dengan cara coding secara manual. CodeIgniter menyediakan banyak sekali pustaka yang dibutuhkan dalam pembuatan website, dengan antarmuka yang sederhana dan struktur logika untuk mengakses pustaka yang dibutuhkan. 2.10.1 Kelebihan CodeIgniter Berikut adalah kelebihan-kelebihan dari CodeIgniter : 1. Gratis. CodeIgniter dilisensikan dibawah lisensi Apache/BSD style open source license, ini berarti CodeIgniter dapat digunakan secara bebas. 35 2 Berjalan di PHP versi 4 dan 5. Saat ini PHP sudah mencapai versi ke 5, meskipun begitu masih banyak orang yang tetap menggunakan PHP versi 4, oleh sebab itu CodeIgniter dikembangkan agar tetap kompatibel dengan PHP versi 4 dan dapat dijalankan pada PHP versi 5. 3 Ringan dan cepat. Secara default CodeIgniter hanya berjalan dengan me-load beberapa pustaka saja, dengan demikian hanya membutuhkan resource yang sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain yang nantinya akan digunakan bisa di-load sesuai dengan kebutuhan. 4 Menggunakan MVC. CodeIgniter menggunakan lingkungan pengembangan dengan metode Model-View-Controller (MVC) yang membedakan antara logika dan presentasi/tampilan, sehingga tugas bisa lebih mudah dipecah-pecah. Ada bagian yang khusus membuat tampilan dan bagian yang membuat core programnya. 5 Dokumentasi. Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi benarbenar dikembangkan atau tidak bisa dilihat dari dokumentasinya. Dalam hal ini CodeIgniter sangat luar biasa, terdapat dokumentasi yang sangat lengkap tentang semua hal yang ada dalam CodeIgniter. Mulai dari langkah instalasi sampai dokumentasi fungsi-fungsi nya tersedia. Adanya dokumentasi sangat memudahkan bagi pemula dalam mempelajari lingkungan pengembangan website dengan CodeIgniter. 6 Pustaka yang lengkap. CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk berbagai kebutuhan, misalnya saja koneksi database, email, session dan cookies, keamanan, manipulasi gambar dan banyak lagi. 36 2.10.2 Model View Controller MVC memisahkan antara logika pembuatan kode dengan pembuatan template atau tampilan website. Penggunaan MVC membuat pembuatan sebuah proyek website menjadi lebih terstruktur dan lebih sederhana. Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian Model, bagian View dan bagian Controller. Didalam website dinamis setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara menampilkan halaman wesite. 3 hal tersebut direpresentasikan dengan MVC yaitu model untuk basis data, view untuk cara menampilkan halaman website dan controller untuk logika aplikasi. 1. Model Merepresentasikan struktur data dari website yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks atau file xml. Biasanya didalam model akan berisi class dan fungsi untuk mengambil, melakukan update dan menghapus data website. Sebuah website biasanya menggunakan basis data dalam menyimpan data, maka bagian model biasanya akan berhubungan dengan perintah-perintah query SQL. Model bisa dibilang khusus digunakan untuk melakukan koneksi ke basis data oleh karena itu logika-logika pemrograman yang berada didalam model juga harus yang berhubungan dengan basis data. Misalnya saja pemilihan kondisi, tetapi untuk memilih melakukan query yang mana. 2. View Merupakan informasi yang ditampilkan kepada pengunjung website. Sebisa mungkin didalam view tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View bisa dibilang adalah halaman website yang dibuat menggunakan HTML dengan bantuan CSS atau JavaScript. Didalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. 37 3. Controller Controller merupakan penghubung antara model dan view. Didalam Controller inilah terdapat class dan fungsi-fungsi yang memproses permintaan dari view kedalam struktur data didalam model. Controller juga tidak boleh berisi kode untuk mengakses basis data. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input