BAB II LANDASAN TEORI 2.1 Sejarah Candi Prambanan Prambanan adalah kompleks candi Hindu terbesar di Indonesia, bahkan di Asia Tenggara. Candi yang juga terkenal dengan sebutan Candi Rara Jonggrang ini dibangun sekitar tahun 850 Masehi oleh Wangsa Sanjaya. Candi yang sejak tahun 1991 ditetapkan UNESCO sebagai cagar budaya dunia (World Wonder Heritage) ini menempati kompleks seluas 39,8 hektar. Menjulang setinggi 47 meter atau lima meter lebih tinggi dari Candi Borobudur, Candi Prambanan telihat perkasa dan kokoh. Hal ini sesuai dengan latar belakang pembangunan candi ini, yaitu ingin menunjukkan kejayaan peradaban Hindu di tanah Jawa. Candi Prambanan juga disebut Candi Rara Jonggrang. Hal ini terkait dengan sebuah legenda yang diyakini sebagian masyarakat Jawa tentang candi ini. Alkisah, seorang pangeran bernama Bandung Bondowoso jatuh hati kepada putri raja yang rupawan parasnya, ia benama Rara Jonggrang. Karena tak kuasa menolak cinta sang pangeran, Jonggrang mengajukan syarat kepada Bondowoso untuk dibuatkan candi dengan 1.000 arca dalam waktu semalam. Permintaan itu hampir terpenuhi, sebelum akhirnya Jonggrang berhasil meminta bantuan warga desa untuk menumbuk padi dan membuat api besar agar terkesan suasana sudah pagi hari. Karena merasa dicurangi, Bondowoso yang baru membuat arca ke-999 kemudian mengutuk Jonggrang menjadi arca yang ke-1.000. Candi Prambanan adalah pengejawantahan peradaban Hindu di tanah Jawa. Hal ini dapat dilihat dari struktur candi yang menggambarkan inti kepercayaan dalam agama Hindu, yaitu Trimurti. Kompleks Prambanan memiliki 3 candi utama di halaman utama, yaitu Candi Wisnu, Brahma, dan Siwa. Ketiga candi tersebut adalah lambang Trimurti dalam kepercayaan Hindu. Setiap candi utama memiliki satu candi pendamping, yaitu Nandini untuk Siwa, Angsa untuk 5 6 Brahma, dan Garuda untuk Wisnu. Selain itu, masih terdapat 2 candi apit, 4 candi kelir, dan 4 candi sudut. Sementara, halaman kedua memiliki 224 candi. Keistimewaan Candi Prambanan lainnya yang wajib disaksikan oleh wisatawan adalah keindahan relief-reliefnya yang menempel di dinding candi. Kisah Ramayana menjadi relief utama candi ini. Namun, relief lain yang tak kalah menarik adalah pohon kalpataru yang dalam agama Hindu dianggap sebagai pohon kehidupan, kelestarian, dan keserasian lingkungan. Di Prambanan, relief pohon kalpataru digambarkan tengah mengapit singa. Keberadaan pohon ini menggambarkan betapa masyarakat Jawa abad ke-9 memiliki kearifan dalam mengelola lingkungannya. Bagi pengunjung yang ingin menuntaskan keingintahuannya terhadap selukbeluk Candi Prambanan, pengunjung dapat menyambangi sebuah museum yang juga berada di kompleks candi. Di museum ini, pengunjung dapat menikmati audio visual tentang sejarah ditemukannya Candi Prambanan hingga proses renovasinya secara lengkap. Bagi wisatawan yang berkunjung bersama keluarga, di Candi Prambanan juga terdapat taman bermain untuk anak-anak dan kereta mini yang dapat mengantarkan pengunjung mengelilingi kawasan wisata tersebut. Salah satu event wisata yang sayang untuk dilewatkan adalah pementasan Sendratari Ramayana. Sendratari Ramayana adalah seni pertunjukan yang menyatukan ragam kesenian Jawa seperti tari, drama, dan musik dalam satu panggung dan satu momentum untuk menyuguhkan kisah Ramayana, epos legendaris karya Walmiki yang ditulis dalam bahasa Sanskerta. Kisah Ramayana yang dibawakan dalam pertunjukan ini merupakan penerjemahan dari relief yang terpahat di Candi Prambanan. Cerita Ramayana yang terpahat di candi ini mirip dengan cerita yang berkembang dalam tradisi lisan di India. Jalan cerita yang panjang dan menegangkan dirangkum dalam empat lakon atau babak, yaitu: penculikan Sinta, misi Anoman ke Alengka, kematian Kumbakarna atau Rahwana, dan pertemuan kembali Rama—Sinta. Pementasan ini sudah berjalan sejak tahun 1960-an dan dilaksanakan setiap bulan pada malam purnama. Candi Prambanan terletak di Desa Prambanan yang secara administratif terbagi menjadi dua bagian, yaitu antara kabupaten Sleman, Propinsi Daerah Istimewa Yogyakarta dan Kabupaten Klaten, Propinsi Jawa Tengah. 7 Letaknya yang tepat di tepi jalan raya Yogyakarta Solo membuat kompleks Candi Prambanan mudah untuk dijangkau dari arah manapun, baik dari arah Yogyakarta maupun Solo. Bagi pengunjung yang memulai perjalanan dari Klaten, banyak jalur yang bisa dipilih, bisa menggunakan bus jurusan Yogyakarta Solo atau bus jurusan Terminal Klaten Prambanan. Keduanya sama mudahnya. Di sekitar kompleks candi tersedia akomodasi dan fasilitas yang cukup lengkap, seperti hotel/rumah penginapan, restoran/rumah makan, toko-toko cenderamata, warung telekomunikasi, dan warung internet. Selain itu, kehadiran para tenaga pemandu wisata yang mudah dijumpai di sekitar candi akan menyempurnakan kunjungan para wisatawan. Sebab, mereka akan memandu wisatawan menelusuri jejak-jekak kemasyhuran peradaban Jawa-Hindu dengan Candi Prambanan sebagai monumen utamanya. 2.2 Pengertian Sistem Informasi 2.2.1 Sistem Sistem berasal dari bahasa Latin (sistema) dan bahasa Yunani (sustema) adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi. “Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu. Sistem terdiri dari sejumlah komponen yang saling berinteraksi dan bekerja sama membentuk suatu kesatuan. Komponen-komponen sistem tersebut adalah: a) Batasan Sistem adalah daerah yang membatasi antara suatu sistem dengan yang lain atau dengan lingkungan luarnya. b) Penghubung Sistem adalah media penghubung antara suatu sistem dengan sistem lainnya yang dalam gambaran sistem ditunjukan dengan garis panah. c) Masukan Sistem (Input) adalah energi yang dimasukkan ke dalam sistem, bisa berupa program, data lewat keyboard ataupun signal input. 8 d) Keluaran Sistem (Output) adalah hasil dari energi yang diolah dan diklasifikasikan menjadi suatu keluaran berupa informasi atau data dan sisa pembuangan seperti panas. e) Pengolah Sistem adalah bagian dari sistem yang mengolah masukan menjadi keluaran. f) Sasaran sistem adalah tujuan (goal) atau sasaran (objective) dari system tersebut. Kualitas dari sistem tergantung dari tiga hal, yaitu : a) Akurat yaitu informasi harus bebas dari kesalahan-kesalahan dan tidak menyesatkan. b) Tepat waktu yaitu informasi yang datang kepada penerima tidak boleh terlambat. c) Relevan yaitu informasi tersebut mempunyai manfaat untuk pemakaiannya. 2.2.2 Informasi Informasi adalah faktor terpenting dalam sistem untuk pengambilan suatu keputusan. Definisi dari informasi adalah : Data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya. Data itu sendiri adalah fakta atau apapun yang dapat digunakan sebagai input untuk menghasilkan informasi. Informasi merupakan hasil pengolahan dari sebuah model, formasi, organisasi, ataupun suatu perubahan bentuk dari data yang memiliki nilai tertentu, dan bisa digunakan untuk menambah pengetahuan bagi yang menerimanya. 2.2.3 Sistem Informasi Sistem informasi adalah sekumpulan komponen pembentuk system yang mempunyai keterkaitan antara satu komponen dengan komponen lainnya yang bertujuan menghasilkan suatu informasi dalam suatu bidang 9 tertentu. Dalam sistem informasi diperlukan klasifikasi alur informasi, hal ini disebabkan keanekaragaman kebutuhan akan suatu informasi oleh pengguna informasi. Kriteria dari sistem informasi antara lain, fleksibel, efektif dan efisien. 2.3 Komponen Penyusun Perancangan Sistem ERD ( Entity Relation Diagram ) merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi. ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu : a) Entity Entity merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain . Simbol dari entiti ini biasanya digambarkan dengan persegi panjang. b) Atribut Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips. c) Hubungan / Relasi Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. relasi dapat digambarkan sebagai berikut : Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data yaitu: a) Satu ke satu (One to one) Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B. b) Satu ke banyak (One to many) 10 Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A. c) Banyak ke banyak (Many to many) Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B. 2.3.1 Pengertian UML UML ( Unified Modelling Language ) merupakan salah satu metodologi pengembangan sistem informasi atau perangkat lunak berorientasi objek. Pada UML ada beberapa diagram diantranya: Use Case Diagram, Activity Diagram, Sequence Diagram, Class Diagram, Statechart Diagram, Collaboration Diagram. Tapi yang sering di gunakan Use Case Diagram, Activity Diagram, Sequence Diagram dan Class Diagram. Berikut Penjelasan dari masingmasing diagram: 2.3.2 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 actor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng- create sebuah daftar belanja, dan sebagainya. Seorang/sebuah actor 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 requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng- include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di- include akan dipanggil setiap kali use case yang meng- include dieksekusi secara normal. Sebuah use case dapat di include 11 oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common . Sebuah use case juga dapat meng- extend use case lain dengan behaviour -nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. 2.3.3 Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. 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 objek beserta hubungan satu sama lain seperti containment , pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok : a) Nama (dan stereotype) b) Atribut c) 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 . Juga dapat membuat diagram yang terdiri atas package . Adapun hubungan antar class dapat dijelaskan sebagi berikut: a) 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 . b) Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas”). 12 c) 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. d) 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. 2.3.4 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 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. 2.3.5 Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam system yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di- trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use 13 case atau lebih. 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 prosesproses paralel ( fork dan join ) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. 2.3.6 Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display , dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertical (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 . 2.3.7 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 14 number, di mana message dari level tertinggi memiliki nomor satu. Messages dari level yang sama memiliki prefiks yang sama. 2.3.8 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 komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain. 2.3.9 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 hal-hal 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 TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini. 2.4 Pengertian Multimedia Multimedia memiliki berbagai pengertian, salah satunya multimedia adalah pemanfaatan komputer untuk membuat dan menggabungkan teks, grafik, audio, gambar bergerak (video dan animasi) dengan menggabungkan link dan tool yang memungkinkan pemakai melakukan navigasi, berinteraksi, berkreasi dan berkomunikasi. 15 2.4.1 Pengertian Multimedia Interaktif Multimedia Interkatif adalah suatu multimedia yang dilengkapi dengan alat pengontrol yang dapat dioperasikan oleh pengguna, sehingga pengguna dapat memilih apa yang dikehendaki untuk proses selanjutnya. 2.4.2 Elemen-Elemen Multimedia Terdapat enam elemen utama secara umum yang dipergunakan dalam dalam multimedia, yaitu teks, image, sound, video, animasi dan user control. a) Teks b) Image c) Sound d) Video e) Animasi f) User Control 2.5 Struktur Informasi Multimedia / Aliran Aplikasi Multimedia Terdapat lima cara untuk mendesain aliran aplikasi multimedia, yaitu menggunakan struktur linier, struktur menu, struktur hirarki, jaringan, dan hibrid. a) Struktur Linear b) Struktur Menu c) Struktur Hierarki d) Struktur Jaringan e) Struktur kombinasi (Hibrid) 2.6 Siklus Pengembangan Sistem Multimedia Interaktif Agar multimedia interaktif dapat menjadi alat keunggulan bersaing, pengembangan sistem multimedia harus mengikuti tahapan pengembangan sistem multimedia, yaitu mendefinisikan masalah, studi kelayakan, melakukan 16 analisis kebutuhan, merancang konsep, merancang isi, menulis naskah, memproduksi aplikasi, melakukan tes pemakai, menggunakan aplikasi dan memelihara aplikasi. 2.7 Metode Pengembangan Aplikasi Multimedia Versi Luther-Sutopo Menurut Luther, tahapan-tahapan dengan metodologi pengembangan multimedia tidak perlu berurutan. Keenam tahapannya dapat saling bertukar posisi namun tetap dimulai dari tahap Konsep dahulu dan diakhiri dengan tahap Distribusi. Sutopo mengadopsi metode Luther dengan memodifikasi tahapantahapannya. Dari keenam tahapan Luther, menurut Sutopo harus dimulai dari Konsep dan diakhiri dengan tahap Distribusi. Sedangkan tahap Material Collecting dapat dikerjakan scara paralel dengan tahap Assembly. Tahapan versi Luther-Sutopo adalah sebagai berikut : 1) Concept, yaitu tahapan untuk menentukan tujuan, mengidentifikasi pengguna, jenis produk, dasar aturan, ukuran, dan target. Penentuan tujuan dan karakteristik pengguna dapat menentukan nuansa produk dan desain multimedia yang dikerjakan. Output pada tahapan ini berupa dokumen yang bersifat naratif dengan tujuan untuk mengungkap tujuan proyek yang ingin dicapai. 2) Design, yaitu tahapan pembuatan spesifikasi mengenai arsitektur program, style, antarmuka, dan elemen-elemen pendukung. Tahapan ini menyarankan pengerjaan spesifikasi dilakukan serinci mungkin karena akan berpengaruh di tahapan selanjutnya, yaitu tahap material collecting dan assembly. 3) Material Collecting, yaitu tahapan pengumpulan elemen-elemen atau bahanbahan sesuai kebutuhan produk multimedia yang dikerjakan, seperti gambar, animasi, video, dan audio. Gambar 2.1 Tahapan Versi Luther-Sutopo 17 4) Assembly, yaitu tahapan penggabungan semua material kedalam proyek berdasarkan pada tahap design, seperti storyboard dan struktur navigasi. 5) Testing, yaitu tahapan pengujian produk yang telah melalui tahapan assembly untuk melihat kemungkinan adanya kesalahan. Alpha test dilakukan oleh pengembang, setelah itu dilakukan beta test yang melibatkan pengguna akhir. 6) Distribution, yaitu tahapan dimana produk dikemas dalam suatu media penyimpanan untuk didistribusikan ke pengguna akhir atau klien. Tahapan ini juga disebut tahapan evaluasi sebagai masukan bagi tahapan concept untuk proyek selanjutnya. 2.8 Flowchart Desain Flow Chart merupakan tool untuk mempresentasikan cara kita dalam menyusun media, menjelaskan semua aliran dari suatu scene (tampilan) ke scene lain dan harus bersifat informatif, mampu menggambarkan keseluruhan proses. Berikut flowchart e-Distribusi Pariwisata Prambanan. Gambar 2.2 Flowchart e-Dsitribusi Pariwisata Prambanan 18 2.9 Penjelasan Tentang Pariwisata 2.9.1 Pengertian Pariwisata Istilah pariwisata di Indonesia baru dikenal pada awal tahun 1960-an yang diperoleh di tempat terpisah dari dua orang budayawan Indonesia, yaitu Prof. Mr.Moh. Yamin dan Prof. Dr. Prijono atas permintaan Presiden Sukarno kepada Sri Sultan Hamengkubuwono IX selaku Ketua Dewan Tourisme Indonesia (DTI). Kedua budayawan intelektual tersebut memberikan istilah pariwisata guna mengganti istilah tourism atau travel yang konotasinya bisa terkait dengan selera rasa pleasure (kesenangan), excitement (kegembiraan), entertainment (hiburan), adventure (petualangan) dan sebagainya. Secara etimologis, istilah pariwisata berasal dari Bahasa Sansekerta yaitu : a) Pari = Penuh, Lengkap, Berkeliling. b) Wis (man) = Rumah, Kampung, Komunitas. c) Ata = Pergi terus menerus, Mengembara. Bila dirangkaikan menjadi satu kata melahirkan istilah pariwisata berarti pergi secara lengkap, meninggalkan rumah (kampung) berkeliling terus menerus, yang dalam bahasa Inggris disebut dengan kata "tour", sedang untuk pengertian jamak "kepariwisataan" dapat digunakan kata "tourisme" atau "tourism", lebih lanjut batasan pariwisata menurut ketetapan Presiden Republik Indonesia dan MPRS No.10 tahun 2009 pasal 1, sebagai berikut : " Kepariwisataan adalah keseluruhan kegiatan yang terkait dengan pariwisata dan bersifat multidimensi serta multidisiplin yang muncul sebagai wujud kebutuhan setiap orang dan negara serta interaksi antara wisatawan dan masyarakat setempat, sesama wisatawan, Pemerintah, Pemerintah Daerah, dan pengusaha.". Pariwisata memiliki dua aspek, aspek kelembagaan dan aspek subtansial, yaitu sebuah aktifitas manusia (Oka A, 2005). Dilihat dari sisi kelembagaannya, pariwisata merupakan lembaga yang dibentuk sebagai upaya manusia untuk memenuhi kebutuhan rekreatif. Sebagai sebuah lembaga, pariwisata dapat dilihat dari sisi menejemennya, yaitu bagaimana perkembangannya, mulai dari direncanakan, dikelola, sampai di pasarkan pada pembeli, yakni wisatawan. 19 Sebagai sebuah subtansi, pariwisata merupakan bagian dari budaya suatu masyarakat, yaitu berkaitan dengan cara penggunaan waktu senggang yang dimilikinya. Pariwisata dapat disoroti dari berbagai macam sudut pandang karena memiliki sifat kompleks. Kompleksitas yang terkandung dalam pariwisata antara lain, pariwisata sebagai pengalaman manusia, pariwisata sebagai perilaku sosial, pariwisata sebagai fenomena geografis, pariwisata sebagai sumber daya, pariwisata sebagai bisnis, dan pariwisata sebagai industri (Oka A, 2005). 2.9.2 Bali Pusat Gerbang Wisata Mengakhiri jaman prasejarah, Bali sudah dituju untuk melakukan pencarian dan perjalanan oleh para penekun spiritual. Rsi Markandeya tercatat sebagai tokoh spiritual dari Jawa yang pertama menjejakkan perjalanan di Bali. Perjalanan melakukan pencarian kesucian batin dan keseimbangan alam lalu menempatkan tonggak tatanan agama Hindu di lereng selatan Gunung Agung yang kini dikenal sebagai Pura Agung Besakih. Pura Basukian dipercaya sebagai tonggak pertama Rsi Markandeya bersama pengikutnya memastikan Bali sebagai tanah tujuan membangun nilai spiritual. Bagai berkelanjutan, tatanan hidup spiritual secara simultan beriring dengan tata pemerintahan di Bali. Pemerintahan Dinasti Warmadewa disebutkan dalam berbagai naskah kuno amat mendukung kelangsungan hidup beragama dengan budaya dan adat setempat sehingga mengundang kedatangan tokoh-tokoh spiritual dan tanah Jawa. Kedatangan Empu Kuturan pada sektar abad 11 secara pasti mampu merekat tatanan hidup masyarakat lokal dengan tatanan Agama Hindu yang dibawa dari Jawa. Tatanan desa adat dengan konsep parhyangan sebagai personifikasi Tuhan dalam fungsi Tri Murti adalah upaya menampung penyatuan konsep lokal dengan konsep Hindu. Perjalanan spiritual berlanjut dilakukan oleh tokoh Agama Hindu dari tanah Jawa. Penyatuan Nusantara oleh Majapahit adalah puncak dari perjalanan dan transformasi agama dan budaya lokal dengan budaya Hindu. Dalam perjalan waktu, Bali dan masyarakatnya kemudian menjalani keseharian mereka dengan tata kehidupan, agama, seni, dan 20 budaya yang unik. Keunikan inilah kemudian, pada sekitar tahun 1579, menjadi perhatian seorang Belanda bernama Cornelis de Houtman yang melakukan perjalanan ke Indonesia untuk mencari rempah-rempah. Tanah yang subur, kegiatan pertanian dan keunikan budaya penduduknya dalam menjalani keseharian sungguh menjadi perhatian besar bagi ekspedisi de Houtman. Berbarengan dengan Indonesia yang dikenal sebagai penghasil rempahrempah, Bali mulai dikenal dunia dari sisi budaya. Penguasaan Belanda terhadap Indonesia pun pada sekitar abad 17 dan 18 tidak banyak memberi pengaruh pada kehidupan agama dan budaya di Bali. Hindu di Bali pada masa-masa itu bahkan memasuki masa kejayaan ketika kerajaan di Bali berpusat di Gelgel dan kemudian dipindah ke Smarapura (Klungkung). Awal abad 20, barulah Bali dikuasai oleh Belanda ditandai dengan jatuhnya Kerajaan Klungkung lewat Perang Puputan Klungkung tahun 1908. 2.9.3 Yogyakarta Kota Wisata YOGYAKARTA sering juga disebut Jogja, Yogya, atau Jogya terletak di tengah Pulau Jawa Indonesia, tempat segalanya masih murah. Cukup dengan dua ratus ribu sehari, Anda sudah bisa menginap, menyantap masakan tradisional yang terkenal, dan menyewa motor untuk menjelajahi pantai-pantai yang masih perawan dan candi-candi kuno berusia ribuan tahun. Seribu tahun silam, Yogyakarta merupakan pusat kerajaan Mataram Kuno yang makmur dan memiliki peradaban tinggi. Kerajaan inilah yang mendirikan Candi Borobudur yang merupakan candi Buddha terbesar di dunia, 300 tahun sebelum Angkor Wat di Kamboja. Peninggalan lainnya adalah Candi Prambanan, Istana Ratu Boko, dan puluhan candi lainnya yang sudah direstorasi maupun yang masih terpendam di bawah tanah. Namun oleh suatu sebab yang misterius, Kerajaan Mataram Kuno memindahkan pusat pemerintahannya ke Jawa Timur pada abad ke-10. Candicandi megah itu pun terbengkalai dan sebagian tertimbun material letusan Gunung Merapi. Perlahan-lahan, wilayah Yogyakarta pun kembali menjadi hutan yang lebat. 21 Enam ratus tahun kemudian, Panembahan Senopati mendirikan Kerajaan Mataram Islam di wilayah ini. Sekali lagi Yogyakarta menjadi saksi sejarah kerajaan besar yang menguasai Pulau Jawa dan sekitarnya. Kerajaan Mataram Islam ini meninggalkan jejak berupa reruntuhan benteng dan makam kerajaan di Kotagede yang kini dikenal sebagai pusat kerajinan perak di Yogyakarta 2.10 Sistem Pemasaran Dan Distribusi Produk Industri Pariwisata. 2.10.1 Pengembangan Kepariwisataan Dari paparan diatas, maka sistem pengembangan kepariwisataan yang berbasis Multimedia aplikasi terdiri dari tiga komponen utama yaitu: pengumpulan data, konsolidasi, manajemen serta implementasi, dan yang ke tiga adalah penyebarannya, dari ketiga komponen di bawah ini dapat di gambarkan dalam gambar 2.1 berikut. Gambar 2.3 Konsep e-Information Pariwisata Terdapat tiga tingkatan utama dalam penyusunan Aplikasi Multimedia ini yaitu : 1) Bagian-bagian koleksi data, yang merupakan dasar dalam melakukan konsolidasi pemilahan. Pada bagian ini terdapat elemen-elemen seperti hotel, tempat rekreasi, restourant, serta event-event penting yang bisa diakses oleh konsumen. Oleh karena itu, pengumpulan data serta penerapan dan konsulidasi menjadi tujuan utama dalam tingkatan pertama. 22 2) Manajemen dan follow-up dalam hal ini mencakup perancangan system yang akan disusun berdasarkan bagian-bagian konsolidasi pada tingkatan pertama. 3) Mencakup aplikasi ataupun penerapan sistem yang terjadi dalam rangka pemasaran. Tingkatan ketiga pada dasarnya merupakan tingkatan penyampaian dan penyebaran informasi kepada wisatawan. 2.10.2 Distribusi Pariwisata Pemasaran pariwisata, sangat komplek sifatnya, dibandingkan dengan penyebaran barang-barang yang dihasilkan perusahaan manufaktur yang biasa dikenal. Produk yang ingin dipasarkan sangat terikat dengan suplier yang menghasilkannya, instansi, organisasi atau lembaga pariwisata yang mengelolanya. Menurut J.Krippendorf dalam bukunya Marketing Et Tourisme yang dimaksud dengan Pemasaran pariwisata adalah suatu sistem dan koordinasi yang harus dilakukan sebagai kebijaksanaan bagi perusahaan-perusahaan kelompok industri pariwisata, baik milik swasta atau pemerintah, dalam ruang lingkup lokal, regional, nasional, atau internasional untuk mencapai kepuasan wisatawan dengan memperoleh keuntungan yang wajar”. Produk industri yang dipasarkan itu tidak berwujud (intangible product), karena itu tidak dapat di pindah kan, dicoba, di 19 tabung atau ditumpuk di gudang dimana hubungan antara penjual dan pembeli berakhir kalau transaksi selesai dilakukan. Pembeli hanya ada hak pakai sementara waktu. Berbeda dengan tangible pruduct seperti produk manufaktur, pemindahan hak milik dari penjual kepada pembeli terjadi setelah transaksi selesai (Oka A.Yoeti: 2005). Hal ini membuat cara pemasaran produk pariwisata lebih sukar disbanding pemasaran produk manufaktur suatu perusahaan. Karena tidak bisa ditabung, produk yang tidak terjual dapat mendatangkan kerugian bagi produsen produk yang bersangkutan, oleh karena itu diperlukan apa yang disebut “Capacity manajement” yang fungsi dan tugasnya mengusahakan agar kelebihan kapasitas yang terjadi dapat dikurangi dan tidak menimbulkan kerugian yang lebih banyak. Mengenai sistem distribusi ini berdasarkan observasi yang dilakukan oleh Mill dan Marrison (2000:400) mengatakan industri pariwisata memiliki kelebihan dari 23 industri lain, perantara penjual berfungsi menjembatani antara produsen dan konsumen, baik untuk konsumen secara pribadi atau rombongan. Tugas utama perantara adalah menjalin hubungan kerjasama yang saling menguntungkan dengan perusahaan kelompok industri pariwisata kemudian mengemas paket wisata dengan mengunakan single product yang nantinya membentuk bermacam-macam paket wisata sesuai target pasar yang dituju. Dapat digambarkan konsep kerangka sistem distribusi sebagai berikut: (Oka A,2005:161) WISATAWAN BIRO PERJALANAN WISATA (Tour Operator) Transportation Entertainment Accomodation Tourism Atrraction (Something to see) (Something to do) Restourans Shopping center/ shovenir shop (Something to buy) Activities Gambar 2.4 Posisi sistem distribusi / Penyebaran 2.11 Definisi XML eXtensible Markup Language (XML) merupakan subset dari Standard Generalized Markup Language (SGML) yang didefinisikan oleh World Wide Web Consortium (W3C). XML dikategorikan sebagai extensible language, karena memungkinkan pengguna untuk mendefinisikan elemen-elemen markup sendiri. Berbeda dengan HTML yang hanya mendefinisikan elemen-elemen untuk tampilan dalam web browser, XML merupakan dokumen multifungsi yang struktur dokumennya mewakili struktur datanya. Secara umum struktur dokumen XML merupakan suatu pohon hirarki, yang terdapat elemen root, parent dan child (Rahman, 2011). 24 2.12 Elemen XML XML mendefinisikan struktur dan isi dokumen sebagai suatu rangkaian elemen, etiap elemen mewakili suatu bagian dari dokumen (McNeil, 2006). Elemen ML terdiri atas: a) Start tag < b) Isi atau elemen (dapat berupa teks atau angka) c) End tag /> Start tag menunjukkan awal dari suatu elemen dan end tag menunjukkan akhir dari suatu elemen. Aturan penulisan nama elemen dalam XML bersifat case sensitive dan tidak boleh ada spasi. Tiap elemen XML dapat memiliki satu atau lebih anak yang masing masing anak tersebut juga merupakan suatu elemen. Tujuan desain XML dapat dirinci sebagai berikut : Dokumen XML harus jelas dan mudah dipahami manusia. Desain XML harus disiapkan secepatnya. Desain XML harus formal dan singkat. Dokumen XML harus mudah dibuat. Keringkasan suatu markup XML tidak dipentingkan. Singkatnya tujuan dari XML secara umum adalah memungkinkan SGML untuk membantu, menerima dan memproses pada program web, dimana cara ini sekarang dapat dilakukan dengan HTML. XML dibuat untuk memudahkan pelaksanaan dan interoperability dengan SGML dan HTML. Suatu XML menggambarkan sebuah kelas dari obyek data yang disebut dokumen XML yang disimpan pada komputer, dan menggambarkan sebagian tentang program yang memproses object tersebut. (Supriyanto, 2007) Cara berikutnya adalah dengan menggunakan database XML. Istilah dalam hal ini adalah native XML database. Sistem ini menyimpan file-file XML dalam bentuk aslinya, jadi tidak dalam tabel dan record seperti pada cara yang pertama. Pada native XML database file-file XML saling direlasikan seperti pada sistem basis data relasional. Sistem ini memberikan tingkat kompatibilitas dan fleksibilitas yang lebih tinggi dari cara yang pertama. Namun, sampai sekarang belum ada vendor native XML database yang mampu membuktikan kesetaraan 25 database XML dengan DBMS dalam hal keamanan dan manajemen data internalnya. 2.13 XML Sebagai Database Seperti halnya sudah disebutkan dalam Bab I, XML memiliki keunggulan dalam hal kemudahan pertukaran data dan susunan struktur hierarkisnya yang mirip database relasional. Bahkan sekarang ini sudah banyak yang memanfaatkan XML ini sebagai database. Sistem ini disebut dengan native XML database. Di sini file-file XML saling direlasikan seperti pada sistem basis data relasional. Terbukti juga bahwa ia mampu bertindak sebagai suatu basis data sederhana yang sanggup menerima query dan menampilkan sesuai dengan query tersebut. Namun demikian sampai sekarang belum ada vendor native XML database yang mampu membuktikan kesetaraan database XML dengan DBMS dalam hal keamanan dan manajemen data internalnya. 2.14 Pengembangan sistem konversi XML ke RDBMS Adanya kekurangan pada sistem database XML menimbulkan ide untuk melakukan konversi dari data dalam bentuk XML ke dalam RDBMS. Dari data XML yang sudah ada kemudian dipindahkan ke dalam database relasional, yang dalam hal ini menggunakan mySQL. Dengan demikian sistem ini tidak kemudian meniadakan penyimpanan yang sudah ada dalam bentuk XML, namun hanya melakukan back up. Kelebihan dari sistem ini adalah data masih tersimpan dalam sistem DBMS, sehingga keunggulan DBMS dalam hal penyimpanan data masih dapat dimanfaatkan. Adanya latar belakang tersebut kemudian mendasari tugas akhir ini untuk secara khusus lebih menekankan pembahasan dalam masalah mengenai pengolahan data dari bentuk XML ke database terutama untuk data yang berupa mata kuliah, modul dan topik-topik dalam perkuliahan. 26 2.15 XML DBMS XML-DBMS adalah sebuah middleware yang merupakan sekumpulan paket-paket dalam bahasa pemrograman Java yang digunakan untuk mentransfer data XML ke dalam database relasional. XML-DBMS menjaga struktur hierarkis dari dokumen XML, seperti misalnya data (data karakter dan nilai nilai atribut) yang ada padanya. Perlu diingat bahwa dalam XML terdapat pemisahan antara data dengan presentasinya. Dalam hal ini jika dibutuhkan, XML-DBMS dapat menjaga kondisi data kelas anak sampai pada level tertentu secara hierarki. Karena XML-DBMS ini mentransfer data, tidak termasuk presentasinya, ia tidak menjaga tipe deklarasi dokumen, tidak juga struktur fisik dokumen sebagai satu kesatuan. XML-DBMS bersifat freeware. Ia bisa digunakan oleh siapa saja, kapan saja, untuk tujuan apapun. Pada awalnya dibuat oleh Ron Bourret dan kemudian dikembangkan bersama oleh komunitas mailing list XML-DBMS yang beralamat di Yahoogroups. Software ini bisa di dapat dengan mendownload dari situs http://www.rpbourret.com diakses pada tanggal 18 oktober 2012 pukul 15.44, XML Parser yang ditulis dalam bahasa pemrograman Java yang mendukung DOM level 2 dan SAX 2. Parser merupakan sebuah interface antara dokumen XML dengan berbagai program aplikasi yang menggunakannya. Parser seperti ini bisa didapatkan dari berbagai sumber seperti misalnya dari Oracle, Sun, IBM, dan Microsoft. Sedangkan parser open source bisa didapatkan pula dari James Clark, OpenXML, dan Apache. DOM merupakan singkatan dari dari Document Object Model. DOM Parser menterjemahkan dokumen XML dan menempatkan elemen-elemen yang ditemuinya ketika memproses dokumen ke dalam struktur pohon. Informasi mengenai struktur dokumen ini kemudian disimpan ke dalam memori. Informasi inilah yang digunakan program aplikasi untuk mengakses dokumen XML. SAX adalah singkatan dari Simple API for XML. API sendiri adalah singkatan dari Application Program Interface. Seperti namanya, dibanding DOM Parser, isi program SAX Parser lebih sederhana. SAX parser bekerja berdasarkan 27 apa yang disebut event-based. SAX Parser berjalan menjelajahi dokumen. Begitu SAX Parser menemukan deklarasi sebuah elemen, ia akan mencatatnya dan menyimpannya dalam suatu event-handler. Event-handler inilah yang menyediakan akses ke isi dokumen XML. XML singkatan dari Extensible Markup Language, adalah bahasa markup yang dirancang untuk penyampaian informasi melalui website dan juga dapat digunakan untuk pertukaran informasi antar sistem database. Bahasa markup (markup language) merupakan bahasa pemrograman untuk menandai suatu data. keuntungan menggunakan XML dapat menyederhanaan aplikasi, dimana database yang ditulis dalam XML dapat diakses di mana saja dan memudahkan aplikasi dalam mengolah data karena dapat menghemat memori. Kemampuan dalam mendefinisikan tag-tag di dalam dokumen XML dapat secara leluasa menerangkan isi data. Berbeda dengan HTML yang digunakan untuk menampilkan data, XML tidak didesain untuk menampilkan data, XML didesain untuk menyimpan dan pertukaran data antar format dari system yang tidak kompatibel. Konversi data ke XML dapat mereduksi kompleksitas dan membuat data dapat dibaca oleh aplikasi yang bebeda-beda. XML dapat digunakan untuk menyimpan data dalam suatu file atau database. Aplikasi dapat dibuat untuk menyimpan dan memanggil informasi dari file penyimpan untuk menampilkan data tersebut. XML bersifat independen terhadap hardware, software dan aplikasi, menyebabkan aplikasi dapat mengakses file XML sebagai sumber data, seperti mengakses database. Data dapat digunakan untuk hampir seluruh jenis mesin pembaca data. Dokumen XML berupa file plaintext secara umum dibagi menjadi dua bagian yaitu prolog dan elemen dokumen. Prolog berisikan tentang pendekalarasian XML dan komentar. Elemen dokumen XML terdiri dari tag pembuka dan tag penutup yang memenuhi standar well formed diantaranya adalah : 1) Setiap tag pembuka harus ditutup dengan tag penutup 2) Tidak boleh ada elemen yang overlapping 3) Setidaknya ada satu elemen utama dan Penulisan atribut harus di antara tanda petik ganda (”). 28 DTD atau Dokumen XML harus memenuhi spesifikasi dalam Document Type Definition (DTD) untuk memastikan validitasnya. DTD adalah deklarasi tipe dokumen, berisi deklarasi yang mendefinisikan elemen, atribut dan fitur-fitur lain dokumen. DTD diletakkan dibagian prolog dokumen, dimulai dengan tulisan <!DOCTYPE Nama DTD>, dimana Nama menyatakan nama elemen dokumen. DTD berisi simbol [ diikuti serangkaian deklarasi markup, diikuti dengan simbol ]. Deklarasi markup menjelaskan struktur logika dokumen, yaitu mendefinisikan elemen, atribut dan fitur lain dokumen. DTD boleh tidak ditulis, namun menyebakan dokumen XML tersebut tidak dapat diperiksa validitasnya. Beberapa elemen-elemen penting dari DTD adalah: 1) DOCTYPE – root elemen DTD. Deklarasi DOCTYPE menjelaskan tipe dokumen XML. Syntax: <!DOCTYPE NAME CONTENT>. NAME semestinya sama dengan nama root elemen di dokumen XML. content dapat dimasukkan dengan 2 cara: pertama secara inline (menguraikan secara langsung) atau melalui referensi luar. Referensi luar atau external reference dapat berupa file yang terpisah dan di refer melalui URL. Referensi ini memakai keywords SYSTEM dan PUBLIC. <!DOCTYPE FAMILY SYSTEM http://www.amikomnet.com/dtd/file2.dtd> <!DOCTYPE FAMILY PUBLIC "//amikomnet//DTD//EN" http://www.amikomnet.com/dtd/file2.dtd>. 2) ELEMENT - tujuan dari keyword ini menentukan bila nama dari ELEMENT dapat dipakai di document type. Contoh syntax: <!ELEMENT NAME CONTENT> Istilah CONTENT meng-spesifikasikan apa yang dapat dimasukkan antara tag pembuka dan tag penutup. Tapi ini tidak termasuk attribut-attribut yang mungkin terpakai di elemen. 3) EMPTY isi yang kosong. Ini berarti diantara tag pembuka dan tag penutup tidak boleh mempunyai isi (termasuk spasi). Contoh: <!ELEMENT nama EMPTY>. Berarti nama tidak dapat mempunyai isi. 4) ANY jika suatu elemen dideclare sebagai ANY, berarti isi dari elemen ini adalah elemen lain. Contoh dari declaration ANY: <!ELEMENT nama ANY>. berarti pemakaian di XML adalah: <nama> <DECLARASI_ELEMEN_2 /> </nama> . 29 5) #PCDATA - elemen hanya dapat memiliki karakter data yang diparse. Karakter data dapat berupa teks apa saja asalkan tidak mempunyai child elements (bagian dari elemen). Contoh: <!ELEMENT nama (#PCDATA)> 6) ATTLIST syntax ATTLIST adalah untuk attribut yang dapat dipakai di dalam declared element. Syntax ini berupa seperti: <!ATTLIST NAME ATT_NAME TYPE DEFAULT > 2.16 Testability Testabilitas perangkat lunak adalah seberapa mudah sebuah program komputer dapat diuji. Karena pengujian sangat sulit, maka perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi mudah. Kadang-kadang pemrogram bersedia melakukan hal-hal yang akan membantu proses pengujian, dan membuat checklist (daftar periksa) mengenai masalah-masalah desain yang mungkin, fitur dan lain sebagainya yang dijadikan sebagai pedoman dalam melakukan pengujian. Beberapa checklist dibawah ini, akan membantu sebagai pedoman dalam kegiatan pengujian perangkat lunak : a) OPERABILITY Operability dimaksudkan mampu menjalankan atu beroperasi, Semakin baik hal tersebut dijalankan, pengujian akan semakin efesien, sistem memiliki sedikit kesalahan, tidak ada kesalahan yang menghalangi jalannya pengujian, dan produk berkembang dalam tahapan fungsional yaitu memungkinkan pengembangan dan pengujian secara simultan. b) OBSERVABILITY Yaitu kemampuan untuk mengamati atau meneliti “Apa yang dilihat adalah apa yang diuji.”, output yang berbeda dikeluarkan oleh masing-masing input, tahap dan variabel sistem dapat dilihat atau diantrikan selama eksekusi, sistem dan variabel yang lalu dapat dilihat atau, diantrikan misalnya, logaritma transaksi, semua faktor yang mempengaruhi output dapat dilihat, output yang tidak benar dapat diidentifikasi dengan mudah, kesalahan internal dideteksi secara otomatis 30 melalui mekanisme pengujian itu sendiri, kesalahan internal dilaporkan secara otomatis dan kode sumber dapat diakses. c) CONTROLLABILITY Kemampuan untuk mengawasi semakin baik kita dapat mengontrol perangkat lunak, semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan, semua output yang baik, dapat diperoleh melalui beberapa kombinasi input, semua kode dapat dijalankan melalui berbagai kombinasi input, keadaan dan variabel perangkat lunak dan perangkat keras dapat dikontrol secara langsung oleh penguji, format input dan output konsisten dan terstruktur, pengujian dapat dispesifikasi, dioptimasi, dan direproduksi dengan baik. d) DECOMPOSABILITY Merupakan kemampuan untuk menyelesaikan dengan mengontrol ruang lingkup pengujian, kita dapat dengan lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus, sistem perangkat lunak dibangun dari modul-modul yang independen dan modul-modul dapat diuji secara independen. e) SIMPLICITY Kemampuan untuk menyederhanakan kerumitan semakin sedikit yang diuji, semakin cepat kita dapat mengujinya, fungsi yang sederhana yaitu kumpulan fitur adalah kebutuhan minimum untuk memenuhi persyaratan, struktur yang sederhana (arsitektur dimodularisasi untuk membatasi penyebaran kesalahan) dan kode yang sederhana (standar pengkodean diadopsi demi kemudahan inspeksi dan pemeliharaan) f) STABILITY Mampu untuk menyeimbangkan, semakin sedikit perubahan, semakin sedikit gangguan dalam pengujian, perubahan perangkat lunak jarang terjadi, perubahan perangkat lunak dapat dikontrol, perubahan perangkat lunak memvalidasi pengujian yang sudah ada dan kegagalan perangkat lunak dapat diperbaiki dengan baik. g) UNDERSTANDBILITY Kemampuan untuk memahami dan mengerti karena semakin banyak informasi yang kita dapat, semakin mudah pengujian dilakukan, rancangan dapat dipahami dengan baik, ketergantungan antara komponen internal, eksternal, dan yang 31 dipakai bersama, dipahami dengan baik, perubahan rancangan dibicarakan, dokumentasi teknik dapat diakses dengan cepat, dokumen teknik diorganisasikan dengan baik, dokumentasi teknik spesifik dan detail dan dokumentasi teknik akurat. 2.17 Teknik Pengujian Pengujian merupakan elemen yang paling kritis dari penilaian perangkat lunak yang telah dikerjakan dengan pembahasan pada dasar-dasar pengujian perangkat lunak dan perancangan permasalahan pengujian yang berfokus pada kumpulan teknik yang digunakan untuk membuat pengujian sesuai dengan permasalahan dan juga disesuaikan dengan tujuan pengujian secara keseluruhan. Pengujian merupakan salah satu dari siklus pengembangan perangkat lunak yang jika ditinjau dari sudut pandang psikologi adalah penghancuran dibandingkan penyusunan. Terdapat 2 (dua) tingkatan yang tersedia pada proses pengujian, yaitu, konfigurasi perangkat lunak yang mencakup spesifikasi keperluan perangkat lunak, spesifikasi perancangan, test case, dan program sumber dan konfigurasi pengujian yang mencakup rencana dan prosedur uji coba, test case dan hasil yang diharapkan. Dalam Desain Test Case dimana dengan melihat lagi sasaran pengujian, kita harus mendesain pengujian yang memiliki kemungkinan tertinggi dalam menemukan kesalahan dengan jumlah waktu dan usaha yang minimum. Terdapat 2 (dua) macam test case : Pertama pengetahuan fungsi yang spesifik dari produk yang telah dirancang untuk diperlihatkan, test dapat dilakukan untuk menilai masing-masing fungsi apakah telah berjalan sebagaimana yang diharapkan dan pengetahuan tentang cara kerja dari produk, test dapat dilakukan untuk memperlihatkan cara kerja dari produk secara rinci sesuai dengan spesifikasinya. Berikut terdapat dua pendekatan dalam teknik pengujian perangkat lunak : 2.17.1 Black Box Testing Model 32 Blackbox model adalah suatu system / model yang bersifat kuantitatif. Konsep dasar dari model kuantitatif ini memperlakukan system sebagai kotak hitam, dan tidak ada usaha untuk menemukan factor yang berpengaruh pada perilaku system tersebut (Juwono,2008). Menurut Roger S Pressman dalam bukunya Rekayasa Perangkat Lunak :“Pengujian Black-Box berfokus pada persyaratan fungsional perangkat lunak. Pengujian Black-Box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program”. Pengujian Black-Box bukan merupakan alternative dari teknik White Box, tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan daripada metode white box. Pengujian Black Box berusaha menemukan kesalahan dalam kategori sebagai berikut : 1) Fungsi-fungsi yang tidak benar atau hilang. 2) Kesalahan Interface. 3) Kesalahan dalam struktur data atau akses database eksternal. 4) kesalahan kinerja. 5) Inisialisasi dan kesalahan terminasi. Pengujian Black-box cenderung diaplikasikan selama tahap akhir pengujian, karena pengujian black-box memperhatikan struktur control maka perhatian berfokus pada domain informasi. Black box testing merupakan strategi testing dimana hanya memperhatikan/ memfokuskan kepada factor fungsionalitas dan spesifikasi perangkat lunak. Black box testing tidak membutuhkan pengetahuan mengenai alur internal (internal path), struktur atau implementasi dari software under test (SUT). Black box testing dilakukan dibeberapa tahapan berikutnya. Karena black box testing memang ditujukan untuk mengabaikan struktur kontrol tetapi lebih terfokus terhadap information domain. Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karena itu ujicoba blackbox memungkinkan pengembang software 33 untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya fungsi-fungsi yang salah atau hilang, kesalahan interface, kesalahan dalam struktur data atau akses database eksternal, kesalahan performa, kesalahan inisialisasi dan terminasi. Keuntungannya adalah memungkinkan kita untuk mendeteksi potensi kesalahan dalam spesifikasi, memungkinkan kita untuk memulai dengan pandangan dan panduan lengkap, tanpa ketergantungan terhadap kondisi tertentu, membantu untuk menemukan beberapa alternatif terhadap suatu kondisi, berguna ketika menentukan logika kompleks, menganalisis dan pengujian logika kompleks. Dilakukan untuk testing pada interface perangkat lunak. Test case ini bertujuan untuk menunjukkan fungsi perangkat lunak tentang cara beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana yang diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga kemutakhirannya. Dalam black box testing metode pengujian black box berfokus pada keperluan fungsional dari perangkat lunak dan domain informasi, analis sistem memperoleh kumpulan kondisi dari input yang akan mengerjakan seluruh keperluan fungsional program, cenderung diaplikasikan selama tahap akhir pengujian, disebut juga pengujian behavioral/pengujian partisi atau pengujian interface, memperhatikan dari sudut pandang Input data dan Output data, perangkat lunak ditinjau sebagai kotak hitam yang menyalurkan input kepada output berdasarkan rincian dimana perangkat lunak tersebut harus melakukannya, periksa kecocokan dari pengujian S/W yang membentuk tingkah laku, mencari kesalahan-kesalahan yang dihasilkan oleh kesalahan dan kesalahan perangkat lunak adalah bagian dari perangkat lunak yang tidak menurut pada penyedian definisi itu sendiri dalam dokumen pengembangan. Tujuannya untuk mencari kesalahan-kesalahan pada : Fungsi yang salah atau hilang. 34 Kesalahan pada interface. Kesalahan pada struktur data atau akses database. Kesalahan performansi (kinerja). Kesalahan initialisasi dan tujuan akhir. Type dari pengujian black box : a) Equivalence Class Partitioning. (pembagian kelas yang sama) Metode pengujian black box yang memecah atau membagi domain input dari suatu program ke dalam kelas-kelas data. Perancangan test case berdasarkan evaluasi kelas equivalence untuk kondisi input. Kelas equivalence menggambarkan kumpulan keadaan yang valid dan tidak valid untuk kondisi input. Kondisi input dapat berupa nilai numerik, range dari nilai, kumpulan nilai yang berhubungan atau kondidi boolean. Kelas equivalence dapat ditentukan sesuai pedoman berikut ini : Bila kondisi input menentukan suatu range, maka kelas equivalence valid dan dua yang invalid ditentukan. Bila kondisi input membutuhkan suatu harga khusus, maka satu kelas equivalence valid dan dua yang invalid ditentukan. Bila kondisi input menentukan anggota suatu himpunan, maka satu kelas equivalence valid dan dua yang invalid ditentukan. Bila kondisi input adalah boolean, maka satu kelas dan satu yang tidak valid ditentukan. b) Boundary Value Analysis (analisa penilaian terbatas) Untuk permasalahan yang tidak diketahui dengan jelas, akan cenderung menimbulkan kesalahan pada domain output-nya. Pemilihan test case yang mengerjakan nilai-nilai yang telah ditentukan. Melengkapi equivalence class partitioning. Petunjuk pemakaian BVA : Jika kondisi input berupa range yang dibatasi oleh nilai a dan b, test case harus dirancang dengan nilai a dan b. 35 Jika kondisi input ditentukan dengan sejumlah nilai, test case harus dikembangkan dengan mengerjakan sampai batas maksimal dari nilai tersebut. Sesuai dengan 1 dan 2, untuk kondisi output harus dirancang test case sampai jumlah maksimal. Untuk struktur data pada program juga harus dirancang sampai batas kemampuan. c) Comparison Testing. (pengujian perbandingan) Perangkat keras dan perangkat lunak yang berlebihan memungkinkan untuk digunakan. Menggunakan team yang terpisah untuk mengembangkan versi-versi yang independent dari perangkat lunak dengan menggunakan spesifikasi yang sama. Mencoba masing-masing versi dengan data yang sama untuk memastikan bahwa semua versi memberikan output yang identik. Semua versi dieksekusi secara paralel dengan perbandingan real time hasil untuk memastikan konsistensi. Output dari masing-masing versi sama implementasi benar. Output berbeda masing-masing versi dari aplikasi diperiksa untuk menentukan cacat pada suatu versi (perbedaan jelas) Spesifikasi semua fungsi yang dikembangkan mengandung kesalahan, maka semua versi kemungkinan besar merefleksikan kesalahan. Masing-masing versi independen identik tetapi tidak benar, maka pengujian kondisi akan gagal mendeteksi kesalahan. d) Pengujian black-box Didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program. Berfokus pada domain informasi dari perangkat lunak. Melakukan teste case dengan mempartisi domain input dan output dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam. 36 Partisi ekivalensi (Equivalence Class Partitioning) membagi domain input kedalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai terbatas (Boundary Value Analysis) memeriksa kemampuan program untuk menangani data pada patas yang dapat diterima. Pengujian perbandingan (Comparison Testing) mengembangkan perangkat lunak ke dalam versi-versi yang independen dari suatu aplikasi dengan menggunakan spesifikasi yang sama. Setiap versi diuji dengan data uji yang sama untuk memastikan bahwa semua versi memberikan output yagn identik. Disebut juga pengujian back to back. Pengembang perangkat lunak yang berpengalaman sering mengatakan, “Pengujian tidak akan pernah berakhir. Pengujian hanya berpindah dari Penguji ke pelanggan. Setiap pelanggan menggunakan program tersebut, berarti suatu pengujian dilakukan.” Dengan mengaplikasikan desain test case, perekayasa perangkat lunak dapat menapai pengujian yang lebih lengkap sehingga dapat mengungkap dan melakukan koreksi sebelum “pengujian pelanggan” dimulai. 2.17.2 White Box Testing Meramalkan cara kerja perangkat lunak secara rinci, karenanya logikal path (jalur logika) yang melewati perangkat lunak diuji dengannmemberikan test case yang menguji serangkaian kondisi dan loop secara spesifik. Secara sekilas dapat disimpulkan bahwa metoda White Box Testing merupakan petunjuk untuk mendapatkan program yang benar, karena semuanya dilakukan dengan mendefinisikan seluruh jalur logika, mengembangkan test case untuk mengerjakan program, dan mengevaluasi hasilnya, sehingga test case akan mengerjakan logika program secara mendalam. Pengujian white box adalah metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case. Pengujian White Box disebut juga : Glass Box Testing (Pengujian kotak bening) 37 Code Base Testing (Source kodenya dimunculkan) Structural Testing (Struktur program ditampilkan) Pengujian white-box Berfokus pada struktur kontrol program. Pengujian dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan semua kondisi telah diuji. Pengujian basis path, teknik pengujian white-box, menggunakan grafik program (matrik grafik) untuk melakukan serangkaian pengujian yang independen secara linear yang memastikan cakupan. Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program, dan pengujian loop menyempurnakan teknik white box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Implikasinya secara khusus diaplikasikan ke dalam komponen program yang kecil (modul atau kelompok kecil dari modul). Dengan menggunakan metoda White Box Testing, perekayasa sistem akan dapat melakukan test case yang menjamin bahwa seluruh independent path di dalam modul telah dikerjakan paling tidak satu kali, mengerjakan seluruh keputusan logika pada sisi true dan false, melaksanakan seluruh loop sesuai dengan batasannya dan mengerjakan seluruh struktur data internal yang menjamin validitas. Testing Stages dimana sasaran utama desain test case untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Teknik yang digunakan : Pengujian white-box (white–box testing) Pengujian black-box (black-box testing) Testing stages atau tingkatan pengujian merupakan validasi perangkat lunak (V & V) ditujukan untuk menunjukkan bahwa sistem sesuai dengan spesifikasinya dan bahwa sistem memenuhi harapan pelanggan yang membelinya. Validasi melibatkan proses pemeriksaan, seperti inspeksi dan peninjauan, pada setiap 38 proses perangkat lunak dari definisi persyaratan user sampai pengembangan program. Validasi perangkat lunak adalah proses pemeriksaan untuk menjamin agar sistem telah sesuai dengan spesifikasinya dan memenuhi kebutuhan sesungguhnya dari user sistem. Namun demikian, mayoritas biaya validasi disediakan setelah implementasi sistem operasional diuji. Untuk program-program kecil, sistem seharusnya tidak diuji sebagai sistem tunggal. Sistem besar dibangun dari subsistem yang dibangun dari model yang terbuat dari prosedur dan fungsi, proses demikian dengan demikian harus dilakukan bertahap, dimana pengujian dilakukan secara inkremental bersama dengan implementasi sistem, proses pengujian terdiri dari 3 (tiga) tahap dimana komponen-komponen sistem diuji, sistem yang terintegrasi diuji, dan akhirnya sistem diuji dengan data pelanggan, idealnya, kesalahan komponen ditemukan dini pada proses dan masalah interface ketika sistem diintegrasi, namun demikian, dengan ditemukannya kesalahan, program harus didebug, hal ini menuntut tahap proses pengujian ulang, error pada komponen program, bisa muncul pada saat pengujian itegrasi dan proses dengan demikian bersifat iteratif, dengan informasi diumpan balik dari bagian akhir ke bagian awal proses. 2.18 Penjelasan Tentang Web 2.18.1 Pengertian www Teknologi World Wide Web (WWW) atau Web mulai berkembang sejaktahun 1990 ketika seorang peneliti bernama Tim Berners-Lee mengimplementasikan sistem manajemen untuk mencegah terjadinya kehilangan informasi dari seluruh struktur penelitian yang dilakukan oleh European Organization for Nuclear Investigation. Perkembangan teknologi Web terkait secara langsung dengan perkembangan Internet. Internet telah menjadi tulang punggung utama dari perkembangan teknologi Web. Pertumbuhan penggunaan Internet berbanding lurus dengan pertambahan penggunaan Web sebagai salah satu aplikasi dari Internet. Kenaikan tersebut bahkan telah mencapai angka enam puluh dua persen pertahun. Teknologi Web pada dasarnya adalah sebuah sistem 39 informasi yang berfungsi sebagai perantara. Perantara disini diartikan sebagai suatu program yang bertindak untuk pihak lain atau merupakan suatu proses perubahan atau merupakan proses pertukaran informasi. Dalam hal bertindak sebagai perantara, teknologi Web umumnya dibedakan menjadi dua jenis layanan perantara, yaitu perantara dari sisi penyedia layanan (server) maupun perantara dari sisi pengguna layanan (user). Perantara dari sisi server memiliki tugas untuk melayanani pengiriman atau penerimaan data dan informasi 43 dari dan kesisi user. Sedangkan Web dipandang dari sisi user dapat diartikan sebagai pemberi layanan terhadap permintaan yang diajukan oleh user. Karateristik utama dari sebuah Web adalah adanya keterkaitan (interlink) antara satu Web dengan Web lain. Dengan adanya karakteristik tersebut, maka tujuan utama dari “dibuatnya” Web oleh Tim Berners-Lee telah tercapai yaitu mencegah terjadinya kehilangan secara menyeluruh seluruh data karena tidak adanya sistem distribusi data sebagaimana jika dilakukan menggunakan teknologi Web. Selain memiliki karakteristik keterkaitan, teknologi Web juga memiliki cirri khas lain yaitu evolution dan decentralization yang masing-masing berarti teknologi Web akan selalu berevolusi (evolution) dan teknologi Web merupakan teknologi yang tersebar (decentralization). Agar teknologi Web selalu berkarakteristik keterkaitan, berevolusi dan terdesentralisasi, pengembangan teknologi Website dibagi menjadi tiga aspek bagian. Bagian pertama adalah aspek repesentasi atau perwakilan (representation aspect) yang memiliki fungsi strukturisasi dan menampilkan kembali (represent) segala informasi yang tersimpan dalam Web dalam kapasitasnya sebagai perantara dari sisi server. Desain dalam pengembangan teknologi Web yang kedua adalah aspek identifikasi (identification aspect) yang menggambarkan teknologi Web berfungsi sebagai media identifikasi dan melokalisasikan informasi diseluruh jaringan. Selanjutnya, distrukturisasikan, apabila ditampilkan sebuah kembali informasi dalam (representing) jaringan telah kemudian telah diidentifikasi serta telah disimpan dalam suatu media penyimpanan (storage) atau 44 yang lazim disebut sebagai Web Hosting, diperlukan suatu aspek teknologi Web terakhir yaitu aspek interaksi (interaction) yang berfungsi untuk mengakses, 40 memperbarui, mengganti, memproses atau saling menukar informasi (information exchange) antara jaringan yang satu dengan jaringan lainnya yang saling terinterkoneksi. Interaksi ini merupakan bentuk komunikasi antara user dengan server atau server dengan server yang terjadi melalui jalur transmisi elektronik atau biasa disebut sebagai suatu protokol (protocol). Dengan demikian terlihat masingmasing aspek desain tersebut akan menggambarkan seperangkat konsep independensi yang keberadaannya dapat dikombinasikan. Oleh karena itu, aspek representasi, identifikasi, dan interaksi dalam desain teknologi Web merupakan sebuah garis tegak lurus, yang saling terkait. 2.18.2 Pengertian Struktur HTML Hypertext Markup Language (HTML) adalah sebuah markup language yang digunakan untuk membuat sebuah dokumen hypertext agar dapat berdiri secara independen. Dokumen HTML tersebut dapat berupa representasi dari dokumen berita online, surat elektronik (e-mail), perangkat database atau tempat belanja online (e-shopping) yang dipresentasikan oleh Web melalui Web browser. Meskipun demikian perlu diketahui, HTML bukanlah bagian dari dokumen itu sendiri melainkan atribut mandiri sebagai faktor representasi dari Web. Secara sederhana dapat dikatakan dokumen HTML adalah sebuah dokumen yang SGML. Hal tersebut disebabkan karena dokumen HTML 45 memiliki sebuah entitas, sturktur dan logika program yang telah sesuai dengan SGML. 2.18.3 Pengertian Appserv Network /Apache Untuk membuat sebuah pemrograman web server-site, diperlukan sebuah web server. Ada banyak server yang berkembang dan sering digunakan dalam membangun aplikasi berbasis web seperti misalnya PWS dan IIS yang dipakai oleh ASP-nya Microsoft, Web Server Netscape, Qitami, Caudium, dan Apache. PHP triad menyediakan Apache sebagai HTTP server dalam paketnya. Pada awalnya, Apache di desain pada Sistem berbasis UNIX tetapi akhirnya berkembang untuk berbagai sistem seperti Microsoft Windows, 2000, NT, 98, dan 41 95. Selanjutnya seperti di dalam versi UNIX, apache memiliki beberapa hal yang dibutuhkan untuk feature-feature baru dan memiliki API sehingga dapat digunakan dengan lebih mudah bagi pemakainya. Untuk mengetahui tentang Apache secara lebih detail anda dapat mengunjungi situs resmi yang dimilikinya yaitu http://apache.org/. 2.18.4 Sekilas Mengenai PHP PHP (dulu: Personal Home Page, sekarang PHP: Hypertext Preprocessor) merupakan script untuk membuat suatu aplikasi yang dapat terintegrasikan ke dalam halaman HTML, sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Script PHP merupakan saingan berat dari ASP. Pada dasarnya memang cara kerja kedua bahasa pemrograman web tersebut memiliki persamaan, yaitu script disisipkan pada HTML dan dijalankan oleh web server. Sebagai sebuah server-side, script PHP juga memilki keunggulan seperti: 1) Source program atau script tidak dapat dilihat dengan menggunakan fasilitas view HTML source, yang ada pada web browser seperti internet Explorer atau semacamnya. 2) Script tersebut dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, seperti misalnya untuk keperluan database connection. Saat ini, PHP sudah mampu melakukan koneksi dengan berbagai database seperti MySQL, Direct MSSQL, Velocis, IBM DB2, Interbase, PostgreSQL.dBase, FrontBase, Solid, Empress, mSQL, Sybase, FilePro (readonly-Personix, Inc.), Unix dbm, Informix dab bahkan semua database yang mempunyai provider ODBC seperti misalnya Microsoft Access dan lain-lain. 3) Pada aplikasi yang dibuat dengan PHP, pada saat server akan mengerjakan script dan hasinyalah yang dikirimkan ke web browser. Hal itu akan menyebabkan aplikasi tidak memerlukan kompatibilitas web browser atau harus menggunakan web browser tertentu dan pasti dikenal oleh web browser apapun. 4) PHP dapat melakukan semua aplikasi program CGI, seperti mengambil nilai form, menghasilkan halaman web yang dinamis, mengirimkan dan menerima cooki. PHP juga dapat berkomunikasi 47 dengan layanan-layanan yang menggunakan protokol IMAP, SNMP, NNTP, POP3, HTTP dan sebagainya. 42 2.19 Integrasi Web, PHP dan Adobe Flash Adobe Flash (dahulu bernama Macromedia Flash) adalah salah satu perangkat lunak komputer yang merupakan produk unggulan Adobe Systems. Adobe Flash digunakan untuk membuat gambar vektor maupun animasi gambar tersebut. Berkas yang dihasilkan dari perangkat lunak ini mempunyai file extension .swf dan dapat diputar di penjelajah web yang telah dipasangi Adobe Flash Player. Flash menggunakan bahasa pemrograman bernama ActionScript yang muncul pertama kalinya pada Flash 5. Sebelum tahun 2005, Flash dirilis oleh Macromedia. Flash 1.0 diluncurkan pada tahun 1996 setelah Macromedia membeli program animasi vektor bernama FutureSplash. Versi terakhir yang diluncurkan di pasaran dengan menggunakan nama 'Macromedia' adalah Macromedia Flash 8. Pada tanggal 3 Desember 2005 Adobe Systems mengakuisisi Macromedia dan seluruh produknya, sehingga nama Macromedia Flash berubah menjadi Adobe Flash. Adobe Flash merupakan sebuah program yang didesain khusus oleh Adobe dan program aplikasi standar authoring tool professional yang digunakan untuk membuat animasi dan bitmap yang sangat menarik untuk keperluan pembangunan situs web yang interaktif dan dinamis. Flash didesain dengan kemampuan untuk membuat animasi 2 dimensi yang handal dan ringan sehingga flash banyak digunakan untuk membangun dan memberikan efek animasi pada website, CD Interaktif dan yang lainnya. Selain itu aplikasi ini juga dapat digunakan untuk membuat animasi logo, movie, game, pembuatan navigasi pada situs web, tombol animasi, banner, menu interaktif, interaktif form isian, e-card, screen saver dan pembuatan aplikasi-aplikasi web lainnya. Dalam Flash, terdapat teknik-teknik membuat animasi, fasilitas action script, filter, custom easing dan dapat memasukkan video lengkap dengan fasilitas playback FLV. Keunggulan yang dimiliki oleh Flash ini adalah ia mampu diberikan sedikit code pemograman baik yang berjalan sendiri untuk mengatur animasi yang ada didalamnya atau digunakan untuk berkomunikasi dengan program lain seperti HTML, PHP, dan Database dengan pendekatan XML, dapat dikolaborasikan dengan web, karena mempunyai keunggulan antara lain kecil dalam ukuran file outputnya. 43 Movie-movie Flash memiliki ukuran file yang kecil dan dapat ditampilkan dengan ukuran layar yang dapat disesuaikan dengan keingginan. Aplikasi Flash merupakan sebuah standar aplikasi industri perancangan animasi web dengan peningkatan pengaturan dan perluasan kemampuan integrasi yang lebih baik. Banyak fiture-fiture baru dalam Flash yang dapat meningkatkan kreativitas dalam pembuatan isi media yang kaya dengan memanfaatkan kemampuan aplikasi tersebut secara maksimal. Fiture-fiture baru ini membantu kita lebih memusatkan perhatian pada desain yang dibuat secara cepat, bukannya memusatkan pada cara kerja dan penggunaan aplikasi tersebut. Flash juga dapat digunakan untuk mengembangkan secara cepat aplikasi-aplikasi web yang kaya dengan pembuatan script tingkat lanjut. Di dalam aplikasinya juga tersedia sebuah alat untuk mendebug script. Dengan menggunakan Code hint untuk mempermudah dan mempercepat pembuatan dan pengembangan isi ActionScript secara otomatis. Untuk memahami keamanan Adobe Flash dapat dilihat dari beberapa sudut pandang, berdasarkan beberapa sumber referensi bahwa tidak ada perbedaan menyolok antara HTML dan JavaScript dimana didalamnya terdapat banyak tools yang dapat diambil dari SWF termasuk ActionScript. Sehingga kode data dapat terjamin keamanannya. Oleh sebab itu, semua kebutuhan data yang terdapat dalam SWF dapat diambil kembali melalui server. Keuntungan menggunakan metode yang sama dengan menggunakan aplikasi web yang standar adalah akan menjamin dan mengamankan penyimpanan dan perpindahan data. 2.20 Database dan DBMS (Database Management Sistem ) Pengertian dari database adalah : “Kumpulan dari data yang berhubungan satu dengan yang lainnya yang tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. Database perlu disimpan untuk keperluan informasi lebih lanjut dan database perlu diorganisasikan sedemikian rupa supaya informasi yang dihasilkan berkualitas. Database diakses dan dimanipulasi dengan menggunakan perangkat lunak yang disebut DBMS (Database Management Sistem). Ada banyak sekali model-model dari database tersebut diantaranya adalah MySQL database MySQL sebagai databasenya yang dijadikan satu paket 44 denganappserv atau xampp. MySQL sudah ada didalam paketnya untuk melakukan penanganan pengolahan berbasis data. Sebenarnya, pengolahan data tidak harus menggunakan database. PHP juga mengenal pengolahan data dengan menggunakan file teks. Tetapi menyimpan data dalam file biasanya memiliki banyak keterbatasan. File teks tidak memilki kemampuan untuk mengolah data, misalnya menghitung total nilai, rata rata, dan lain sebagainya. Demikian juga dalam hal pencarian data. Semakin besar ukuran file, pencarian data yang dilakukan pada “*.TXT” akan menjadi lebih sulit. Untuk itulah diperlukan database. Dengan database, program akan lebih mudah mengendalikan akses terhadap data. MySQL merupakan Relational Database Management System (RDBMS) yaitu hubungan antar tabel yang berisi data-data pada suatu database. Hal tersebut lebih baik daripada jika semua data terkumpul menjadi satu dalam satu tabel. Kelebihan hal di atas, yaitu dapat mempercepat, pencarian suatu data. Tabel-tabel tersebut di-link oleh suatu relasi yang memungkinkan untuk mengkombinasikan data dari beberapa tabel ketika seorang user menginginkan menampilkan informasi dari suatu database. MySQL merupakan database yang dikembangkan dalam bahasa SQL (Structured Query Language). SQL merupakan bahasa yang terstruktur yang digunakan untuk interaksi antara script program dengan database server dalam hal pengolahan data. Dengan SQL dapat memebuat tabel yang nantinya akan diisi dengan data, memanipulasi data (misalnya menambah data, menghapus data, dan mengupdate data), serta membuat suatu perhitungan dengan berdasarkan data yang ditemukan.