BAB II LANDASAN TEORI Beberapa penjelasan teori-teori umum informatika yang berkaitan dengan pembuatan aplikasi ini. 2.1. Aplikasi Mobile Menurut Wikipedia, aplikasi adalah program yang digunakan orang untuk melakukan sesuatu pada sistem komputer. Mobile dapat diartikan sebagai perpindahan yang mudah dari satu tempat ke tempat yang lain, misalnya telepon mobile berarti bahwa terminal telepon yang dapat berpindah dengan mudah dari satu tempat ke tempat lain tanpa terjadi pemutusan atau terputusnya komunikasi. Sistem aplikasi mobile merupakan aplikasi yang dapat digunakan walaupun pengguna berpindah dengan mudah dari satu tempat ketempat lain lain tanpa terjadi pemutusan atau terputusnya komunikasi. Aplikasi ini dapat diakses melalui perangkat nirkabel seperti pager, seperti telepon seluler dan PDA. Adapun karakteristik perangkat mobile yaitu: 1. Ukuran yang kecil: Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka. 2. Memory yang terbatas: Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan secondary (disk). 3. Daya proses yang terbatas: Sistem mobile tidaklah setangguh rekan mereka yaitu desktop. 10 11 4. Mengkonsumsi daya yang rendah: Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. 5. Kuat dan dapat diandalkan: Karena perangkat mobile selalu dibawa kemana saja, mereka harus cukup kuat untuk menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air. 6. Konektivitas yang terbatas: Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. 7. Masa hidup yang pendek: Perangkat-perangkat konsumen ini menyala dalam hitungan detik kebanyakan dari mereka selalu menyala. 2.2. Android Android adalah sebuah sistem operasi pada handphone yang bersifat terbuka dan berbasis pada sistem operasi Linux. Android bisa digunakan oleh setiap orang yang ingin menggunakannya pada perangkat mereka. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri yang akan digunakan untuk bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android 12 di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler (Safaat, 2012: 1). 2.2.1. ADT (Android Development Tools) Android development tools adalah plugin yang dirancang untuk IDE Eclipse yang memberi kita kemudahan dalam mengembangkan aplikasi android dengan menggunakan IDE Eclipe. Dengan menggunakan ADT untuk Eclipe akan memudahkan dalam membuat aplikasi project android, membuat GUI aplikasi dan menambahkan komponen-komponen yang lainnya, begitu juga dapat melakukan running aplikasi menggunakan android SDK melalui Eclipe. Dengan ADT juga kita dapat melakukan pembuatan package android (.apk) yang digunakan untuk mendistribusikan aplikasi android yang telah dirancang. (Safaat, 2012:6) 2.2.2. Arsitektur Android Arsitektur Android menunjukkan komponen-komponen utama yang terdapat pada sistem operasi Android. 1. Application dan Widgets Application dan widgets ini adalah layer di mana kita berhubungan dengan aplikasi saja, di mana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat aplikasi inti termasuk client email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemogrman Java. 13 2. Applications Frameworks Android adalah open development platform yaitu menawarkan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Pengembangan bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service background, mengatur alarm, dan menambahkan status notifications. Pengembangan memiliki akses pennuh menuju API framework seperti yang dilakukan oleh aplikasi yang kategori inti. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse). 3. Libraries Libraries adalah layer di mana fitur-fitur android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas karnel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL, libraries untuk memutar media audio dan video, libraries untuk manajemen tampilan dan lain-lain. 4. Android Run Time Layer yang membuat aplikasi android dapat dijalankan di mana dalam prosesnya menggunkan implementasi linux. Dalvik Virtual Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi android. 5. Linux Karnel Linux karnel adalah layer di mana inti dari operating system dari android itu berada. Berisi file-file system yang mengatur system prosessing, memory, 14 resource, drivers, dan sistem-sistem operasi android lainnya. Linux karnel yang digunakan android adalah linux karnel release 2.6. (Safaat, 2012:8) Gambar 2.1 Arsitektur Android (Sumber Gambar: http://source.android.com) 2.3. Web Web merupakan sumber daya internet yang berkembang pesat. Web biasa disebut World Wide Web (WWW). Informasi web didistribusikan melalui pendekatan hypertext yang memungkinkan suatu text pendek menjadi acuan untuk membuka dokumen yang lain. Dengan pendekatan hypertext ini seorang dapat memperoleh informasi dengan meloncat dari suatu dokumen ke dokumen yang lain. Dokumen-dokumen yang diaksespun dapat tersebar ke berbagai mesin di berbagai Negara. (Kodir, 2002: 4) 15 Gambar 2.2 Konsep Hypertext (Darmansyah: 2010) 2.3.1. Sejarah Web Sejarah web dimulai pada bulan maret 1989 ketika Tim Berner-Lee yag bekerja di Laboratorium Fisika Partikel Eropa atau yang dikenal dengan nama CERN (Consei European pour la Recherce Nuclaire) yang berada di Genewa, Swiss, mengajukan protocol system distribusi informasi internet yang digunakan untuk berbagai informasi diantara fisikawan. Protocol inilah yang selanjutnya dikenal sebagai protocol World Wide Web dan dikembangkan oleh World Wide Web Consortium (W3C). Sebagaimana diketahui, W3C adalah konsorsium dari sejumlah organisasi yang berkepentingan dalam pengembangan berbagai standar yang berkaitan dengan web. (Kodir, 2002:5) 16 2.3.2. Aplikasi Web Pada awalnya aplikasi web dibagun hanya dengan menggunakan bahasa yang disebut HTML (Hypertext Tranfer Marcup Language) dan protocol yang digunakan dinamakan HTTP (Hypertext Tranfer Protokcol). Pada pengembangan berikutnya, sejumlah skrip dan objek dikembangkan untuk memperluas kemampuan HTML. Pada saat ini, banyak skrip diantaranya: PHP dan ASP, sedangkan contoh yang berupa objek diantaranya adalah applet (Java). (Kodir, 2002:6) Aplikasi web sendiri dapat dibagi menjadi: 1. Web statis Web statis dibentuk dengan menggunakan HTML saja, kekurangan aplikasi seperti ini terletak pada keharusan untuk memelihara program secara terus-menerus untuk mengikuti setiap perubahan yang terjadi. 2. Web dinamis Web dinamis yaitu menutupi kelemahan dari web statis dengan model aplikasi dengan memperluas kemampuan HTML, yakni dengan menggunakan perangkat lunak tambahan, perubahan informasi dalam halaman-halaman web sebagai implementasinya, aplikasi web dapat dikoneksikan ke database. Dengan demikian perubahan informasi dapat dilakukan oleh operator atau yang bertanggung jawab terhadap kemuktahiran data, dan tidak menjadi tanggung jawab programmer atau webmaster. 17 Gambar 2.3 Arsetektur aplikasi web (Sumber Gambar: http://digilib.ittelkom.ac.id) 2.3.3. Teknologi Web Dari sisi teknologi yang dgunakan untuk membentuk web dinamis, terdapat dua macam pengelompokan, yaitu: 1. Teknologi pada sisi klien (client-side technology) Teknologi pada sisi klien diimplementasikan dengan mengirimkan kode perluasan HTML atau program tersendiri dan HTML ke klien. Klienlah yang bertanggung jawab dalam melakukan proses terhadap seluruh kode yang diterima. Kelemahan pendekatan seperti ini adalah terdapat kemungkinan bahwa browser pada klien tidak mendukung fitur kode perluasan HTML. 2. Teknologi web pada sisi server (server-side technology) Teknologi web pada sisi server memungkinkan pemprosesan kode didalam server sehingga kode yang disampaikan pada pemakai berbeda dengan kode asli pada server. Keuntungan menggunakan teknologi ini adalah mengurangi lalu-lintas jaringan dengan cara menghindari percakapan bolak-balik antara klien dan server. 18 2.4. Java Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda. (Wikipedia) 2.4.1. Sejarah Java Java bermula dari proyek penelitian perusahaan Sun Microsystems dengan nama sandi Green pada tahun 1991. Terdapat prediksi bahwa microprossesor akan digunakan luas pada peralatan-peralatan elektronik. Karena adanya bermacam tipe mikroprosesor, maka dibutuhkan sebuah bahasa yang dapat berjalan disemua microprocessor. Terciptanya sebuah bahasa pemograman baru. Oleh James Gosling, yaitu salah satu orang yang berperan besar dalam proyek tersebut, program ini diberi nama oak. Sesuai dengan pohon oak yang tumbuh dan bias dilihat melalui jendela kerjanya di Sun Microsystems. Beberapa waktu kemudian ditemukan bahwa ada bahasa pemograman dengan nama oak. Setelah beberapa pegawai Sun mengunjungi kedai kopi, nama bahasa itu diganti dengan Java. Java merupakan salah satu jenis biji kopi yang ada dkedai tersebut, yaitu biji kopi jawa. (Hakim dan Sutarto, 2009:1) 19 2.4.2. Perkembangan Teknologi Java Sun Microsystems membagi java menjadi empat jenis edisi: 1. Java card: teknologi java yang digunakan pada peralatan elektronik yang memiliki memori sangat terbatas seperti smart card. 2. J2ME: java 2 platform, micro edition. Merupakan teknologi java edisi mikro, digunakan untuk penerapan teknologi Java pada peralatan elektronik seperti handphone dan PDA. 3. J2SE: Java 2 platform, enterprise edition. Merupakan teknologi Java edisi standar, digunakan untuk penerapan teknologi Java pada komputer desktop. 4. J2EE: Java 2 platform, enterprise edition. Merupakan Java edisi enterprise digunakan untuk penerapan teknologi Java pada komputer server. (Hakim dan Sutarto, 2009:2) 2.4.3. Keunggulan Java Java mempunyai beberapa kelebihan yang membuatnya dipakai luas terutama untuk aplikasi enterprise. Java bahkan di prediksi menjadi bahasa masa depan. Java telah banyak diajarkan di lingkungan pendidikan dan dipakai secara luas oleh perusahaan dan lembaga bersekala internasional. 1) Relative mudah dipelajari Java merupakan bahasa pemograman berorientasi objek yang mudah dipelajari. 2) Mudah dikembangkan 20 Dengan pemograman berorientasi objek, komponen program Java terpecah menjadi satu atau beberapa class. Pengembangan bahasa Java sangat mudah karena tinggal mengubah atau menambah class yang pernah dibuat. Selain itu juga dapat menggunakan class-class yang sudah ada dalam Java API ataupun dibuat oleh pihak ketiga. 3) Platform Independent Dengan semboyan write once run everywhere, anda dapat menggunakan program Java pada beberapa mesin berbeda. Mulai dari PDA, handphone, komputer, hingga server. Dengan mesin hardware yang berbeda dan sistem operasi berbeda, Java tetap dapat digunakan. (Hakim dan Sutarto, 2009:6) 2.5. OOP (Object Oriented Programming) Object-Oriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan proses/tugas. kepada Interaksi interaksi object tersebut mengambil dalam penyelesaian suatu form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan / action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object-oriented world. Jika akan bepergian kita pasti berinteraksi dengan object mobil. Sebagai sebuah object, mobil berisi objectobject lain yang berinteraksi untuk melakukan tugasnya membawa kita. 21 Dalam pemograman procedural, yang menjadi orientasi adalah bagaimana melakukan kerja, seperti merubah data masukan (input) supaya mendapatkan keluaran (output) yang diinginkan. Dengan pola pikir ini akan memecah program menjadi beberapa bagian berupa perintah-perintah yang lebih kecil dan sederhana. (Hakim dan Sutarto, 2009: 79) Adapun karakteristik yang dimiliki OOP yaitu : 1. Objects Object merupakan pemodelan sistem yang lebih natural dibandingkan dengan procedural. Dalam dunia nyata, object dapat dilihat di mana saja. Setiap objek mempunyai dua karakteristik, yaitu keadaaan (state) dan tingkah laku (behavior). Keadaan (state) dgunakan untuk menyimpan informasi objek. Di dalam bahasa java, keadaan disebut juga dengan attribute atau field. Sedangkan tingkah laku digunakan untuk menentukan kerja apa saja yang dapat dilakukan objek. (Hakim dan Sutarto, 2009: 80) 2. Class Setiap program yang dibuat dengan Java harus mempunyai paling tidak satu class. Class merupakan cetak biru atau tamplate objek. Class bukan objek real, namun merupakan konsep objek. Dalam pendefinisian class terlebih dahulu menentukan field dan metode yang akan digunakan. (Hakim dan Sutarto, 2009: 80) 3. Encapsulation Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, 22 bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas data tersebut. 4. Polymorphism Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan tipe polymorphism melalui proses yang disebut overloading. Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama yang sama. 5. Inheritance Penggunaan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya. Hal ini akan membuat pekerjaan bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum kedalam object parent dan mewariskan karakteristik ini ke child object. (Hakim dan Sutarto, 2009: 81) 2.6. UML (Unified Modeling Language) Unified Modeling Language merupakan salah satu alat bantu yang dapat igunakan dalam bahasa pemograman yang berorientasi objek, saat ini UML akan mulai menjadi standar masa depan bagi industri pengembangan sistem/perangkat 23 lunak yang berorientasi objek sebab pada dasarnya UML digunakan oleh banyak perusahaan raksasa seperti IBM, Microsoft. (Informatika: 2013) 1. Pengertian UML Berdasarkan beberapa pendapat yang dikemukakan dapat ditarik kesimpulan bahwa unified modeling language adalah sebuah bahasa yang berdasarkan grafik atau gambar untuk menvisualisasikan, menspesifikasikan, membangun dan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis objek. 2. Diagram UML Diagram berbentuk grafik yang menunjukkan simbol elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya dialokasikan untuk view tertentu. Adapun jenis diagram antara lain : a. Use Case Diagram Use case adalah abstraksi dari interaksi antara sistem dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Use case merupakan konstruksi untuk mendeskripsikan bagaimana sistem akan terlihat di mata user. Sedangkan use case diagram memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan client. 24 b. Class Diagram Class adalah dekripsi kelompok obyek-obyek dengan property, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah sistem. Hal tersebut tercermin dari class-class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu sistem. c. Component Diagram Component diagram merupakan bagian fisik dari sebuah sistem, karena menetap di komputer tidak berada di benak para analis. Komponen merupakan implementasi software dari sebuah atau lebih class. Komponen dapat berupa source code, komponen biner, atau executable component. Sebuah komponen berisi informasi tentang logic class atau class yang diimplementasikan sehingga membuat pemetaan dari logical view ke component merepresentasikan dunia view. real Sehingga yaitu component component diagram software yang mengandung component, interface dan relationship. d. Deployment Diagram Menggambarkan tata letak sebuah sistem secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes, executeable component 25 dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen. e. State Diagram Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian dapat berupa object lain yang mengirim pesan. State class tidak digambarkan untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik dan kondisi class berubah oleh state yang berbeda. f. Sequence Diagram Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah skenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem. g. Collaboration Diagram Menggambarkan kolaborasi dinamis seperti sequence diagrams. Dalam menunjukkan pertukaran pesan, collaboration diagrams menggambarkan object dan hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan gunakan sequence diagrams, tapi jika penekanannya pada konteks gunakan collaboration diagram. h. Activity Diagram Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga 26 dapat juga digunakan untuk aktifitas lainnya seperti use case atau interaksi. 2.7. Basis Data Basis data adalah sekumpulan data persistence yang saling terkait, menggambarkan suatu organisasi (enterprise). Sistem Basis data (DBS) suatu sistem yang mengelola data dan menyediakan data tersebut apabila dibutuhkan. 1. Model Entity Peter Pin-Shan Chen, “The Entity-Relationship Model-Toward a unifield view of data”, 1976. Model data E-R didasarkan pada persepsi bahwa dunia nyata merupakan sekumpulan dari sejumlah obyek dasar (entitas) dan relasi antar obyek-obyek data tersebut. Termasuk dalam kelompok object-based logical. Merupakan contoh kelas Extended atau semantic models. a. Entitas (Entity) Sebuah entitas adalah sebuah obyek yang dapat dibedakan dari obyekobyek lainnya. Entitas dapat dikelompokan menjadi entitas konkrit dan entitas abstrak dan entitas biasa (Regular/Strong) dan entitas lemah (Weak). Himpunan entitas (entity set) adalah kumpulan sejumlah entitas yang memiliki tipe yang sama. Sebuah entitas memiliki sejumlah properti (atribut). Setiap atribut memiliki sekumpulan nilai yang diizinkan, yang disebut domain. Sebuah basis data mengandung sekumpulan himpunan entitas, yang masing-masingnya memiliki sejumlah entitas dari tipe yang sama. 27 b. Batasan (Kekangan), Kekangan digunakan untuk melindungi integritas data (misalnya, melindungi kesalahan sewaktu pengisian data). c. Atribut, atribut dapat dikelompokan menjadi Key Vs Non Key, Atribut sederhana Vs Atribut Komposit, Atribut bernilai tunggal Vs Banyak, Atribut Mandatory dan Non Mandatory dan Atribut Turunan d. Relasi (Relationship), Sebuah relasi menggambarkan suatu asosiasi antar sejumlah entitas. Himpunan relasi (Relationship set) adalah kumpulan sejumlah relasi yang memiliki tipe yang sama. Jumlah entitas terlihat dalam 2 buah relasi disebut derajat. Kebanyakan relasi yang muncul adalah relasi binary, ada beberapa yang ternary, lebih dari itu sangat jarang. Fungsi sebuah entitas di dalam relasi disebut peran (role). Sebuah relasi dapat memiliki atribut. e. Kardinalitas Relasi (Derajat Hubungan) adalah Relasi yang dimungkinkan antar entitas dimana 1 – 1, 1 – N, N – 1, N – N/N – M. f. Diagram E-R menggambarkan struktur lojik keseluruhan basis data. Simbol yang digunakan adalah persegi empat, merepresentasikan himpunan entitas (untuk entitas lemah diberi garis ganda), elips, merepresentasikan atribut, Wajik, merepresentasikan himpunan keterhubungan, garis, menghubungkan simbol-simbol pada diagram, label dari persegi empat, elips, dan wajik menunjukkan nama dan kardinalitas. g. Varian Entitas 28 2.8. MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (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, tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. (Sidik, 2003:1) 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. 2.9. PHP PHP adalah teknologi yang diperkenalkan tahun 1994 oleh Rasmus Lerdorf. Beberapa versi awal yang tidak dipublikasikan digunakan pada situs pribadinya untuk mencatat siapa saya yang mengakses daftar riwayat hidup onlinenya. Versi pertama digunakan oleh pihak lain pada awal tahun 1995 dan dikenal sebagai Personal Home Page Tools. Terkandung didalamnya sebuah parser engine (mesin pengurai) yang sangat disederhanakan, yang hanya mampu mengolah macro khusus dan beberapa utilitas yang sering digunakan pada pembuatan home page seperti buku tamu, pencacah dan hal semacamnya. Parser tersebut ditulis 29 ulang pada pertengahan 1995 dan dinamakan PHP/FI Versiaon 2. FI (Form Interprenter) sendiri berasal dari kode lain yang ditulis juga oleh Rasmus, yang menterjemahkan HTML dari data. Ia menggabungkan script Personal Home Page Tools dengan Form Interprenter dan menambahkan dukungan terhadap server database yang menggunakan format mSQL sehingga lahirlah PHP/FI. PHP/FI tumbuh dengan pesat, dan orang-orang mulai menyiapkan kode-kode programnya supaya bisa didukung oleh PHP. (Kodir, 2002: 512) 2.9.1. Pengertian PHP PHP singkatan dari Personal Home Page Tools, adalah sebuah bahasa scripting yang dibundel dengan HTML, yang dijalankan disisi server. Sebagian besar perintahnya berasal dari C, Java dan Perl dengan beberapa tambahan fungsi khusus PHP. Bahasa ini memungkinkan para pembuat aplikasi web menyajikan halaman HTML dinamis dan interaktif dengan cepat dan mudah, yang dihasilkan server. PHP juga dimaksudkan untuk mengganti teknologi lama seperti CGI (Common Gateway Interface). PHP bisa berinteraksi dengan hampir semua teknologi web yang sudah ada. Developer bisa menulis sebuah program PHP yang mengeksekusi suatu program CGI di webserver lain. Fleksibilitas ini amat bermanfaat bagi pemilik situs-situs web yang besar dan sibuk, karena pemilik masih bisa mempergunakan aplikasi-aplikasi yang sudah terlanjur dibuat di masa lalu dengan CGI, ISAP atau dengan script seperti Perl, Awk atau Python selama proses migrasi ke aplikasi baru yang dibuat dengan PHP. Ini mempermudah dan memperluas peralihan antara teknologi lama dan teknologi baru. (wikipedia) 30 2.9.2. Kelebihan PHP Adapun kelebihan dari PHP itu sendiri adalah sebagai beriku: 1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya. 2. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak. 3. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem. 4. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan apache, dengan konfigurasi yang relatif mudah. 5. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. 2.10. JSON JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemrograman JavaScript, Standard ECMA-262 Edisi ke-3 – Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C. Oleh karena sifat-sifat tersebut, menjadikan JSON sebagai bahasa pertukaran data. (http://www.json.org) 31 Semua bahasa pemrograman modern mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mulai dipertukarkan dengan bahasa-bahasa pemrograman yang juga berdasarkan pada struktur data ini. JSON menggunakan bentuk sebagai beriktu : 1. Objek Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh , (koma). Gambar 2.4 Objek JSON (Sumber Gambar : http://www.json.org) 2. Larik Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [ (kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai dipisahkan oleh , (koma). Gambar 2.5 Larik JSON (Sumber Gambar: http://www.json.org) 32 3. Nilai Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka atau true atau false atau null, atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat. Gambar 2.6 Nilai JSON (Sumber Gambar : http://www.json.org) 4. String String adalah kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash escaped “\“ untuk membentuk karaktetr khusus. Sebuah karakter mewakili karakter tunggal pada string. String sangat mirip dengan string C atau Java. Gambar 2.7 String JSON (Sumber Gambar: http://www.json.org) 33 5. Angka Angka adalah sangat mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan. Gambar 2.8 Angka JSON (Sumber Gambar : http://www.json.org) 2.11. Pengujian Perangkat Lunak Pengujian perangkat lunak adalah suatu proses yang igunakan untuk mengidentifikasi ketepatan, kelengkapan dan mutu dari perangkat lunak dalam ilmu komputer yang dikembangkan. .Pada dasarnya, pengujiann tidak pernah dapat menetapkan kebenaran dari perangkat lunak Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalul ditekankan seperti yang dikatakan oleh Deutsch : “Pengembangan sistem perangkat lunak melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar. Kesalahan dapat mulai terjadi pada permulaan proses di mana sasaran ditetapkan secara tidak sempurna, dan dalam desain dan tahap pengembangan selanjutnya…. Karena ketidak mampuan manusia untuk melakukan dan berkomunikasi dengan sempurna, maka pengembangan perangkat lunak di iringi dengan aktivitas jaminan kualitas”. 34 Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi,desain dan pengkodean. (Pressman, 2002: 525) 2.11.1. Sasaran Pengujian Perangkat Lunak Yang menjadi target sasaran dalam pengujian perangkat lunak adalah: 1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan. 2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum ditemukan pernah sebelumnya. 3. Pengujian yang sukses adalah yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya. Sasaran tersebut menggmpementasikan adanya perubahan titik pandang yang dramatis. Sasaran itu berawalan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yag ditemukan. Sasaran kita adalah mendisain pengujian yang secara sistemis mengungkap kelas kesalahan yang berbeda dan melakukannya dengan jumlah waktu dan saha minimum. (Pressman, 2002: 527) 2.11.2. Jenis Pengujian Pada umumnya terdapat dua jenis pengujian yaitu, Black-Box Testing dan White-Box Testing. Perbedaan yang mencolok diantara keduanya adalah pengujinya. Black-Box dilakukan oleh pengguna perangkat lunak yang mana hanya memperhatikan input dan outputnya saja. Apabila hasil output telah sesuai dengan input yang di uji, maka perangkat lunak talah lulus uji. Sedangkan White- 35 Box testing biasanya dilakukan oleh tim penguji dari pembuat perangkat lunak. Sehingga yang diperhatikan bukan hanya input dan output, melainkan juga proses yang terjadi yang mengakibatkan perubahan dari input menjadi output. Salah satu contoh dari pengujian white-box adalah basis-path, yang memungkinkan desainer test case mengukur kompleksitas logis dari desain procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi. 2.12. Ensiklopedia Ensiklopedia adalah sejumlah tulisan yang berisi penjelasan yang menyimpan informasi secara komprehensif dan cepat dipahami serta dimengerti mengenai keseluruhan cabang ilmu pengetahuan atau khusus dalam satu cabang ilmu pengetahuan tertentu yang tersusun dalam bagian artikel-artikel dengan satu topik bahasan pada tiap-tiap artikel yang disusun berdasarkan abjad, kategori atau volume terbitan dan pada umumnya tercetak dalam bentuk rangkaian buku yang tergantung pada jumlah bahan yang disertakan. Pada era modern kata ensiklopedia secara pertama kali dipakai oleh Paul Scalich, seorang penulis Jerman pada tahun 1559. Lalu filsuf Inggris Francis Bacon pada awal abad ke-17 memakai kata ini pada arti modern. Tetapi makna kata ensiklopedia baru dipakai dalam artinya seperti hari ini setelah Denis Diderot, seorang penulis dan filsuf Perancis juga memakai kata ini untuk memberi nama proyek yang sedang dikerjannya. Proyeknya yang juga dikatakan proyek abad ke18 ini berlangsung selama 30 tahun, dari tahun 1750 – 1780. Tujuan proyeknya ini 36 untuk menulis secara sistematis semua pengetahuan yang diketahui oleh umat manusia. Dalam bahasa Perancis ensiklopedia Diderot ini disebutnya: Encyclopédie ou Dictionnaire raisonné des sciences, des arts et des métiers. Artinya dalam bahasa Indonesia ialah “Ensiklopedia atau kamus beranotasi tentang ilmu pengetahuan, seni, dan pekerjaan. (Wikipedia) 2.13. Seni dan Kebudayaan Kekayaan seni budaya Jawa Barat merupakan bagian tidak terpisahkan dari kekayaan seni budaya Nusantara. Indonesia merupakan negara yang paling tinggi diversitas etnisnya di dunia, dimana didalamnnya Jawa Barat menjadi bagian yang tidak terpisahkan dan diversitas etnis yang tersebar disejumlah wilayah tersebut ter-refleksi dari keragaman bahasa, ornamentasi, dan berbagai artifak kultural lain sebagai bentuk respon evolutif dari manusia atas keunikan sistem ekologis di mana ia hidup. (Wikipedia) 2.13.1. Definisi Seni Seni adalah sebuah kata yang semua orang di pastikan mengenalnya, walaupun dengan kadar pemahaman yang berbeda. Kata seni berasal dari kata “sani” yang artinya jiwa yang luhur atau ketulusan jiwa. Bisa dimaknainya dengan keberangkatan seniaman saat akan membuat karya seni, namun menurut kajian ilmu di eropa mengatakan “art” (artivisial) yang artinya adalah barang/ atau karya dari sebuah kegiatan. (Wikipedia) Berdasarkan penelitian para ahli menyatakan seni/karya seni sudah ada + sejak 60.000 tahun yang. Bukti ini terdapat pada dinding-dinding gua di Prancis 37 Selatan. Buktinya berupa lukisan yang berupa torehan-torehan pada dinding dengan menggunakan warna yang menggambarkan kehidupan manusia purba. Artefak/bukti ini mengingatkan pada lukisan modern yang penuh ekspresi. Hal ini dapat kita lihat dari kebebaan mengubah bentuk. Satu hal yang membedakan antara karya seni manusia Purba dengan manusia Modern adalah terletak pada tujuan penciptaannya. Kalau manusia purba membuat karya seni/penanda kebudayaan pada massanya adalah semat-mata hanya untuk kepentingan Sosioreligi, atau manusia purba adalah figure yang masih terbentuk oleh kekuatan-kekuatan di sekitarnya. Sedangkan manusia modern membuat karya seni dan kebudayaan pada masanya digunakan untuk kepuasan pribadi dan menggambarkan kondisi lingkungannya. Dengan kata lain manusia modern adalah sosok yang ingin menemukan hal-hal yang baru dan mempunyai cakrawala berfikir yang lebih luas. Pada awalnya seni diciptakan untuk kepentingan bersama/milik bersama.karya- karya seni yang ditinggalkan pada masa pra-sejarah tidak pernah menunjukan identitas pembuatnya. Demikian pula peninggalan-peninggalan dari masa lalu seperti bangunan atau artefak di mesir kuno, Byzantium, Romawi, India, atau bahkan di Indonesia sendiri. Kalupun ada penjelasan tertentu pada artefak tersebut hanya penjelasan yang menyatakan benda dan bangunan tersebut di buat untuk siapa. (Wikipedia) 2.13.2. Definisi Kebudayaan Kebudayaan sangat erat hubungannya dengan masyarakat. Melville J. Herskovits dan Bronislaw Malinowski mengemukakan bahwa segala sesuatu yang 38 terdapat dalam masyarakat ditentukan oleh kebudayaan yang dimiliki oleh masyarakat itu sendiri. Istilah untuk pendapat itu adalah Cultural-Determinism. Koentjaraningrat (2000:180) menyatakan “kebudayaan adalah keseluruhan sistem gagasan, tindakan dan hasil karya manusias dalam rangka kehidupan masyarakat yang dijadikan milik diri manusia dengan belajar”. Herskovits memandang kebudayaan sebagai sesuatu yang turun temurun dari satu generasi ke generasi yang lain, yang kemudian disebut sebagai superorganic. Menurut Andreas Eppink, kebudayaan mengandung keseluruhan pengertian nilai sosial,norma sosial, ilmu pengetahuan serta keseluruhan strukturstruktur sosial, religius, dan lain-lain, tambahan lagi segala pernyataan intelektual dan artistik yang menjadi ciri khas suatu masyarakat. Menurut Edward Burnett Tylor (2003: 136), “kebudayaan merupakan keseluruhan yang kompleks, yang di dalamnya terkandung pengetahuan, kepercayaan, kesenian, moral, hukum, adat istiadat, dan kemampuan-kemampuan lain yang didapat seseorang sebagai anggota masyarakat”. Dari berbagai definisi tersebut, dapat diperoleh pengertian mengenai kebudayaan adalah sesuatu yang akan memengaruhi tingkat pengetahuan dan meliputi sistem ide atau gagasan yang terdapat dalam pikiran manusia, sehingga dalam kehidupan sehari-hari, kebudayaan itu bersifat abstrak.