WEBSITE ALGORITMA BACKTRACKING UNTUK PENCARIAN KATALOG
ENY TRI HANDAYANI 104091002868
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 1430 H/2009 M
WEBSITE ALGORITMA BACKTRACKING UNTUK PENCARIAN KATALOG
Oleh : ENY TRI HANDAYANI 104091002868
Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 1430 H/2009 M
WEBSITE ALGORITMA BACKTRACKING UNTUK PENCARIAN KATALOG
Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh : ENY TRI HANDAYANI 104091002868
Menyetujui, Pembimbing I
Pembimbing II
Fitri Mintarsih, M.Kom
Khodijah Hulliyah, M.Si
Mengetahui, Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, MIT NIP. 150 378 017
PENGESAHAN UJIAN
Skripsi yang berjudul “Website Algoritma Backtracking Untuk Pencarian Katalog”. Telah diuji dan dinyatakan lulus dalam sidang munaqosyah Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta, pada hari Selasa 28 April 2009. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu (S1) pada program studi Teknik Informatika. Jakarta, 4 Mei 2009 Tim Pembimbing,
Pembimbing I
Pembimbing II
Fitri Mintarsih, M.Kom
Khodijah Hulliyah, M.Si
Tim Penguji, Penguji I,
Penguji II,
Imam M. Shofi, MT NIP. 150 408 905
Ir. Bakri La Katjong, MT, M.Kom NIP. 470 035 764
Mengetahui, Dekan,
Ketua Program Studi,
Dr. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956
Yusuf Durrachman, M.Sc, MIT NIP. 150 378 017
HALAMAN PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENARBENAR ASLI KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI MANAPUN.
Jakarta, April 2009
Eny Tri Handayani 104091002868
ABSTRAK
ENY TRI HANDAYANI. Website Algoritma Backtracking Untuk Pencarian Katalog. Dibimbing Oleh FITRI MINTARSIH dan KHODIJAH HULLIYAH. Perkembangan teknologi informasi dan komunikasi dewasa ini telah berkembang sangat pesat dan hampir telah mempengaruhi semua aspek kehidupan manusia. Dalam era teknologi informasi yang ditandai dengan kecepatan dan kemudahan untuk mendapatkan informasi setiap institusi diharuskan menyediakan sistem informasi yang baik. Sebab kebutuhan akan informasi tidak hanya untuk kebutuhan intern tetapi yang terpenting adalah untuk kebutuhan ekstern guna menunjang kegiatan perusahaan. Hal ini dapat terwujud apabila pengelolaan informasi tersebut didukung oleh sarana dan prasarana. Salah satunya adalah katalog yang menjadi kunci dalam mencari dokumen atau informasi berupa bahan pustaka yang tersusun menurut sistem tertentu. Beberapa kelemahan dari sistem katalog berbentuk kartu ini adalah sebagai berikut: Satu laci katalog hanya menyimpan satu jenis entri saja, sehingga pengguna sering harus antri menggunakannya, terutama bila melakukan penelusuran melalui entri yang sama serta kartu katalog yang disimpan di lemari katalog tersebut bisa hilang. Pencarian dengan teknologi komputer berbasis web menggunakan algoritma backtracking, akan memudahkan user mencari bahan pustaka atau informasi yang diinginkan. Algoritma backtracking merupakan teknik pencarian dimana algoritma ini mencari penyelesaian-penyelesaian yang mungkin dari suatu masalah sehingga terbentuk himpunan penyelesaian. Dari himpunan penyelesaian tersebut akan diperoleh solusi yang optimal. Pencarian katalog dengan alagoritma backtracking ini meliputi pencarian berdasarkan judul buku, pengarang dan penerbit. Penelitian ini bertujuan untuk menyediakan suatu software pencarian katalog yang bisa diterapkan berbagai data yang telah tersimpan menurut sistem tertentu. Kata Kunci : Backtracking, binary search, web, software.
KATA PENGANTAR
Assalamu’alaikum Warahmatullahi Wabarakatuh Segala puji kehadirat Allah SWT yang telah memberikan taufiq dan hidayah-Nya, rahmat dan maghfirah-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul WEBSITE ALGORITMA BACKTRACKING UNTUK PENCARIAN KATALOG. Shalawat dan salam semoga tetap tercurahkan kepada suri tauladan kita Rasulullah Muhammad SAW. Amin. Skripsi merupakan salah satu tugas wajib mahasiswa sebagai persyaratan untuk menyelesaikan program studi Strata 1 (S1) di Universitas Islam Negeri Syarif Hidayatullah Jakarta. Sejauh ini penulis menyadari sepenuhnya masih banyak kekurangan-kekurangan pada skripsi ini, yang disebabkan karena terbatasnya kemampuan dan pengetahuan yang penulis miliki Dalam penyusunan skripsi ini, penulis mendapat bimbingan dan bantuan dari berbagai pihak, oleh karena itu perkenankanlah pada kesempatan ini penulis mengucapkan terima kasih kepada : 1. Bapak Dr. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta. 2. Yusuf Durrachman, M.Sc, MIT, selaku Ketua Program Studi Teknik
Informatika 3. Ibu Fitri Mintarsih, M.Kom dan ibu Khodijah Hulliyah, M.Si, selaku Pembimbing I dan Pembimbing II, yang selalu memberikan arahan dan
bimbingan setiap permasalahan dan kesulitan yang penulis hadapi dalam menyelesaikan skripsi ini. 4. Ibu Neily yang memberikan ide dan selalu memotivasi penulis dalam menyelesaikannya. 5. Seluruh Dosen (Pak Hari, Pak Amin, Pak Yusuf, Pak Victor, Pak Aries, Pak Herlino dan dosen-dosen yang tidak dapat penulis sebutkan satu persatu) terima kasih atas pengajaran dan ilmunya yang bermanfaat bagi penulis. 6. Staf karyawan Fakultas Sains dan Teknologi dan Prodi TI (Pak Rifo, Pak Syamsul, Pak Tomy, Bu Ova, Pak Gun, dan semuanya). 7. Ayah dan Mama terima kasih atas doa, perhatian dan pengorbanannya selama aku duduk dibangku kuliah ini. Semoga Allah selalu melimpahkan rahmat dan ampunan-Nya kepada ayah dan mama. Amin 8. Kakakku yang aku sayangi Mba Key, terimakasih atas dorongan dan doanya 9. Kakak kedua aku purwanti, yang selalu memotivasi saat aku drop 10. Mba Alya (pengen bgt dipanggil kyak gini) mksh mba. eny dah banyak bgt ngerepotin mba dan keluarga. 11. Kekasihku ”abi_WAHYU SETIAWAN” yang hadir disaat aku butuh seseorang yang bisa kasih semangat dan perhatiannya. 12. Temanku maul ( makasih ya udah ngebantuin gw). 13. De Rudi yang polos tapi jenius (mksh dah bantuin mba). 14. Sahabat-sahabat sekaligus teman seperjuanganku Alvin (yang selalu ada disaat aku sedih ataupun senang.), Biah & Hani (makasih emak jadi ngerti arti sebuah persahabatan), Zee (temen yg bisa bikin orang ketawa, karena
ekspresinya yang pakai animasi), endah (gw banyak belajar kemandirian dari loe), Rina (yang ga pernah menyerah walau badai datang), Way (maaf kalau eny belum bisa jadi sahabat yang baik). 15. Ade kelasku Rudi ( maaf kalau mba dah ngerepotin) 16. Keluarga Besar TI_C angkatan 2004 (edoy, pipit, fajar, udin, kaut, sarah, egi, rendi, asep, rahmat dan teman-teman yang tidak dapat penulis sebutkan satu persatu. Tak terasa kurang lebih hampir empat tahun kita melewati masa-masa perkuliahan, semoga kita sukses mencapai cita-cita dan jangan lupa jaga terus silaturahmi kita. Dalam penyusunan skripsi ini, penulis juga tidak luput dari berbagai masalah dan menyadari sepenuhnya bahwa penulisan skripsi ini masih jauh dari sempurna dan tidak lepas dari kesalahan dan kekurangan, oleh karena itu dengan senang hati penulis akan menerima semua saran dan kritik maupun ide-ide yang membangun dari reka-rekan pembaca. Akhir kata semoga Allah membalas kebaikan mereka yang telah membimbing penulis dalam membuat skripsi ini. Semoga skripsi ini berguna bagi penulis dan pada pembaca umumnya.
LEMBAR PERSEMBAHAN
Skripsi ini khusus penulis persembahkan kepada pihak-pihak yang telah memberikan dukungan baik secara moril maupun materil dalam menyelesaikan penelitian skripsi ini , diantaranya adalah : 1. Orang tua tercinta, H. Suhardi dan Mama Sri yang telah membesarkan penulis dengan penuh kesabaran dan kasih sayang, yang selalu memberikan nasehat, bimbingan dan motivasi. Semoga Allah selalu melimpahkan rahmat dan ampunan-Nya kepada Ayahanda dan Ibunda. Amin 2. Kakakku Enry Khotimah yang selalu berada di sampingku dari kita terlahir di muka bumi ini hingga sekarang meskipun sekarang ini sikapnya sudah berubah, tapi sungguh kebahagiaan yang tak dapat terlukiskan bisa memiliki kakak sekaligus teman hidup tempat berbagi suka dan duka. Semoga kita bisa mewujudkan semua cita-cita dan impian kita dan membalas semua budi baik orang-orang yang telah berjasa membesarkan kita. 3. Abi (WAHYU SETIAWAN) yang bisa membuat semangat dalam hidup penulis. 4. Mba Alya yang banyak membantu, semoga impian dan harapan kita bisa terkabul. 5. Sahabat-sahabat penulis yang telah banyak membantu penulis. Mudahmudahan impian kita semua dapat terwujud.
DAFTAR ISI
HALAMAN JUDUL……………………………………………………………... i LEMBAR PERSETUJUAN PEMBIMBING…………….………………….........ii LEMBAR PENGESAHAN UJIAN ……………………………………………...iii HALAMAN PERNYATAAN…………………………………………………....iv ABSTRAK………………………………………………………………………..v KATA PENGANTAR…………………………………………………………... vi LEMBAR PERSEMBAHAN ................................................................................ix DAFTAR ISI………………………………………………………………….......x DAFTAR TABEL……………………………………………………………….xiv DAFTAR GAMBAR…………………………………………………………….xv DAFTAR LAMPIRAN…………………………………………………………xvi BAB I
PENDAHULUAN 1.1 Latar Belakang………………………………………………..1 1.2 Rumusan Masalah……………………………………………..2 1.3 Batasan Masalah…………………………………………........2 1.4 Tujuan dan Manfaat Penelitian 1.5.1 Tujuan………………………………………………….3 1.5.2 Manfaat………………………………………………...3 1.6 Metodologi Penelitian………………………………………...3 1.7 Sistematika Penulisan………………………………………....4
BAB II
LANDASAN TEORI 2.1 Pengertian Katalog Perpustakaan……………………………..6 2.1.1 Macam-Macam Bentuk Katalog……………………......6 2.2 Algoritma……………………………………………………...7 2.2.1 Algoritma Backtracking ………………………………..9 2.2.1.1 Algoritma Umum Backtracking………………..10 2.3 Pencarian……………………………………………………..11 2.3.1 Pencarian Biner………………………………………..12 2.3.1.1 Prinsip Pencarian dengan Metode Binary Search………………………………….12 2.3.2 Pencarian Mendalam Pertama (Depth-First Search)….14 2.4 Algoritma Brute Force……….................................................15 2.5 RAD (Rapid Application Development)…………………….16 2.6 Tools Pengembangan Sistem 2.6.1 Diagram Alir (Flowchart)…………………………….17 2.6.2 State Transition Diagram (STD)……………………..19 2.7 Web………………………………………………………… 21 2.8 PHP dan MySql 2.8.1 PHP…………………………………………………21 2.8.2 MySQL…………………………………………….. 22
BAB III
METODE PENELITIAN 3.1 Metode Pengumpulan Data 3.1.1 Studi Pustaka………………………………………… 23
3.1.2 Wawancara…………………………………………... 23 3.2 Metode Pengembangan Sistem…………………………….. 24 3.2.1 Alasan Menggunakan RAD…………………………. 26 3.2.2 Alasan Penggunaan Algoritma Backtracking Untuk Pencarian Katalog …………….………………….......27 BAB IV
ANALISIS DAN PEMBAHASAN 4.1 Fase Menentukan Tujuan dan Syarat-Syarat Informasi 4.1.1 Mendefinisikan Masalah……………………………...28 4.1.2 Analisis Kebutuhan Sistem……………………...……29 4.1.3 Tujuan Informasi..…………………………………….31 4.1.4 Syarat-syarat……..…………………………………….31 4.2 Fase Perancangan 4.2.1 Rancangan Proses……………………………………..32 4.2.1.1 Proses Pencarian Katalog .……………………37 4.2.2 Inputan Data……………………………......................42 4.2.3 Rancangan Antar Muka (Interface) 4.2.3.1 STD Menu Utama Program…………………. 43 4.2.3.2 STD Menu Admin………………………….... 44 4.3 Fase Konstruksi……………………………………………...45 4.4 Fase Pelaksanaan……………………………………………45 4.4.1 Spesifikasi Perangkat Keras dan Perangkat Lunak…….46 4.4.2 Uji Coba Pencarian Sistem Katalog …………….……...47 4.4.3 Tampilan Antar Muka…………………………………..47
4.4.3 Petunjuk Penggunaan Untuk User Dalam Melakukan Pencarian Katalog………………………………………48 BAB V
PENUTUP 5.1 Kesimpulan…………………………………………………54 5.2 Saran-Saran…………………………………………………55
DAFTAR PUSTAKA LAMPIRAN SOURCE CODE
DAFTAR TABEL
Tabel 2.1 Notasi Flowcahrt................................................................................ 18 Tabel 2.2 Notasi STD (State Trantition Diagram)................................................20 Tabel 4.1 Data Buku ......................................................................................... 37 Tabel 4.2 Inputan Data Buku ............................................................................ 43 Tabel 4.3 Uji Coba Menu Utama Program ...........................................................47 Tabel 4.4 Uji Coba Menu Data Buku.................................................................... 47
DAFTAR GAMBAR
Gambar 2.1
Pemanggilan Prosedur Runut Balik.............................................. 10
Gambar 2.2
Tree Untuk DFS .......................................................................... 14
Gambar 3.1 Siklus Pengembangan Sistem Rapid Aplication ............................ 26 Gambar 4.1 Flowchart Pencarian Katalog Manual ........................................... 29 Gambar 4.2 Flowchart Pencarian Katalog Menggunakan Algoritma Backtracking................................................................................... 30 Gambar 4.3
Konfigurasi Jaringan Client-Server.................................................31
Gambar 4.4 Flowchart dari Langkah Binary Search................................................................................................33 Gambar 4.5 Flowchart dari Proses backtracking menggunakan binary search....................................................................................35 Gambar 4.6 STD Rancangan Menu Utama Program ........................................ 43 Gambar 4.7 STD Menu Admin…………………………………………………44 Gambar 4.8 STD Menu Data Buku ................................................................... 45 Gambar 4.9 Program Xampp............................................................................ 48
DAFTAR SIMBOL
A. State Transition Diagram (STD) Simbol
Arti Keadaan sistem (state) Perubahan Sistem
Keadaan 1 Kondisi dan Aksi
kondisi aksi
Keadaan 2 Mulai Akhir
B. Flowchart Simbol
Arti Simbol terminal Simbol persiapan Simbol pengolahan
Simbol proses
Simbol decision
Simbol input/output
Kegunaan Simbol untuk permulaan atau akhir dari suatu program. Simbol untuk memberikan nilai awal pada variabel Simbol untuk pengolahan aritmatika atau pemindahan data Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer Simbol untuk mewakili operasi perbandingan logika. Simbol untuk menyatakan proses input/output data
Simbol untuk proses yang detilnya dijelaskan secara terpisah Simbol untuk menyatakan jalannya arus suatu proses
Simbol proses terdefinisi Simbol Arus
C. ERD ( Entity Relation Diagram ) Simbol
Arti Menyatakan suatu entity Menyatakan atribut
Menyatakan jenis relasi
Menyatakan penghubung relasi D. DFD ( Data Flow Diagram ) Simbol
Arti Simbol kesatuan luar (Eksternal Entity) Simbol arus data ( Data Flow) Simbol proses Simbol simpanan data (Data Store)
Arti memberikan data ke dalam atau dari sistem tempat mengalirnya informasi apa yang dikerjakan oleh sistem tempat penyimpanan data pengikat data yang ada dalam sistem
DAFTAR LAMPIRAN
Lampiran A
Kuisioner dan Wawancara .................................................. A
Lampiran B
Tampilan Antarmuka……………. ........................................B
Lampiran C
Source Code ………………………………………………. C
BAB I PENDAHULUAN
1.1 Latar Belakang Perkembangan teknologi informasi dan komunikasi dewasa ini telah berkembang sangat pesat dan hampir telah mempengaruhi semua aspek kehidupan manusia. Dalam era teknologi informasi yang ditandai dengan kecepatan dan kemudahan untuk mendapatkan informasi setiap institusi diharuskan menyediakan sistem informasi yang baik. Sebab kebutuhan akan informasi tidak hanya untuk kebutuhan intern tetapi yang terpenting adalah untuk kebutuhan ekstern guna menunjang kegiatan perusahaan. Perusahaan beserta unit-unitnya disamping sebagai sumber informasi juga membutuhkan info yang akan bermanfaat dalam penyelesaian tugastugasnya. Hal ini dapat terwujud apabila pengelolaan informasi tersebut didukung oleh sarana dan prasarana. Salah satunya adalah katalog yang menjadi kunci dalam mencari dokumen atau informasi berupa bahan pustaka yang tersusun menurut sistem tertentu. Menurut pengamatan penulis, pada saat ini penyusunan kartu-kartu katalog dijadikan pedoman untuk mencari dan menemukan lokasi bahan pustaka ini. Beberapa kelemahan dari sistem katalog berbentuk kartu ini adalah sebagai berikut: 1. Satu laci katalog hanya menyimpan satu jenis entri saja, sehingga pengguna sering harus antri menggunakannya, terutama bila melakukan
1
penelusuran melalui entri yang sama. 2. Kartu katalog yang disimpan di lemari katalog tersebut bisa hilang atau terletak bukan sesuai dengan tempatnya. Berdasarkan permasalahan tersebut diatas, maka penulis membuat suatu penelitian berjudul ”WEBSITE ALGORITMA BACKTRACKING UNTUK PENCARIAN KATALOG” dengan teknologi komputer berbasis web, yang bertujuan memudahkan user mencari bahan pustaka atau informasi yang diinginkan.
1.2 Rumusan Masalah Perumusan masalah dalam penelitian ini adalah: 1. Bagaimana menyusun algoritma pencarian katalog yang harus dibuat sehingga dapat dilakukan pencarian informasi berupa dokumen atau bahan pustaka secara efektif dan efisien? 2. Bagaimana aplikasi ini dapat digunakan oleh user yang membutuhkan?
1.3
Batasan Masalah Untuk lebih memfokuskan agar penulisan skripsi ini tidak menyimpang dari topik yang diambil, maka penulis perlu membatasi masalah dalam penelitian ini. Adapun batasan masalah dalam penelitian ini adalah algoritma pencarian katalog ditujukan untuk pencarian dokumen atau bahan pustaka yang berupa buku-buku pencarian tersebut meliputi: 1. Algoritma yang dibuat adalah algoritma backtracking.
2. Pencarian berdasarkan judul buku. 3. Pencarian berdasarkan pengarang. 4. Pencarian berdasarkan penerbit.
1.4 Tujuan dan Manfaat Penelitian 1.4.1 Tujuan Penelitian ini bertujuan untuk menyediakan suatu software pencarian katalog yang bisa diterapkan berbagai data yang telah tersimpan menurut sistem tertentu. 1.4.2 Manfaat Adapun manfaat dari penelitian ini adalah 1. Membantu petugas dalam melakukan pengolahan data di perusahaanperusahaan. 2. Memberikan kemudahan pelayanan pada user external untuk mendapatkan informasi yang dibutuhkan.
1.5 Metodologi Penelitian Untuk memperoleh data dan informasi yang diperlukan dalam penelitian ini, ada beberapa metode yang penulis lakukan: 1. Metode Pengumpulan Data a. Metode Studi Pustaka Yaitu pengumpulan data dan informasi dengan cara membaca buku-buku referensi yang dapat dijadikan acuan pembahasan dalam penelitian ini.
b.
Metode Wawancara Dalam hal ini, penulis mengadakan tanya jawab dengan pihak yang memiliki kompetensi berkaitan dengan pencarian katalog.
2. Metode Pengembangan Sistem Pengembangan
sistem
dalam
penelitian
ini
penulis
lakukan
mengunakan RAD (Rapid Aplication Development).
1.6 Sistematika Penulisan Untuk memudahkan pembahasan, keseluruhan perancangan sistem ini dibagi menjadi lima bab dengan pokok pikiran dari tiap-tiap bab sebagai berikut: BAB I
PENDAHULUAN Berisi latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat penelitian, metodologi penelitian dan sistematika penulisan.
BAB II
LANDASAN TEORI Dalam bab ini diuraikan teori dasar yang mendukung dalam penyusunan dan penulisan skripsi ini, yaitu pengertian katalog perpustakaan, teori yang berhubungan dengan algoritma backtracking, teori yang berhubungan dengan pencarian, tools pengembangan sistem, web, PHP dan MySql.
BAB III
METODOLOGI PENELITIAN Dalam bab ini dijelaskan tahap-tahap pengembangan sistem yang meliputi, tahapan pendekatan sistem dan tahapan pengembangan sistem.
BAB IV
ANALISIS DAN PEMBAHASAN Pada bab ini, penulis akan menjelaskan penerapan algoritma backtracking pada pencarian katalog perpustakaan berbasis binary search sebagai teknik pencariannya yang menggunakan beberapa tahapan metode pengembangan sistem yang sudah penulis pilih.
BAB V
PENUTUP Bab ini merupakan bab terakhir dari penulisan skripsi ini, yang berisi
kesimpulan
yang
berkenaan
dengan
hasil
dan
pembahasan masalah yang diperoleh dari penyusunan tugas akhir ini serta beberapa saran untuk pengembangan lebih lanjut.
BAB II LANDASAN TEORI
2.1 Pengertian Katalog Secara umum pengertian katalog secara sederhana adalah suatu daftar berurut yang berisi informasi tertentu dari benda atau barang yang terdaftar. Pengertian lebih luas tentang katalog adalah metode penyusunan item (berisi informasi atau keterangan tertentu) dilakukan secara sistematis baik menurut abjad maupun urutan logika yang lain. (Darmono, 2007: 105). Menurut Darmono (2007: 106) tujuan pengkatalogan adalah : 1. Memudahkan seseorang menemukan sebuah karya yang telah diketahui pengarang, judul, atau subjeknya. 2. memperlihatkan apa yang dimiliki melalui nama pengarang, judul buku dan jenis literaturnya. 3. membantu pemilihan sebuah karya seperi dalam hal edisinya secara bibliografis dan karakternya (topik). 2.1.1 Macam-Macam Bentuk Katalog Menurut Darmono (2007: 107-108) bentuk katalog yang dikenal ada tiga, yaitu : 1. Kartu Katalog, ialah katalog yang terdiri dari kartu-kartu yang disusun dalam laci atau almari katalog. Ukuran dari katalog ini umumnya 12,5 cm x 7,5cm, yang berisi satu uraian katalog. Disusun pada almari katalog/laci katalog, dengan diberi lubang dibagian tengah sebelah bawah. Tujuannya untuk memasukkan alat 6 pengait agar supaya kartu tersebut tidak mudah lepas. Keuntungan pada kartu katalog ini ialah: tidak mudah hilang, mudah
penggunaannya, mudah dalam menggandakan entri-entrinya. Sedangkan kelemahannya ialah: sangat tergantung pada tempat, kartu katalog tidak bisa dibawa kemana-mana. 2. Katalog Berkas, ialah katalog yang terdiri dari lembaran-lembaran lepas, disatukan dan diikat dalam sampul. Tiap lembar berisi satu uraian katalog kartu, ukurannya 20 x 12,5 cm. 3. katalog buku, ialah katalog yang tercetak yang berbentuk buku. Pada tiap halaman tercantum uaraian katalog. 4. katalog on-line, ialah katalog yang terpasang pada komputer biasanya dihubungkan dengan sistem jaringan baik jaringan lokal (LAN) ataupun jaringan dalam skala yang luas (WAN). Keuntungan dari katalog on-line ini adalah : ringkas dan mudah digunakan, efisien dari segi waktu dan proses pengerjaannya, mudah di share dalam jaringan, sebagai sarana mendekatkan TIK (Teknologi Informasi Komputer) kepada user (siswa).
2.2 Algoritma Menurut Suryadi (1993: 2) secara umum algoritma dapat didefinisikan “suatu
urutan
dari
barisan
langkah-langkah
atau
instruksi
guna
menyelesaikan suatu masalah”. Dalam memilih algoritma yang terbaik, dari sekian banyak algoritma yang ditawarkan harus diperhatikan beberapa kriteria. Menurut Suryadi (1993: 2-3) kriteria algoritma adalah sebagai berikut :
1. Ada Output Mengacu dari definisi algoritma, yakni suatu urutan-urutan dari barisan instruksi atau langkah-langkah untuk menyelesaikan suatu masalah, maka suatu algoritma haruslah mempunyai output. Output tersebut tentu harus merupakan solusi dari masalah yang sedang diselesaikan. 2. Efektifitas dan Efesiensi Suatu algoritma dikatakan efektif jika algoritma tersebut dapat menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan. Dengan kata lain, suatu algoritma tersebut harus tepat guna. Suatu algoritma dikatakan efisien jika proses dari suatu algoritma relatif lebih singkat dan penggunaan memorinya relatif lebih sedikit. 3. Jumlah Langkahnya Berhingga Barisan instruksi yang dibuat dalam suatu urutan tertentu, dimaksudkan agar masalah yang dihadapi dapat diselesaikan. Banyaknya instruksi atau langkah itu haruslah berhingga. Jika tidak demikian, proses yang dilakukan akan memerlukan waktu yang relatif lebih lama dan diperoleh hasil yang tidak diperlukan atau tidak berhubungan dengan permasalahan yang ada. Bahkan akan memungkinkan proses akan berlangsung terus walaupun solusi yang diharapkan sudah diperoleh.
4. Berakhir Proses di dalam mencari penyelesaian suatu masalah harus berhenti atau berakhir. Hasil akhir yang didapat merupakan solusinya ataupun berupa
informasi tidak ditemukannya solusi. Dengan kata lain, baik dalam kondisinya ada ataupun tidak ada maka proses akan tetap berakhir atau berhenti. 5. Terstruktur Urutan dari barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses penyelesaiannya tidak berbelit-belit. Sehingga memungkinkan waktu prosesnya akan menjadi relatif lebih singkat. Dari kelima (5) kriteria diatas, akhirnya dapat ditentukan suatu algortima yang terbaik dari sekian algoritma yang ada yakni: “Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatif sedikit (efisien) dengan langkah yang berhingga dan prosesnya berakhir baik dalam keadaan diperoleh suatu solusi ataupun tidak adanya solusi”. (Suryadi, 1993: 3-4). 2.2.1 Algoritma Backtracking (Runut-Balik) Teknik backtracking pertama kali diperkenalkan oleh D.H. Lehmer pada tahun 1950. Ide tersebut baru dapat dirumuskan dalam suatu algoritma secara umum pada tahun 1960. Dasar teknik backtracking ini adalah suatu teknik pencarian (searching). Teknik pencarian ini digunakan dalam rangka mencari penyelesaian-penyelesaian
yang
mungkin dari suatu masalah sehingga terbentuk suatu himpunan penyelesaian. Dari himpunan penyelesaian tersebut akan diperoleh
penyelesaian yang memuaskan atau solusi yang optimal. (Suryadi, 1993: 37). Himpunan penyelesaian masalahnya ini bisa berbasis dengan metode DFS (Depth First Search) dan pencarian biner (Binary Search). Menurut Rinaldi Munir (2004) algoritma backtracking merupakan perbaikan dari algoritma brute force., secara sistematis mencari solusi persoalan di antara kemungkinan solusi yang ada. Saat ini algoritma backtracking banyak diterapkan untuk program seperti: menemukan jalan keluar dalam sebuah labirin, catur dan lain-lain. 2.2.1.1 Algoritma Umum Backtracking Gambar
2.1
berikut
ini
adalah
algoritma
umum
Backtracking dengan penelusurannya menggunakan DFS (Depth First Search): ( Rinaldi, 2004 )
Gambar 2.1 Pemanggilan Prosedur RunutBalik 2.2.1.2 Penjelasan Algoritma Backtracking 1. Solusi persoalan.
Solusi dinyatakan sebagai vektor dengan n-tuple: X = (x1, x2, …, xn), xi ∈ himpunan berhingga S i . Si merupakan S1 = S2 = … = Sn. Contoh: Si = {0, 1}, xi = 0 atau 1 2. Fungsi pembangkit nilai xk Dinyatakan sebagai: T(k) T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi. 3. Fungsi pembatas (pada beberapa persoalan fungsi ini dinamakan fungsi kriteria) Dinyatakan sebagai: B(x1, x2, …, xk) Fungsi pembatas menentukan apakah (x1, x2, …, xk) mengarah ke solusi. Jika ya, maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi jika tidak, maka (x1, x2, …, xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi.
2.3 Pencarian ( Searching) Pencarian (searching) merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data. Dalam kehidupan sehari-hari, seringkali kita berurusan dalam masalah pencarian: misalnya untuk menemukan nomor telepon seseorang pada buku telepon atau mencari suatu istilah dalam kamus. Pada aplikasi komputer pencarian kerap dilakukan; misalnya untuk
mendapatkan data dari seseorang mahasiswa, mendapatkan informasi suatu kata dalam kamus digital, mendapatkan nomor telepon dalam suatu alamat atau nama perusahaan. (Abdul Kadir, 2005: 384). Pencarian penyelesaian solusi yang penulis gunakan untuk algoritma backtracking ini yaitu : pencarian biner (binary search). 2.3.1 Pencarian Biner (binary search) Pencarian biner dilakukan dengan membagi larik menjadi dua bagian dengan jumlah yang sama atau berbeda 1 jika data semula ganjil. Data yang dicari kemudian dibandingkan dengan data terakhir pada bagian pertama. (Abdul Kadir, 2005: 385). 2.3.1.1 Prinsip Pencarian dengan Metode Binary Search Menurut Ema (2005: 291) proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut : 1. Membaca array data 2. Ambil data array dari posisi 1 sampai N urutkan terlebih dahulu. 3. Menentukan data yang akan dicari. 4. Menentukan elemen tengah dari array. Letak posisi tengah dapat ditentukan dengan tengah (mid)= (posisi awal (lo)+posisi akhir(hi)) div 2. 5. Jika elemen tengah sama dengan data yang dicari, maka pencarian selesai.
6. Jika elemen tengah tidak sama dengan yang dicari, maka: a. Nilainya lebih besar, maka proses pencarian dicari dengan posisi awal (lo) adalah posisi tengah (mid) + 1 b. Nilainya lebih kecil, maka proses pencarian dicari dengan posisi akhir (hi) adalah posisi tengah (mid) – 1 Contoh menentukan elemen tengah: Didalam suatu array tersimpan 9 buah data yang terurut menaik. Dalam hal urutan angka dari yang terkecil sampai terbesar. Data yang akan dicari 17. 0
1
2
3
4
5
6
7
8
3
9
11
12
15
17
23
31
35
A
B
C
A=posisi awal B=posisi tengah C=posisi akhir Karena 17 > 15 (data tengah), maka: awal = tengah + 1 0
1
2
3
4
5
6
7
8
3
9
11
12
15
17 A
23 B
31
35 C
Karena 17 < 23 (data tengah), maka: akhir = tengah – 1 0
1
2
3
4
5
6
7
8
3
9
11
12
15
17
23
31
35
A=B=C
2.3.2 Pencarian Mendalam Pertama (Depth-First Search)
Pencarian dengan metode ini dilakukan dari node awal secara mendalam hingga yang paling akhir (dead-end) atau sampai ditemukan, seperti terlihat pada Gambar 2.2. Dengan kata lain, simpul cabang atau anak yang lebih dahulu dikunjungi. (Anita Desiani, 2006:30)
1 2
11
8 3 5
9
10
4
6
12
13
14
15
16
7
Gambar 2.2 Tree untuk Depth-First Search Berdasarkan gambar tersebut, proses pencarian dilakukan dengan mengunjungi cabang terlebih dahulu hingga tiba di simpul terakhir. Jika tujuan yang diinginkan belum tercapai maka pencarian dilanjutkan ke cabang sebelumnya, turun ke bawah jika memang masih ada cabangnya. Begitu seterusnya hingga diperoleh tujuan akhirnya (Goal). Operasi semacam ini dikenal dengan sebutan backtracking. Depth First Search, seperti juga Breadth First Search, algoritma ini juga memiliki kelebihan diantaranya adalah cepat mencapai kedalaman ruang pencarian. Jika diketahui bahwa lintasan solusi permasalahan akan panjang maka Depth First Search tidak akan memboroskan waktu untuk melakukan sejumlah besar keadaan permasalahan graf/pohon. Depth First Search jauh lebih efisien untuk
ruang pencarian dengan banyak cabang karena tidak perlu mengevaluasi semua simpul pada suatu level tertentu. Selain itu, Depth First Search memerlukan memori yang relatif kecil karena hanya node-node pada lintasan yang aktif saja yang disimpan. (Anita Desiani, 2006:31) Selain kelebihan, Depth First Search juga memiliki kelemahan diantaranya adalah memungkinkan tidak ditemukannya tujuan yang diharapkan dan hanya akan mendapatkan satu solusi pada setiap pencarian. Jika terdapat banyak simpul yang harus dibangkitkan maka waktu untuk mencapai node goal akan lama. (Anita Desiani, 2006:31).
2.4 Algoritma Brute Force Algoritma brute force yaitu pencarian solusi dari awal string sampai dengan akhir string. Menurut Rinaldi Munir (2004) kelebihan Metode brute force: 1. Dapat digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability). 2. Metode brute force sederhana dan mudah dimengerti. 3. Metode brute force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. 4. Selalu menghasilkan solusi yang optimal. Menurut Rinaldi Munir (2004) kelemahan Metode brute force:
1. Beberapa algoritma brute force lambat sehingga tidak dapat diterima. 2. Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya. 3. Algoritma ini hanya cocok untuk jumlah simpul yang sedikit. Untuk jumlah simpul yang banyak akan dibutuhkan komputasi yang lama.
2.5 RAD (Rapid Application Development) RAD adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari) (Pressman, 2002: 42). Metode pengembangan RAD memiliki beberapa keunggulan dan kelemahan. Berikut ini merupakan beberapa keunggulan dan kelemahan model RAD : Keunggulan RAD (http://en.wikipedia.org/wiki/Rapid application development) 1. Meningkatkan kecepatan pengembangan aplikasi dengan menggunakan metode-metode seperti rapid prototyping, penggunaan CASE tools, dan teknik-teknik lainnya.
2. Mengurangi fungsionalitas end user(Fokus desain menjadi lebih sempit), mengurangi kompleksitas. Kelemahan RAD (http://en.wikipedia.org/wiki/Rapid application development 1. Mengurangi skalabilitas pengembangan sistem. 2. Mengurangi jumlah fitur-fitur yang disertakan karena mengejar waktu proses pengerjaan. 3. Membutuhkan komitmen antara pihak pengembang dan pelanggan. (Pressman, 2002 : 44 ).
2.6 Tools Pengembangan Sistem
2.6.1 Diagram Alir (Flowchart)
Bagan alir program (program flowchart) adalah suatu bagan yang menggambarkan arus logika dari data akan diproses dalam suatu program dari awal sampai akhir. Bagan alir program merupakan alat yang berguna bagi programmer untuk mempersiapkan program yang rumit. Bagan alir terdiri dari simbol-simbol yang mewakili fungsi-fungsi langkah program dan garis alir menunjukkan urutan dari simbol-simbol yang akan dikerjakan. (Jogiyanto, 2000: 662). Berikut ini Tabel 2.1 adalah simbol-simbol program flowchart menurut ANSI (American National Standard Symbol Institute) (Jogiyanto, 2000: 662-663) :
Simbol
Arti Simbol terminal
Simbol persiapan
Simbol pengolahan
Simbol decision
Simbol input/output
Kegunaan Simbol untuk permulaan atau akhir dari suatu program. Simbol untuk memberikan nilai awal pada variabel Simbol untuk pengolahan aritmatika atau pemindahan data Simbol untuk mewakili operasi perbandingan logika. Simbol untuk menyatakan proses input/output data
Simbol untuk proses yang Simbol proses terdefinisi detilnya dijelaskan secara terpisah Simbol untuk menyatakan Simbol arus jalannya arus suatu proses Simbol untuk menyatakan hubungan arus proses yang Simbol penghubung terputus masih dalam halaman yang sama. Simbol untuk menyatakan Simbol penghubung hubungan arus proses yang halaman lain terputus masih dalam halaman yang sama. Tabel 2.1 Notasi Flowchart
2.6.2 STD (State Transtition Diagram) STD merepresentasikan tingkah laku dari suatu sistem dengan menggambarkan keadaannya dan kejadian yang menyebabkan sistem
mengubah keadaan. STD juga menunjukkan bahwa aksi (seperti aktivasi proses) diambil sebagai akibat dari suatu kejadian khusus (Pressman, 2002: 373). STD pada dasarnya merupakan sebuah diagram yang terdiri dari state dan transisi atau perubahan state. Transisi atau perubahan state terdiri dari kondisi dan aksi. Transisi diantara kedua keadaan pada umumnya disebabkan oleh suatu kondisi. Kondisi adalah suatu kejadian yang dilakukan oleh sistem. Sedangkan aksi adalah tindakan yang dilakukan oleh sistem apabila terjadi perubahan state atau perubahan reaksi dari sistem. Contoh dari perubahan state seperti pada Gambar 2.3 di bawah ini : State 1 Aksi State 2 Gambar 2.3 Contoh Perubahan State Adapun komponen atau simbol yang digunakan dalam STD: a) Modul Menggunakan simbol lingkaran kecil yang mewakili modul yang dipanggil apabila terjadi suatu tindakan. b) Tampilan Kondisi (state) Merupakan layer yang ditampilkan menurut keadaan atau atribut. State digunakan untuk memenuhi suatu tindakan pada waktu
tertentu yang mewakili suatu bentuk keadaan atau kondisi tertentu, biasanya disimbolkan dalam gambar kotak. c) Tindakan (state transition) Menggunakan simbol anak panah disertai keterangan tindakan yang dilakukan. Dibawah ini Tabel 2.2 adalah notasi/simbol dari penjelasan diatas. Simbol
Arti Keadaan sistem (state) Perubahan Sistem
Keadaan 1 kondisi aksi
Kondisi dan Aksi
Keadaan 2 Mulai Akhir
Tabel 2.2 Notasi STD (State Trantition Diagram) (Sumber : Syukrina, 2009 : 38)
2.7 Web
Menurut Betha Sidik (2007:1) Word Wide Web (WWW), lebih dikenal dengan web, merupakan salah satu layanan yang didapat oleh pemakai komputer yang terhubung ke internet. Web pada awalnya adalah ruang informasi dalam internet, dengan menggunakan teknologi hyperteks, pemakai dituntun untuk menemukan informasi dengan mengikuti link yang disediakan dalam dokumen web yang ditampilkan dalam browser web. Web memudahkan pengguna komputer untuk berinteraksi dengan pelaku internet lainnya dan menelusuri informasi di internet. Menurut Betha Sidik (2007:5) web browser adalah software yang digunakan untuk menampilkan informasi dari server web. Contohnya seperti apache, xampp. Menurut Betha Sidik (2007:6) server web adalah komputer yang digunakan untuk menyimpan dokumen-dokumen web, komputer ini akan melayani permintaan dokumen web dari kliennya.
2.8 PHP dan MySQL 2.8.1 PHP PHP secara resmi merupakan kepanjangan dari Hypertext Preprocessor, merupakan bahasa script server-side yang disisipkan pada HTML. Dengan menggunakan PHP maka maintenance suatu situs web menjadi lebih mudah. (Betha, 2004). Menurut devisi penelitian dan pengembangan (2004:2) ada beberapa keunggulan yang dimiliki program PHP adalah :
1. Memiliki tingkat akses yang lebih cepat. 2. Memiliki tingkat keamanan yang tinggi. 3. Mampu berjalan di Linux sebagai platform sistem operasi utama bagi PHP. 4. Mendukung akses ke beberapa database yang sudah ada. 5. Bersifat free atau gratis. 2.8.2 MySQL MySQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan/seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. (Didik, 2003) Keistimewaan MySQL diantaranya : (Didik, 2003) 1. MySQL dapat berjalan stabil pada berbagai sistem operasi diantaranya adalah : Windows, Linux, FreeBSD, Solaris. 2. MySQL didistribusikan secara Open source (gratis). 3. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah.
BAB III METODOLOGI PENELITIAN
Dalam menyusun skripsi ini, diperlukan data-data serta informasi yang relatif lengkap sebagai bahan yang dapat mendukung kebenaran materi uraian dan pembahasan. Oleh karena itu, penulis dalam menyusun skripsi ini mempersiapkan terlebih dahulu data dengan dilakukannya riset atau penelitian untuk menunjang data serta informasi bahan materi yang diperlukan. 3.1 Metode Pengumpulan Data Tahapan ini dilakukan sebelum tahap pengembangan sistem. Tahap ini meliputi studi pustaka, wawancara dan observasi.
3.1.1 Studi Pustaka Metode studi pustaka dilakukan dengan mengumpulkan data dan informasi yang dijadikan sebagai acuan penerapan algoritma backtracking pada pencarian katalog perpustakaan berbasis web. Referensi-referensi tersebut berasal dari buku-buku pegangan maupun mencari referensi tambahan dari internet. Adapun buku-buku dan situs internet yang kami kunjungi dapat dilihat pada daftar pustaka. 3.1.2 Wawancara Metode wawancara dilakukan dengan cara mewawancarai pihak yang memiliki kompetensi berkaitan dengan pencarian katalog. Dalam wawancara ini penulis ingin memperoleh informasi mengenai pencarian katalog untuk menemukan suatu dokumen atau suatu buku.
23
Kesulitan-kesulitan apa saja yang sering dihadapi dalam pencarian suatu buku atau dokumen, serta aplikasi seperti apa yang diinginkan oleh user external, sehingga pembuatan aplikasi tersebut tepat guna. Dari hasil wawancara tersebut diperoleh kesimpulan tentang bentuk aplikasi yang akan dirancang, antara lain: - Tidak lagi terjadi pencarian katalog buku secara manual yang diletakkan di rak-rak katalog - Output yang harus ditampilkan adalah pencarian berdasarkan judul buku, penerbit, pengarang, jumlah buku serta lokasi. Adapun kuesioner dan hasil wawancara yang penulis lakukan dapat dilihat pada lampiran A.
3.2
Metode Pengembangan Sistem Dalam pengembangan aplikasi penjadwalan ini, penulis menggunakan
model Rapid Aplication Development (RAD). Penulis memilih model Rapid Aplication Development (RAD) karena tahap-tahapnya sangat terstruktur, pengembangan perangkat lunak dapat dilakukan dalam waktu yang cepat. Metode pengembangan sistem RAD mengalami empat tahapan siklus pengembangan (Kenneth, 2003: 238), yaitu: a. Fase Menentukan Tujuan dan Syarat-Syarat Informasi Pada tahap ini dilakukan pengidentifikasian tujuan-tujuan dari aplikasi atau sistem dan dilakukan pengidentifikasian syarat-syarat atau kebutuhan informasi bagi sistem yang diperoleh dari pengidentifikasian
tujuan-tujuan tersebut. Menjelaskan
masalah
yang
terjadi pada
perpustakaan, membuat flowchart pencarian katalog perpustakaan yang masih manual maupun yang akan dirancang dengan algoritma backtracking. b.
Fase Perancangan Pada tahap ini dilakukan perancangan terhadap proses-proses yang akan terjadi di dalam sistem. Pada tahap ini perancangan akan dibagi menjadi perancangan kerangka kerja sistem, perancangan proses, dan perancangan antar muka. Pada perancangan proses: •
Menjelaskan flowchart algoritma backtracking dengan teknik pencarian
binary
search
dengan
dibuatkan
contoh
cara
pencariannya dengan pseudocode.
c.
•
Inputan data yang digunakan.
•
Perancangan antarmuka sistem dengan State Transition Diagram.
Fase Konstruksi Pada tahap ini dilakukan pengkodean terhadap rancanganrancangan yang telah didefinisikan dan implementasi ke dalam web.
d.
Fase Pelaksanaan Pada tahap ini dilakukan pengujian sistem program, apakah sesuai dengan tugasnya. Uji coba terhadap masing-masing menu serta menampilkan hasil dari interfacenya. Gambar 3.1 adalah siklus dari RAD.
Gambar 3.1 Siklus Pengembangan Sistem Rapid Application Development (Kenneth, 2003 : 238 )
3.2.1 Alasan Menggunakan RAD Berikut ini adalah beberapa alasan penulis menggunakan RAD dalam penerapan algoritma backtracking pada pencarian katalog pepustakaan: o
Melihat dari aplikasi yang akan dikembangkan oleh penulis, merupakan aplikasi yang sederhana dan tidak memerlukan waktu yang lama. Metode RAD adalah metode yang diperuntukan untuk jangka pendek. Sesuai dengan aplikasi yang akan dikembangkan. (Pressman, 2002: 42).
o
RAD ini menekankan pada pengembangan komponen program yang bisa dipakai kembali. Dari aplikasi pencarian katalog menggunakan algoritma backtracking ini bisa dikembangkan lebih lanjut dengan membandingkan algoritma backtracking dengan algoritma lainnya dalam hal tampilan interfacenya. (Pressman, 2002: 44).
3.2.2 Alasan Penggunaan Algoritma Backtracking Untuk Pencarian Katalog Algoritma backtracking ini tidak memeriksa semua kemungkinan solusi yang ada, hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan. (Rinaldi Munir, 2004). Dengan kata lain, pencarian dengan menggunakan algoritma backtracking ini : 1. Lebih efisien dan efektif. Lebih efisien disini maksudnya : proses pencariannya relatif lebih singkat, sedangkan efektif : solusi yang diharapkan tepat guna. 2. Karakteristik data yang digunakan secara acak (random) sehingga sesuai dengan kasus yang penulis gunakan karena memakai metode binary search.
BAB IV ANALISIS DAN PEMBAHASAN
Setelah membahas tentang teori-teori dan konsep-konsep yang dipakai serta metodologi yang digunakan pada bab sebelumnya, maka pada bab ini seperti yang telah di tulis pada bab 1 (Satu), penulis akan membahas tentang Website Algoritma Backtracking Untuk Pencarian Katalog.
4.1 Fase Menentukan Tujuan dan Syarat-Syarat Informasi 4.1.1 Mendefinisikan Masalah Tahap mendefinisikan masalah adalah tahap untuk menentukan masalah apa yang akan diselesaikan dengan menggunakan aplikasi yang akan dibuat. Masalah yang akan diselesaikan dengan menggunakan aplikasi sistem yang baru adalah pencarian katalog dengan menggunakan algoritma backtracking ini agar efektif dan efisien dalam penerapannya. Adapun tujuannya adalah untuk membuat software pencarian katalog yang bisa diterapkan berbagai data yang ada. Aplikasi pencarian katalog ini ditujukan untuk user external dalam mencari dokumen, buku dan informasi yang dibutuhkan.
28
4.1.2 Analisis Kebutuhan Masalah Menurut pengamatan penulis, proses pencarian katalog masih ada yang menggunakannya secara manual berbentuk kartu katalog. Pencarian yang masih manual ini biasanya terdapat pada berbagai institusi, seperti: sekolah, kantor-kantor pemerintah dan swasta. Oleh karena itu, maka dibutuhkan aplikasi pencarian katalog yang berbasis web ini diperlukan untuk membantu user dalam mencari dokumen atau suatu buku secara lebih efektif dan efesien. Gambar 4.1 berikut adalah suatu contoh alur flowchart proses manual pencarian buku pada perpustakaan berdasarkan pengamatan penulis.
Gambar 4.1 Flowchart Pencarian Katalog Secara Manual
Gambar 4.2 berikut adalah flowchart pencarian katalog yang akan dibuat. Ini merupakan suatu pemecahan masalah yang ada. Oleh sebab itu, dibutuhkan aplikasi pencarian katalog menggunakan komputer yang berbasiskan web dengan menyediakan unit komputer berupa komputer server dan komputer client sesuai kebutuhan. Aplikasi ini memerlukan konfigurasi jaringan dengan menggunakan client-server. Komputer peminta data dinamakan sebagai client dan komputer pemilik data dinamakan sebagai server. Implementasi dari konsep client-server ini adalah program yang memiliki fungsi seperti dideskripsikan pada konsep tersebut. Contohnya sebuah program web client, berfungsi mengajukan request berupa data web, sementara program yang berfungsi sebagai web server berfungsi menunggu request dan mengirimkan data web kepada peminta data web. Seperti terlihat pada Gambar 4.2.
Gambar 4.2 Flowchart pencarian katalog yang akan dibuat
Respon Request Respon
Request
Gambar 4.3 Konfigurasi Jaringan Client-Server 4.1.3 Tujuan Informasi Dengan menerapkan aplikasi pencarian katalog berbasis web ini memudahkan user dalam mencari dan menemukan lokasi bahan pustaka atau dokumen yang diperlukan. 4.1.4 Syarat-syarat Untuk mewujudkan tujuan tersebut maka dibutuhkan beberapa syarat dalam Algoritma Backtracking pada Pencarian Katalog Berbasis Web ini yaitu meliputi hal-hal sebagai berikut : 1. Kelengkapan Data
: data-data buku
2. Kelengkapan Software : - Sistem Operasi Windows XP SP 2 - Macromedia Dreamwever 8 - Xampp version 1.5.1 - Database MySQL 5.0.18
4.2 Fase Perancangan 4.2.1 Rancangan Proses Rancangan proses ditujukan untuk menentukan urutan kejadian, sehingga akan dihasilkan keluaran dan masukan yang diharapkan, meliputi: a. Proses masukan, proses ini merupakan proses pemasukan data buku berupa masukan dokumen yang dalam hal ini sebuah judul buku, pengarang, penerbit, jumlahnya serta lokasi penyimpanan secara fisik. Proses ini penulis buat hanya sebagai tambahan untuk inputan data bukunya saja. Pada proses ini hanya bisa dilakukan oleh admin. b. Proses algoritma backtracking, yaitu dengan penyelesaian masalahnya menggunakan binary search. Gambar 4.4 dibawah ini adalah flowchart dari langkah binary search.
Gambar 4.4 Flowchart dari langkah binary search Keterangan dari flowchart di atas : 1. Membaca data array yang ada dari 1 sampai N. N menunjukkan data semua dokumen atau buku yang ada.
2. Mengambil data yang ada lalu urutkan. Di urutkannya sesuai dengan fungsi yang sudah tersedia di php. 3. Inisialisasi lo= posisi data awal, hi= posisi data akhir, mid= posisi data tengah 4. Tentukan data yang akan dicari. Dalam menentukan dokumen yang akan dicari, kita ambil contoh misalkan judul “masa depan” (Penjelasan lebih lanjut dapat dilihat pada hal.37). 5. Bagi dua elemen yang ada dengan rumus mid=(lo+hi)/2 atau mid=(1+(N-1))/2 6. Jika pencarian sama dengan posisi tengahnya maka pencarian berakhir. 7. Jika tidak tentukan larik ada di bagian mana: a. Jika pencarian lebih besar dari posisi tengah, maka larik ada dibagian kanan. Sehingga posisi awal sama dengan posisi tengah ditambah 1. b. Jika pencarian lebih kecil dari posisi tengah, maka larik ada dibagian kiri. Sehingga posisi awal sama dengan posisi tengah dikurang.
Gambar 4.5 merupakan flowchart algoritma backtracking dengan penyelesaian masalahnya menggunakan binary search.
Gambar 4.5 Flowchart dari proses backtracking menggunakan binary search
Keterangan flowchart di atas: sama seperti flowchart binary search bahwa : 1. Inisialisasi lo=posisi data awal, hi=posisi data akhir, mid=posisi data tengah, a=data yang akan dicari, contohnya judul “masa depan” y=pilihan berdasarkan kategori”judul” (Penjelasan lebih lanjut dapat dilihat pada hal.37). 2. Sort(data) artinya urutkan data memakai fungsi yang telah tersedia oleh program php. 3. Bagi dua data yang ada. mid=ceil(lo+hi)/2. ceil artinya pembulatan ke atas. 4. if (strcmp(a,data[mid]= =0)). Strcmp artinya membandingkan apakah pencarian sama dengan data tengahnya. 5. Jika ya maka array_push (hasil,data_id[mid]). Array_push artinya memasukkan data_id[mid] yang ada di database ke dalam hasil. 6. Lalu cetak hasil tadi sesuai dengan yang dicari. 7. Jika tidak pencarian tentukan larik ada di bagian mana: a. Jika pencarian lebih besar dari posisi tengah, maka larik ada dibagian kanan. Sehingga posisi awal sama dengan posisi tengah ditambah 1. b. Jika pencarian lebih kecil dari posisi tengah, maka larik ada dibagian kiri. Sehingga posisi awal sama dengan posisi tengah dikurang 1.
8. back(a,pilih) artinya backtrack kembali dari awal apabila data yang dicari masih bisa ditemukan. 4.2.1.1 Proses Pencarian Katalog Pada Tabel 4.1 di bawah ini ditunjukkan dokumen yang akan dicari. Misalnya: 1. Sebuah buku yang berjudul: ”masa depan” yang terurut berdasarkan fungsi yang sudah bahasa pemograman php sediakan. Judul
Id
Pengarang
Penerbit
8
Mengukir masa depan
Nidhoen Sriyanto
Balai Pustaka
7
Menimba Ilmu dari Museum
Pratameng Kusumo
Balai Pustaka
10 Habis Gelap Terbitlah Terang
Armijin Pane
Balai Pustaka
11 Kamus Besar Bahasa Indonesia
Hasan Alwi,dkk
Balai Pustaka
13 Naskah Keterkaitan Mata Pelajaran Bahasa
Depdiknas
Depdiknas
Tabel 4.1 Data Buku Untuk mencari buku tersebut diperlukan langkah sebagai berikut: Langkah : Pencarian ke 1 :masa - bagi 2 (posisi awal + posisi akhir) / 2 - jika cari=mid ketemu - jika cari < mid hi=mid-1 - Jika cari> mid lo=mid+1
Array ([0]dari#7 [1]depan#8 [2]gelap#10 [3]habis#10
lo [4] ilmu#7 [5]masa#8 [6]mengukir#8 [7]menimba#7
mid [8]museum#7 [9]terang#10 [10]terbitlah#10 )
hi Array[0] ini artinya pencarian dimulai dari awal data yang ada sampai dengan 10 Karena midmasa, maka cari=mid. ketemu pencarian berhenti. Pencarian ke 2 : depan
Array ([0]dari#7 [1]depan#8 [2]gelap#10 [3]habis#10 lo
[4] ilmu#7 [5]masa#8 [6]mengukir#8 [7]menimba#7
hi
mid
[8]museum#7 [9]terang#10 [10]terbitlah#10 )
hi
Array ([0]dari#7 [1]depan#8 [2]gelap#10 [3]habis#10 lo mid [4] ilmu#7 )
hi
Ulangi langkah diatas : - bagi 2 (posisi awal + posisi akhir) / 2 - jika cari=mid ketemu - jika cari < mid hi=mid-1 - Jika cari> mid lo=mid+1 Karena midmasa, maka cari<mid jadi hi=mid-1 belum ketemu, ulangi langkah No.2 bagi 2 maka didapat midgelap, karena cari<mid maka hi=mid-1. pencarian ketemu. Jadi, yang akan muncul yaitu “mengukir masa depan”
2. Pencarian nama pengarang: ”armijin pane” yang terurut berdasarkan fungsi yang sudah bahasa pemograman php sediakan. Array[0] ini artinya pencarian dimulai dari awal data yang ada sampai dengan 5.
lo Array([0]armijin [1]kusumo [2]nidhoen [3] mid pane [4]pratameng [5]sriyanto)
hi
lo Array([0]armijin#10[1]kusumo#7) mid
hi
Untuk mencari buku tersebut diperlukan langkah sebagai berikut: Pencarian ke 1 : armijin Langkah : - bagi 2 (posisi awal + posisi akhir) / 2 - jika cari=mid ketemu - jika cari < mid hi=mid-1 - Jika cari> mid lo=mid+1 Karena midnidhoen, maka cari<mid jadi hi=mid-1 belum ketemu, ulangi langkah No.2 bagi 2 maka didapat midarmijin, karena cari=mid maka pencarian ketemu.
Pencarian ke 2 : pane
lo Array([0]armijin [1]kusumo[2]
nidhoen [3]pane [4]pratameng [5]sriyanto)
mid
hi
Ulangi langkah diatas : - bagi 2 (posisi awal + posisi akhir) / 2 - jika cari=mid ketemu - jika cari < mid hi=mid-1 - Jika cari> mid lo=mid+1 Karena midnidhoen, maka cari>mid jadi lo=mid+1 pencarian ketemu. Jadi, yang akan muncul yaitu “Armijin Pane”
3. Pencarian katalog berdasarkan penerbit: ”balai pustaka” yang terurut berdasarkan fungsi yang sudah bahasa pemograman php sediakan. Array[0] ini artinya pencarian dimulai dari awal data yang ada sampai dengan 5
lo Array([0]balai [1]balai [2]balai [3] mid pustaka [4]pustaka [5]pustaka hi
Untuk mencari buku tersebut diperlukan langkah sebagai berikut: Pencarian ke 1 : balai Langkah :
- bagi 2 (posisi awal + posisi akhir) / 2 - jika cari=mid ketemu - jika cari < mid hi=mid-1 - Jika cari> mid lo=mid+1 Karena midbalai, maka cari=mid ketemu Jadi, yang akan muncul yaitu “balai pustaka”
lo Array([0]balai [1]balai [2]balai [3]pustaka [4] mid pustaka [5]pustaka)
Pencarian ke 2: pustaka Langkah : - bagi 2 (posisi awal + posisi akhir) / 2 - jika cari=mid ketemu - jika cari < mid hi=mid-1 - Jika cari> mid lo=mid+1 Karena midbalai, maka cari>mid jadi lo=mid+1 pencarian ketemu. Jadi, yang akan muncul yaitu “balai pustaka” 4.2.2 Inputan Data
Pada rancangan ini, penulis buat hanya sebagai input data bukunya saja antara lain: judul buku, pengarang dan penerbit. Yang lebih ditekankan adalah dalam proses pencariannya. Pengarang
Judul
Penerbit
jumlah
lokasi
buku
Tabel 4.2 Inputan Data buku
4.2.3 Rancangan Antar Muka (Interface) 4.2.3.1 STD Menu Utama Program Perancangan antarmuka dibuat agar user dengan mudah dapat mengoperasikan dan mengerti bagaimana sistem dapat digunakan. Rancangan STD menu utama seperti Gambar 4.6 berikut. Klik menu search Menunggu input Menu Utama
Pencarian Klik menu profil Masuk halaman profil
Profil
Klik menu info Masuk halaman info
Info
Klik menu Contact Masuk halaman contact
Contact
Klik menu Admin Masuk ke login
Admin Gambar 4.6 STD Rancangan Menu Utama Program
4.2.3.2 STD Menu Admin Menu admin ini hanya digunakan untuk adminnya saja, user tidak bisa menggunakannya. Pada menu ini sengaja penulis tambahkan agar admin bisa memasukkan, mengedit serta menghapus data buku yang ada seperti judul buku, pengarang, penerbit. Rancangan menu admin seperti Gambar 4.7 berikut.
Gambar 4.7 STD Menu Admin
Gambar 4.8 STD Menu Data Buku
4.3 Fase Konstruksi
Pada tahap ini dilakukan pengkodean terhadap rancangan-rancangan yang telah didefinisikan sebelumnya. Pengkodean sistem dilakukan dengan menggunakan bahasa pemrograman PHP dan MySQL sebagai basis datanya. Susunan pengkodean secara menyeluruh mulai dari pembacaan dokumen oleh komputer sampai dengan data atau dokumen yang dicari. 4.4 Fase Pelaksanaan Setelah dilakukan implementasi ke dalam website, maka dilakukan uji coba sistem.Tiba saatnya sistem ini diuji, apakah sistem ini sudah bekerja sesuai dengan apa yang diinginkan atau belum?. Tahap uji coba (testing) sistem merupakan tahap meletakkan sistem supaya dipastikan tidak terjadi
kesalahan sebelum sistem tersebut dapat digunakan oleh user yang membutuhkan. Pada tahap ini dilakukan pengujian masing-masing menu apakah sesuai dengan tugasnya. Kemudian dilakukan uji coba terhadap integrasi keseluruhan unit program di dalam menu untuk mengetahui apakah sistem yang telah dibuat sudah memenuhi kriteria yang diinginkan. 4.4.1 Spesifikasi Perangkat keras dan Perangkat Lunak Dibawah ini merupakan sarana pendukung untuk pencarian katalog perpustakaan yaitu : a) Perangkat keras - Prosessor pentium IV - Memori 512 MB - VGA 32 MB - Keybooard dan Mouse b) Perangkat Lunak - Microsoft Windows XP SP 2 - Macromedia Dreamwever 8 - Notepad - Xampp version 1.5.1 - Database MySQL 5.0.18 - Editplus 2 4.4.2 Uji Coba Pencarian Sistem katalog Perpustakaan a. Uji Coba Menu Utama Tabel 4.3 Uji Coba Menu Utama Program
No. 1.
Unit Program Menu
Hasil yang Diharapkan
Hasil Aktual
Menampilkan daftar menu dan dapat mecari bahan pustaka sesuai dengan kategorinya
OK
Keterangan
b. Uji Coba Menu Admin Tabel 4.4 Uji Coba Data Buku No. Unit Program 1. Login
Hasil yang Diharapkan Memasukkan username+password, dan menampilkan form data buku
Hasil Aktual OK
2 3
Tambah data Hapus data
menambah data buku Menghapus data yang telah diinput
OK OK
4
Edit
Merubah diinput
OK
data
yang
telah
Keterangan
4.4.3 Tampilan Antarmuka Berikut ini merupakan tampilan antarmuka pencarian sistem katalog perpustakaan yang dihasilkan dari keberhasilan penerapan fase konstruksi sistem yaitu pengkodean terhadap rancangan-rancangan yang telah didefinisikan sebelumnya meliputi: a. Tampilan menu utama program. Dapat dilihat pada Lampiran B1. b. Tampilan menu admin. Dapat dilihat pada Lampiran B2. c. Tampilan menu data buku dan tambah data. Dapat dilihat pada Lampiran B3.
4.4.4 Petunjuk Penggunaan untuk User Dalam Melakukan Pencarian Katalog Tata cara penggunaan katalog untuk user dalam melakukan pencarian sebuah dokumen sebagai berikut: 1. Install program xampp version 1.5.1. (Gambar 4.8 adalah program xampp).
Gambar 4.9 Program xampp
2. Buka program. Pilih start program. Pastikan program xampp tersebut sudah terinstall dengan baik dan ada di menu program. 3. Copy-paste file web yang berisi katalog pencarian ke dalam folder C:\program file\xampp\htdocs\nama filenya. 4. Untuk meletakkan databasenya. Aktifkan xampp, kemudian buka firefoxe mozilla atau internet explorer, ketik: localhost maka akan muncul Tampilan berikut.
Arahkan kursor ke menu Tools yang terdapat disebelah kiri yaitu klik phpMyAdmin. Maka akan muncul tampilan berikut.
Kemudian klik menu import. Browse/cari nama file database yang akan dimasukkan. Klik Go. Dapat dilihat pada tampilan di bawah ini.
5. Jalankan web katalog pencarian pada firefoxe mozilla atau internet explorer, ketik localhost, maka akan muncul website pencarian katalog.
Menu ini merupakan menu utama program, yang terdiri dari: -
Home: berisi informasi tentang bagaimana aplikasi pencarian ini dapat dilakukan. Tata cara penggunaannya ada di menu info.
-
Profil: berisi identitas untuk admin.
-
Info: berisi petunjuk penggunaan website ini.
-
Contact: berisi identitas pembuat website ini.
-
Admin: menu khusus untuk admin saja.
6. Menu search yang ada di sebelah kiri itu untuk mencari dokumen atau buku yang akan user gunakan. Sebagai contoh: -
User ingin mencari berdasarkan judul buku. Ketik “masa depan” dengan kategori “judul” klik submit, maka akan muncul
-
Pencarian berdasarkan pengarang. Ketik “armijin pane” dengan kategori “pengarang” klik submit, maka akan muncul
-
Pencarian berdasarkan penerbit. Ketik “balai pustaka” dengan kategori “penerbit” klik submit, maka akan muncul
-
Pencarian secara acak. Ketik “pratameng kusumo” klik submit, maka akan muncul
-
Untuk menu admin. Pertama-tama admin tersebut harus login. Seperti pada tampilan di bawah ini
Menu admin terdiri dari home, data buku, logout. Klik menu Data Buku maka muncul tampilan data-data buku yang ada. Tugas admin di menu ini adalah untuk menambah, menghapus, mengedit data buku.
BAB V PENUTUP
Bab ini merupakan kesimpulan dari penulisan skripsi beserta saran-saran yang bermanfaat untuk sistem lebih lanjut.
5.1 Kesimpulan Berdasarkan permasalahan dan pemecahan yang penulis bahas, dapat diambil kesimpulan bahwa : 1. Algoritma backtracking adalah salah satu algoritma yang dapat digunakan untuk pencarian katalog secara efektif dan efisien. 2. Karena aplikasi ini komputer, maka akan memudahkan petugas perusahaan dalam hal pencarian data yang ada. 3. Dengan dibuatnya aplikasi pencarian katalog berbasis web ini memberikan kemudahan pelayanan pada user external untuk mendapatkan informasi yang dibutuhkan.
5.2 Saran 1. Bagi programmer yang ingin membuat software aplikasi pencarian katalog 54 untuk memberikan sebuah informasi bisa menggunakan algoritma pencarian lainnya. 2. Mengintegrasikan sistem katalog online sehingga memudahkan proses pencarian bahan pustaka atau dokumen. 3. Pencarian katalog ini bisa dikembangkan dengan membandingkan algoritma backtracking dengan algoritma brute force dalam hal tampilan desainnya.
DAFTAR PUSTAKA
Darmono. Perpustakaan Sekolah Pendekatan Aspek Manajemen dan Tata Kerja. Jakarta : Grasindo. 2007. Desiani, Anita., dkk. Konsep Kecerdasan Buatan. Yogyakarta: Andi. 2006. Divisi Penelitian dan Pengembangan Madcoms. Aplikasi Program PHP dan MySQL untuk Membuat Website Interaktif. Yogyakarta: Andi. 2004. Abdul kadir. Algoritma Pemograman Menggunakan C++. Yogyakarta: Andi. 2004. Jogianto, H.M. Pengenalan Komputer. Yogyakarta: Andi. 2000. Kendal, Kenneth E. Analisis dan Perancangan Sistem. Jakarta: PT Prenhallindo. 2003. Munir, Rinaldi. Bahan Kuliah ke-2 IF2251 Strategi Algoritmik. Makalah Algoritma Brute Force. Departemen Teknik Informatika, Institut Teknologi Bandung, 2004. Munir, Rinaldi. Bahan Kuliah ke-9 IF2251 Strategi Algoritmik. Makalah Algoritma Runut-Balik (Backtracking). Departemen Teknik Informatika, Institut Teknologi Bandung, 2004. MT, Suryadi. Pengantar Analisis Algoritma. Cet. Ke-2. Jakarta: Gunadarma. 1993. Prasetyo, Didik Dwi. Administrasi Database Server MySQL. Jakarta: PT Elex Media Komputindo. 2003. Pressman, Roger S. Rekayasa Perangkat Lunak. Buku 1. Yogyakarta: Andi. 2002.
Sidik, Betha. Pemograman Web dengan PHP. Cet. 1. Bandung: Informatika. 2004. Sukrisno, Utami Ema. 10 Langkah Belajar Logika dan Algoritma, Menggunakan Bahasa C dan C++ di GNU/Linux. Yogyakarta: Andi. 2005. Surachman, Arif. Penelusuran Informasi. Makalah Temu Kembali Informasi. http://www.en.wikipedia.org/wiki/Rapid application development. 6 Agustus 2008, 13.00
LAMPIRAN C SOURCE CODE
Cari.php //================backtrack============= //========choose the only one============= function back($x,$cari,$pilih){ $cari2=$cari; $pilih=strtolower($pilih); static $awal=0;$len=0; static $hasil=array(); static $tanda=0; static $count_cari; $data=array(); $data_id=array(); $flag=0; $sql = 'SELECT '.$pilih.',id FROM `data_buku` LIMIT '.$awal.', 5 '; $qsql = mysql_query($sql) or die(mysql_error());
$cari=strtolower($cari); $count_cari=substr_count($cari," ")+1; $cari=explode(" ",$cari); while($row = mysql_fetch_row($qsql)){ $judul=$row[0]; $id=$row[1]; $judul=strtolower($judul); $count=substr_count($judul," ")+1; $judul=explode(" ",$judul);
for($i=0;$i<$count;$i++){ $data[$len+$i]=$judul[$i]."#".$id; } $len+=$count; }
sort($data); for($i=0;$i<$len;$i++){ $pecah=explode("#",$data[$i]); $data[$i]=$pecah[0]; $data_id[$i]=$pecah[1]; } for($i=0;$i<$count_cari;$i++){ $lo=0;$hi=$len-1;$flag=0; while($lo <= $hi && $flag==0){ $mid=ceil(($lo+$hi)/2); if(strcmp($cari[$i],$data[$mid])==0){ array_push($hasil,$data_id[$mid]); $flag++; $tanda++; } else{ if(strcmp($cari[$i],$data[$mid])<0) $hi=$mid-1; else $lo=$mid+1; } } } if($tanda<$count_cari){ $sql = 'select count(*) from data_buku'; $res = mysql_query($sql) or die(mysql_error()); list($total_rows) = mysql_fetch_row($res); $awal+=5; if($awal>=$total_rows){ if($tanda==0) echo"
Not Found
"; return 0; } back($awal,$cari2,$pilih); } if($tanda>0){ return $hasil; } } //========================================end===================== //==================choose all in one=================================== function back2($x,$cari){ $cari2=$cari; static $awal=0;$len=0; static $hasil=array(); static $tanda=0; static $count_cari; $data=array(); $data_id=array(); $flag=0; $sql = 'SELECT * FROM `data_buku` LIMIT '.$awal.', 5 '; $qsql = mysql_query($sql) or die(mysql_error());
$cari=strtolower($cari); $count_cari=substr_count($cari," ")+1;
$cari=explode(" ",$cari); while($row = mysql_fetch_row($qsql)){ $id=$row[0]; $judul=$row[1]; $pengarang=$row[2]; $penerbit=$row[3]; $judul=strtolower($judul); $pengarang=strtolower($pengarang); $penerbit=strtolower($penerbit);
$judul=explode(" ",$judul); $pengarang=explode(" ",$pengarang); $penerbit=explode(" ",$penerbit); $count_judul=count($judul); $count_pengarang=count($pengarang); $count_penerbit=count($penerbit); for($i=0;$i<$count_judul;$i++){ array_push($data,$judul[$i]."#".$id); } for($i=0;$i<$count_pengarang;$i++){ array_push($data,$pengarang[$i]."#".$id); } for($i=0;$i<$count_penerbit;$i++){ array_push($data,$penerbit[$i]."#".$id); }
} $count_data=count($data); sort($data); for($i=0;$i<$count_data;$i++){ $pecah=explode("#",$data[$i]); $data[$i]=$pecah[0]; $data_id[$i]=$pecah[1]; } for($i=0;$i<$count_cari;$i++){ $lo=0;$hi=$count_data-1;$flag=0; while($lo <= $hi && $flag==0){ $mid=ceil(($lo+$hi)/2); if(strcmp($cari[$i],$data[$mid])==0){ array_push($hasil,$data_id[$mid]); $flag++; $tanda++; } else{ if(strcmp($cari[$i],$data[$mid])<0) $hi=$mid-1; else $lo=$mid+1; } } } if($tanda<$count_cari){ $sql = 'select count(*) from data_buku'; $res = mysql_query($sql) or die(mysql_error()); list($total_rows) = mysql_fetch_row($res); $awal+=5; if($awal>=$total_rows){ if($tanda==0) echo"
Not Found
"; return 0; } back2($awal,$cari2); } if($tanda>0){
return $hasil; } //==========================================end==================== //===================find different of array============================== function array_beda($x,$y){ $hasil=array(); $len=count($y); settype($x,"integer"); for($i=0;$i<$len;$i++){ $z=$y[$i]; settype($z,"integer"); if($x != $z) array_push($hasil,$z); } return $hasil; } //=============================================end================ //====================find maximum count of array========================= function banyak($data){ $temp=array(); $temp_data=array_unique($data); sort($temp_data); $max=0; $len=count($data); $len2=count($temp_data);
for($i=0;$i<$len2;$i++){ for($j=0;$j<$len;$j++){ if($temp_data[$i]==$data[$j]) $temp[$i]++; } } for($i=0;$i<$len2;$i++){ if($temp[$i]>=$max) $max=$temp_data[$i]; } return $max; } //================================================end============== //===============print result========================================== function cetak($elemen,$index){ if(count($index)>1) sort($index); $i=0; while($i<$elemen){ $id=$index[$i]; $sql = 'SELECT * FROM `data_buku` WHERE `id` = '.$id.' '; $qsql = mysql_query($sql) or die(mysql_error());
while ($buku=mysql_fetch_row($qsql)){ echo "
"; echo " $buku[1] | $buku[2] | $buku[3] |
";
echo"
"; } $i++; } } //==============================================end================ ?> Backtrack.php
B1. Tampilan Menu Utama Program
B2. Tampilan Menu Admin
B3. Form Tambah Data
Persentase Hasil Penelitian Kuisioner Tabel A.1 Pertanyaan dan Hasil Persentase Kuesioner I No Pertanyaan 1
2
3
4
5
Jumlah Persentase (%)
Apakah anda pernah mencari dokumen atau buku untuk mendapatkan informasi a. Ya b. Tidak
a. 90 % b. 10 %
Dimana anda mencari buku atau dokumen yang dimaksud? a. Perpustakaan b. Toko buku
a. 80 % b. 20 %
Bagaimana sistem pencarian katalognya? a. Masih bersifat manual ( dalam bentuk buku / kertas/kartu ) b. Sudah terkomputerisasi ( online)
a. 80 % b. 20 %
Bagaimana pencariannya? a. Dengan menelusuri rak satu persatu b. Melihat di buku katalognya c. Melihat di kartu katalog Bagaimana menurut anda jika anda dapat mencari referensi dokumen atau buku lainnya dengan menggunakan komputer ? a. Membantu dan mungkin saya gunakan b.Kurang membantu dan tidak berguna
a. 60 % b. 20 % c. 20 %
a. 100 % b. 0 %
Tabel A.2 Data Kuisioner sebelum diolah No
Jawaban Pertanyaan B 3 12 12 9 7 9
A 27 18 18 12 23 21
1 2 3 4 5 6
C 9 -
Tabel A.3 Hasil Persentase (%) Kuesioner No
Jawaban Pertanyaan B 10 30 0 20 0 6.7
A 90 70 100 60 100 93.3
1 2 3 4 5 6
C 20 -
30 27
25 23 21 20
JAWABAN
18
18 jawaban A
15
jawaban B jawaban C 12
12
12
10
9
9 7
5 3
0 1
2
3
4
5
PERTANYAAN
Gambar A.1 Diagram Batang Kuisioner
6
WAWANCARA
1. Nama
: Rudi Cahyadi U.
Tempat Wawancara
: Perpustakaan
Hari, Tanggal
: Sabtu, 27 mei 2008
Waktu
: 10.00 – 10.30 WIB
Isi Wawancara 1. Q : Tolong dijelaskan bagaimana menurut anda pencarian katalog menggunakan algoritma backtracking? A : Pencarian katalog dengan menggunakan algoritma backtracking ini lebih efisien dan efektif. Karena algoritma ini tidak memeriksa semua kemungkinan yang ada hanya pencarian yang mengarah ke solusi saja yang dipertimbangkan. Dengan kata lain, efisien disini maksudnya proses pencariannya relatif lebih singkat dan efektif menghasilkan solusi yang tepat guna. Q : Kenapa penelusurannya dengan menggunakan metode binary Search jauh lebih efisien dibanding dengan DFS? A : Alasannya DFS ini tidak cocok untuk simpul yang panjang, memungkinkan tidak ditemukannya solusi yang diharapkan, serta hanya akan mendapatkan satu solusi dari setiap pencarian.
Kuisioner Penelitian I Tujuan perancangan kuesioner ini adalah untuk menentukan layak atau tidaknya pembuatan skripsi yang mempunyai judul ” algoritma backtracking pada pencarian katalog berbasis web” Nama Umur
: :
tahun
Daftar Pertanyaan : 1. Apakah anda pernah mencari dokumen atau buku untuk mendapatkan informasi? a. Ya b. Tidak 2. Dimana anda mencari buku atau dokumen yang dimaksud? a. Perpustakaan b. Toko buku 3. Bagaimana sistem pencarian katalognya? a. Masih bersifat manual ( dalam bentuk buku / kertas/kartu ) b. Sudah terkomputerisasi ( online) 4. Bagaimana pencariannya? a. Dengan menelusuri rak satu persatu b. Melihat di buku katalognya c. Melihat di kartu katalog 5. Bagaimana menurut anda jika anda dapat mencari referensi dokumen atau buku lainnya dengan menggunakan komputer ? c. Membantu dan mungkin saya gunakan d. Kurang membantu dan tidak berguna
Terima Kasih atas kerjasamanya Wassalam
Eny Tri Handayani 104091002868