BAB II LANDASAN TEORI 2.1 Sistem Manajemen Kontes 2.1.1 Pengertian Sistem Penggunaan kata sistem sekarang ini semakin luas dan meliputi berbagai bidang, sehingga timbul berbagai definisi dan istilah tentang sistem tersebut yang masing-masing beranjak dari sudut pandang dan lingkup pengertian itu sendiri. Pada dasarnya kata sistem berasal dari bahasa Yunani “Sytema” yang berarti kesatuan, yakni keseluruhan dari bagian-bagian yang mempunyai hubungan satu sama lain. Beberapa definisi tentang sistem diantaranya : “Sistem menurut West Churchman dapat didefinisikan sebagai serangkaian komponen yang dikoordinasikan untuk mencapai serangkaian tujuan.” “Sistem adalah suatu jaringan prosedur yang dibuat menurut pola yang terpadu untuk melaksanakan kegiatan pokok perusahaan. Sedangkan prosedur adalah suatu urutan kegiatan klerikal, biasanya melibatkan beberapa orang dalam satu departemen atau lebih, yang dibuat untuk menjamin penanganan secara seragam transaksi perusahaan yang terjadi berulang-ulang.” Dari pengertian tersebut dapat disimpulkan bahwa suatu sistem terdiri dari beberapa jaringan prosedur yang dimaksudkan sebagai langkah pengambilan keputusan dan digunakan dalam teknik perancangan sistem komputerisasi yang berstruktur sehingga dapat menghasilkan output yang baik. 2.1.2 Sistem Informasi Seringkali terdapat penggunaan istilah data dan informasi secara bersamaan dengan maksud yang sama, padahal data dan informasi merupakan dua hal yang berbeda. Walaupun demikian keduanya berkaitan erat dengan fakta. Data adalah bahan informasi, dirumuskan sebagai kumpulan dari simbol-simbol yang teratur yang menyatakan jumlah, tindakan-tindakan, hal-hal dan sebagainya. II-1 II-2 Data dibentuk dari lambang grafis, alfabetis, numerik, atau lambang khusus.[DAV93] Sedangkan informasi adalah data yang telah diolah ke dalam bentuk yang berarti bagi si pemakai, mempunyai nilai guna dan manfaat dalam proses pengambilan keputusan pemakainya. Hubungan data dan informasi didefinisikan sebagai bahan baku dan produk jadi. Data sebagai bahan baku, diolah melalui suatu proses transformasi atau pengolahan data menjadi informasi. Atau dapat dikatakan bahwa informasi merupakan keluaran (output) dari proses transformasi, dimana data berfungsi sebagai masukannya (input). Jika ditinjau sebagai suatu sistem, maka sistem informasi akan menerima masukan-masukan yang berupa data dan instruksi, mengolah data sesuai dengan instruksi, dan mengeluarkan hasilnya berupa informasi. Sistem informasi adalah suatu sistem didalam organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung informasi, bersifat manajerial, dan kegiatan dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan.[ROB04] Berdasarkan uraian pengertian dari kedua kata yang membentuknya, maka dapat dijelaskan sistem informasi adalah sebuah sistem manusia/mesin yang terpadu untuk menyajikan informasi guna mendukung fungsi operasi, manajemen, dan pengambilan keputusan dalam sebuah organisasi. Sistem ini menggunakan perangkat keras dan perangkat lunak komputer, prosedur pedoman, model manajemen dan keputusan, dan sebuah basis data. 2.2 Microchip Implant untuk Hewan. Sebuah implan microchip adalah sebuah sirkuit terpadu mengidentifikasi ditempatkan di bawah kulit ikan, kucing, anjing, burung beo, kuda, atau hewan lainnya. Chip adalah tentang ukuran dari butiran padi besar dan didasarkan pada teknologi (Radio Frequency Identification) RFID pasif[MIC11]. Penggunaan perangkat microchip terpasang eksternal seperti tag RFID telinga (tindik bukan implan) adalah metode lain, terkait umum digunakan untuk II-3 mengidentifikasi hewan ternak dan peternakan selain kuda. Dalam beberapa kasus microchip eksternal dapat dibaca pada pemindai yang sama sebagai gaya ditanamkan. Berikut adalah gambar microchip implant buat hewan serta cara pemasanganya : Gambar 2.1 Microchip Implant For Fish Gambar 2.2 Alat Pendeteksi Microchip 2.2.1 Kegunaan dan Manfaat Microchip telah sangat berguna dalam kembalinya hewan peliharaan yang hilang. Mereka juga dapat membantu di mana kepemilikan binatang dalam sengketa. Hewan dan pusat-pusat penampungan hewan kontrol manfaat menggunakan produk microchip identifikasi oleh lebih cepat dan efisien kembali hewan peliharaan kepada pemilik mereka. Ketika hewan peliharaan bisa dengan II-4 cepat disesuaikan dengan pemiliknya, tempat penampungan menghindari biaya perumahan, makan, menyediakan perawatan medis, dan outplacing atau euthanasia hewan peliharaan. Microchipping menjadi standar di tempat penampungan: banyak membutuhkan semua hewan outplaced untuk menerima sebuah microchip, dan memberikan layanan sebagai bagian dari paket adopsi. Hewan-kontrol petugas dilatih dan dilengkapi untuk memindai hewan. Selain tempat penampungan dan dokter hewan, microchip yang digunakan oleh kandang, peternak, broker, pelatih, pendaftar, kelompok penyelamatan, masyarakat manusiawi, klinik, peternakan, kandang, klub hewan dan asosiasi, peneliti, dan toko hewan peliharaan. Beberapa negara membutuhkan microchip saat mengimpor hewan untuk membuktikan bahwa hewan dan catatan vaksinasi cocok. Microchip tagging juga mungkin diperlukan untuk CITES diatur perdagangan internasional pada hewan langka tertentu: misalnya, Asia Arwana dalam rangka untuk memastikan bahwa hanya penangkaran ikan diimpor. 2.2.2 Komponen Microchip Microchip yang pasif, atau inert, perangkat RFID dan tidak mengandung sumber daya internal. Mereka dirancang sehingga mereka tidak bertindak sampai ditindak lanjuti. Kebanyakan microchip terdiri dari tiga elemen dasar: Sebuah chip silikon (integrated circuit), sebuah induktor kumparan, atau inti ferit dibungkus kawat tembaga, dan kapasitor. Chip silikon berisi nomor identifikasi, ditambah sirkuit elektronik untuk menyampaikan bahwa informasi ke pemindai. Induktor bertindak sebagai antena radio, siap untuk menerima tenaga listrik dari pemindai. Kapasitor dan bertindak induktor sebagai tuner, membentuk sebuah rangkaian LC. Pemindai ini menyajikan medan yang menggairahkan induktif kumparan dan biaya kapasitor, yang pada gilirannya memberikan energi dan kekuatan IC. IC kemudian mengirimkan data melalui kumparan ke pemindai. Komponen ini terbungkus dalam gelas biokompatibel khusus yang terbuat dari soda kapur, dan tertutup rapat untuk mencegah kelembaban atau cairan II-5 memasuki unit. Komplikasi jarang terjadi pembatasan, anjing dan kucing yang tidak terpengaruh secara fisik atau perilaku dengan kehadiran sebuah chip dalam tubuh mereka. 2.2.3 Lokasi Penanaman Pada ikan chip biasanya dimasukkan diantara sisik punggung di salah satu sisinya. Sedangkan pada anjing dan kucing, chip biasanya dimasukkan di bawah kulit di bagian belakang leher, antara tulang belikat pada garis tengah dorsal. Eropa Kontinental hewan peliharaan mungkin pengecualian, mereka mendapatkan implan di sisi kiri leher, menurut salah satu referensi chip sering dapat dideteksi secara manual oleh pemilik dengan lembut merasakan kulit di daerah itu.. Itu tetap di tempat sebagai lapisan tipis membentuk jaringan ikat di sekitar kaca biokompatibel yang melukai itu. Kuda microchipped di sisi kiri leher, setengah jarak antara jajak pendapat dan layu, dan sekitar satu inci di bawah garis tengah surai, ke ligamentum nuchae. Microchip burung 'yang disuntikkan ke dalam otot payudara mereka. Karena pembatasan yang tepat diperlukan, operasi baik memerlukan dua orang (dokter hewan unggas dan teknisi hewan), atau anestesi umum diberikan. Gambar 2.3 Lokasi dan cara pemasangan Microchip pada Ikan 2.2.4 Jenis Hewan Banyak spesies hewan telah microchipped, termasuk cockatiels dan beo lainnya, kuda, llama, alpacas, kambing, domba, babi miniatur, kelinci, rusa, musang, penguin, ular, kadal, buaya, kura-kura, kodok, katak, ikan langka, II-6 simpanse, tikus, dan anjing padang rumput - bahkan ikan paus dan gajah. US Fish and Wildlife Service menggunakan microchipping dalam penelitian banteng liar, berkaki hitam musang, beruang grizzly, rusa, rusa ekor putih, kura-kura darat raksasa dan armadillo. 2.3 Unified Modeling Language(UML)2 Unifield Modeling Language (UML) adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang di bangun menggunakan pemograman berorientasi objek (OO). Definisi ini merupakan definisi yang sederhana. Pada kenyataannya,pendapat orang-orang tentang UML berbeda satu sama lain. Hal ini dikarenakan oleh sejarahnya sendiri dan oleh perbedaan persepsi tentang apa yang membuat sebuah proses rancang-bangun perangkat lunak efektif[FOW03]. Bahasa pemodelan grafis telah ada di industri perangkat lunak sejak lama. Pemicu di balik semuanya adalah bahwa bahasa pemograman berada pada tingkat abstraksi yang tidak terlalu tinggi untuk memfasilitasi diskusi tentang desain. Meskipun faktanya adalah bahasa pemodelan grafis telah ada sejak lama, masih terdapat banyak pertentangan di dalam industri perangkat lunak tentang perannya. Pertentangan-pertentangan ini berpengaruh langsung pada bagaimana orang-orang memandang UML itu sendiri. UML merupakan standar yang relatif terbuka yang dikontrol oleh Object Management Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung interoperabilitas, khususnya interoperabilitas sistem berorientasi objek. OMG mungkin lebih dikenal dengan standar-standar COBRA (Common Object Request Broker Architecture). UML lahir dari penggabungan banyak bahasa pemodelan grafis berorientasi objek yang berkembang pesat pada akhir 1980-an dan awal 1990-an. Sejak kehadirannya pada tahun 1997. II-7 Pada inti peran UML dalam perkembangan perangkat lunak, orang-orang memiliki cara-cara yang berbeda dalam penggunaannya, perbedaan-perbedaan yang masih dibawa dari bahasa-bahasa pemodelan grafis lain. Perbedaanperbedaan ini mengakibatkan perselisihan yang panjang dan keras tentang bagaimana UML seharusnya digunakan. Untuk menyelesaikannya, Steve Mellor dan Martin Fowler secara mandiri menggolongkan tiga cara orang-orang menggunakan UML; sketsa, blueprint, dan bahasa pemograman. Sejauh ini, yang paling umum dari ketiga cara tersebut, setidaknya dari pandangan Martin Fowler, adalah UML sebagai sketsa. Dalam penggunaan ini, developer menggunakan UML untuk membantu menyampaikan beberapa aspek dari sebuah sistem. Sama halnya dengan blueprint, dapet menggunakan sketsa dalam sebuah forward engineering atau reverse engineering. Forward engineering menggambar sebuah diagram UML sebelum membuat kode program, sedangkan Reverse engineering membuat diagram dari kode yang sudah ada untuk membantu memahaminya. Inti dari sketsa adalah pemilihan. Dalam forward sketching, membuat daftar beberapa masalah dalam kode yang akan ditulis, biasanya dengan membicarakannya dahulu dengan sekelompok tim. Tujuannya adalah menggunakan sketsa untuk membantu menyampaikan ide atau alternatif tentang apa yang akan dilakukan. Hal tersebut tidak berbicara tentang semua kode yang akan dikerjakan, hanya beberapa masalah penting yang harus disampaikan pada rekan atau desain yang ingin ditampilkan sebelum mulai pemograman. Sesi seperi ini bisa saja sangat singkat. Dengan reverse engineering, anda menggunakan sketsa untuk mejelaskan bagaimana beberapa bagian dari sebuah sistem bekerja. Hal tersebut menunjukan setiap class, hanya yang menarik dan berguna untuk dibicarakan sebelum menggali lebih dalam kode program tersebut. Karena pembuatan sketsa sedikit informal dan dinamis, perlu dilakukannya secara cepat dan kolaboratif. Sketsa juga berguna di dokumen, di mana fokusnya lebih pada penyampaian ide daripada kebutuhan. Peranti yang digunakan dalam pembuatan sketsa adalah alat gambar ringan dan acapkali orang- II-8 orang tidak terlalu mengikuti setiap aturan dalam UML. Sebagian besar diagram UML yang terdapat pada buku-buku. Penekanan penyampaian selektif daripada spesifikasi utuh. Kebalikannya, UML sebagai blueprint menyampaikannya suatu kebutuhan. Dalam forward engineering, blue print dibuat oleh seorang desainer yang pekerjaannya membuat desain yang detil untuk dikodekan oleh seorang programer. Desain tersebut harus cukup lengkap, dalam artian seluruh keputusan desain telah dijabarkan dan programer harus dapat mengikutinya secara langsung tanpa perlu berpikir keras. Desainer bisa jadi merupakan orang yang sama dengan programer, tetapi biasanya desainer adalah developer yang lebih senior yang mendesain untuk sebuah tim programer. Inspirasi pendekatan ini berasal dari bentuk lain rancang-bangun di mana insinyur profesional membuat gambargambar rancang-bangun dan diserahkan kepada perusahaan konstruksi untuk direalisasikan. Pembuatan blueprint bisa diterapkan pada seluruh detil atau seorang desainer dapat juga menggambar nlueprint untuk daerah tertentu. Langkah yang umum bagi desainer adalah membuat mode blueprint sampat tingkat antar muka (browser) subsistem dan menyerahkan kepada developer untuk mengerjakan detil penerapannya tersebut. Dalam reverse engineering, blueprint bertujuan untuk menyampaikan informasi detil tentang kode baik dalam bentuk dokumen cetak atau sebagai browser grafis interaktif. Blueprint dapat menunjukan setiap detil sebuah class dalam sebuah bentuk grafis yang memudahkan developer dalam memahaminya. Blueprint membutuhkan piranti yang lebih canggih daripada yang dibutuhkan sketsa untuk menangani detilnya. Peranti CASE (Computer-Aided Software engineering) khusus termasuk ke dalam kategori ini, meskipun istilah CASE sudah menjadi kata umpatan dan vendor-vendor berusaha untuk tidak menggunakannya lagi sekarang. Peranti forward engineering mendukung penggambaran diagram dan menyimpannya dalam suatu tempat untuk menyimpan informasi. Piranti reverse engineering membaca souce code dan menginterpretasinya untuk dimasukan ke dalam ruang penyimpanan, lali membuat II-9 diagram. Peranti yang dalap melakukann kedua tipe engineering tersebut, baik forward maupun reverse, disebut peranti roundtrip. Beberapa peranti menggunakan source code sebagai tempat penyimpanan dan menggunakan diagram sebagai penggambaran kode. Peranti-peranti ini sangat terkait dengan pemograman dan acapkali berintegrasi secara langsung dengan editor pemograman. Martin Fowler menyebutnya sebagai peranti-peranti tripless Batas yang memisahkan blueprint dan sketsa sebenarnya kabur, tetapi perbedaan menurut Martin Fowler, terletak pada fakta bahwa sketsa dibuat tidak lengkap, hanya menunjukan informasi penting sedangkan blueprint cenderung komprehensif dan acapkali bertujuan meringkas pemograman menjadi aktifitas yang simpel dan sedikit mekanis. Dalam kata lain, Martin Fowler cenderung mengatakan bahwa sketsa bersifat eksploratif sedangkan blueprint bersifat definitif. Semakin dalam menggeluti UML dan pemogramannya menjadi lebih mekanis, akan tampak dengan jelas bahwa pemograman tersebut seharusnya otomatis. Tentu saja terdapat banyak peranti CASE yang menerapkan beberapa bentuk generasi kode yang secara otomatis membangun bagian tertentu dalam sebuah sistem. Meskipun demikian sering kali akan sampai pada suatu titik di mana seluruh sistem dapat dijabarkan dalam UML, dan sampai pada UML sebagai bahasa pemograman. Dalam lingkungan ini, developer menggambar diagram UML yang digabungkan langsung manjadi kode yang dapat dijalankan dan UML mejadi source code. Jelas bahwa penggunaan UML ini membutuhkan peranti yang sangat rumit. Lalu, istilah forward engineering maupun reverse engineering tidak berlaku pada jenis ini karena UML sama dengan source code. Salah satu pertanyaan menarik tentang UML sebagai bahasa pemograman adalah bagaimana memodelkan logika behavioral. UML 2 manawarkan tiga cara untuk pemodelan behavior: interaction diagram, state diagram, dan activity diagram. Semuanya mempunyai kelebihan dalam pemograman. Jika UML menjadi terkenal sebagai sebuah bahasa pemograman, akan menjadi menarik untuk melihat teknik mana yang akan berhasil. II-10 Sisi lain bagaimana orang-orang memandang UML adalah jarak antara penggunaan UML untuk konseptual dan untuk pemodelan perangkat lunak. Sebagian besar orang akrab dengan penggunaan UML dalam pemodelan perangkat lunak. Di dalam perspektif perangkat lunak ini, elemen-elemen UML memerakan secara agak langsung elemen-elemen dalam sebuah sistem perangkat lunak. Seperti yang akan dilihat, pemeraan ini tidak secara preskriptif, tetapi jika kita menggunakan UML, kita membicarakan elemen-elemen perangkat lunak. Dalam perspektif konseptual, UML mewakili deskripsi konsep-konsep sebuah bidang studi. Di sini tidak berbicara tentang elemen-elemen perangkat lunak sebanyak jika menyusun kosakata untuk dibicarakan tentang bidang studi tertentu. Tidak ada aturan-aturan baku dalam perspektif, sebagai buktinya, terdapat sejumlah besar perbedaan penggunaan. Beberapa peranti secara otomatis mengubah source code menjadi UML, memperlakukan UML sebagai cara pandang alternatif terhadap souce code tersebut. Hal tersebut merupakan sebuak perspektif perangkat lunak. Jika menggunakan diagram UML untuk mencoba dan memahami arti yang bermacam-macam dalam istilah asset pool bersama-sama pikiran konseptual. Dalam buku-buku Martin Fowler sebelumnya, ia membedakan persektif perangkat lunak ke dalam spesifikasi (antarmuka) dan implementasi. Dalam prakteknya, Martin Fowler menemukan bahwa sunggu sangat sulit untuk menarik garis yang memisahkan mereka, jadi ia perbedaan itu sudah tidak layak untuk dibicarakan. Akan tetapi, Martin Fowler cenderung menekankan antarmuka daripada implementasi di dalam diagram-diagram. Cara-cara yang berbada dalam penggunaan UML ini menyebabkan banyak argumentasi tentang apa arti diagram UML dan hubungan mereka dengan dunia. Khususnya, hal ini mempengaruhi hubungan antara UML dengan source code. Beberapa orang berpandangan bahwa UML harus digunakan untuk membuat sebuag desain bahawa pemograman yang mandiri digunakan dalam implementasi. Kelompok lain percaya bahwa desain yang tidak tergantung bahasa merupakan sebuah oxymoron (kombinasi kata-kata yang berlawanan arti untuk menciptakan II-11 efek epigramatikal. Contoh, ”kebaikan yang kejam”), dengan penekanan pada kata moron (bodoh, tolol, goblok). Perbedaan cara pandang lainnya adalah tentang apa sebenarnya inti UML. Dalam pandangan Martin Fowler, sebagian besar penggunaan UML, terutama yang membuat sketsa berpendapa bahwa inti UML adalah diagram. Meskipun demikian, pencipta UML memandang diagram sebagai hal sekunder, sedangkan inti UML adalah meta-model. Diagram-diagram hanyalah presentasi dari metamodel. Padangan ini juga masuk akal bagi mereka yang membuat blueprint dan pengguna bahasa pemograman UML. Jadi setiap kali membaca buku yang menyebutkan UML, sangatlah penting untuk mengetahui sudut pandang si pengarang. Baru setelah itu, dapat memahami argumen-argumen yang acapkali keras yang didengungkan UML. Setelah menyampaikan semua hal di atas, Martin Fowler perlu menghilangkan biasnya. Hampir setiap saat, Martin Fowler menggunakan UML sebagai sketsa. Martin Fowler mengerti bahwa sketsa UML berguna baik dengan forward atau reverse engineering dan dalam perspektif konseptual maupun perangkat lunak. Martin Fowler bukan penggemar blueprint forward engineering yang detail karena ia yakin akan sangat sulit untuk benar-benar membuat yang bagus dan akan memperlambat usaha pengembangan. Membuat blueprint sampai pada tingkat antarmuka subsistem masih masuk akal, tetapi kemudian akan harus mengubah antarmuka tersebut ketika developer menerapkan interaksi antarmuka tersebut. Nilai blueprint reverse engineering tergantung pada bagaimana peranti tersebut bekerja. Jika digunakan sebagai browser dinamis, blueprint ini akan sangan mambantu, tetapi jika digunakan untuk membuat dokumen yang besar, blueprint akan menghapus cabang-cabangnya. Martin Fowler menganggap bahwa UML sebagai bahasa pemograman adalah ide yang bagus tetapi ia ragu apakah ini akan dapat menunjukan penggunaan yang signifikan. Martin Fowler tidak percaya jika bentuk-bentuk grafis lebih produktif daripada bentuk tekstual untuk kebanyakan tugas II-12 pemograman dan bahwa jika mereka benar-benar lebih produktif, sangat sulit sebuah bagasa untuk dapat diterima secara luas. Sebagai hasil pandangan bias Martin Fowler, ia lebih fokus pada penggunaan UML untuk pembuatan sketsa. Untungnya, hal ini masuk akal untuk dijadikan sebagai pengantar singkat. Gambar 2.4 Klasifikasi Jenis Diagram UML Terdapat tiga klasifikasi dari UML diagram. a. b. c. Behavior diagrams. Interaction diagrams Structure diagrams. UML 2 terdiri dari 13 jenis diagram resmi, terdapat pada tabel berikut [AGI09] : Tabel 2.1. Table Jenis Diagran UML 2.0 Diagram Activity Diagram Class Diagram Description Priority Depicts high-level business processes, High including data flow, or to model the logic of complex logic within a system. Shows a collection of static model High elements such as classes and types, their contents, and their relationships. II-13 Diagram Communication Diagram Description Shows instances of classes, their interrelationships, and the message flow between them. Communication diagrams typically focus on the structural organization of objects that send and receive messages. Formerly called a Collaboration Diagram. Component Depicts the components that compose an Diagram application, system, or enterprise. The components, their interrelationships, interactions, and their public browsers are depicted. Composite Depicts the internal structure of a Structure Diagram classifier (such as a class, component, or use case), including the interaction points of the classifier to other parts of the system. Deployment Shows the execution architecture of Diagram systems. This includes nodes, either hardware or software execution environments, as well as the middleware connecting them. Interaction A variant of an activity diagram which Overview Diagram overviews the control flow within a system or business process. Each node/activity within the diagram can represent another interaction diagram. Object Diagram Depicts objects and their relationships at a point in time, typically a special case of either a class diagram or a communication diagram. Package Diagram Shows how model elements are organized into packages as well as the dependencies between packages. . Sequence Diagram Models the sequential logic, in effect the time ordering of messages between classifiers. State Machine Describes the states an object or Diagram interaction may be in, as well as the transitions between states. Formerly referred to as a state diagram, state chart diagram, or a state-transition diagram. See UML State chart diagram guidelines. Timing Diagram Depicts the change in state or condition of a classifier instance or role over time. Priority Low Medium Low Medium Low Low Low High Medium Low II-14 Diagram Use Case Diagram 2.4 Description Priority Typically used to show the change in state of an object over time in response to external events. Shows use cases, actors, and their Medium interrelationships. PHP PHP adalah kependekan dari Hypertext Preprocessor atau Profesional Homepage, yaitu sebuah bahasa scripting yang dieksekusi di sisi server (Serverside Scripting Language). Fungsinya adalah membuat sebuah web yang interaktif dan dinamis. PHP dibuat pertama kali pada tahun 1995 oleh Rasmus Lerdorf, seorang software engineer anggota tim pengembangan web server Apache. Pada tahun 1996 Rasmos menulis kode script Perl untuk diterapkan pada hal yang lebih komplek dengan bahasa pemrograman C[CRI06]. Pada bulan Oktober 2000 PHP merilis versi 4.0 dengan mengintegrasikan Zend Engine, dan merupakan versi pengembangan dari PHP 3 Script Engine. Keunggulannya dari sifatnya yang server-side tersebut antara lain : Tidak diperlukan kompatibilitas browser atau harus menggunakan browser tertentu, karena server-lah yang akan mengerjakan skrip PHP. Hasil yang dikirimkan kembali ke browser apapun. Dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, misalnya koneksi ke database. Skrip tidak dapat “diintip” dengan menggunakan fasilitas view HTML source. Sebagai contoh, perhatikan skrip PHP sederhana berikut ini: II-15 Contoh: Setelah skrip ini dikerjakan di server, server akan memberikan output kepada browser sebagai berikut : Contoh : Output inilah yang dieksekusi oleh browser. Dengan output berupa tag-tag HTML biasa, maka output tersebut pasti dapat dieksekusi oleh browser apapun. Adapun kelebihan dari PHP yaitu dapat “melakukan” semua aplikasi program CGI, seperti mengambil nilai form, menghasilkan halaman web yang dinamis, mengirim dan menerima cookie. PHP juga dapat berkomunikasi dengan layanan-layanan yang menggunakan protokol IMAP, SNMP, NNTP, POP3, HTTP, dan lain-lain. Namun tampaknya kelebihan PHP yang paling signifikan adalah kemampuannya untuk melakukan koneksi dengan berbagai macam database. Saat ini, database yang didukung PHP adalah : Adabas D, InterBase, PostgreSQL, dBase, FrontBase, Solid, Empress, mSQL, Sybase, FilePro(read-only), Direct MS-SQL, Velocis, IBM DB2, MySQL, Unix dbm, Informix, Semua database yang mempunyai provider ODBC, Ingres, Oracle (OCI7 and OCI8). 2.5 Apache Web/HTTP Server HTTP Apache Server atau Web/WWW Apache Server adalah web server yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk II-16 melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini menggunakan HTTP[AZI01]. Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigur, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah. Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache Software Foundation. 2.6 MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL[AZI01]. Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius. MySQL merupakan Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian II-17 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. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase. MySQL memiliki beberapa keistimewaan, antara lain: 1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. Open Source. MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma. 3. 'Multiuser'. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4. 'Performance tuning'. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 5. Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lainlain. 6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). 7. Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. 8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu II-18 tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT). 10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya. 11. Antar Muka. MySQL memiliki browser (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Browser). 12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online. 13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle. 2.7 Perangkat Lunak / Aplikasi Perangkat lunak / aplikasi adalah suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media[APL10]. Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang disebut sebagai suatu paket atau suite aplikasi (application suite). Contohnya adalah Microsoft Office dan OpenOffice.org, yang menggabungkan suatu aplikasi pengolah kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi-aplikasi dalam suatu paket biasanya memiliki antarmuka pengguna yang memiliki kesamaan sehingga memudahkan pengguna untuk mempelajari dan menggunakan II-19 tiap aplikasi. Sering kali, mereka memiliki kemampuan untuk saling berinteraksi satu sama lain sehingga menguntungkan pengguna. Contohnya, suatu lembar kerja dapat dibenamkan dalam suatu dokumen pengolah kata walaupun dibuat pada aplikasi lembar kerja yang terpisah. 2.8 Basis Data/ Database Basis data (bahasa Inggris: database), atau sering pula dieja basis data, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi[BAS10]. Istilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis. Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili dengan menggunakan nilai yang sama antar tabel. Model yang II-20 lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system / DBMS). Jika konteksnya sudah jelas, banyak administrator dan programmer menggunakan istilah basis data untuk kedua arti tersebut. 2.9 Pemrograman Berorientasi Objek Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelaskelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya[PEM10]. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Konsep Dasar dari Pemrograman Berorientasi Objek. Pemrograman orientasi-objek menekankan konsep berikut: a. Kelas - kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah kelas adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi objek. Sebuah kelas secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah kelas sebaiknya (relatif) bersifat mandiri dan II-21 independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. b. Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. c. Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan. d. Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses browser yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut. e. Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu dimana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tunggal dalam program dapat II-22 memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama. f. Inheritas - Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (memperluas) perilaku mereka tanpa harus mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas). g. Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri. 2.10 PhpMyAdmin PhpMyAdmin adalah perangkat lunak bebas yang ditulis dalam bahasa pemrograman PHP yang digunakan untuk menangani administrasi MySQL melalui World Wide Web. phpMyAdmin mendukung berbagai operasi MySQL, diantaranya (mengelola basis data, tabel-tabel, bidang (fields), relasi (relations), indeks, pengguna (users), perijinan (permissions), dan lain-lain) [PMA10]. II-23 Pada dasarnya, mengelola basis data dengan MySQL harus dilakukan dengan cara mengetikkan baris-baris perintah yang sesuai (command line) untuk setiap maksud tertentu. Jika seseorang ingin membuat basis data (database), ketikkan baris perintah yang sesuai untuk membuat basis data. Jika seseorang menghapus tabel, ketikkan baris perintah yang sesuai untuk menghapus tabel. Hal tersebut tentu saja sangat menyulitkan karena seseorang harus hafal dan mengetikkan perintahnya satu per satu. Saat ini banyak sekali perangkat lunak yang dapat dimanfaatkan untuk mengelola basis data dalam MySQL, salah satunya adalah phpMyAdmin. Dengan phpMyAdmin, seseorang dapat membuat database, membuat tabel, mengisi data, dan lain-lain dengan mudah, tanpa harus menghafal baris perintahnya. PhpMyAdmin merupakan bagian untuk mengelola basis data MySQL yang ada di komputer. Untuk membukanya, buka browser lalu ketikkan alamat http://localhost/phpmyadmin, maka akan muncul halaman phpMyAdmin. Disitu nantinya seseorang bisa membuat (create) basis data baru, dan mengelolanya. Pengembangan phpMyAdmin dimulai pada tahun 1998 oleh Tobias Ratschiller seorang konsultan IT. Ratschiller mengerjakan sebuah program bernama MySQL-Webadmin dengan bebas, yang merupakan produk dari Petrus Kuppelwieser, yang telah berhenti mengembangkannnya pada saat itu. Ratschiller menulis kode baru untuk phpmyadmin, dan ditingkatkan pada konsep dari proyek Kuppelwiesser. Ratschiller meninggalkan proyek phpMyAdmin pada tahun 2001. Sekarang, Sebuah tim dari delapan pengembang yang dipimpin oleh Oliver Muller meneruskan pengembangan phpMyAdmin (http://sourceforge.net). Beberapa pengembang diantaranya ialah: 1. Marc Delisle 2. Michal Cihar 3. Sebastian Mendel 4. Herman van Rink di SourceForge.net II-24 Beberapa fitur dalam phpMyAdmin : a. Antarmuka berbasis web. Dukungan banyak fitur MySQL : 1. Menelusuri dan drop basisdata (database), tabel, pandangan (view), bidang (fields) dan indeks. 2. Membuat, menyalin, drop, dan mengubah nama basis data, tabel, kolom dan indeks. 3. Pemeliharaan server, basis data dan tabel, dengan server konfigurasi. 4. Melaksanakan, mengedit dan penunjuk pernyataan-SQL, bahkan batchqueries. 5. Mengelola pengguna MySQL dan hak istimewa. 6. Mengelola prosedur penyimpanan. b. Impor data dari CSV dan SQL. c. Ekspor data ke berbagai format: CSV, SQL, XML, PDF, ISO / IEC 26300 – Open Document Text dan Spreadsheet, Word, Excel, LATEKS dan lain-lain. d. Membuat grafik PDF dari tampilan basis data anda. e. Membuat kompleks query menggunakan Query-by-example (QBE). f. Pencarian global dalam basis data. g. Transformasi data disimpan ke dalam format yang menggunakan satu set fungsi yang telah ditetapkan, seperti menampilkan data blob-data atau download-link.