ABSTRAK
Electronic commerce adalah satu bagian yang terpenting akhir-akhir. Saat ini dengan pesatnya perkembangan teknologi dan
internet di Indonesia telah memiliki dampak besar pada bisnis yaitu mulai dari jual-beli, cara berinteraksi antar manusia dan
sebagainya. Umumnya e-commerce memasarkan barangnya dengan jenis barang yang sangat banyak dan juga barang yang
ditampilkan dalam setiap halaman hanya sebagian saja yang biasa disebut dengan paging. Tentunya hal tersebut akan
mempersulit calon pembeli untuk membeli di website e-commerce tersebut, Selain dari pada itu sering sekali calon pembeli
keliru dalam menentukan produk yang dibeli karena nama produk mempunyai kesamaan sehingga bisa saja terjadi kesalahan
pembelian jika calon pembeli kurang teliti dalam melakukan pembelian. Algoritma Bitap adalah salah satu algoritma String
Matching yang akan memberitahu apakah data input memliki pola yang “kira-kira sama dengan” pola yang sedang dicari.
Algoritma ini akan dapat membantu bila diterapkan pada pencarian nama barang di website e-commerce. Dari permasalahan
tersebut akan dibangun sebua aplikasi berbasis web yang memfokuskan pada kotak pencarian nama-nama barang. Sehingga
diharapkan dapat mempermudah calon pembeli dalam menemukan dan mempeercepat dalam proses pencarian barang.
36
Jurnal Majalah Ilmiah Informasi dan Teknologi Ilmiah (INTI)
ISSN 2301-9425 (Media Cetak)
Volume 7, No 1, Oktober 2019
Hal: 36-40
Istilah algoritma berasal dari nama seorang memiliki fase preprocessing kompleksitas O (m + σ)
pengarang berkebangsaan Arab bernama Ja’fat dan fase komputasi kompleksitas O (m n). Algoritma
Mohammed bin Musa al Khowarizmi (tahun 790 – tidak membedakan antara awal dan ujian berikutnya
840), yang sangat terkenal dengan sebutan bapak karena Bitap menggunakan mekanisme yang berbeda,
Aljabar. Secara defenisi algoritma adalah alur yang menggunakan operator bitwise. Penting untuk
pemikiran yang logis yang dapat dituangkan ke dalam disebutkan bahwa di Bitap, 0 selalu merepresentasikan
bentuk tulisan. Sebuah algoritma dikatakan benar sebuah kejadian dan sebuah 1 selalu mewakili sebuah
(correct) jika algoritma tersebut berhasil mengeluarkan kehilangan, di dalam representasi bitnya. Pertama-
output yang benar untuk semua kemungkinan input. tama, Bitap membutuhkan array topeng pola yang
String matching adalah proses pencarian semua berisi jumlah karakter yang sama seperti karakter dalam
kemunculan query yang selanjutnya disebut pattern ke alfabet. Alfabet menentukan jumlah dan sifat karakter
dalam string yang lebih panjang dalam teks dan polanya. Dalam kasus penelitian ini,
String matching dirumuskan dengan : alfabet berisi 26 karakter, yang merupakan huruf
x = x [0....m-1] (1) alfabet Inggris. Topeng pola ini kemudian diisi dengan
y = y [0.....n-1] (2) cara berikut:
dimana : 1. Ambillah karakter dalam pola satu per satu dan
x = pattern tempatkan sesuai dengan tatanan alami, abjad, di
m = panjang pattern dalam topeng pola. Jadi huruf A masuk ke nomor
y = Teks elemen nol pada array topeng pola, huruf B
n = Panjang teks mengarah ke elemen nomor satu, dan seterusnya.
Pencocokan string adalah permasalahan untuk 2. Dalam elemen array topeng pola, setiap elemen
menemukan satu atau lebih umum semua kejadian dari menyimpan posisi huruf tertentu seperti yang
pola dalam teks. Suatu pola dan teks keduanya muncul dalam polanya. Jadi jika huruf A terjadi
merupakan string yang dibangun diatas alphabet yang pada posisi kelima dalam Pattern, maka digit kelima
terbatas (satu set simbol yang terbatas) dari Least Significant Bit diatur menjadi nol, pada
Menurut cara pembacaan teks, algoritma elemen pertama dari array topeng pola.
pencocokan string dapat dibedakan atas dua cara Misalnya, jika polanya adalah: ACCACD maka
pembacaan: topeng pola akan terlihat sebagai berikut (baca dari
1. Dari kiri ke kanan kanan ke kiri):
Algoritma pencarian dengan tehnik ini sangat 1. Pattern_mask [0] = 110110
banya. Hampir sebagian besar algoritma pencarian 2. pattern_mask [1] = 111111
menggunakan cara pembacaan teks dari kiri ke 3. pattern_mask [2] = 101001
kanan. 4. pattern_mask [3] = 011111
2. Dari kanan ke kiri 5. pattern_mask [4] = 111111
Dalam algoritma ini, terdapat algoritma boyer- 6. dan seterusnya sampai pattern_mask [24].
moore yang dianggap salah satu algoritma yang Algoritma ini membutuhkan sebuah set kerja
utama dan algoritma standar dalam pencocokan juga, yang diinisialisasi menjadi semua, kecuali Bit
string. Least Significant, yang ditetapkan menjadi nol.
Akhirnya, Bitap memerlukan pengecekan sebuah
D. Cara Kerja String Matching variabel, yang disebut is_match dalam diagram alir
Cara kerjanya adalah dengan mencoba mencari algoritma, yang dengan sedikit bitwise bergeser
di setiap posisi awal teks dan mengabaikan pencarian berkali-kali, sama besarnya dengan pola, dimana ia
secepat mungkin jika karakter yang salah ditemukan. memperkenalkan sebanyak nol karakter dalam variabel
Proses pertama adalah menyelaraskan bagian paling cek, karena banyak karakter dalam pola . Angka nol ini
kiri dari pattern dengan teks. Kemudian dibandingkan diikuti oleh satu di sebelah kiri mereka. Setelah variabel
karakter yang sesuai dari teks dan pattern. Setelah awal disiapkan dan fase preprocessing disimpulkan,
seluruhnya cocok dari pattern window digeser kekanan algoritma memasuki fase komputasi, yang merupakan
sampai posisi (n-m+1) pada teks. Efesiensi dari pengujian awal dan berikutnya. Disini algoritma
algoritma terletak pada dua tahap: menggunakan bitwise atau dengan cara yang set kerja
1. Tahap praproses, tahap ini mengumpulkan akan sama dengan working set bitwise atau karakter
informasi penuh tentang pattern dan menggunakan pertama dari teks. Kemudian working set bitwise kiri
informasi ini pada tahap pencarian. bergeser satu kali. Disini algoritma mengevaluasi
2. Tahap pencarian, pattern dibandingkan dengan apakah variabel cek bitwise dan working set sama
window dari kanan ke kiri atau kiri ke kanan sampai dengan nol. Jika ya, maka pola itu ditemukan. Jika
kecocokan atau ketidak cocokan terjadi. tidak, maka working set akan sama dengan working set
bitwise atau karakter kedua dari teks. Ini berlanjut
E. Algoritma Bitap sampai teks habis. Algoritma flowchart figure 2
Algoritma Bitap, yang menggunakan operator menunjukkan inner kerja Bitap, dimana pseudo kode C
bitwise untuk melewati teks yang masuk untuk menjelaskan setiap langkah dari algoritma. Dalam loop
menemukan pola yang diinginkan. Algoritma ini ini, kode berikut disajikan:
37
Jurnal Majalah Ilmiah Informasi dan Teknologi Ilmiah (INTI)
ISSN 2301-9425 (Media Cetak)
Volume 7, No 1, Oktober 2019
Hal: 36-40
for (j = 1; j <= Levenshtein; j ++)
{
int temp = working_set [j];
Working_set [j] = (old_workingSet
& (working_set [j] |
Pattern_mask [txt
[text_counter]])) << 1;
Old_workingSet = temp;
}
Pada akhir loop ini, perbandingan berikut
dibuat:
if ((working_set [Levenshtein] & (1 << pat_len))
==
Jika perbandingan itu benar, maka pola itu
ditemukan, jika tidak maka belum ditemukan. Jadi
Pencarian terus berlanjut sampai akhir Teks.
III. ANALISA
A. Analisa Algoritma Bitap
Algoritma Bitap adalah salah satu algoritma
yang dapat digunakan untuk mencari dimana sebuah
string (dalam kasus ini dinamakan sebagai pola) apakah
ditemukan di dalam kumpulan string lain dengan
ukuran yang lebih besar. Bitap akan memberitahu
apakah data input memliki pola yang “kira-kira sama
dengan” pola yang sedang dicari, dimana perkiraan
ditentukan dengan menggunakan Levenshtein
Distance.
Algoritma dimulai dengan melakukan
perhitungan bitmask yang mengandung 1 bit untuk
setiap elemen dalam pola, kemudian pencarian akan
dilakukan dengan cara operasi bitwise, dimana
pencarian tersebut sangat cepat dilakukan. Bitap
bekerja dengan cara melakukan pemetaan menjadi
operasi bitwise yang mudah. Setiap bit yang bernilai 0
berarti cocok, dan setiap bit yang bernilai 1 berarti tidak
cocok.
Sebagai contoh, akan dilakukan proses
pencarian pattern menggunakan algoritma Bitap
dengan Text “motifpopsocket” dan Pattern “socket”
setiap karakter pada pattern tidak ditemukan kecocokan
pada indeks maka bergeser satu langkah ke kanan,
maka penyelesaianya adalah sebagai berikut :
38
Jurnal Majalah Ilmiah Informasi dan Teknologi Ilmiah (INTI)
ISSN 2301-9425 (Media Cetak)
Volume 7, No 1, Oktober 2019
Hal: 36-40
39
Jurnal Majalah Ilmiah Informasi dan Teknologi Ilmiah (INTI)
ISSN 2301-9425 (Media Cetak)
Volume 7, No 1, Oktober 2019
Hal: 36-40
V. KESIMPULAN
Dari penelitian ini dapat disimpulkan sebagai
berikut :
1. Pada aplikasi e-commerce lebih efektif bila produk
yang terdapat pada web disajikan dengan
mengelompokkan barang karena proses
pencariannya menjadi lebih mudah.
2. Berdasarkan analisa dan pengujian bahwa
penerapan algoritma Bitap dapat
diimplementasikan pada aplikasi pencarian nama
barang di e-commerce.
3. Berdasarkan analisa dan pengujian bahwa aplikasi
cocok dirancang menggunakan bahasa
pemograman PHP, dan berbasis Website.
REFERENSI
[1] Wikipedia.https://en.wikipedia.org/wiki/Bitap_algorithm
. Diakses : 20 mei 2017.
[2] Wikipedia. http://id, Wikipedia.Org /wiki/Algoritma.
Diakses : 20 mei 2017.
[3] Ema, U., & Sukrisn. (2005). 10 langkah Belajar Logika
dan Algoritma. Menggunakan Bahasa C dan C++ di
GNU/Linux. Yogyakarta: ANDI.
[4] Feigl, M. (2015). Bitap for Parallel Approximate
Nucleotide Sequence Matching. MSc in High
Performance Computing , 2, 10.
[5] Purbo, O. W. (2001). Buku Pintar Internet Membangun
Web Ecommerce. Jakarta: PT. Elex Media Komputindo.
[6] Sutarman. (2007). Memabangun Aplikasi Web dengan
PHP & MySQL. Yogyakarta: Graha Ilmu.
[7] Komputer, W. (2012). Membangun Web Interatif dengan
Adobe Dreamweaper SC5.5, php & MySQL. Yogyakarta:
Andi.
[8] Zaki, A. (2008). 36 Menit Belajar Komputer, Php Dan
Mysql. Jakarta: PT Elex Media Komputindo.
[9] Miftakhul, H., & Bunafit, K. (2010). Membuat Aplikasi
Database. Jakarta: PT Elex Media Komputindo.
40