PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PENGEMBANGAN SISTEM INFORMASI BERBASIS WEB TENTANG SUKU-SUKU DI PAPUA SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains (S.Si) Program Studi Ilmu Komputer Disusun oleh : Elisabeth Imelda Rahawarin NIM : 983124036 NIRM : 980051122811120035 PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI SEKAPUR SIRIH Ia membuat segala sesuatu indah pada waktunya… (Pengkhotbah 3 : 11) Terkadang saya tidak mengerti, mengapa segala sesuatu berjalan serba salah. Dalam hati, saya mulai bertanya, apakah benar Tuhan mendengarkan doa? Kekhawatiran dan ketakutan mulai menghantui kehidupan saya. Saya bingung dan putus asa. Tidakkah Tuhan tahu apa yang sedang terjadi dalam hidup saya? Pada suatu hari saya masuk ke tempat kudus Allah untuk merenung. Saya sadari bahwa segala sesuatu yang terjadi itu sebenarnya adalah untuk kebaikan saya sendiri. ”Betapa bodoh dan dungunya saya di hadapanMu, ya Allah. Walaupun demikian, Engkau tetap mengasihi saya. Engkau memegang tangan kanan saya dan mempunyai rencana yang indah bagi saya. Sepanjang hidup saya Engkau terus membimbing saya dengan nasehat firmanMu. Engkau membuat semuanya indah pada waktunya, ya Tuhan”. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI HALAMAN PERSEMBAHAN Skripsi ini saya persembahkan sebagai ungkapan syukur dan terima kasih kepada Allah Yang Maha Pengasih dan Penyayang atas rahmat kehidupan serta anugerah keselamatan yang telah diberikan kepada saya dan siapa saja yang bersandar dan berlindung padaNya. Skripsi ini juga saya persembahkan secara khusus kepada my invisible ancestors, almarhumah oma Ernestina Renyaan (I’m the winner, grandma…), kedua orang tua saya (Mom and Dad, thanks to be my great parents…), abang saya (Andres Juan, thanks to be my wise brother…) serta kedua adik saya (Riko dan Nadine, thanks to be my little candle…), juga kepada semua saudara serta teman yang melalui kehadiran, doa dan cintanya telah memberi arti yang sangat besar bagi saya selama saya menyelesaikan kuliah termasuk penulisan skripsi ini. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah. Yogyakarta, April 2007 Penulis (Elisabeth Imelda Rahawarin) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PENGEMBANGAN SISTEM INFORMASI BERBASIS WEB TENTANG SUKU-SUKU DI PAPUA INTISARI Dalam skripsi ini, dikembangkan suatu sistem informasi tentang sukusuku di Papua berbasis web yang memungkinkan untuk diakses oleh pihak-pihak yang membutuhkan informasi tersebut, kapan saja, di mana saja tanpa mengenal batas waktu dan tempat. Sistem informasi berbasis web tentang suku-suku di Papua ini dibangun dengan mengunakan metode waterfall yang meliputi analisa, perancangan, implementasi dan pengujian. Bahasa pemrograman yang digunakan dalam sistem ini adalah Active Server Pages (ASP) untuk penulisan script dan Microsoft Access untuk mengelola databasenya. Fasilitas yang ada dalam sistem ini adalah fasilitas pencarian (searching) bagi pengunjung dan bagi administrator ada tiga fasilitas, yaitu penambahan data, pengeditan data dan penghapusan data. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI WEB BASED DEVELOPMENT INFORMATION SYSTEM ABOUT PAPUA’S TRIBES ABSTRACT The writer has developed a web based information system about Papua’s tribes, which could be accessed by any users at any time and from any place without any time and space limitation. Web based information system about Papua’s tribes was built using waterfall method which includes analysis, design, implementation and testing. This system was developed using ASP to write the script and Microsoft Access to manage the database. This system provides search engine as the facility for its user and three facilities for the administrator namely data adding, data editing and data deleting. The web based information system about Papua’s tribes has been successfully developed to provide relevant information for its user. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI KATA PENGANTAR Puji syukur kehadirat Tuhan Yesus Kristus atas segala penyelenggaraan keilahianNya sehingga penulisan skripsi dengan judul PENGEMBANGAN SISTEM INFORMASI BERBASIS WEB TENTANG SUKU-SUKU DI PAPUA, dapat diselesaikan. Skripsi ini dibuat untuk memenuhi salah satu syarat akademis guna memperoleh gelar Sarjana Sains program studi Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sanata Dharma. Dalam menyelesaikan skripsi ini, banyak sekali hambatan yang penulis hadapi, maka penulis sadari bahwa tanpa bantuan dari pelbagai pihak, skripsi ini tidak dapat terwujud. Oleh sebab itu, pada kesempatan ini penulis ingin mengucapkan banyak terima kasih kepada: 1. Ibu P. H. Prima Rosa, S.Si, M.Si, selaku dosen pembimbing skripsi dan Ketua Program Studi Ilmu Komputer, yang telah meluangkan waktu untuk memberikan bimbingan dan pengarahan selama penyelesaian skripsi. Terima kasih juga karena telah memberikan kesempatan dan fasilitas bagi penulis untuk meyelesaikan studi. 2. Bapak Ir. Ign. Aris Dwiatmoko, M.Sc, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam, yang telah memberikan dukungan dan kesempatan bagi saya untuk menyelesaikan studi. 3. Bapak J. Haris Sriwindono, M.Kom dan bapak Y. Joko Nugroho, S.Si, M.Si selaku dosen penguji. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4. Mas Tukijo dan mbak Linda selaku staf sekretariat Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sanata Dharma. 5. Teman-teman program studi Ilmu Komputer angkatan 1998. Terima kasih atas segala semangat dan inspirasi yang telah kalian berikan baik secara langsung maupun tidak langsung. 6. Teman-teman baikku di kost putri ’Sari Ayu’ (periode 1998-2000), kost putri ’Crisant’, kost putri ’Tastiti’, teman-teman baikku selama masa KKN (kapan lagi jadi anak pantai…?) serta teman-teman baikku di komunitas tari ’Genta Rakyat’ (who lets Gentas out...?). 7. Teman-teman baikku di ’Keluarga 98’ (kapan reuni SMP / SMA lagi…?), Andrew dan Meika (my life so colorfull…), Awyt, Pruwet, Juxe, Peni, Catur, V-nèé, Ocha, Juleha’, Sisca, Angop, Eka, Novi, Maria, Wurie, Intan, Erna, Yani, mbak Retno dan Susi_’Ncush (terima kasih untuk bawelnya galz…). 8. Sahabat-sahabatku, Tyas ’Cykha’, Timtam, Victor, Budi ’Agek’, mbak Pòénk, Mury, Dhea dan Agus ’Ochay’ (thanks for your loyality… I adore you all…). 9. Sahabat sejatiku, Pierre ’Popeye’, Andrie ’Plenthonk’, Yana ’Kocil’ dan Dian ’Spidey’, terima kasih karena sudah mau berbagi semua kisah, baik itu canda tawa keceriaan maupun air mata dalam duka (you raise me up to more than I can be…). 10. Rimo, Igun, Vinto, Mochi, Lotus, Tuwik, Joe, Djay, Elvin, Motayu dan ERik, terima kasih untuk kesetiaannya mengantarku ke mana saja. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11. Semua pihak yang tidak bisa disebutkan satu per satu, yang secara langsung maupun tidak langsung turut membantu dalam penulisan skripsi ini (if I have inadvertently missed, I hope you can forgive...). Kritik dan saran yang membangun untuk perbaikan skripsi ini sangat penulis harapkan dan akhir kata, semoga skripsi ini dapat bermanfaat bagi yang membacanya. Terima kasih. Yogyakarta, April 2007 Elisabeth Imelda Rahawarin PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL …………………………………………………………….. i HALAMAN PERSETUJUAN ………………………………………………….. ii HALAMAN PENGESAHAN ………………………………………………….. iii SEKAPUR SIRIH ………………………………………………………………. iv HALAMAN PERSEMBAHAN ………………………………………………… v PERNYATAAN KEASLIAN KARYA ………………………………………... vi INTISARI ……………………………………………………………………… vii ABSTRACT ……………………...…………………………………………… viii KATA PENGANTAR ………………………………………………………….. ix DAFTAR ISI …………………………………………………………………… xii DAFTAR GAMBAR …………………………………………………………... xv DAFTAR TABEL ……………………………………………………………... xvi BAB I PENDAHULUAN 1.1. Latar Belakang Masalah …………………………………………………….. 1 1.2. Rumusan Masalah …………………………………………………………... 2 1.3. Batasan Masalah ……………...…………………………………………….. 3 1.4. Tujuan Penelitian …………………………………………………………… 3 1.5. Metodologi Penyelesaian Masalah ………………………………………….. 3 1.6. Sistematika Penulisan ……………...……………………………………….. 4 BAB II LANDASAN TEORI 2.1. Pengembangan Sistem Informasi …………………………………………… 6 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.2. World Wide Web ……………………………………………………………. 6 2.3. Konsep Sistem Informasi Berbasis Web ……………………………………. 8 2.4. Pemrograman Web (Web Programming) …………………………………… 8 2.5. Teknologi Active Server Pages (ASP) ……………………………………… 9 2.5.1. Konsep Dasar Active Server Pages (ASP) ……………………………. 9 2.5.2. Visual Basic Script (VBScript) ……………………………………… 10 2.5.3. Obyek Active Server Pages ………………………………………….. 21 2.5.4. Basis Data pada Active Server Pages ………………………………... 27 2.5.5. ActiveX Data Objects (ADO) ………………….…………………….. 28 2.5.6. Cara Mengakses Basis Data …………………………………………. 30 BAB III ANALISA DAN PERANCANGAN SISTEM 3.1. Analisa Masalah …………………………………………………………… 33 3.2. Analisa Kebutuhan ………………………………………………………… 35 3.3. Perancangan Sistem ……………………………………………………….. 35 3.4. Perancangan Proses ………………………………………………………... 36 3.5. Perancangan Basis Data …………………………………………………… 39 3.6. Kamus Data ………………………………………………………………... 39 3.7. Perancangan Antar Muka (User Interface) ………………………………... 40 3.8. Struktur Menu ……………………………………………………………... 43 BAB IV IMPLEMENTASI 4.1. Implementasi Basis Data …………………………………………………... 44 4.2. Implementasi Antar Muka ………………………………………………… 45 4.3. Implementasi Program …………………………………………………….. 47 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB V PENUTUP 5.1. Kesimpulan ………………………………………………………………... 61 5.2. Saran ………………………………………………………………………. 61 DAFTAR PUSTAKA PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR GAMBAR Gambar 3.1 Diagram Konteks ……………………...………………………….. 36 Gambar 3.2 DFD level 1 sisi administrator ………...………………………….. 37 Gambar 3.3 DFD level 2 proses 2 sisi administrator …………………………... 38 Gambar 3.4 DFD level 1 sisi pengunjung (user) ………………………………. 39 Gambar 3.5 Rancangan tampilan login administrator ………………………….. 40 Gambar 3.6 Rancangan tampilan halaman administrator ……………………… 40 Gambar 3.7 Rancangan tampilan halaman depan ……………………………… 41 Gambar 3.8 Rancangan tampilan halaman suku ……………………………….. 42 Gambar 3.9 Struktur menu sisi administrator ………………………………….. 43 Gambar 3.10 Struktur menu sisi pengunjung (user) …………………………… 43 Gambar 4.1 Form login administrator ………………………………………….. 45 Gambar 4.2 Form tambah data …………………………………………………. 45 Gambar 4.3 Form hapus data …………………………………………………... 45 Gambar 4.5 Halaman utama …………………………………………………… 46 Gambar 4.6 Proses pencarian ………………………………………………….. 46 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR TABEL Tabel 2.1 Jenis-jenis operator aritmetika ………………………………………. 13 Tabel 2.2 Jenis-jenis operator pembandingan ………………………………….. 14 Tabel 2.3 Jenis-jenis operator logika ………………...………………………… 14 Tabel 2.4 Tabel Application Object ……………………………………………. 22 Tabel 2.5 Tabel Object Context ……………………...………………………… 23 Tabel 2.6 Tabel Session Object ………………………………………………… 23 Tabel 2.7 Tabel Response Object ………………………………………………. 24 Tabel 2.8 Tabel Request Object ………………………………………………... 25 Tabel 2.9 Tabel Server Object …………………………………………………. 26 Tabel 2.10 Tabel Connection String OLE DB …………………………………. 30 Tabel 2.11 Tabel Connection String ODBC …………………………………… 31 Tabel 4.1 Tabel administrator ………………………………………………….. 44 Tabel 4.2 Tabel suku …………………………………………………………… 44 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB I PENDAHULUAN 1.1. Latar Belakang Masalah. Provinsi Papua merupakan pulau yang sangat luas dengan jumlah penduduk yang tidak terlalu padat. Di Papua hidup kelompok-kelompok masyarakat dari ras Melanesia. Kelompok-kelompok atau suku-suku tersebut menempati daerah pesisir pantai hingga ke daerah pegunungan. Tempat tinggal yang berjauhan antara kelompok masyarakat atau suku yang satu dengan suku yang lainnya menyebabkan di Papua tumbuh dan berkembang beraneka kondisi sosio-kultural di antara suku-suku tersebut. Letak geografis yang terisolir pun membuat tiap suku yang ada mempunyai pranata sosial, karakteristik, agama, bahasa tradisional dan budaya masing-masing. Hal ini yang selalu menarik minat “dunia luar” untuk mengetahuinya. “Dunia luar” selalu mengidentikkan orang Papua dengan ciri yang sama, yaitu orang Papua adalah orang yang selalu “telanjang” karena “hanya” menggunakan koteka. Namun, orang Papua yang menggunakan koteka sebagai busana mereka merupakan orang Papua yang berasal dari suku Dani. Selain suku Dani, orang Papua juga ada yang berasal dari suku Ekari, suku Amungme, suku Kamoro dan suku-suku lainnya yang kurang lebih berjumlah duaratus limapuluh suku. Ketertarikan “dunia luar” untuk lebih jauh mengenal tentang suku-suku yang ada di Papua, sering menimbulkan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI masalah, seperti kurangnya informasi yang bisa diperoleh, terlalu besarnya dana yang dibutuhkan untuk mencapai propinsi tersebut dan informasi yang bisa diperoleh pun terasa kurang memuaskan. Melihat pada kondisi masalah tersebut, maka penulis berpikir untuk mencoba memberikan informasi yang dibutuhkan dengan mengembangkan suatu sistem informasi berbasis web tentang suku-suku di Papua. Informasi yang diperoleh pengguna sistem (user) dari sistem ini adalah informasi tentang suku-suku di Papua yang meliputi karakteristik suku, agama yang dianut oleh suku tersebut, bahasa tradisional yang digunakan dan budaya asli yang dimiliki oleh suku tersebut. Adapun sasaran dari pembuatan sistem ini adalah menjangkau user dari kalangan wisatawan maupun pihak-pihak lain yang bisa memanfaatkan sistem ini sebagai alat bantu dalam memperluas wawasan pengetahuannya. 1.2. Rumusan Masalah. Rumusan masalah yang mendasar dalam penulisan skripsi ini adalah bagaimana membangun suatu sistem informasi berbasis web yang mampu memberikan informasi tentang suku-suku di Papua yang meliputi karakteristik, agama, bahasa tradisional dan budaya. 1.3. Batasan Masalah. Berdasarkan latar belakang masalah dan rumusan masalah yang ada, maka penulisan skripsi ini akan dibatasi pada pembuatan sistem yang meliputi perancangan sistem (design), penulisan program (coding) dan pengujian sistem (testing). PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Informasi yang bisa diberikan oleh sistem ini hanya akan meliputi karakteristik, agama, bahasa tradisional dan budaya secara garis besar atau gambaran secara umum yang terdapat pada suku-suku yang ada. Hal ini disebabkan karena di Papua, satu suku yang mendiami salah satu wilayah, terdiri atas beberapa desa atau kampung yang mana masing-masing desa tersebut senantiasa menciptakan kebiasaan-kebiasaan sendiri. Namun sesungguhnya, kebiasaan-kebiasaan itu tetap mengacu pada budaya yang umum dari suku itu sendiri. 1.4. Tujuan Penelitian. Penulisan skripsi bertujuan untuk mengembangkan suatu sistem informasi berbasis web yang mampu memberikan informasi tentang sukusuku di Papua, sesuai dengan dasar teori yang ada. 1.5. Metodologi Penyelesaian Masalah. Metodologi yang dipakai oleh penulis dalam mengembangkan sistem informasi berbasis web ini adalah metodologi Waterfall (Classic Life Cycle). Adapun tahap-tahap metodologi ini adalah sebagai berikut: 1.5.1. Perencanaan. 1.5.2. Analisis. 1.5.3. Perancangan. 1.5.4. Penulisan program. 1.5.5. Pengujian sistem. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 1.6. Sistematika Penulisan. Bab I skripsi ini menguraikan tentang latar belakang masalah yang menjadi alasan pengangkatan judul skripsi. Selain itu, bab I juga menguraikan tentang rumusan masalah, batasan masalah, tujuan penelitian dan metodologi yang digunakan oleh penulis dalam menyelesaikan masalah. Bab II skripsi ini menguraikan tentang dasar teori yang digunakan penulis sebagai acuan dalam menyelesaikan masalah. Landasan teori meliputi konsep pengembangan sistem informasi, uraian tentang World Wide Web, konsep tentang sistem informasi berbasis web, pemrograman web (web programming) dan uraian tentang teknologi Active Server Pages (ASP). Bab III skripsi ini berisi tentang analisa dan perancangan sistem informasi yang meliputi analisa masalah, perancangan proses, perancangan basis data, perancangan antar muka dan struktur menu. Bab IV skripsi ini berisi implementasi sistem ke dalam bentuk pemrograman, sehingga bab ini akan meliputi implementasi basis data, implementasi antar muka sistem (system interface) dan implementasi program. Bab V merupakan bagian penutup dalam penulisan skripsi, yang berisi kesimpulan dan saran. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB II LANDASAN TEORI 2.1. Pengembangan Sistem Informasi Suatu sistem merupakan seperangkat komponen yang terorganisasi, saling berinteraksi, saling bergantung satu sama lain dan terpadu untuk mengerjakan suatu tugas. Informasi merupakan sesuatu yang nyata atau setengah nyata yang dapat mengurangi derajat ketidakpastian tentang suatu keadaan atau kejadian. Sebagai contoh, terdapat informasi yang menyatakan bahwa cuaca besok akan cerah, dengan demikian maka ketidakpastian terselenggaranya pertandingan sepak bola dapat dikurangi. Berdasarkan definisi di atas, maka sistem informasi dapat diartikan sebagai sekumpulan prosedur organisasi yang pada saat dilaksanakan akan memberikan informasi bagi pengambil keputusan dan atau untuk mengendalikan organisasi. 2.2. World Wide Web Internet merupakan jaringan komputer yang sangat besar yang terdiri dari jaringan-jaringan kecil yang saling terhubung satu dengan lainnya di seluruh dunia. Internet sering digunakan sebagai media informasi dan komunikasi. Perkembangan internet sangat cepat karena internet mampu menutupi kelemahan-kelemahan media informasi lain yang sudah ada, seperti PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI keterbatasan waktu dalam menyajikan informasi baik itu yang berupa keterbatasan waktu terbit maupun keterbatasan waktu tayang media tersebut. Manfaat lain yang bisa diperoleh dari internet adalah kita dapat mengirimkan surat elektronik dan berkomunikasi dengan orang lain di seluruh pelosok dunia. World Wide Web (WWW) bukanlah internet dan begitu pula sebaliknya. Namun demikian, World Wide Web (WWW) dan internet sangat bergantung satu sama lain. Seperti yang sudah dijelaskan di atas, internet adalah suatu jaringan komputer global, sedangkan World Wide Web (WWW) bukan sekedar jaringan tetapi di dalamnya terdapat suatu set aplikasi komunikasi dan sistem perangkat lunak yang memiliki karakteristik sebagai berikut: Umumnya menggunakan protocol Transmission Control Protocol/Internet Protocol (TCP/IP). Mengerti hypertext markup language (HTML). Mengikuti model client atau server untuk komunikasi data dua arah. Memungkinkan client untuk mengakses server dengan berbagai protocol seperti hypertext transfer protocol (HTTP) dan file transfer protocol. Memungkinkan client untuk mengakses informasi dalam berbagai media, seperti teks, audio dan video. Menggunakan model alamat Uniform Resource Locators (URL). PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.3. Konsep Sistem Informasi Berbasis Web Sistem informasi adalah serangkaian komponen yang terkait satu sama lain dan bekerja bersama-sama untuk mengumpulkan, mengolah dan menyimpan serta menyebarluaskan informasi guna mendukung pengambilan keputusan, koordinasi, kontrol, analisis dan visualisasi dalam suatu organisasi. Sistem informasi berbasis web adalah sistem informasi yang sifatnya on-line, dimana informasi yang diberikan tidak hanya dapat dibaca atau statis melainkan juga dapat memberikan atau menerima respon dari pengguna sistem (user). Sistem informasi berbasis web ini merupakan pengembangan dari sistem informasi yang bersifat konvensional. 2.4. Pemrograman Web (Web Programming) Pemrograman web identik dengan pembuatan sebuah homepage. Homepage adalah halaman yang kita lihat pertama kali ketika kita membuka suatu situs tertentu, sehingga situs dapat diartikan sebagai kumpulan halamanhalaman web di internet yang berisi informasi. Sekarang ini, tampilan situs-situs yang ada di internet lebih dinamis. Ciri-ciri situs yang dinamis adalah bisa berinteraksi dengan pengunjung situs, bisa menampilkan informasi-informasi dari database dan halaman-halaman web bisa berubah secara otomatis. Berdasarkan tempat dijalankannya, perintah-perintah program dalam halaman web, pemrograman web dapat dikategorikan menjadi dua, yaitu server-side programming dan client-side programming. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Pada server-side programming, perintah-perintah program dijalankan di web server, sedangkan client-side programming menjalankan perintah-perintah program pada web browser. Aplikasi web berjalan pada protokol HTTP dan semua protokol yang ada di internet selalu melibatkan server dan client. 2.5. Teknologi Active Server Pages (ASP) 2.5.1. Konsep Dasar Active Server Pages (ASP) Microsoft Active Server Pages (ASP) merupakan suatu skrip yang bersifat server-side yang ditambahkan pada hypertext markup language (HTML) untuk membuat sebuah web menjadi lebih menarik, dinamis dan interaktif. Active Server Pages dikatakan bersifat server-side sebab proses pengerjaan skrip berlangsung di server, bukan di browser atau client. Akibatnya, apabila sebuah browser digunakan untuk memanggil sebuah file ASP, maka browser tersebut mengirimkan permintaan ke web server, kemudian server tersebut mengeksekusi setiap skrip yang ada dan hasilnya dikirimkan kembali ke browser tersebut. Untuk dapat menjalankan file ASP pada sebuah komputer (PC) biasa yang berbasis Windows, maka komputer tersebut perlu disimulasikan menjadi sebuah web server dengan cara menginstal Microsoft Personal Web Server (PWS) atau Microsoft Internet Information Services (IIS). Sebuah file ASP merupakan file text only yang di dalamnya berisi teks, tag HTML dan skrip ASP, sehingga dapat dikatakan bahwa file ASP sebenarnya merupakan file HTML biasa yang ke dalamnya ditambahkan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI skrip ASP. Skrip ASP dapat diletakkan di mana saja seperti halnya dalam meletakkan tag HTML. Delimiter dapat digunakan untuk membedakan antara teks, tag HTML dan skrip ASP, yaitu suatu karakter yang mengawali atau mengakhiri suatu tag atau skrip. Untuk tag HTML, delimiter yang digunakan adalah karakter < dan >. Untuk skrip ASP, delimiter yang digunakan adalah kumpulan karakter <% dan %>. 2.5.2. Visual Basic Script (VBScript) Visual Basic Script (VBScript) merupakan salah satu anggota keluarga bahasa pemrograman Visual Basic, bahkan merupakan inti dari bahasa pemrograman Visual Basic itu sendiri. Perbedaan mendasar antara Visual Basic dengan VBScript adalah bahwa Visual Basic memiliki lingkungan desain kerja (design-time environment). Dalam Visual Basic, form dapat diciptakan dan kode program dapat ditulis dengan menggunakan shell yang interaktif. Sedangkan VBScript tidak memiliki lingkungan tersendiri karena VBScript “menumpang” di dalam HTML. Browser yang paling kompatibel dengan VBScript adalah Microsoft Internet Explorer. Beberapa kemampuan VBScript dalam menambah unjuk kerja suatu halaman web antara lain adalah untuk validasi data, kalkulasi data, penyimpanan data, animasi, umpan balik multimedia ataupun memberikan tanggapan terhadap input yang diberikan oleh user. VBScript juga mendukung penggunaan ActiveX Control dan OLE. Dengan adanya teknologi internet yang lain seperti CGI, VBScript juga dapat digunakan, PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI misalnya untuk pemesanan suatu barang pada halaman web yang menyediakan layanan belanja on-line. 2.5.2.1.Tipe Data VBScript memiliki fleksibilitas dalam hal penggunaan tipe data. VBScript dapat menerima tipe data apa saja yang dimasukkan ke dalam variabel, tanpa harus diperkenalkan terlebih dahulu kepada komputer. Hal ini disebabkan karena hanya ada satu tipe data yang dikenal oleh VBScript, yaitu variant. Variant merupakan tipe data khusus yang dapat menampung berbagai informasi. Mudahnya, variant dapat menampung data berupa teks, numerik, tanggal, bahkan obyek. Sekalipun VBScript hanya mengenal satu tipe data, yaitu variant, tetapi variant itu sendiri memiliki beberapa subtipe, yaitu Empty, Null, Boolean, Byte, Integer, Currency, Long, Single, Double, Date(Time), String, Object dan Error. 2.5.2.2.Deklarasi Variabel Variabel adalah suatu tempat di memori yang dialokasikan sebagai wadah untuk menyimpan informasi yang dibutuhkan program dan nilainya dapat berubah-ubah sepanjang jalannya program. VBScript memiliki beberapa pernyataan yang digunakan untuk pendeklarasian variabel, yaitu Dim, Private dan Public. Contoh: Dim var1, var2 Public nama, alamat, Private suhu Perbedaan pernyataan di atas terletak pada ruang lingkup variabel yang digunakan. Jika menggunakan Dim atau Private, maka variabelnya PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI bersifat lokal, sedangkan jika menggunakan Public, maka variabelnya bersifat global. 2.5.2.3.Operator Operator merupakan suatu alat yang dipergunakan untuk mengolah dan memanipulasi data. VBScript mengenal beberapa tipe operator, yaitu operator penugasan, operator aritmetika, operator pembandingan dan operator logika. Operator penugasan berfungsi untuk memasukkan data ke dalam suatu variabel. Operator ini dilambangkan dengan tanda sama dengan (=). Contoh: Nilai = 1 Akhir = Awal + Waktu Nama = “Elizh” Luas = Panjang * Lebar Ada beberapa ketentuan yang harus diperhatikan dalam penggunaan operator penugasan berkaitan dengan tipe data yang akan dimasukkan ke dalam variabel, yaitu: Untuk subtipe data string digunakan tanda kutip (“), misalnya Nama = “Elizh”. Untuk subtipe data berupa tanggal dan waktu, digunakan tanda pagar (#), misalnya Tanggal = # Maret 19, 03#. Operator aritmetika adalah operator yang digunakan untuk operasi matematis. Jenis operator-operator aritmetika ini diperlihatkan pada tabel berikut: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 2.1 Jenis-jenis operator aritmetika. Operator ^ * / \ Mod + & Keterangan Digunakan untuk pemangkatan. Digunakan untuk perkalian. Digunakan untuk pembagian. Digunakan untuk pembagian, namun hasil yang diperoleh adalah integernya saja. Digunakan untuk pembagian, namun hasil yang diperoleh adalah sisa dari pembagian tersebut. Digunakan untuk penambahan. Digunakan untuk pengurangan. Digunakan untuk penggabungan string. Jika ada beberapa operator sekaligus di dalam satu operasi aritmetika, maka prioritas pengerjaannya menyesuaikan dengan konvensi yang ada di dalam matematika. Misalnya pemangkatan dijalankan pertama kali, kemudian diikuti oleh perkalian dan pembagian, lalu penambahan dan pengurangan. Contoh: 6 + 3 * 7 – 2 ^ 3 / 2 yang dikerjakan pertama adalah 2 ^ 3 = 8, kemudian 3 * 7 = 21 dan 8 / 2 = 4, lalu 6 + 21 = 27 dan 27 – 4 = 23. Operator pembandingan adalah operator yang membandingkan antara suatu nilai atau operasi matematis dengan nilai atau operasi yang lain, dan menghasilkan suatu nilai yang bersubtipe Boolean, yaitu True atau False. Yang harus diingat adalah bahwa data yang diperbandingkan harus mempunyai subtipe yang sama. Jenis operator pembandingan akan diberikan pada tabel berikut: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 2.2 Jenis-jenis operator pembandingan. Operator Deskripsi Lebih kecil Lebih besar Lebih kecil atau sama dengan Lebih besar atau sama dengan Sama dengan Tidak sama dengan Operator logika merupakan operator yang digunakan untuk membandingkan dua ekspresi perbandingan dan menghasilkan nilai yang bersifat Boolean. Jenis operator logika akan diberikan pada tabel berikut: Tabel 2.3 Jenis-jenis operator logika. Deskripsi Operator And Dan, digunakan untuk membandingkan dua ekspresi dan menghasilkan nilai True jika kedua ekspresi bernilai True Or Atau, digunakan untuk membandingkan dua ekspresi dan menghasilkan nilai True jika salah satu atau kedua ekspresi bernilai True Xor Atau yang ekslusif, digunakan untuk membandingkan dua ekspresi dan menghasilkan nilai True jika kedua ekspresi mempunyai nilai yang berbeda. Not Tidak, digunakan untuk membalik nilai dari suatu ekpresi. Eqv Sebanding, digunakan untuk membandingkan dua ekspresi dan menghasilkan nilai True jika kedua ekspresi memiliki nilai yang sama. Imp Impliksai, digunakan untuk membandingkan dua ekspresi dan akan menghasilkan nilai False jika nilai ekspresi di sebelah kiri True dan di sebelah kanan False. 2.5.2.4. Alur Percabangan Alur percabangan dapat dilakukan dengan melakukan pernyataan kondisi. Pernyataan kondisi digunakan untuk menentukan alur pemrograman apabila ada dua keadaan atau lebih yang harus dipilih sebelum pemrograman dilanjutkan ke langkah berikutnya. Ada dua PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI pernyataan kondisi yang dikenal oleh VBScript, yaitu If…Then…Else dan Select…Case. Pernyataan If…Then…Else digunakan untuk memilih salah satu dari beberapa blok pernyataan, tergantung dari nilai ekspresi yang diuji. Penggunaan pernyataan If…Then…Else adalah sebagai berikut: If kondisi 1 Then alternatif tindakan 1 [ElseIf kondisi 2 Then alternatif tindakan 2] [Else alternatif tindakan 3] End If Contoh: If skor 80 Then Nilai = “A” ElseIf skor 60 Then Nilai = “B” Else Nilai = “C” End If Pernyataan Select…Case digunakan untuk mengeksekusi satu dari beberapa blok pernyataan, tergantung dari nilai ekspresi yang diuji. Pernyataan Select…Case dapat dikatakan sebagai penyederhanaan bentuk dari If…Then…Else jika terdapat banyak alternatif kondisi. Penggunaan pernyataan Select…Case adalah sebagai berikut: Select Case tes ekspresi Case ekspresi 1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI tindakan 1 Case ekspresi 2 tindakan 2 . . . Case ekspresi n tindakan n [Case Else tindakan] End Select Contoh: Select Case Status Case “A” Bonus = 0.1 * Gaji Case “B” Bonus = 0.15 * Gaji Case “C” Bonus = 0.2 * Gaji End Select 2.5.2.5.Perulangan Perulangan digunakan untuk mengulang-ulang suatu blok pernyataan selama kondisi masih terpenuhi. Ada empat pernyataan perulangan (looping) yang dimilki oleh VBScript, yaitu Do…Loop, While…Wend, For…Next dan For Each…Next. Pernyataan Do…Loop digunakan untuk mengulang-ulang suatu blok pernyataan selama kondisi masih terpenuhi atau sampai suatu kondisi terpenuhi. Penggunaan pernyataan Do…Loop adalah sebagai berikut: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Do [{While Until} kondisi] [pernyataan] [Exit Do] [pernyataan] Loop atau Do [pernyataan] [Exit Do] [pernyataan] Loop[{While Until} kondisi] Perbedaan dari kedua penggunaan pernyataan perulangan di atas adalah sebagai berikut: Untuk pernyataan While atau Until yang diletakkan pada bagian awal, jika kondisi tidak terpenuhi, maka pernyataan di dalam blok Do…Loop tidak akan dieksekusi. Untuk pernyataan While atau Until yang diletakkan pada bagian akhir, maka pernyataan di dalam blok Do…Loop akan dieksekusi paling tidak satu kali, jika kondisi tidak terpenuhi, pengulangan baru dihentikan. Contoh: Dim X (20) A = 0 Do While A 10 X(A) = 10 * A A = A + 1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Loop atau Dim X(20) A = 0 Do Until A = 10 X(A) = 10 * A A = A + 1 Loop Pernyataan While…Wend digunakan untuk mengulang-ulang suatu blok pernyataan selama kondisi masih terpenuhi. Pernyataan While…Wend memiliki kegunaan yang sama dengan Do While…Loop. Penggunaan pernyataan While …Wend adalah sebagai berikut: While kondisi [pernyataan] Wend Contoh: While A 10 X(A) = 10 * A A = A + 1 Wend Pernyataan For…Next digunakan untuk mengulang-ulang suatu blok pernyataan jika jumlah pengulangan telah diketahui. Penggunaan pernyataan For…Next adalah sebagai berikut: For pencacah = awal To akhir [Step langkah] [pernyataan] [Exit For] [pernyataan] PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Next Contoh: For A = 1 To 10 B(A) = log(A) Next Pernyataan For Each…Next digunakan untuk mengulang-ulang suatu blok pernyataan untuk setiap elemen array atau koleksi. Penggunaan pernyataan For Each…Next adalah sebagai berikut: For Each elemen In grup [pernyataan] [Exit For] [pernyataan] Next 2.5.2.6.Prosedur Prosedur adalah sekelompok skrip yang mengerjakan tugas tertentu. Untuk menggunakan sebuah prosedur, prosedur tersebut harus dideklarasikan terlebih dahulu. Setelah dideklarasikan, prosedur tersebut dapat dipanggil dimana saja di dalam skrip. Pendeklarasian sebuah prosedur diletakkan pada bagian Header dokumen HTML, dengan demikian seluruh skrip pada bagian Body akan mengenal prosedur tersebut. Ada dua macam prosedur dalam VBScript, yaitu prosedur Sub dan prosedur Function. Perbedaan paling mendasar dari kedua macam prosedur ini adalah bahwa prosedur Function menghasilkan nilai balik (return value) sedangkan prosedur Sub tidak menghasilkan nilai balik. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Prosedur Sub adalah prosedur yang tidak menghasilkan nilai balik. Prosedur Sub dapat menerima data untuk diolah, tetapi hasil olahan tersebut tidak dapat dikembalikan pada skrip yang memanggil prosedur Sub. Sintaks deklarasi prosedur Sub adalah sebagai berikut: Sub namaprosedur([argumen1, argumen2,…,argumenn]) …skrip End Sub Namaprosedur adalah nama dari prosedur Sub. Argumen atau parameter adalah deklarasi variabel yang akan diolah di dalam prosedur Sub. Prosedur Sub dapat langsung dipanggil dengan menuliskan nama prosedurnya atau menggunakan pernyataan Call dan diikuti nama prosedurnya. Sedangkan untuk keluar dari prosedur Sub dapat dilakukan melalui dua cara berikut, yang pertama adalah apabila prosedur Sub tersebut telah berakhir yang ditandai dengan pernyataan End Sub. Yang kedua adalah dengan menggunakan pernyataan Exit. Penggunaan pernyataan Exit di sini mirip dengan penggunaan pernyataan Exit pada struktur pengulangan. Prosedur Function adalah prosedur yang menghasilkan nilai balik (return value). Nilai balik ini akan dikembalikan pada skrip yang memanggil prosedur Function. Sintaks deklarasi prosedur Function adalah sebagai berikut: Function namaprosedur([argumen1, argumen2,…,argumenn]) …skrip PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI End Function Namaprosedur adalah nama dari prosedur Function. Argumen atau parameter adalah deklarasi variabel yang akan diolah di dalam prosedur Function. Pemanggilan prosedur Function dapat dilakukan dengan menggunakan sintaks: Nbalik = namaprosedur([argumen1,argumen2,…,argumenn]) Nbalik adalah variabel yang menyimpan nilai balik dari prosedur Function. Untuk keluar dari prosedur Function, cara yang digunakan sama dengan keluar dari prosedur Sub, yaitu dengan pernyataan Exit. 2.5.3. Obyek Active Server Pages Obyek-obyek ASP merupakan obyek-obyek utama yang terdapat di dalam pemrograman ASP. Obyek-obyek ini dipergunakan untuk membuat elemen-elemen dinamis dalam halaman ASP yang memungkinkan dilakukannya interaksi antara browser dan server seperti mengirim permintaan browser, merespon permintaan ke browser dan mengumpulkan informasi user. Obyek-obyek yang dimiliki ASP adalah obyek Application (Application Object), obyek Request (Request Object), obyek Response (Response Object), obyek Server (Server Object), obyek Session (Session Object) dan obyek Object Context. Masing-masing obyek memiliki collection (koleksi), method (metode), properties (properti) dan event. Antara obyek dan nama koleksi, PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI metode, properti dan event dipisahkan dengan tanda titik, variabel yang dikirim pada method atau event diletakkan di dalam tanda kurung. Koleksi adalah tempat untuk menyimpan string, bilangan, obyek ataupun nilai-nilai lain yang dimiliki oleh obyek. Metode adalah tugas-tugas tertentu yang dapat dikerjakan oleh obyek yang bersangkutan. Properti adalah sifat dari obyek yang bersangkutan. Event merupakan suatu kumpulan skrip yang akan dijalankan bila pengguna menjalankan pemicu event tersebut. Application Object dapat digunakan untuk berbagi informasi pada suatu aplikasi di antara pemakainya. Semua aplikasi ASP didefinisikan sebagai file .asp pada virtual directory dan sub directorynya. Koleksi, metode dan event yang dimiliki oleh obyek Application dapat dilihat dalam tabel berikut: Tabel 2.4 Tabel Application Object Koleksi Contents StaticObject Metode Lock Unlock Merupakan isi dari obyek Application yang dimasukkan oleh skrip Mengandung semua obyek yang dibuat dengan tag HTML <OBJECT> Metode ini akan “mengunci” nilai variabel yang terkandung oleh obyek Application sehingga tidak bisa diakses oleh pengguna lain. Untuk membuka “kunci” metode lock. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Event Application_OnStart Event yang akan dieksekusi bila obyek Application dimulai. Application_OnEnd Event yang akan dieksekusi bila obyek Application dimulai. Object Context dapat digunakan untuk memulai atau membatalkan sebuah transaksi yang dilakukan oleh Microsoft Transaction Server (MTS). Metode dan event yang dimiliki obyek Object Context dapat dilihat dalam tabel berikut: Tabel 2.5 Tabel Object Context Metode SetComplete Metode ini mendeklarasikan bahwa skrip tidak akan mengenal alasan apapun untuk tidak melakukan transaksi. Metode ini mendeklarasikan bahwa transaksi yang telah dijalankan dibatalkan. OnTransactionCommit Event ini terjadi bila ada transaksi. SetAbort Event OnTransactionAbort Event ini terjadi bila transaksi dibatalkan. Session Object dimulai pada saat user membuka web dan berakhir pada saat user menutup browser atau pada saat Session tersebut mencapai waktu timeout. Koleksi, metode, properti dan event yang dimiliki oleh obyek Session dapat dilihat dalam tabel berikut: Tabel 2.6 Tabel Session Object Koleksi Contents Berisi semua item yang didapat penggunaan Session tertentu. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI StaticObject Properti CodePage Berisi semua obyek yang dibuat dengan tag <OBJECT> pada Session tertentu. Kode-kode yang digunakan untuk mapping. LCID Merupakan suatu (identifier) lokasi. penanda SessionID Merupakan identitas suatu Session. TimeOut Metode Event Merupakan waktu timeout untuk waktu Session (dalam menit). Abandon Membuang semua informasi pada suatu Session. Session_OnStart Terjadi bila suatu Session dimulai. Session_OnEnd Terjadi bila suatu Session berhenti. Response Object sangat penting dalam ASP. Response, sesuai dengan namanya, akan mengirimkan data yang diinginkan ke client. Koleksi, metode dan properti yang dimiliki oleh obyek Response dapat dilihat dalam tabel berikut: Tabel 2.7 Tabel Response Object Koleksi Cookies Properti Buffer Menetapkan nilai dari cookie. Menentukan apakah output ke browser akan ditunda atau tidak. CacheControl Menetukan apakah proxy server dapat menangani output dari server ASP. Charset Menetukan tipe dari karakter set pada bagian content-type header. ContentType Menentukan ContentType sebuah HTTP. Expires Menentukan lamanya sebuah halaman web akan tersimpan dari PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI dalam memori browser (sering dikenal dengan cache). ExpiresAbsolute Menentukan tanggal sebuah halaman web akan terhapus dari cache sebuah browser. IsClientConnected Mencek apakah sebuah browser terputus koneksinya dari server. Metode Pics Menetapkan nilai dari PICS label pada Response header. Status Menetapkan nilai dari status yang dikembalikan oleh server. Menetapkan nilai dari HTML header. AddHeader AppendToLong Menambahkan suatu string ke dalam server log. BinaryWrite Memberikan output tanpa konversi ke karakter set apapun. Clear Menghilangkan data-data yang tertunda oleh properti Buffer. End Menghentikan proses pengerjaan file ASP. Flush Mengirimkan data-data yang tertunda oleh properti Buffer. Redirect Mengirimkan pesan ke browser yang mengarahkan browser untuk menuju alamat URL tertentu. Write Menulis output sebagai sebuah string. Request Object merupakan kebalikan dari Response Object karena Request Object akan melakukan pengambilan data dari client untuk PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI diproses lebih lanjut. Koleksi, metode dan properti yang dimiliki oleh obyek Request dapat dilihat dalam tabel berikut: Tabel 2.8 Tabel Request Object Koleksi Metode ClientCertificate Mengambil niali dari field yang tersimpan pada ClientCertificate yang dikirimkan browser ke server. Cookies Mengambil nilai dari Cookies yang dikirimkan browser ke server. Form Mengambil nilai dari elemen Form yang dikirimkan browser ke server. QueryString Mengambil nilai dari QueryString yang dikirimkan browser ke server . ServerVariables Mengambil nilai dari ServerVariables yang dikirimkan browser ke server. Mengambil data yang dikirimkan ke server sebagai bagian dari POST Request. Menghitung jumlah bit yang dikirimkan oleh browser. BinaryRead Properti TotalBytes Server Object dapat melakukan akses ke methods atau properties yang ada di server. Metode dan properti yang dimiliki oleh obyek Server dapat dilihat dalam tabel berikut: Tabel 2.9 Tabel Server Object Metode CreateObject Membuat sebuah komponen server. HTMLEncode Menetapkan penyandian terhadap sebuah string. HTML PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI MapPath Memetakan sebuah virtual path atau relative path menjadi physical path. URLEncode Menetapkan penyandian terhadap sebuah string. Lamanya sebuah skrip dieksekusi. Properti ScriptTimeout URL dapat 2.5.4. Basis Data Pada Active Server Pages Basis data seringkali digunakan untuk berbagai keperluan dalam aplikasi ASP, karena salah satu keistimewaan dari file .asp adalah penanganan basis data. Structured Query Language (SQL) merupakan bahasa standar yang digunakan dalam basis data. Bahasa ini mengandung perintah-perintah yang dapat digunakan untuk memasukkan, mengubah, menghapus maupun memilih data. Sebuah ekspresi SQL dasar sebenarnya hanya terdiri atas tiga klausa, yaitu select, from dan where. Klausa select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query. Klausa from digunakan untuk menetapkan tabel (atau gabungan tabel) yang akan ditelusuri selama query data dilakukan. Klausa where, yang sifatnya opsional, digunakan sebagai predikat (kriteria) yang harus dipenuhi dalam memperoleh hasil query. Cara penulisan (sintaks) dari ekspresi SQL dasar dengan tiga klausa di atas adalah: select A1 [ , A2 , … , An] from t1 [ , t2, … , tm] [where P] PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI dimana A1,A2,…,An merupakan daftar atribut, t1, t2,…,tm merupakan daftar tabel, P merupakan predikat query, [ ] merupakan tanda opsional (boleh digunakan, boleh tidak digunakan). 2.5.5. ActiveX Data Objects (ADO) ActiveX Data Objects (ADO) merupakan komponen dalam ASP yang tidak kalah penting karena ActiveX Data Objects berfungsi untuk berinteraksi dengan berbagai sumber data. ActiveX Data Objects mendukung akses penuh terhadap berbagai macam jenis basis data yang mendukung format Open Data Base Connectifity (ODBC) seperti Microsoft Access dBase, Oracle, Visual Foxpro atau SQL Server sehingga ActiveX Data Objects memungkinkan aplikasi client untuk mengakses dan memanipulasi data dari database server melalui provider OLE DB. ActiveX Data Objects memiliki 9 obyek, yaitu Command, Connection, Recordset, Record, Stream, Error, Field, Parameter dan Property. Masing-masing obyek tersebut memiliki salah satu atau lebih properti, metode dan event. Obyek Command digunakan untuk menjalankan perintah-perintah seperti menjalankan pernyataan SQL, query database maupun prosedur tersimpan yang berguna untuk mengeksekusi sumber data. Obyek Connection digunakan untuk membuat koneksi yang memungkinkan akses ke suatu sumber data. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Obyek Recordset digunakan untuk menempatkan set data dari tabel basis data atau hasil dari perintah yang dieksekusi. Obyek Recordset hanya merujuk pada satu data di dalam set data sebagai current record. Obyek Recordset ini juga dikenal dengan istilah cursor. Obyek Record merujuk pada sebuah baris dari Recordset atau obyek yang tersimpan oleh data provider semistructur seperti file atau direktori. Obyek Stream digunakan untuk menunjukkan aliran dari data biner atau teks. Obyek Stream dapat digunakan untuk memanipulasi field atau record yang berisi aliran data. Obyek Stream dapat juga digunakan untuk meletakkan data untuk berbagai keperluan aplikasi. Obyek Error digunakan untuk mendefinisikan secara detail kesalahan yang terjadi. Setiap terjadi kesalahan, satu atau lebih obyek Error akan tersimpan di dalam koleksi error pada obyek Connection. Obyek Field menunjukkan kepada sebuah kolom di dalam Recordset. Obyek Field berada di dalam koleksi field pada obyek Recordset. Obyek Parameter digunakan untuk menunjukkan hubungan parameter dengan query atau argumen dan prosedur tersimpan. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Obyek Property terdiri atas dua tipe, yaitu Built In dan Dynamic. Property Built In adalah properti yang terletak di dalam ActiveX Data Object dan ada bersama dengan obyek baru. Property Dynamic adalah properti yang didasarkan pada data provider dan muncul di dalam koleksi properti. 2.5.6. Cara Mengakses Basis Data Untuk membuat koneksi ke sumber data dapat dilakukan dengan dua cara, yaitu ODBC (Open Database Connectivity) dan OLE DB (Object Linking and Embedding DataBase). Kelebihan OLE DB disbanding ODBC adalah mampu mengakses dengan lebih cepat dan lebih stabil. Namun, ODBC memiliki lebih banyak driver database dibanding OLE DB. Untuk membuat koneksi ke sumber data, terlebih dahulu perlu diketahui tentang connection string yang digunakan oleh masing-masing sumber data. Connection string ini berguna untuk menempatkan dan mengidentifikasi sumber data. Berikut ini adalah beberapa connection string untuk beberapa sumber data. Tabel 2.10 Tabel Connection String OLE DB Sumber Data Microsoft Accsess Connection String OLE DB Provider = Microsoft.Jet.OLEDB.4.0; Data Source = physical path.mdb Microsoft SQL Server Provider = SQLOLEDB.1; Data Source = path databse di server Oracle Provider = MSDAORA.1; Data Source = path database di server Microsoft Indexing Service Provider = MSIDXS.1; Data Source = path file Sedangkan connection string pada ODBC dapat dilihat pada tabel berikut ini: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 2.11 Tabel Connection String ODBC Sumber Data Micrososft Access Microsoft SQL Server Oracle Microsoft Excel Microsoft Excel 97 Paradox Text Microsoft Visual FoxPro® (with a database container) Microsoft Visual FoxPro (without a database container) Connection String ODBC Driver = {Microsoft Access Driver (*.mdb)} DBQ = physical path.mdb Driver = {SQL Server}; Server = path ke server Driver = {Microsoft ODBC for Oracle} Server = path ke server Driver = {Microsoft Excel Driver (*.xls)}; DBQ = physical path file.xls; DriverID = 278 Driver = {Microsoft Excel Driver (*.xls)}; DBQ = physical path.xls; DriverID = 790 Driver = {Microsoft Paradox Driver (*.db)}; DBQ = physical path file.db; DriverID = 26 Driver = {Microsoft Text Driver (*.txt;*.csv)}; DefaultDir = physical path file.txt Driver = {Microsoft Visual FoxPro Driver}; SourceType = DBF; SourceDb = physical path file.dbf Driver = {Microsoft Visual FoxPro Driver}; SourceType = DBF; SourceDb = physical path file.dbf Contoh: Untuk membuat koneksi ke database dengan provider OLE DB: <% Set con = Server.CreateObject(“ADODB.Connection”) con.open “Provider=Microsoft.Jet.OLEDB.4.0;” &_ “Data Source=C:\Data.mdb;” %> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Untuk membuat koneksi ke database dengan provider ODBC: <% Set con = Server.CreateObject(“ADODB.Connection”) con.open “Driver={Microsoft Access Driver(*.mdb)};DBQ=C:\Data.mdb;” %> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB III ANALISA DAN PERANCANGAN SISTEM 3.1. Analisa Masalah Provinsi Papua merupakan provinsi yang memiliki banyak keragaman budaya, mengingat banyak pula ragam suku yang mendiami provinsi tersebut. Di Papua terdapat dua ratus lima puluh suku yang tersebar di seluruh daerah pesisir pantai dan daerah pegunungan. Masalah yang ada adalah bahwa “dunia luar” selalu mengidentikkan orang Papua dengan ciri yang sama, yaitu orang Papua adalah orang yang selalu “telanjang” karena “hanya” menggunakan koteka. Orang Papua yang menggunakan koteka sebagai busana mereka merupakan orang Papua yang berasal dari suku Dani. Selain suku Dani, orang Papua juga ada yang berasal dari suku Ekari, suku Amungme, suku Kamoro dan suku-suku lainnya. Berdasarkan permasalahan di atas, maka penulis berpikir untuk mengembangkan suatu sistem yang mampu memberikan informasi tentang suku-suku di Papua, yang dapat diakses oleh user dari mana saja dan pada saat kapan saja. Oleh sebab itu, penulis ingin mengembangkan sistem informasi yang berbasis web tentang suku-suku di Papua. Namun, sistem informasi yang akan dikembangkan ini harus memiliki karakteristik sebagai berikut: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 1. Praktis (efficiency). Sistem informasi yang dikembangkan harus lebih praktis dalam menyajikan informasi, sehingga informasi dapat diperoleh dengan cepat dan tepat hanya melalui suatu proses pencarian (searching). 2. Sederhana (simplicity). Sistem informasi yang dikembangkan, diharapkan tidak terlalu rumit dalam penggunaan sehingga user tidak canggung untuk menggunakan sistem ini. 3. Mudah diakses (accessibility). Sistem informasi yang dikembangkan harus mampu memberikan kemudahan bagi user untuk dapat mengakses data secara langsung. 4. Bernilai ekonomis (economy). Selama ini, informasi tentang suku-suku di Papua dapat diperoleh melalui brosur maupun jurnal pariwisata yang dikeluarkan oleh Dinas Pariwisata tingkat kabupaten atau kotamadya maupun Dinas Pariwisata tingkat provinsi. Hal ini menyebabkan keterbatasan informasi yang bisa diberikan dan mahalnya biaya yang harus dikeluarkan untuk selalu mencetak brosur maupun jurnal dalam jumlah yang banyak. Sistem yang dikembangkan ini diharapkan mampu memberikan informasi yang selalu dibutuhkan oleh user tanpa batas waktu dan tempat dengan biaya yang relatif lebih murah. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3.2. Analisa Kebutuhan Sistem informasi tentang suku-suku di Papua yang akan dikembangkan ini akan dikelola oleh administrator dan digunakan oleh pengunjung sistem yang disebut user. Pengunjung adalah masyarakat umum yang memanfaatkan feature search engine untuk mencari informasi tentang suku-suku di Papua. Administrator adalah pihak yang bertanggung jawab atas pemeliharaan dan pengelolaan sistem. Dalam “Pengembangan Sistem Informasi Berbasis Web tentang Suku-suku di Papua” ini akan digunakan alat bantu perangkat lunak (software) berupa sistem operasi Windows dengan menggunakan Microsoft Active Server Pages (ASP) untuk menghasilkan antar muka web yang dinamis dan interaktif, sehingga menarik bagi user. Perangkat lunak basis data (software database) yang digunakan adalah Microsoft Access dan untuk menampilkannya pada web digunakan Microsoft Internet Explorer dan Internet Information Services (IIS). 3.3. Perancangan Sistem Berdasarkan uraian yang terdapat pada analisa masalah dan analisa kebutuhan, maka dapat diketahui bahwa sistem informasi yang akan dikembangkan ini memuat satu hal mendasar, yaitu feature search engine. Secara umum, pengguna (user) pada sistem informasi yang akan dikembangkan ini ada dua, yaitu pengunjung dan administrator. Pengunjung merupakan user yang memanfaatkan feature search engine untuk mencari informasi yang dibutuhkan. Pencarian dapat dilakukan berdasarkan kata PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI kunci. Administrator adalah pihak yang bertanggung jawab atas pemeliharaan dan pengelolaan sistem. Administrator berhak memberikan kekuasaan kepada pengunjung untuk mengakses data apa saja. Pengguna sistem (user) informasi suku Sistem Informasi tentang suku-suku di Papua detail suku data suku username;password Pengelola sistem (administrator) Gambar 3.1 Diagram Konteks 3.4. Perancangan Proses Proses yang terjadi dalam ‘Pengembangan Sistem Informasi Berbasis Web tentang Suku-suku di Papua’ ini dapat dilihat dari dua sisi, yaitu sisi administrator dan sisi pengunjung (user). A. Perancangan Proses Sisi Adiministrator. Pada sisi administrator terdapat dua proses, yaitu: 1. Proses login dan validasi administrator. Dalam proses ini, administrator memasukkan identitas berupa nama administrator dan password administrator. Pengecekan akan dilakukan berdasarkan data yang dimasukkan, apakah nama dan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI password yang diisikan sesuai dengan data yang terdapat dalam database. Jika data tersebut sudah sesuai, maka administrator dapat melakukan proses selanjutnya, yaitu proses edit kategori. 2. Proses edit kategori. Dalam proses ini, administrator dapat melakukan pengeditan kategori baik itu penambahan maupun penghapusan kategori berdasarkan kebutuhan pengguna sistem (user). nama; password 1 hasil validasi nama; password database administrator validasi data administrator yang valid administrator data suku yang telah diedit data suku yang diedit 2 database suku edit kategori data suku yang akan diedit; hasil edit kategori data suku yang akan diedit Gambar 3.2 DFD level 1 sisi administrator PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.1 tambah data suku tambah data data yang telah ditambahkan database suku hasil tambah data administrator data yang telah dihapus 2.2 data yang dihapus hapus data hasil data yang dihapus Gambar 3.3 DFD level 2 proses 2 sisi administrator B. Perancangan Proses Sisi Pengunjung (user). Pada sisi pengunjung, proses yang terjadi adalah proses pencarian data (searching). Proses ini digunakan oleh pengunjung untuk mencari data yang diinginkan. Pencarian dapat dilakukan berdasarkan kata kunci. Dari gambaran yang terdapat pada perancangan sistem secara umum, proses-proses yang terjadi dalam sistem yang akan dikembangkan ini dapat dipecah lagi menjadi proses-proses yang lebih dalam. Proses-proses yang lebih dalam tersebut ditunjukkan oleh Data Flow Diagram (DFD) level 0 yang dapat dilihat dari dua sisi, yaitu sisi administrator dan sisi pengunjung (user). Berikut ini akan digambarkan DFD level 0 untuk sisi administrator. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Di bawah ini akan digambarkan DFD level 1 untuk sisi pengunjung (user). data suku yang dicari user searching data suku database suku hasil pencarian Gambar 3.4 DFD level 1 sisi pengunjung (user) 3.5. Perancangan Basis Data Dalam sistem yang dikembangkan ini, terdapat dua entitas, yaitu entitas administrator dan entitas suku. Entitas administrator mempunyai dua atribut, yaitu nama dan password. Entitas suku mempunyai beberapa atribut, yaitu nama_suku, agama_suku, bahasa_tradisional, karakteristik_suku dan budaya_asli. Kedua entitas dalam sistem ini tidak saling bergantung, maka tidak ada relasi antar keduanya. 3.6. Kamus Data Nama = {A-Z│a-z}30 Password = {A-Z│a-z}30 {0│1│2│3│4│5│6│7│8│9}10 Nama_suku = {A-Z│a-z}30 Agama_suku = {A-Z│a-z}30 Bahasa_tradisional = {A-Z│a-z}30 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Karakteristik_suku = {A-Z│a-z}50 Budaya_asli = {A-Z│a-z}50 Gambar = {A-Z│a-z}30 3.7. Perancangan Antar Muka (User Interface) A. Perancangan Antar Muka Sisi Administrator. Halaman login administrator. Halaman Login Nama : Password : Login Gambar 3.5 Rancangan tampilan login administrator Halaman administrator. Cari Data Menu Tabel Gambar 3.6 Rancangan tampilan halaman administrator PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI B. Perancangan Antar Muka Sisi Pengunjung (user). Halaman depan. Tanggal G am bar M enu Isi (Content) Cari D ata Gambar 3.7 Rancangan halaman depan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Halaman suku. Daftar Suku Daftar Suku Nama Gambar Detail Detail Suku Gambar Nama suku Agama suku Bahasa tradisional Karakteristik suku Budaya asli Keterangan Gambar 3.8 Rancangan halaman suku PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3.8. Struktur Menu A. Struktur Menu Sisi Administrator. Halaman utama Form login administrator Form tambah data Form edit data Form hapus data Data suku Data suku Data suku Gambar 3.9 Struktur menu sisi admininstrator B. Struktur Menu Sisi Pengunjung (user). Halaman utama Cari data (searching) Links Data suku Pemerintah Gambar 3.10 Struktur menu sisi user Kontak PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB IV IMPLEMENTASI 4.1. Implementasi Basis Data Implementasi basis data yang digunakan dalam sistem ini terdiri atas sebuah database yang memuat dua buah tabel, yaitu tabel administrator dan tabel suku. Tabel 4.1 Tabel administrator Field Nama Password Type Varchar Varchar Ukuran 30 10 Tabel 4.2 Tabel suku Field Nama_suku Agama_suku Bahasa_tradisional Karakteristik_suku Budaya_asli Gambar Type Varchar Varchar Varchar Longtext Text Varchar Ukuran 30 30 30 345 255 30 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4.2. Implementasi Antar Muka A. Antar Muka Sisi Administrator. Gambar 4.1 Form login administrator Gambar 4.2 Form Tambah data Gambar 4.3 Form Hapus data PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI B. Antar Muka Sisi User. Gambar 4.5 Halaman utama Gambar 4.6 Proses pencarian PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4.3. Implementasi Program A. Proses Pada Sisi Administrator. 1. Proses Login <!--#include file="ewconfig.asp"--> <!--#include file="db.asp"--> <!--#include file="tabel_admininfo.asp"--> <!--#include file="advsecu.asp"--> <!--#include file="aspmkrfn.asp"--> <% Response.Expires = 0 Response.ExpiresAbsolute = Now() - 1 Response.AddHeader "pragma", "no-cache" Response.AddHeader "cache-control", "private, no-cache, nostore, must-revalidate" %> <% If Request.Form("submit") <> "" Then bValidPwd = False ' Setup variables snama = Request.Form("Nama") spassword = Request.Form("Password") If ValidateUser(sNama, sPassword) Then ' Write cookies sLoginType = LCase(Request.Form("rememberme")) If sLoginType = "a" Then Response.Cookies(ewProjectName)("autologin") = "autologin" Response.Cookies(ewProjectName)("nama") = sNama Response.Cookies(ewProjectName)("password") = sPassword Response.Cookies(ewProjectName).Expires = DateAdd("d", 365, Date) ' Change the expiry date of the cookies here ElseIf sLoginType = "u" Then Response.Cookies(ewProjectName)("autologin") = "rememberNama" Response.Cookies(ewProjectName)("nama") = sNama Response.Cookies(ewProjectName).Expires = DateAdd("d", 365, Date) ' Change the expiry date of the cookies here Else Response.Cookies(ewProjectName)("autologin") = "" End If Session(ewSessionStatus) = "login" Response.Redirect "default.asp" Else Session(ewSessionMessage) = "Incorrect nama or password" End If PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Else If IsLoggedIn Then If Session(ewSessionMessage) = "" Then Response.Redirect "default.asp" Else ' Check auto login If Request.Cookies(ewProjectName)("autologin") = "autologin" Then sNama = Request.Cookies(ewProjectName)("nama") sPassword = Request.Cookies(ewProjectName)("password") If ValidateUser(sNama, sPassword) Then Response.Redirect "default.asp" End If End If End If End If %> <!--#include file="header.asp"--> <script type="text/javascript" src="ew.js"></script> <script type="text/javascript"> <!-function EW_checkMyForm(EW_this) { if (!EW_hasValue(EW_this.nama, "TEXT" )) { if (!EW_onError(EW_this, EW_this.nama, "TEXT", "Please enter user ID")) return false; } if (!EW_hasValue(EW_this.password, "PASSWORD" )) { if (!EW_onError(EW_this, EW_this.password, "PASSWORD", "Please enter password")) return false; } return true; } //--> </script> <p><span class="aspmaker">LOGIN</span></p> <% If Session(ewSessionMessage) <> "" Then %> <p><span class="ewmsg"><%= Session(ewSessionMessage) %></span></p> <% Session(ewSessionMessage) = "" ' Clear message End If %> <form action="login.asp" method="post" onSubmit="return EW_checkMyForm(this);"> <table border="0" cellspacing="0" cellpadding="4"> <tr> <td><span class="aspmaker">Nama</span></td> <td><span class="aspmaker"><input type="text" name="nama" size="30"></span></td> </tr> <tr> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI <td><span class="aspmaker">Password</span></td> <td><span class="aspmaker"><input type="password" name="password" size="10"></span></td> </tr> <tr> <td>&nbsp;</td> <td><span class="aspmaker"> <% If Request.Cookies(ewProjectName)("autologin") = "autologin" Then %> <input type="radio" name="rememberme" value="a" checked>Auto login until I logout explicitly<br> <input type="radio" name="rememberme" value="u">Save my user name<br><input type="radio" name="rememberme" value="n">Always ask for my user name and password <% ElseIf Request.Cookies(ewProjectName)("autologin") = "rememberUsername" Then %> <input type="radio" name="rememberme" value="a">Auto login until I logout explicitly<br> <input type="radio" name="rememberme" value="u" checked>Save my user name<br> <input type="radio" name="rememberme" value="n">Always ask for my user name and password <% Else %> <input type="radio" name="rememberme" value="a">Auto login until I logout explicitly<br> <input type="radio" name="rememberme" value="u">Save my user name<br> <input type="radio" name="rememberme" value="n" checked>Always ask for my user name and password <% End If%> </span></td> </tr> </tr> <tr> <td colspan="2" align="center"><span class="aspmaker"><input type="submit" name="submit" value="Login"></span></td> </tr> </table> </form> <br> <p><span class="aspmaker"> </span></p> <% ' Function to validate user Function ValidateUser(Nama, Password) ValidateUser = False Dim CaseSensitive, AdminNama, AdminPassword CaseSensitive = False ' Modify case sensitivity here ' Check other users If Not ValidateUser Then Set conn = Server.CreateObject("ADODB.Connection") conn.open xDb_Conn_Str PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI sFilter = "([nama] = '" & AdjustSql(Nama) & "')" sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "") Set rs = conn.Execute(sSql) If Not rs.Eof Then If CaseSensitive Then ValidateUser = (rs("password") = Password) Else ValidateUser = (LCase(rs("password")) = LCase(Password)) End If If ValidateUser Then Session(ewSessionStatus) = "login" Session(ewSessionNama) = rs("nama") ' Load user name Session(ewSessionSysAdmin) = 0 ' Non System Administrator End If End If rs.Close Set rs = Nothing conn.Close Set conn = Nothing End If End Function %><!--#include file="footer.asp"--> 2. Proses Tambah Data <form name="Suku" method="Post" action="tambahs.asp"> <table width="4025"> <tr><td>Nama suku: </td> <td width="3690"><input type="text" name="nama suku" size="25"></td></tr> <tr><td>Agama suku: </td> <td width="3690"><input type="text" name="agama" size="50"></td></tr> <tr><td>Bahasa tradisional: </td> <td width="3690"><input type="text" name="bahasa" size="50"></td></tr> <tr><td>Karakteristik: </td></tr> <tr><td><textarea cols="40" name="karakteristik" rows="2" ></textarea></td></tr> <tr><td>Budaya asli: </td> <td width="3690"><input type="text" name="budaya" size="50"></td></tr> <tr><td>Gambar: </td> <td width="3690"><input type="text" name="gambar" size="50"> <input type="submit" value="Browse" name="Submit"></td></tr> </table> <input type="submit" name="Submit" value="Submit"> </form> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3. Proses Hapus Data <!--#include file="ewconfig.asp"--> <!--#include file="db.asp"--> <!--#include file="tabel_sukuinfo.asp"--> <!--#include file="advsecu.asp"--> <!--#include file="aspmkrfn.asp"--> <!--#include file="ewupload.asp"--> <% Response.Expires = 0 Response.ExpiresAbsolute = Now() - 1 Response.AddHeader "pragma", "no-cache" Response.AddHeader "cache-control", "private, no-cache, nostore, must-revalidate" %> <% If Not IsLoggedIn Then Response.Redirect "login.asp" %> <% ' Initialize common variables x_nama = Null: ox_nama = Null: z_nama = Null x_agama = Null: ox_agama = Null: z_agama = Null x_bahasa = Null: ox_bahasa = Null: z_bahasa = Null x_karakteristik = Null: ox_karakteristik = Null: z_karakteristik = Null x_budaya = Null: ox_budaya = Null: z_budaya = Null x_gambar = Null: ox_gambar = Null: z_gambar = Null %> <% Response.Buffer = True ' Load Key Parameters sKey = "": bSingleDelete = True x_nomor = Request.QueryString("nomor") If x_nomor <> "" Then If Not IsNumeric(x_nomor) Then Response.Redirect "tabel_sukulist.asp" ' prevent sql injection End If If sKey <> "" Then sKey = sKey & "," sKey = sKey & x_nomor Else bSingleDelete = False End If If Not bSingleDelete Then sKey = Request.Form("key_d") End If If sKey = "" Or IsNull(sKey) Then Response.Redirect "tabel_sukulist.asp" arRecKey = Split(sKey&"", ",") i = 0 Do While i <= UBound(arRecKey) sDbWhere = sDbWhere & "(" PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ' Remove spaces sRecKey = Trim(arRecKey(i+0)) If Not IsNumeric(sRecKey) Then Response.Redirect "tabel_sukulist.asp" ' prevent sql injection End If ' Build the SQL sDbWhere = sDbWhere & "[nomor]=" & AdjustSql(sRecKey) & " AND " If Right(sDbWhere, 5) = " AND " Then sDbWhere = Left(sDbWhere, Len(sDbWhere)-5) & ") OR " i = i + 1 Loop If Right(sDbWhere, 4) = " OR " Then sDbWhere = Left(sDbWhere, Len(sDbWhere)-4) ' Get action sAction = Request.Form("a_delete") If sAction = "" Or IsNull(sAction) Then sAction = "I" ' Display record End If ' Open connection to the database Set conn = Server.CreateObject("ADODB.Connection") conn.Open xDb_Conn_Str Select Case sAction Case "I": ' Display If LoadRecordCount(sDbWhere) <= 0 Then conn.Close ' Close Connection Set conn = Nothing Response.Clear Response.Redirect "tabel_sukulist.asp" End If Case "D": ' Delete If DeleteData(sDbWhere) Then Session(ewSessionMessage) = "Delete Successful" conn.Close ' Close Connection Set conn = Nothing Response.Clear Response.Redirect "tabel_sukulist.asp" End If End Select %> <!--#include file="header.asp"--> <p><span class="aspmaker">Delete from TABLE : tabel suku<br><br><a href="tabel_sukulist.asp">Back to List</a></span></p> <% If Session(ewSessionMessage) <> "" Then %> <p><span class="ewmsg"><%= Session(ewSessionMessage) %></span></p> <% Session(ewSessionMessage) = "" ' Clear message End If PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI %> <form action="tabel_sukudelete.asp" method="post"> <p> <input type="hidden" name="a_delete" value="D"> <input type="hidden" name="key_d" value="<%= sKey %>"> <table class="ewTable"> <tr class="ewTableHeader"> <td valign="top" width="71">Nama suku</td> <td valign="top">&nbsp;&nbsp;&nbsp;&nbsp; Agama suku</td> <td valign="top">&nbsp;&nbsp;&nbsp;&nbsp; Bahasa tradisional</td> <td valign="top">&nbsp;&nbsp;&nbsp;&nbsp; Karakteristik</td> <td valign="top">&nbsp;&nbsp;&nbsp;&nbsp; Budaya asli</td> <td valign="top">&nbsp;&nbsp;&nbsp;&nbsp; Gambar</td> </tr> <% nRecCount = 0 i = 0 Do While i <= UBound(arRecKey) nRecCount = nRecCount + 1 ' Set row color sItemRowClass = " class=""ewTableRow""" ' Display alternate color for rows If nRecCount Mod 2 <> 0 Then sItemRowClass = " class=""ewTableAltRow""" End If sRecKey = Trim(arRecKey(i+0)) x_nomor = sRecKey If LoadData() Then %> <tr<%=sItemRowClass%>> <td width="71"><span> <% Response.Write x_nama %> </span></td> <td><span> <% Response.Write x_agama %> </span></td> <td><span> <% Response.Write x_bahasa %> </span></td> <td><span> <% Response.Write x_karakteristik %> </span></td> <td><span> <% Response.Write x_budaya %> </span></td> <td><span> <% Response.Write x_gambar %> </span></td> </tr> <% PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI End If i = i + 1 Loop %> </table> <p> <input type="submit" name="Action" value="Hapus"> </form> <% conn.Close ' Close Connection Set conn = Nothing %> <!--#include file="footer.asp"--> <% '-----------------------------------------------------------------------------' Function LoadData ' - Load Data based on Key Value ' - Variables setup: field variables Function LoadData() Dim rs, sSql, sFilter sFilter = ewSqlKeyWhere If Not IsNumeric(x_nomor) Then LoadData = False Exit Function End If sFilter = Replace(sFilter, "@nomor", AdjustSql(x_nomor)) ' Replace key value sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "") Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sSql, conn If rs.Eof Then LoadData = False Else LoadData = True rs.MoveFirst ' Get the field contents x_nomor = rs("nomor") x_nama = rs("nama") x_gambar = rs("gambar") x_agama = rs("agama") x_bahasa = rs("bahasa") x_budaya = rs("budaya") x_karakteristik = rs("karakteristik") x_keterangan = rs("keterangan") End If rs.Close Set rs = Nothing End Function %> <% PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI '-----------------------------------------------------------------------------' Function LoadRecordCount ' - Load Record Count based on input sql criteria sqlKey Function LoadRecordCount(sqlKey) On Error Resume Next Dim rs, sSql, sFilter sFilter = sqlKey sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "") Set rs = Server.CreateObject("ADODB.Recordset") rs.CursorLocation = 2 rs.Open sSql, conn, 1, 2 LoadRecordCount = rs.RecordCount rs.Close Set rs = Nothing If Err.Number <> 0 Then Session(ewSessionMessage) = Err.Description End If End Function %> <% '-----------------------------------------------------------------------------' Function DeleteData ' - Delete Records based on input sql criteria sqlKey Function DeleteData(sqlKey) On Error Resume Next Dim rs, sSql, sFilter Dim rsold sFilter = sqlKey sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "") Set rs = Server.CreateObject("ADODB.Recordset") rs.CursorLocation = 2 rs.Open sSql, conn, 1, 2 If Err.Number <> 0 Then Session(ewSessionMessage) = Err.Description rs.Close Set rs = Nothing DeleteData = False Exit Function End If ' Clone old rs object Set rsold = CloneRs(rs) ' Call recordset deleting event DeleteData = Recordset_Deleting(rs) If DeleteData Then Do While Not rs.Eof rs.Delete If Err.Number <> 0 Then PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Err.Description Session(ewSessionMessage) = DeleteData = False Exit Do End If rs.MoveNext Loop End If rs.Close Set rs = Nothing ' Call recordset deleted event If DeleteData Then Call Recordset_Deleted(rsold) End If rsold.Close Set rsold = Nothing End Function '-----------------------------------------------------------------------------' Recordset deleting event Function Recordset_Deleting(rsold) On Error Resume Next ' Please enter your customized codes here Recordset_Deleting = True End Function '-----------------------------------------------------------------------------' Recordset deleted event Sub Recordset_Deleted(rsold) On Error Resume Next Dim table table = "tabel_suku" End Sub %> B. Proses Pada Sisi User. 1. Proses Pencarian. <%@ LANGUAGE="VBSCRIPT" %> <% Function RandomNumber(intHighestNumber) Randomize RandomNumber = Int(intHighestNumber * Rnd) + 1 End Function halaman = Request.QueryString.Item("p") if halaman = "" then halaman = 1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="description" content="Joomla - the dynamic portal engine and content management system"> <meta name="keywords" content="Joomla, joomla"> <meta name="Generator" content="Joomla! - Copyright (C) 2005 Open Source Matters. All rights reserved."> <meta name="robots" content="index, follow"> <link rel="shortcut icon" href="http://tts-smallcity.thetemplate-shop.com/images/favicon.ico"> <link rel="stylesheet" type="text/css" href="template/css/template_css.css"> <title>Papua OnLine - E-Informasi Tentang Suku Asli Papua</title> </head> <body> <table id="top" align="center" border="0" cellpadding="0" cellspacing="0" width="959"> <tbody><tr> <td> </td> </tr> </tbody></table> <table id="content" align="center" border="0" cellpadding="0" cellspacing="0" width="699"> <tbody><tr> <td align="left" valign="top" width="215"> <div id="newsflash"> <table class="moduletable" cellpadding="0" cellspacing="0"> <tbody><tr> <th valign="top"> Selamat Datang </th> </tr> <tr> <td> <table class="contentpaneopen" width="240"> <tbody><tr> <td colspan="2" valign="top"> Selamat Datang dalam Sistem Informasi tentang Suku-suku di Papua<%=Time()%> </td> </tr> </tbody></table> <span class="article_seperator">&nbsp;</span> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI </td> </tr> </tbody></table> </div> <div id="user3"> <table class="moduletable" cellpadding="0" cellspacing="0"> <tbody><tr> <th valign="top"> Gambar </th> </tr> <tr> <td> <br><center> <% dim img(5) img(1)="gambar/im_1.jpg" img(2)="gambar/im_2.jpg" img(3)="gambar/im_3.jpg" img(4)="gambar/im_4.jpg" img(5)="gambar/im_5.jpg" gambar = img(RandomNumber(5)) %> <img src="<%=gambar%>"></center><br>&nbsp; </td> </tr> </tbody></table> </div> <div id="user4"> <table class="moduletable" cellpadding="0" cellspacing="0"> <tbody><tr> <th valign="top"> Cari Suku </th> </tr> <tr> <td> <form action="default.asp?p=2" method="post" name="login"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody><tr> <td> <label for="mod_login_username"> Masukkan kata kunci </label> <br> <input name="keyword" id="kunci" class="inputbox" alt="kunci" size="10" type="text"> <br> <br> <input name="Submit" class="button" value="Cari Data" type="submit"> </td> </tr> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI </tbody></table> </form> </td> </tr> </tbody></table> </div> </td> <td id="middle" valign="top" width="4"> <div id="sitename"></div> <div id="menu"> <table class="moduletable" cellpadding="0" cellspacing="0"> <tbody><tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr align="left"><td>&nbsp;</td></tr> <tr align="left"><td>&nbsp;</td></tr> <tr align="left"><td>&nbsp;</td></tr> <tr align="left"><td>&nbsp;</td></tr> <tr align="left"><td>&nbsp;</td></tr> </tbody></table> </td> </tr> </tbody></table> </div> <div id="middle1"></div> </td> <td id="rightbottom" align="left" valign="top" width="480"> <div id="righttop"> <table cellpadding="0" cellspacing="0" width="480"> <tbody><tr> <td width="200"></td> <td width="280"> <table class="moduletable" cellpadding="0" cellspacing="0"> <tbody><tr> <td> <ul id="mainlevel-nav"><li><a href="default.asp?p=1" class="mainlevelnav">Depan</a></li><li><a href="default.asp?p=3" class="mainlevel-nav">Kontak</a></li><li><a href="default.asp?p=2" class="mainlevelnav">Suku</a></li><li><a href="default.asp?p=4" class="mainlevel-nav">Links</a></li></ul> </td> </tr> </tbody></table> </td> </tr> </tbody></table> <div id="maincontent"> <% if halaman = "1" then %> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI <!--#include file="depan.asp"--> <% elseif halaman = "2" then %> <!--#include file="suku.asp"--> <% elseif halaman = "3" then %> <!--#include file="pemerintah.asp"--> <% elseif halaman = "4" then %> <!--#include file="links.asp"--> <% elseif halaman = "5" then %> <!--#include file="kontak.asp"--> <% end if %> </div> </td> </tr> </tbody></table> <table id="footer" align="center" border="0" cellpadding="0" cellspacing="0" width="959"> <tbody><tr> <td> </td> </tr> </tbody></table> <!-- 1162781611 --></body></html> PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB V PENUTUP 5.1. Kesimpulan a. Sistem ini telah berhasil diimplementasikan dengan menggunakan : Bahasa skrip standart ASP (Active Server Pages), yaitu Microsoft VBScript. Sistem Operasi Windows XP. Web browser IIS (Internet Information System). Database Microsoft Access. b. Sistem memiliki kelebihan dalam memberikan informasi yang cepat dan akurat tentang suku-suku di Papua. Namun, sistem ini juga masih memiliki kelemahan karena hanya menggunakan bahasa Indonesia sebagai bahasa pengantar. 5.2. Saran Sistem bisa dikembangkan lebih lanjut agar lebih interaktif dan menarik bagi para pengguna sistem (user). Penggunaan bahasa pengantar dalam sistem juga bisa dikembangkan lebih lanjut, dengan menggunakan bahasa Inggris sebagai bahasa pengantar internasional. Dengan demikian, diharapkan agar sistem ini juga bisa digunakan oleh user yang tidak mengerti bahasa Indonesia. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR PUSTAKA Andy Kurniawan, Menjadi mahir tanpa guru Microsoft Active Server Pages Belajar Sendiri, Elex Media Komputindo. Gregorius Agung, ASP Programming Seri Pemrograman Internet, MITSAQ. Gregorius Agung, Active Server Pages Special F/X, CV.Jubilee Solusi Enterprise, Yogyakarta. Ir. Harianto Kristanto, Konsep & Perancangan Database, Penerbit ANDI Yogyakarta. Jasmadi, Berbagai Teknik Mengupload Web, Penerbit ANDI Yogyakarta. Panduan Aplikatif Pengembangan Web Berbasis ASP, WAHANA Komputer Semarang dan Penerbit ANDI Yogyakarta. Yahya Kurniawan, ST, Aplikasi Web Database dengan ASP, Elex Media Komputindo. Yahya Kurniawan, ST, VBScript, Elex Media Komputindo. Yusuf Bottie Gaos, Buku Pintar Internet Active Server Pages, Elex Media Komputindo.