BAB II LANDASAN TEORI
Pada bab ini akan dijelaskan lebih lanjut mengenai hal-hal yang diperlukan untuk pembuatan aplikasi ini. Teori-teori ilmu terkait yang digunakan merupakan penjelasan lebih rinci mengenai perusahaan dagang, anggaran perusahaan, teori chaos, metodologi rekayasa perangkat lunak dan perangkat yang akan digunakan. Tujuannya agar sistem ini mempunyai pijakan pustaka yang dapat dipertanggungjawabkan.
2.1
Perusahaan Dagang Menurut Widjaja (2000), berdasarkan jenis usahanya perusahaan dibedakan menjadi 3
macam, yaitu: 1. Perusahaan Jasa adalah perusahaan yang menyediakan jasa/fasilitas/layanan sebagai usaha yang dijalankannya. 2. Perusahaan Dagang adalah perusahaan yang membeli barang dagangan dari pemasok/rekanan dan menjualnya kembali kepada pelanggan atau pembeli. 3. Perusahaan Industri/Manufaktur adalah perusahaan yang membeli bahan baku, mengolahnya dan kemudian menjualnya dalam bentuk barang jadi. Karakteristik dari perusahaan dagang itu sendiri adalah sebagai berikut: 1. Adanya transaksi jual beli barang dagangan. 2. Barang yang dimiliki memiliki daya tahan untuk disimpan lebih lama. 3. Memiliki persediaan barang dagangan. 4. Terdapat biaya langsung dengan pendapatan (biaya perolehan barang dagangan dan penjualan barang dagangan).
7
8 Ketentuan bisnis yang berlaku secara umum yang biasanya diterapkan adalah: 1. Ketentuan tentang penyerahan hak kepemilikan barang. a. Franko gudang penjual (free on board shipping point): penyerahan barang dilakukan di gudang penjual dimana biaya perjalanan ditanggung oleh pembeli. b. Franko gudang pembeli (free on board destination point): penyerahan barang dilakukan di gudang pembeli dimana biaya perjalanan ditanggung oleh penjual. c. Biaya asuransi dan pengiriman (Cost Insurance and Freight): penyerahan barang dilakukan di gudang pembeli dimana biaya perjalanan atau pengiriman dan asuransi kerugian atas barang yang diterima tersebut ditanggung oleh penjual. 2. Ketentuan tentang pembayaran. a. 2/10, n/30: potongan diberikan sebanyak 2% jika lunas dalam waktu 10 hari untuk jangka waktu pelunasan adalah 30 hari pembayaran dari tanggal transaksi. b. 2/10, Akhir bulan (End of Month): discount diberikan sebanyak 2% jika lunas dalam waktu 10 hari dan jangka waktu pembayaran paling lambat di akhir bulan terjadinya transaksi. c. 2/10, 1/15, n/30: potongan 2% akan diberikan jika pembeli melakukan pembayaran dalam jangka waktu 10 hari atau kurang, tetapi jika lewat batas 10 hari sampai 15 hari akan mendapat potongan 1 % dalam jangka waktu pembayaran paling lambat 30 hari. d. n/60: pembayaran dilakukan selambat-lambatnya 60 hari setelah tanggal transaksi jual beli. e. Akhir bulan (End of Month): harga netto faktur harus dibayar paling lambat pada akhir bulan penjualan tanpa potongan tunai kepada pembeli. 3. Ketentuan tentang retur barang dan keringanan barang. a. Mengembalikan barang ke penjual. b. Meminta keringanan harga jika tetap membeli barang tersebut.
9 4. Ketentuan tentang potongan pemasaran. a. Potongan kuantitas (dalam jumlah pembelian yang banyak). b. Potongan dagang (potongan harga yang diberikan karena alasan tertentu, seperti pelanggan baru). Macam transaksi yang biasa dilakukan di perusahaan dagang adalah: 1. Pembelian barang dagang 2. Pengembalian barang dagang yang dibeli (retur pembelian & PH ) 3. Pembayaran biaya angkutan barang dagang yang dibeli 4. Pembayaran utang dagang 5. Penjualan barang dagang 6. Penerimaan kembali barang dagang yang dijual ( retur penjualan & PH ) 7. Pembayaran beban angkutan barang yang dijual 8. Penerimaan pelunasan piutang dagang 9. Perhitungan laba/rugi perusahaan dagang.
2.2
Anggaran Perusahaan Anggaran adalah rencana keuangan yang disusun untuk masa depan, yang sesuai
dengan tujuan perusahaan dan meliputi tindakan-tindakan yang diperlukan untuk mencapainya (Hansen dan Mowen, 2000:276). Tujuan penyusunan anggaran adalah sebagai berikut: a. Mendorong manajer untuk selalu membuat rencana. b. Menyediakan informasi yang dapat digunakan untuk meningkatkan pengambilan keputusan. c. Sebagai standar untuk evaluasi kinerja. d. Untuk meningkatkan komunikasi dan koordinasi.
10
Dari sudut ruang lingkup ataupun intensitas penyusunan anggaran perusahaan, ada 2 jenis anggaran perusahaan, yakni: a. Anggaran komprehensif adalah anggaran perusahaan yang disusun dengan ruang lingkup yang menyeluruh yang mencakup seluruh aktivitas perusahaan baik di bidang pemasaran, produksi, keuangan, personalia maupun administrasi. b. Anggaran parsial adalah anggaran perusahaan yang disusun dengan ruang lingkup yang terbatas yang hanya mencakup sebagian dari kegiatan perusahaan, misalnya saja hanya terbatas pada pemasarannya saja, atau produksinya saja, atau keuangan saja. Menurut Hansen dan Mowen, anggaran komprehensif terbagi menjadi dua yaitu anggaran operasi dan anggaran keuangan. a. Anggaran Operasi Adalah anggaran yang berkaitan dengan produksi atau disebut juga anggaran rugi laba yang terdiri dari anggaran penjualan, anggaran produksi, anggaran bahan baku, anggaran tenaga kerja, anggaran biaya overhead pabrik, anggaran persediaan akhir, anggaran harga pokok produksi (HPP), anggaran administrasi dan umum, anggaran biaya pemasaran. b. Anggaran Keuangan Adalah anggaran yang menunjukkan detail arus uang yang masuk dan keluar dan menunjukkan posisi keuangan secara keseluruhan dan terdiri dari anggaran kas dan anggaran modal.
2.2.1
Anggaran Penjualan Menurut M. Munandar, anggaran penjualan merupakan dasar bagi penyusunan
anggaran-anggaran lain sebagai anggaran yang merencanakan lebih terperinci tentang
11 penjualan perusahaan pada periode yang akan datang, meliputi rencana tentang jenis barang yang akan dijual, waktu penjualan, serta tempat penjualannya. Faktor yang mempengaruhi penyusunan anggaran penjualan adalah: a. Faktor internal, yaitu data, informasi, dan pengalaman yang terdapat di dalam perusahaan sendiri. Meliputi penjualan tahun-tahun yang lalu, kebijakan perusahaan mengenai masalah penjualan, kapasitas produksi dan perluasannya, tenaga kerja yang tersedia dan fasilitas yang dimiliki perusahaan. b. Faktor eksternal, yaitu data, informasi dan pengalaman yang terdapat di luar perusahaan dan yang mempengaruhi anggaran penjualan perusahaan seperti: keadaan persaingan di pasar, posisi perusahaan dalam persaingan, tingkat permintaan terhadap harga barang yang dihasilkan perusahaan, keadaan perekonomian nasional maupun internasional, kebijakan perusahaan yang diterapkan untuk masalah yang dihadapi perusahaan.
2.2.2
Anggaran Produksi Adalah anggaran yang merencanakan secara lebih rinci tentang jumlah unit/nilai
barang yang akan diproduksi oleh perusahaan selama periode yang akan datang. Tujuan dari anggaran produksi adalah untuk memenuhi kebutuhan penjualan secara periodik sehingga barang dapat tersedia sesuai rencana, memproduksi barang secara ekonomis dan stabil sehingga biaya menjadi minimum. Langkah-langkah menyusun anggaran produksi adalah menetapkan kebijakan tingkat persediaan dan merencanakan jumlah produksi setiap jenis produk selama periode anggaran berdasarkan anggaran penjualan. Anggaran produksi diperinci dalam anggaran bahan baku, anggaran tenaga kerja langsung, dan anggaran biaya overhead.
12 2.2.3
Anggaran Bahan Baku Langsung Menunjukkan jumlah bahan yang diperkirakan dibutuhkan dalam memproduksi
jumlah barang jadi yang direncanakan. Masukan dasar adalah jumlah unit dari tiap jenis bahan yang dibutuhkan untuk tiap barang jadi.
2.2.4
Anggaran Tenaga Kerja Langsung Merupakan tenaga kerja yang langsung dapat diidentifikasikan dengan produksi unit
tertentu dari barang jadi, seperti jam tenaga kerja langsung yang direncanakan. Untuk perusahaan jasa atau dagang tidak diperlukan anggaran tenaga kerja langsung tetapi sudah dianggarkan sebagai biaya operasi bersama pengeluaran utama lainnya yang terjadi ketika mengoperasikan bisnis tersebut (Welsch dkk, 1998).
2.2.5
Anggaran Overhead Adalah biaya produksi total yang tidak dapat langsung diidentifikasikan pada produk
atau pekerjaan tertentu, seperti biaya bahan tidak langsung, biaya tenaga kerja tidak langsung, dan semua jenis biaya pabrik seperti pajak, asuransi, penyusutan, barang persediaan, perbaikan dan pemeliharaan (Welsch dkk, 1998).
2.3
CHAOS Kata Chaos atau Khaos sendiri merupakan wujud awal dari mitologi yunani sebagai
perwujudan dari dewa-dewa awal Yunani. Dalam bahasa Yunani disebut Xaos, yang kira-kira dibaca ”kh-a-oss”. Dalam arti modern, chaos berarti sebuah kekacauan, tidak adanya aturan atau tata tertib (Wikipedia, 2010). Teori chaos merupakan cabang dari matematika yang mempelajari bagaimana membangkitkan bilangan secara acak. Chaos pertama kali terobservasi dalam sebuah sistem yang dikenal dengan nama sistem dinamis. Sifat chaotik
13 ditemukan pada berbagai sistem yang umum, mulai dari sistem yang sederhana sampai pada sistem yang kompleks semacam sirkuit elektronik, irama detak jantung, aktifitas listrik pada otak, serta aliran bendar cair dan reaksi kimia. Bahkan diduga kuat bahwa sistem ekonomi seperti pergerakan harga di bursa saham, kurs mata uang, sampai harga minyak mentah, merupakan sistem yang chaotik pula. Dengan demikian, chaos juga mulai beranjak dari semata-mata teoritis menjadi ilmu terapan. Ketidakpastian dari sistem yang chaotik timbul akibat kepekaannya terhadap kondisi awal seperti posisi atau kecepatan. Dua sistem chaos yang identik yang mulai bekerja dengan kondisi awal yang sedikit berlainan akan memunculkan perilaku yang sangat berbeda antara keduanya. Hampir semua sistem dinamis yang terkait dengan alam ini memuat satu atau lebih parameter di dalam sistem itu. Contohnya adalah jika kita bekerja dengan hukum Newton, maka ada konstanta gravitasi yang besarnya tetap, tetapi tidak kita ketahui nilai eksaknya. Pertanyaannya, jika ada suatu sistem yang bergantung pada parameter tertentu yang tidak diketahui besarnya, apakah dinamika dari sistem itu terpengaruh oleh perubahan nilai parameternya? Dapatkah suatu kondisi stabil berubah menjadi tidak stabil jika nilai parameternya berubah? Perubahan kestabilan atau perubahan yang dramatis dalam dinamika suatu sistem akibat berubahnya nilai parameter dalam sistem dinamakan bifurkasi. Akibatnya, pada suatu nilai parameter tertentu ada sangat banyak gerakan yang tidak stabil dalam sistem. Ketika ini terjadi, dinamika sistem sudah sangat kompleks dan chaos terjadi.
2.3.1
Sejarah Chaos Penemu pertama kekacauan adalah Henri Poincaré (1854-1912), seorang ahli
matematika Prancis, yang pernah berkesimpulan bahwa ia tidak menemukan bukti bahwa
14 sistem tata surya betul-betul bekerja secara teratur dan dapat diprediksi. Ia adalah orang pertama yang merumuskan apa yang sekarang dikenal sebagai chaos: ”Dapat terjadi adanya perbedaan kecil pada kondisi awal menghasilkan peristiwa yang sangat besar pada akhirnya. Sebuah kesalahan kecil pada permulaan, belakangan akan menghasilkan penyimpangan yang lebih besar. Prediksi akan menjadi hal yang mustahil...”. Semula gagasan Poincaré ini tidak terlalu dihargai oleh para ilmuwan, hingga penemuan komputer memungkinkan mereka untuk membuat model dan memvisualkan sistem chaotik. Namun sebelumnya, hasil kerja Poincaré telah dipakai oleh para ilmuwan dan insinyur perintis di Badan Antariksa AS, NASA, untuk mengirimkan manusia maupun satelit ke orbit. Pada tahun 1898, Jacques Hadamard juga mempublikasikan teori yang serupa dengan Henry tersebut. Hadamard mampu menunjukkan bahwa semua lintasan adalah tidak stabil dan ditunjukkan dengan nilai eksponen Lyapunov yang positif yang berarti bahwa semua lintasan partikel menyimpang secara exponential dari satu dengan yang lainnya (tidak stabil). Berikutnya, pada 1961, Edwad Lorenz, seorang ahli meteorologi AS, menemukan permasalahan Chaos saat melakukan simulasi peramalan cuaca dengan menggunakan sebuah komputer sederhana. Ia mendemonstrasikan secara visual sebuah struktur cuaca yang chaotik, yang apabila digambarkan dalam tiga dimensi akan membentuk sebuah pola fraktal, mirip gambar kupu-kupu, yang kini dikenal sebagai atraktor asing (strange attractor). Penemuan Lorenz tersebut dikenal dengan nama Lorenz attractor. Penemuan tersebut menemukan hawa perubahan kecil pada kondisi awal menghasilkan perubahan besar dalam jangka panjang hasil. Dengan demikian, Lorentz menemukan kembali prinsip chaos, sekaligus membuktikan bahwa adalah mustahil untuk membuat prakiraan cuaca untuk jangka panjang. Tahun 1975, Benoit Mandelbrot menerbitkan The Fractal Geometry of Nature yang merupakan penjelasan dari model fraktal yang merupakan sebuah obyek yang tidak teratur dan memiliki konstan atas skala yang berbeda. Sistem biologis seperti percabangan dari
15 sirkulasi dan sistem bronkial terbukti cocok dengan model fraktal yang merupakan bagian dari penerapan teori chaos itu sendiri. Kekacauan juga diamati oleh beberapa peneliti yang lain; misalnya tahun 1927 oleh Van Der Pol dan tahun 1958 oleh RL Ives. Tahun 1961, Yoshisuke Ueda seorang mahasiswa pascasarjana Universitas Kyoto sedang bereksperimen dengan komputer analog (yaitu, tabung vakum) dan menemukan fenomena transisi secara acak yang kemudian diakui oleh penasihat pada tahun 1970. Tahun 1979, Albert J. Libchaber menyampaikan pengamatan eksperimental percabangan dua kaskade yang mengarah pada kekacauan dan turbulensi sistem. Tahun 1986, Bernado Huberman menyajikan model matematis pelacakan kelainan mata yang menyebabkan pembaharuan fisiologi melalui penerapan teori chaos dalam penelitian patologis siklus jantung di bidang biologi dan kedokteran. Tahun 1987, James Gleick menerbitkan Chaos: Making a New Science, memperkenalkan prinsip-prinsip umum teori chaos serta sejarah ke masyarakat luas. Tahun 2001, Panasonic mengembangkan Chaos defrost pada microwave oven yang berfungsi untuk mempercepat dan menyebarkan panas secara merata.
2.3.2
Pengertian Chaos Dalam kamus bahasa inggris chaos sendiri diartikan sebagai kacau. Suatu kekacauan
atau ketidakaturan. Walaupun berlangsung secara acak (tidak teratur), sistem yang chaotik nyatanya dapat ditentukan secara matematis. Ini karena sistem yang chaotik juga mengikuti hukum-hukum yang berlaku di alam. Hanya saja, karena sifatnya yang tidak teratur maka pengamat akan melihatnya sebagai peristiwa yang acak. Dalam terminologi matematis, sebuah sistem nonlinear (sistem yang tidak bisa diprediksi berdasarkan perilaku
16 terdahulunya) yang memiliki cukup variabel (besaran yang tidak diketahui), dapat dinyatakan sebagai sebuah sistem yang chaotik. Chaos bukan fraktal, tetapi chaotic attractor mungkin mempunyai struktur fraktal. Chaos juga bukan suatu gerakan perulangan murni. Chaos juga tidak berarti gerakan tak beraturan. Dalam gerakan chaotic, misalnya pada kupu-kupu Lorenz (Lorenz butterfly), gerakannya berulang, tetapi secara tidak beraturan. Contohnya adalah permainan melempar dadu 100 kali. Berulang? Jelas. Yang keluar bisa satu, dua, tiga, empat, lima, atau enam. Beraturan? Tidak. Tetapi, sama sekali tidak beraturan juga tidak karena angka satu keluar kira-kira sebanyak 1/6 kali banyaknya pelemparan. Peristiwa ini dinamakan proses random (acak). Melempar dadu mengandung unsur ketidakpastian (atau ke-random-an). Proses di mana tidak ada ketidakpastian pun, keluarannya bisa tidak terprediksi, yaitu jika sistemnya chaotic. Sistem chaotic juga mempunyai properti khusus, yaitu bergantung secara sensitif terhadap kondisi awal. Kesalahan yang kecil dalam waktu singkat akan tersebar di seluruh sistem. Jadi, dua solusi yang berbeda hanya sedikit di awal akan berbeda sangat jauh setelah beberapa saat yang relatif singkat. Chaos, menurut Ian Stewart adalah tingkah laku yang sangat kompleks, iregular dan random di dalam sebuah sistem yang deterministik. Chaos adalah suatu keadaan di mana sebuah sistem tidak bisa diprediksi di mana ia akan ditemukan di tempat berikutnya. Sistem ini bergerak secara acak. Akan tetapi, menurut teori chaos, apabila keadaan acak tersebut kita perhatikan dalam waktu yang cukup lama dengan mempertimbangkan dimensi waktu, maka kita akan menemukan juga keteraturan. Bagaimana kacaunya sebuah sistem, ia tidak akan pernah melewati batas-batas tertentu. Mengapa demikian, oleh karena sistem tersebut dibatasi ruang geraknya yang acak tersebut oleh sebuah kekuatan penarik yang disebut strange attractor. Strange attractor menjadikan sebuah sistem bergerak secara acak,
17 dinamis, gelisah dan fluktuatif, akan tetapi ia sekaligus membingkai batas-batas ruang gerak tersebut Teori chaos memiliki implikasi yang luas dalam analisis pengambilan keputusan. Teori chaos memberi pengertian bahwa suatu aksi sekecil pun dapat berimplikasi pada suatu akibat yang besar. Teori chaos juga memberikan pengertian bahwa dalam pengambilan keputusan senantiasa dihadapkan pada suatu potensi ketidakteraturan dan ketidakpastian sehingga batasan-batasan metode pengambilan keputusan tradisonal tidak mencukupi lagi. Teori chaos menuntut perubahan model mental yang sama sekali baru dan kreatif dari sang pengambilan keputusan. Sistem pintar dan kecerdasan berupaya mengantisipasi aspek ketidakpastian dan ketidakteraturan tersebut dengan mengadopsi logika berpikir manusia ke dalam mesin komputer. Dengan sistem pintar, suatu perangkat komputer dapat menganalisis suatu sistem permasalahan dan melakukan pengambilan keputusan. Dari semua penjelasan diatas dapat disimpulkan bahwa Teori Chaos adalah teori yang menjelaskan gerakan atau dinamika yang kompleks dan tak terduga dari sebuah sistem yang tergantung dari kondisi awalnya yang dapat berimplikasi pada suatu akibat yang besar.
2.3.3
Karakteristik Chaos Untuk suatu sistem dinamik, Chaos memiliki sifat atau karakteristik sebagai berikut:
1. Peka terhadap kondisi awal. 2. Masukan dan keluaran yang diberikan tidak proporsional. 3. Tidak linier
2.3.4
Jenis Algoritma Chaos Algoritma yang biasa digunakan dalam Chaos cukup banyak. Berikut adalah beberapa
algoritma yang bisa diterapkan, seperti :
18 1. Logistic Map (Persamaan Logistik) Persamaan logistik merupakan contoh pemetaan polinomial derajat dua, dan seringkali digunakan sebagai contoh bagaimana rumitnya sifat chaos (kacau) yang dapat muncul dari suatu persamaan yang sangat sederhana. Persamaan ini dipopulerkan oleh seorang ahli biologi yang bernama Robert May pada tahun 1976, melanjutkan persamaan logistik yang dikembangkan oleh Pierre Francois Verhulst. Persamaan logistik banyak digunakan untuk menghitung suatu populasi. Secara matematis, persamaan logistik dapat dinyatakan dengan persamaan :
B(t) =
K 1+e-rt((K/Bo) – 1) B
Dimana : K : Carrying capacity konstan atau ukuran maksimum suatu populasi. r : bilangan yang merepresentasikan laju pertumbuhan fungsi. t : waktu Bo : nilai awal pada saat t=0 B(t) : nilai populasi pada waktu ke t Sedangkan untuk menguji validasi data lapangan (sebenarnya) dengan data model kisaran / mendekati menggunakan rumus diatas adalah dengan mencari error dari kesalahan sebenarnya (Et) dan kesalahan relatif dengan rumus sebagai berikut: Et = data sebenar – data relatif Kesalahan relatif = (Et / data sebenarnya) *100% Diketahui data hasil pengukuran rumput laut sebenarnya seperti yang terlihat pada Tabel 2.1.
19 Tabel 2.1 Data Hasil Pengukuran Pertumbuhan Rumput Laut Week (t) Data penelitian (sebenarnya) Iterasi (t) 0 100 0 2 133 1 4 175 2 6 212 3 8 249 4 10 285 5 12 302 6 14 320 7 16 333 8 18 345 9
Dari data diatas diketahui bahwa: Bo = 100 (pada saat t(0)) Bmax = K = 350 r = 0.2 ( menggunakan rumus malthus ln(p/(k-p))/t) maka kita masukkan data tetsebut pada persamaan logistik diatas serta membandingkan hasilnya dengan data sebenarnya untuk melihat kesalahan relatifnya sehingga didapatkan hasil yang hampir mendekati seperti pada tabel 2.2 dan dapat dikatakan cocok untuk dipakai sebagai model yang baik. Tabel 2.2 Data Kisaran dan Kesalahan Relatif Week (t) Data penelitian (sebenarnya) Data kisaran / mendekati 0 100 100 2 133 130 4 175 170 6 212 210 8 249 247 10 285 275 12 302 285 14 320 310 16 333 328 18 345 332
Et Iterasi (t) 0 0.00 3 0.02 5 0.03 2 0.01 2 0.01 10 0.04 17 0.06 10 0.03 5 0.02 13 0.04
20 2. Henon Map (Persamaan Henon) Persamaan Henon merupakan sistem dinamis yang menerapkan sistem diskrit. Persamaan Henon merupakan salah satu contoh yang paling banyak dipelajari dalam pembelajaran sistem dinamis yang bersifat chaos (kacau). Persamaan Henon menggunakan sebuah titik (x,y) pada suatu persamaan dan memetakannya menjadi sebuah titik baru dengan persamaan :
yn + 1 = bxn Persamaan Henon sangat bergantung pada dua buah parameter, yang dapat kita anggap sebagai a dan b. Nilai dari a dan b ini dapat acak. Persamaan Henon diperkenalkan oleh Michel Henon sebagai model sederhana dari Poincare section dari Lorenz model. Untuk persamaan yang bersifat kanonikal, titik awal yang digunakan akan mendekati kumpulan titik yang dikenal sebagai strange attractor Henon, dimana kumpulan titik titik tersebut mengarah ke bilangan tidak terbatas. Sebagai sistem yang bersifat dinamis, persamaan Henon sangat menarik dikarenakan orbitnya yang sederhana. Hal inilah yang membedakan persamaan Henon dengan persamaan logistik yang telah dibahas sebelumnya. Persamaan Henon sangat tergantung pada dua buah bilangan yang digunakan sebagai koefisien dari persamaan polinomial yang ada. 3. Arnold’s Cat Map Arnold’s cat map merupakan pemetaan chaos (kacau) yang dinamai berdasarkan penemunya, yaitu Vladimir Arnold, yang algoritma yang diciptakannya pada tahun 1960 dengan menggunakan gambar seekor kucing. Arnold’s cat map menggunakan transformasi dengan formula berikut :
21
Arnold’s cat map memanfaatkan matriks dalam membangkitkan bilangan acak yang diinginkan. Arnold’s cat map ini cocok digunakan untuk melakukan enkripsi pada gambar, dikarenakan fungsi ini memanfaatkan matriks yang berarti minimal kita dapat melakukan enkripsi untuk suatu benda yang bersifat dua dimensi. Keunggulan dari arnold’s cat map ini adalah kita dapat membangkitkan suatu pengacakan dengan fungsi yang relatif sederhana. Selain proses enkripsi yang mudah, proses dekripsi pun dapat kita lakukan dengan mudah. 4. Duffing Map Duffing map merupakan salah satu sistem dinamis dengan menggunakan waktu diskrit yang menerapkan sifat chaos (kacau). Duffing map mengambil sebuah titik pada sebuah koordinat lalu memetakannya menjadi sebuah titik yang baru sesuai dengan persamaan :
xn +1 = yn yn+1= -bxn+ayn - y3n Pemetaan sendiri diperngaruhi oleh dua buah nilai, yang pada persamaan diatas merupakan konstanta a dan b. Nilai untuk konstanta a yang sering digunakan adalah 2.75 dan nilai yang sering digunakan untuk konstanta b adalah 0.2. Duffing map juga merupakan salah satu teori chaos dengan tingkat implementasi yang relatif mudah, walaupun duffing map ini memanfaatkan polinomial derajat tiga, yang menghasilkan grafik yang bersifat naik turun. 5. Gingerbreadman Map Gingerbreadman map merupakan pemetaan yang bersifat dua dimensi yang didefinisikan oleh rumus sebagai berikut:
22
xn+1 = 1 – yn + |xn| yn + 1 = xn Pemetaan yang dihasilkan akan bersifat acak pada enam wilayah heksagonal yang ada. Gingerbreadman map menggunakan sistem pemetaan yang sederhana. Pemetaan yang digunakan di dalam gingerbreadman map akan menghasilkan grafik yang indah, dengan lima buah heksagonal di dalam grafik tersebut. Salah satu sifat dari gingerbreadman map ini adalah bahwa orbit dari tiap heksagonal yang terus berputar dan mengisi satu sama lain. Hal ini dapat mengakibatkan pengulangan bila dilakukan secara terus menerus, seperti juga halnya pada arnold’s cat map.
2.4
Model Proses Pengembangan Perangkat Lunak Waterfall Pengembangan aplikasi anggaran ini menggunakan pendekatan model proses
Waterfall. Tahapan yang dilakukan adalah sebagai berikut: 1. Pendefinisian kebutuhan (requirements definition). Termasuk di dalamnya pembentukan kebutuhan dari semua elemen sistem dan arsitektur sistem, menganalisa kebutuhan keinginan pemakai (user) baik masukan/keluaran, waktu pengerjaan, serta ukuran dan jumlah data yang ditangani. 2. Desain sistem dan perangkat lunak (sistem and software design). Pada tahapan ini dilakukan penterjemahan syarat/kebutuhan ke dalam sebuah representasi software seperti menentukan dasar-dasar pembentukan dan pemilihan struktur data, struktur program, arsitektur program, pemilihan algoritma, dan interaksi dengan pemakai. 3. Implementasi dan pengujian unit (implementation and unit testing). Pada tahap ini fungsi-fungsi dan program-program yang telah dikembangkan diuji setiap fungsi yang telah didesain untuk memastikan bahwa tiap-tiap fungsi yang telah dikembangkan berjalan seperti spesifikasi.
23 4. Integrasi dan pengujian sistem (integration and system testing). Pada tahap ini fungsi-fungsi dan program-program yang telah dikembangkan diintegrasikan dan kemudian diuji sebagai kesatuan sebuah sistem dan memastikan bahwa sistem tersebut sesuai dengan spesifikasi sistem yang telah didefinisikan. Proses pengujian berfokus pada logika internal software, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan – kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan. 5. Operasi dan pemeliharaan (operation and maintenance). Pada tahap ini sistem telah dipasang dan dioperasikan oleh pengguna. Pemeliharaan termasuk perbaikan pada sistem dilakukan jika ditemukan kesalahan yang tidak ditemukan pada tahap sebelumnya. Perbaikan dan peningkatan kinerja sistem juga dilakukan karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja yang merupakan kebutuhan baru tanpa harus membuat baru lagi. Gambar 2.1 memperlihatkan model tahapan Waterfall menurut referensi Sommerville:2000.
Requirements definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and Maintenance
Gambar 2.1 Model Waterfall (http://rpl07.wordpress.com)
24
2.5
UML Unified Modelling Language (UML) adalah sebuah ”bahasa” yg telah menjadi standar
dalam industri untuk menentukan, visualisasi, merancang, dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. (Dharwiyanti & Wahono, 2003). UML mendefinisikan diagram-diagram sebagai berikut: 1. Use case diagram 2. Class diagram 3. Statechart diagram 4. Activity diagram 5. Sequence diagram 6. Collaboration diagram 7. Component diagram 8. Deployment diagram 9. Entity Relationship Diagram (ERD) 10. Data Flow Diagram (DFD) Notasi yang umum digunakan dalam UML bisa dilihat pada Tabel 2.3.
Tabel 2.3 Notasi Dasar UML (http://www.tutorialspoint.com/ dan http://id.wikipedia.org/wiki)
No
1
Notasi
Keterangan
Notasi Actor Aktor atau pengguna atau pelaku
25 Tabel 2.3 (lanjutan) Notasi Dasar UML (http://www.tutorialspoint.com/ dan http://id.wikipedia.org/wiki)
No
Notasi
Keterangan
2
Notasi Class Baris paling atas digunakan untuk nama class. Baris yang ke dua digunakan untuk atribut class. Baris yang ke tiga digunakan untuk operasi yang dilakukan oleh class. Baris yang ke empat tidak harus ada, digunakan untuk komponen tambahan.
3
Notasi Object. Notasi Object sama persis dengan notasi Class, yang membedakan hanya garis bawah pada nama Object.
4
Notasi Initial State menunjukkan titik awal sebuah proses.
5
Notasi Final State menunjukkan titik terminasi sebuah proses.
6
Notasi Active Class menunjukkan konkurensi Class pada sistem.
7
Notasi Component menunjukkan komponen sistem yang dibuat pada sistem.
8
Notasi Node menunjukkan bagian fisik dari sistem.
9
Notasi Use case menunjukkan fungsi dari sistem
10
Notasi Collaboration menunjukkan fungsi atau kewajiban dari sebuah bagian dari sistem
26 Tabel 2.3 (lanjutan) Notasi Dasar UML (http://www.tutorialspoint.com/ dan http://id.wikipedia.org/wiki)
No
Notasi
Keterangan
11
Notasi Package menunjukkan pengelompokan beberapa fungsi dalam satu paket
12
Notasi Dependency menunjukkan ketergantungan sebuah elemen pada elemen lain dengan garis putus-putus.
13
Notasi Association menunjukkan bagaimana elemen pada UML diasosiasikan.
14
Notasi Interaction menunjukkan interaksi pada sequence diagram
15
Notasi State machine menunjukkan status dan aksi pada state chart diagram.
16
Notasi Generalization menunjukkan hubungan inheritance dari sebuah object.
17
Kumpulan Entitas / Input-Output
18
Atribut sebagai kunci
19
Kumpulan relasi
27 Tabel 2.3 (lanjutan) Notasi Dasar UML (http://www.tutorialspoint.com/ dan http://id.wikipedia.org/wiki)
No
Notasi
Keterangan
20
Aliran
21
Fungsi
22
File Database
23
Aliran
2.5.1
Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah
sistem. Yang ditekankan adalah ”apa” yang diperbuat sistem, dan bukan ”bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, membuat sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun kebutuhan sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Gambar 2.2 menunjukkan contoh use case diagram.
Gambar 2.2 Contoh use case diagram (Dharwiyanti & Wahono, 2003)
28
2.5.2
Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah
obyek dan merupakan inti dari pengembangan dan desain berorientasi obyek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan obyek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok: 1. Nama (dan stereotype) 2. Atribut 3. Metoda Atribut dan metoda dapat memiliki salah satu sifat berikut : a. Private, tidak dapat dipanggil dari luar class yang bersangkutan b. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya c. Public, dapat dipanggil oleh siapa saja Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time. Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package. Berikut adalah hubungan yang mungkin terjadi antar Class: 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
29 2. Agregasi, yaitu hubungan yang menyatakan bagian (”terdiri atas ..”). 3.
Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian. Contoh class diagram bisa dilihat pada Gambar 2.3.
Gambar 2.3 Contoh Class diagram (Dharwiyanti & Wahono, 2003)
2.5.3 Statechart Diagram Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada
30 umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram). Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah. Contoh statechart diagram bisa dilihat pada Gambar 2.4.
Gambar 2.4 Contoh Statechart diagram (Dharwiyanti & Wahono, 2003)
2.5.4
Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Oleh karena itu activity diagram tidak menggambarkan
31 behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Contoh activity diagram terdapat pada Gambar 2.5.
Gambar 2.5 Contoh Activity diagram (Dharwiyanti & Wahono, 2003)
2.5.5 Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan
32 terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity. Contoh sequence diagram bisa dilihat pada Gambar 2.6.
Gambar 2.6 Contoh Sequence diagram (Dharwiyanti & Wahono, 2003)
33
2.5.6 Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message. Setiap message memiliki sequence number, di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama. Contoh Collaboration diagram bisa dilihat pada Gambar 2.7.
Gambar 2.7 Contoh Collaboration diagram (Dharwiyanti & Wahono, 2003)
2.5.7 Component Diagram Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time. Umumnya
34 komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponenkomponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain. Contoh component diagram bisa dilihat pada Gambar 2.8.
Gambar 2.8 Contoh Component diagram (Dharwiyanti & Wahono, 2003)
2.5.8 Deployment Diagram Deployment/physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan halhal lain yang bersifat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya
35 TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini. Contoh deployment diagram bisa dilihat pada Gambar 2.9.
Gambar 2.9 Contoh Deployment diagram (Dharwiyanti & Wahono, 2003)
2.5.9 Entity Relationship Diagram (ERD) Diagram hubungan entitas atau entity relation diagram merupakan model data berupa notasi grafis dalam pemodelan data konseptual yang menggambarkan hubungan antara penyimpan.
Model
data
sendiri
merupakan
sekumpulan
cara,
peralatan
untuk
mendeskripsikan data-data yang hubungannya satu sama lain, semantiknya, serta batasan konsistensi. Model data terdiri dari model hubungan entitas dan model relasional. Diagram hubungan entitas digunakan untuk mengkonstruksikan model data konseptual, memodelkan struktur data dan hubungan antar data dan mengimplementasikan basis data secara logika maupun secara fisik dengan DBMS (Database Management system).
36 Dengan diagram hubungan entitas ini kita dapat menguji model dengan mengabaikan proses yang harus dilakukan. Diagram hubungan entitas dapat membantu dalam menjawab persoalan tentang data yang diperlukan dan bagaimana data tersebut saling berhubungan. Entitas adalah suatu objek yang dapat didefinisikan dalam lingkungan pemakai, sesuatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat. Sebagai contoh adalah pelanggan dan pegawai. Seandainya A adalah seorang pegawai maka A adalah isi dari pegawai, sedangkan jika B adalah seorang pelanggan maka B adalah isi dari pelanggan. Karena itu harus dibedakan entitas sebagai bentuk umum dari deskripsi tertentu dan isi entitas seperti A dan B dalam contoh di atas. Fisik entitas adalah entitas yang bersifat fisik. Contoh adalah pegawai, guru, dan karyawan. Konsep entitas adalah entitas yang tidak bersifat konsep. Contoh adalah gaji, sekolah. Entitas kuat adalah entitas yang mempunyai atribut kunci. Entitas ini bersifat mandiri, keberadaanya tidak bergantung pada entitas lainnya. Percepatan entitas kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain). Entitas lemah adalah entitas yang tidak mempunyai atribut kunci. Entitas lemah diidentifikasikan dengan menghubungkan entitas tertentu dari tipe entitas yang lain ditambah atribut dari entitas lemah. Tipe entitas lain yang dipakai untuk mengidentifikasikan suatu entitas lemah disebut identifying owner dan relasi yang menghubungkan entitas lemah dengan owner disebut identifying relationship. Entitas mempunyai elemen yang disebut atribut, dan berfungsi mendekripsikan karakter dari entitas. Atribut adalah properti atau karakteristik yang dimiliki oleh suatu entitas dimana properti atau karakteristik itu bermakna atau berarti bagi organisasi atau perusahaan, misalnya untuk pencatatan data pegawai di suatu instansi, entitas pegawai mungkin memiliki atribut-atribut nomor induk pegawai, nama, alamat, nomor telepon, gaji pokok dan lainnya.
37 Setiap diagram hubungan entitas bisa terdapat lebih dari satu atribut. Atribut digambarkan dalam bentuk elips. Contoh ERD bisa dilihat pada Gambar 2.10.
Gambar 2.10 Contoh ERD (http://fairuzelsaid.files.wordpress.com)
2.5.10 Data Flow Diagram (DFD) Diagram ini merupakan sebuah model logika yang terstruktur dan jelas dalam memperlihatkan ”apa” yang dikerjakan sistem, dan bukan ”bagaimana” sistem bekerja. Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas. DFD merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan logis. Suatu yang lazim bahwa ketika menggambarkan sebuah sistem kontekstual data flow diagram yang akan pertama kali muncul adalah interaksi antara sistem dan entitas luar. DFD didisain untuk menunjukkan sebuah sistem yang terbagi-bagi menjadi suatu bagian sub-sistem yang lebih kecil adan untuk menggarisbawahi arus data antara kedua hal yang tersebut diatas. Diagram ini lalu dikembangkan untuk melihat lebih rinci sehingga dapat terlihat model-model yang terdapat di dalamnya. Contoh DFD bisa dilihat pada Gambar 2.11.
38
Gambar 2.11 Contoh DFD (http://id.wikipedia.org/wiki)
2.5.11 Tujuan UML Tujuan utama UML diantaranya adalah sebagai berikut: 1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan di mengerti secara umum. 2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa. 3. Menyatukan praktek-praktek terbaik yang terdapat dalam bahasa pemodelan.
2.6
Basis Data Tahapan pembuatan aplikasi basis data meliputi: a. Perencanaan basis data -
Menentukan rencana dan sasaran perusahaan, beserta keperluan-keperluan akan sistem informasi.
-
Mengevaluasi sistem informasi saat ini untuk menemukan kelebihan dan kekurangannya.
-
Mencari kemungkinan-kemungkinan teknologi informasi yang dapat membantu.
39 b. Area pendefinisian sistem; bertujuan untuk menentukan ruang lingkup dan batasan dari aplikasi basis data, siapa penggunanya dan area aplikasinya. c. Pengumpulan kebutuhan dan analisis; bertujuan untuk mendaftarkan kebutuhankebutuhan pengguna beserta area aplikasi. d. Perancangan basis data terdiri atas: -
Perancangan basis data konseptual; membangun model basis data untuk setiap sudut pandang pengguna.
-
Perancangan basis data logic; proses pembuatan model informasi sebuah perusahaan dengan basis suatu model data yang spesifik.
-
Perancangan basis data fisik; meliputi menterjemahkan rancangan basis data lojik ke DBMS tujuan, merancang representasi fisik, merancang user view, merancang mekanisme keamanan, mempertimbangkan masalah pengendalian duplikasi data, melakukan pengawasan dan penyetelan sistem operasional.
e. Pemilihan DBMS; bertujuan untuk memilih database management system (DBMS) yang sesuai untuk aplikasi basis data. f. Perancangan aplikasi; pembuatan perancangan antar muka dan program aplikasi yang menggunakan proses basis data. g. Pembuatan prototipe; pembuatan model yang sudah berfungsi sebagai gambaran seperti apa dan bagaimana kerja sistem nantinya. h. Implementasi; tahapan dimana perancangan basis data dan perancangan aplikasi direalisasikan. i. Konversi dan pengisian data; bertujuan untuk memindahkan data dari sistem lama ke sistem baru. j. Pengujian; sistem diuji kebenarannya dan diuji kesesuaiannya dengan daftar kebutuhan pengguna.
40 k. Pemeliharaan operasional; penyesuaian pada sistem yang dilakukan sesuai dengan kebutuhan yang diperlukan dengan melewati kembali siklus hidup.
2.7
PHP Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs
Personal). Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang PHP: Hypertext Preprocessing. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. Fungsi PHP sercara umum adalah untuk membuat sebuah web yang interaktif dan dinamis. Untuk dapat menjalankan PHP pada sebuah web server, diperlukan sebuah web server. PHP 4 bukan merupakan versi terakhir yang sudah dikeluarkan oleh PHP, tapi versi ini masih banyak digunakan oleh para programmer website. PHP 5 merupakan kelanjutan dari evolusi yang berjalan pada PHP. PHP 5 menawarkan peningkatan dari fungsionalitas dan penambahan beberapa fitur, antara lain: a. Peningkatan dari kemampuan pemrograman berorientasi obyek. b. Exception handling, yang menstandarisasi logika atas pemberitahuan kesalahan pemrograman. c. Peningkatan terhadap penanganan string. d. Peningkatan dukungan terhadap XML dan Web Service, yang menggunakan libxml2. e. Dukungan terhadap SQLite database server. Berikut adalah beberapa kelebihan PHP dibandingkan dengan bahasa pemrograman web lainnya :
41 1. Praktis dalam penulisan buat para penggunanya. 2. Cepat dan Powerful. 3. Harga yang murah. 4. Cross Platform atau dapat dipakai di hampir semua web server dengan konfigurasi yang relatif mudah untuk dijalankan pada berbagai sistem operasi, seperti Linux, Unix, Windows, dan Mac. 5. Selalu up to date mengikuti perkembangan teknologi internet. Salah satu kelemahan PHP dibandingkan dengan bahasa pemrograman web lainnya adalah PHP memiliki kelemahan pengamanan (security) tertentu apabila programmer tidak jeli dalam melakukan pemrograman dan kurang memperhatikan isu dan konfigurasi PHP.
2.8
MySQL Basis data (database) adalah kumpulan informasi yang disimpan di dalam program
secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut (http://id.wikipedia.org/wiki/Database). Untuk mengolah database tersebut diperlukan perangkat lunak yang disebut DBMS (Database Management System). DBMS merupakan suatu sistem perangkat lunak yang memungkinkan pengguna untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis dan efisien. Salah satu software atau perangkat lunak DBMS yang sering digunakan dalam aplikasi program adalah MySQL. Tidak seperti Apache yang merupakan software yang dikembangkan oleh komunitas umum, dan hak cipta kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB. Pendiri MySQL AB adalah David Axmark, Allan Larsson, dan Michael Widenius.
42 MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. MySQL memiliki beberapa keistimewaan, antara lain : 1. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma. 3. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 5. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). 6. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan, izin akses pengguna dengan sistem perizinan yang mendetail serta sandi terenkripsi. 7. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 8. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
43 9. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya. 10. MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 11. MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle. Untuk mempelajari perintah – perintah SQL, khususnya MySQL kita membutuhkan PHPmyAdmin. PHPmyAdmin merupakan front-end MySQL berbasis web yaitu aplikasi web php yang digunakan sebagai manager database MySQL. Jika belum ada, bisa menggunakan distribusi PHP yang mudah seperti XAMPP atau WAMP lalu sebuah browser (Internet Explorer atau Mozilla Firefox atau Opera) kemudian arahkan ke http://localhost/phpmyadmin/. Saat ini, PHPmyAdmin banyak digunakan dalam hampir semua pedia hosting yang ada di Internet.