Skripsi
Oleh:
Dwi Adi Bangkit
NIM: 11160910000059
1. Skripsi ini merupakan hasil karya asli saya yang diajukan untuk
memenuhi salah satu persyaratan memperoleh gelar Strata 1 di UIN
Syarif Hidayatullah Jakarta.
2. Semua sumber yang saya gunakan dalam penulisan ini telah saya
cantumkan sesuai dengan ketentuan yang berlaku di UIN Syarif
Hidayatullah Jakarta.
3. Jika di kemudian hari terbukti bahwa karya ini bukan hasil karya asli saya
atau merupakan jiplakan dari karya orang lain, maka saya bersedia
menerima sanksi yang berlaku di UIN Syarif Hidayatullah Jakarta.
NIM : 11160910000059
Dengan Hak Bebas Royalti Non ekslusif ini Universitas Islam Negeri Syarif
Hidayatullah Jakarta berhak menyimpan, mengalih media/formatkan, mengelola
dalam bentuk pangkalan data (database), merawat, dan mempublikasikan tugas
akhir saya selama tetap mencantumkan nama saya sebagai penulis/pencipta dan
sebagai pemilik Hak Cipta. Demikian pernyataan ini saya buat dengan sebenarnya
Alhamdulillah, segala puji dan syukur penulis panjatkan kepada Allah SWT,
karena atas rahmat dan karunia-Nya penulis dapat menyelesaikan penulisan,
pelaksanaan dan penyusunan skripsi ini. Sholawat serta salam semoga selalu
tercurahkan kepada Nabi Muhammad SAW beserta keluarganya, para sahabatnya
serta umatnya hingga akhir zaman. Penulisan skripsi ini disusun sebagai salah satu
syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi Teknik
Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri (UIN) Syarif
Hidayatullah Jakarta . Penulis sangat menyadari bahwa skripsi ini tidak akan bisa
terselesaikan tanpa bantuan, saran, kritik, dan dukungan dari berbagai pihak. Oleh
karena itu dalam kesempatan kali ini penulis ingin mengucapkan terima kasih
kepada :
1. Nashrul Hakiem, S.Si., M.T., Ph.D selaku Dekan Fakultas Sains dan
Teknologi.
2. Dr. Imam Marzuki Shofi, M.T selaku Ketua Program Studi Teknik
Informatika Fakultas Sains dan Teknologi.
3. Dewi Khairani, M.Sc dan Nurul Faizah Rozy, M.TI selaku Dosen
Pembimbing I dan II yang senantiasa membimbing, mengarahkan,
memotivasi penulis selama penyusunan skripsi dan tak bosan mengingatkan
penulis untuk segera menyelesaikan penulisan.
5. Kedua orang tua, kakak serta keluarga besar penulis yang selalu
memberikan dukungan, selalu mendoakan, selalu memberi kasih sayang
bagaimanapun kondisi penulis.
12. Seluruh pihak dan teman-teman yang tidak bisa disebutkan satu persatu
yang telah membantu penulis hingga saat ini.
Penulisan skripsi ini masih jauh dari kata sempurna. Untuk itu, sangat
diperlukan kritik dan saran yang membangun bagi penulis, dan dapat disampaikan
melalui email adibangkai@gmail.com. Penulis memohon maaf atas segala
kekurangan ataupun kesalahan baik dari segi keilmuan atau penulisan. Akhir kata,
semoga skripsi ini dapat bermanfaat bagi penulis dan orang lain.
ABSTRAK
ABSTRACT
BAB I
PENDAHULUAN
Latar Belakang
Saat ini, konsumen Muslim dihadapkan pada berbagai pilihan produk bahkan
di Indonesia sendiri di tahun 2022 terdapat kurang lebih 148 ribu produk makanan
yang beredar (lihat gambar 1.1). Dalam masa perdagangan bebas dan era globalisasi
seperti sekarang ini, produk-produk makanan kemasan dari luar negeri pun relatif
mudah untuk masuk ke pasar Indonesia. Bagi muslim, ada konsep yang
menggambarkan sesuatu yang 'diizinkan' oleh hukum Syariah. Konsep tersebut
biasa disebut “halal” yang dapat diartikan hal yang diperbolehkan atau diizinkan
bagi umat Islam. Halal berlaku untuk makanan apa yang bisa dimakan oleh Muslim
(Sam, 2018) disini para konsumen harus jeli dan cermat dalam memilih produk
makanan kemasan yang pilihanya semakin beragam. menurut Mira dalam jurnalnya
kurangnya informasi tentang status halal suatu produk telah mengharuskan seorang
Muslim untuk lebih lanjut memeriksa rincian bahan. (Kartiwi et al., 2019)
5…
1% 4%
Produk Pangan :
148.714
37% Kosmetika :
217.077
Suplemen Makanan :
4.235
Obat Tradisional :
14.718
53% Obat-Obatan :
21.355
NER merupakan bidang ilmu dari ekstraksi informasi yang digukan untuk
pengklasifikasi teks dari sebuah dokumen atau korpus yang dikategorikan seperti
nama orang, lokasi, organisasi, tanggal, waktu dan sebagainya. NER
diimplementasikan dalam banyak bidang, antara lain dalam machine translation,
question-answering machine system, indexing pada information retrieval,
klasifikasi dan juga dalam automatic summarization. Tujuan yang diharapkan dari
proses dalam NER adalah untuk melakukan ekstraksi dan klasifikasi nama ke dalam
beberapa kategori dengan mengacu kepada makna yang tepat (Dirgantara et al.,
2018). Dan juga untuk mengenali dan mengidentifikasi entitas bernama dan
mengklasifikasikannya ke dalam kategori yang telah ditentukan (Sinta Wahyuni &
Sanjaya ER, 2021)
Pada umumnya NER memiliki tiga pendekatan yang digunakan, yaitu rule-
based method, learning-based method, dan hybrid approach. Pendekatan rule-
based bergantung pada aturan dan pola entitas bernama yang terdapat dalam
kalimat dan didefinisikan secara manual menggunakan regular ekspresi
berdasarkan pengetahuan linguistik dan karakteristik entitas. Pengetahuan
linguistik dapat mencakup tata bahasa, kontekstual, leksikon, dan algoritma untuk
menentukan setiap operasi yang terlibat (Sinta Wahyuni & Sanjaya ER, 2021),
Dalam penelitian ini akan dikembangkan NER untuk mengidentifikasi dan
mengenali entitas makanan pada komposisi produk kemasan dengan penerapan
rule-based. Aturan dibuat berdasarkan pengamatan langsung terhadap objek
penelitian, dengan memperhatikan pola dan bentuk komposisi yang umum terdapat
pada produk kemasan. Evaluasi dilakukan dengan metode Confusion Matrix.
Rumusan Masalah
Sebagai pembatasan penelitian dan aplikasi untuk tetap fokus dan sesuai
dengan tujuan yang ditetapkan, maka penulis memberikan ruang lingkup batasan
masalah sebagai berikut:
1.3.1 Proses
1.3.2 Metode
1. AWS Texract
2. Google Collab
3. spaCy
4. Python Flask
Tujuan Penelitian
Manfaat Penelitian
Masyarakat yang menggunakan aplikasi dari penelitan ini dapat mencari tahu
kandungan makanan yang mereka konsumsi dan menyeleksi halal tidaknya
kandungan yang terdapat pada produk kemasan yang mereka ingin konsumsi
• Studi Pustaka
• Observasi
1. Pengumpulan Kebutuhan.
2. Perancangan
3. Evaluasi dan perbaikan.
Sistematika Penulisan
Sistematika yang dibuat pada skripsi ini akan dibagi dalam enam bagian,
yaitu:
BAB I PENDAHULUAN
BAB IV IMPLEMENTASI
Bab ini akan diuraikan mengenai hasil analisa dari eskperimen yang
telah dilakukan, melakukan pencatatan kekurangan dari hasil analisa
yang telah dilakukan, melakukan pencatatan kekurangan dari hasil
analisa yang mungkin harus mendapat perhatian
Pada bab ini berisi kesimpulan dari hasil pembahasan seluruh bab
serta saran-saran yang kiranya dapat diperhatikan serta
dipertimbangkan untuk pengembangan penelitian atau sistem
dimasa mendatang
BAB II
LANDASAN TEORI
1. Nama produk
2. Daftar bahan yang digunakan
3. Berat bersih / isi bersih
4. Nama dan alamat pihak produksi dan atau pengimpor
5. Logo halal bagi pangan yang dipersyaratkan
6. Tanggal dan kode produksi
7. Tanggal, bulan, dan tahun kedaluwarsa
8. Nomor izin edar bagi pangan olahan
9. Asal usul bahan bagi pangan tertentu
Menurut Syukriya dan Faridah danya klasifikasi makanan halal dan haram,
kewajiban untuk mengonsumsi yang halal dan larangan untuk memakan yang
haram selain sebagai ujian keimanan bagi umat muslim juga merupakan aturan
demi kemaslahatan hidup manusia. (Jauharotus Syukriya & Faridah, n.d.)
Dapat dilihat dari gambar 2.3 menunjukan ciri utama dari tugas NER adalah
melakukan identifikasi dan membuat tag konteks pada kata-kata yang tersedia
berdasarkan pada kemungkinan kombinasi atas kata-kata tersebut, seperti
penentuan panjang minimal kata word yang akan diidentifikasi sebagai nama
entitas, kata awal, dan sebagainya, entitas seperti Person, Organization, Position,
dan Location dalam proses identifikasi akan membutuhkan ciri (feature) yang
merefleksikan properti dari sebuah nama entitas, seperti tipe, kemunculan dan
berbagai ukuran umum, baik untuk skala dokumen maupun korpus. Salah satu
contoh penggunaan fitur dalam penentuan nama entiti adalah fitur kemunculan
sebuah kata pada urutan pertama (first sentence occurence), karena urutan
kemunculan kata dapat menentukan tingkat kepentingan dari kata tersebut
(Pramiyati et al., 2015). NER mendukung beberapa jenis entitas yang dapat dilihat
pada tabel 2.1
Tipe Deskripsi
LANGUAGE Bahasa.
TIME Waktu.
dan pada penelitian ini berikut adalah entitas yang akan digunakan untuk
mengenali entitas makanan, dalam muslim ada tiga kategori hukum dari bahan yang
boleh uamt konsumsi yaitu Haram, Halal dan Syubhat lihat tabel 2.2
Tipe Deskripsi
(Zamakhsyari, 2018)
spaCy
SpaCy menerapkan neural models baru untuk tagging, parsing, dan entity
recognition. Model telah dirancang dan di implementasikan dari awal khusus untuk
spaCy, untuk memberi keseimbangan kecepatan, size, dan accuracy yang stabil.
Strategi bloom embedding baru dengan fitur subword digunakan untuk mendukung
kosakata besar dalam tabel kecil. Convolutional layer dengan residual connections,
layer normalization and maxout non-linearity memberikan efisiensi yang jauh lebih
baik daripada solusi Bi-LSTM standar. The parser dan NER menggunakan tujuan
pembelajaran imitasi untuk memberikan akurasi yang sejalan dengan sistem
en de fr es pt
it nl sv fi nb
Custom
hu he bn ja ... Components
TextCategorizer
Dependency
Parser
Entity
Recognizer
nlp.tokenizer.vocab nlp.vocab
nlp.pipeline[i].vocab
MAKES
doc.vocab
nlp.vocab.morphology
Doc
MAKES
Morphology
lexeme.vocab
MAKES MAKES
token.doc span.doc
Rule based adalah sebuah metode dimana aturan yang ada di dalam sistem
dibuat sendiri berdasarkan pengetahuan linguistik. Selain menggunakan kamus dan
klasifikasi, NER juga bisa menggunakan aturan-aturan tertentu (Wulandari et al.,
2018). Dalam penelian ini, berdasarkan dokumen latih beberapa named entity
memiliki pola-pola tertentu, sehingga bisa dibuat polanya yang akan menjadi aturan
dalan rule-based NER. dalam spacy selain menemukan kata dan frasa yang dicari
rule-based juga memberi akses ke token di dalam dokumen dan hubungannya. Ini
berarti mesin dapat dengan mudah mengakses dan menganalisis token di sekitarnya,
menggabungkan rentang menjadi satu token, atau menambahkan entri ke entitas
tersebut(Spacy, 2022)
Visualisasi
Visualisasi data adalah teknik untuk menyajikan data dalam format gambar
atau grafik. Visualisasi juga dapat mengilustrasikan data berupa pengetahuan untuk
berekspresi secara visual dimana suatu data dapat terstruktur dan bermakna, serta
bagaimana ide tersebut dapat bisa terhubung. Dengan demikian dapat menunjukkan
bahwa visualisasi informasi secara grafis dapat meningkat keterampilan selama
data dapat diproses dengan baik seperti untuk peringkasan teks, penggunaan
pengatur grafik (dalam format khususnya peta konsep) terbukti efektif metode
terkait erat dengan pemahaman teks (Reategui et al, 2012). Dalam penelitian ini
visualisasi dilakukan menunjukan warna entitas bahan makanan., yang akan
ditampilkan dengan dependensi displacy yang merupakan bawaan dari library
spacy
Evaluasi Skor
!"
1) !"#$%&%'( =
!"#$"
!"
2) Recall =
!"#$%
"&'()*)+, . /'(011
3) F1 =
2 . ("&'()*)+,#/'(011)
• FP adalah jumlah entitas yang berhasl di tag oleh model tetapi bernilai
salah.
Furht dalam bukunya menjelaskan bahwa gambar adalah susunan array atau
piksel dua dimensi seperti yang ditunjukan gambar 2.2. Setiap piksel terdiri dari
jumlah bit. Berdasarkan jumlah bit per pixel, gambar diklasifikasikan menjadi
empat kategori: biner, grafik komputer, graysclae, dan gambar berwarna. Gambar
digital hadir dalam berbagai rasa. Gambar dapat terdiri dari piksel yang sepenuhnya
hitam atau sepenuhnya putih, yang disebut gambar biNER. Gambar skala abu-abu
mengandung piksel di mana nilai warna piksel bervariasi antara kisaran hitam, abu-
abu, dan putih. Gambar berwarna dapat menangkap nilai piksel dari warna apa pun
seperti merah, biru, dan hijau. (Furht et al., 2018)
Amazon Textract
Properti Blok lainnya adalah umum untuk semua jenis blok, seperti ID,
confidence, dan informasi geometri. Blok PAGE, LINE, dan WORD terikat satu
sama lain dalam hubungan parent-to-child. Blok PAGE adalah induk untuk semua
objek blok LINE pada halaman dokumen. Karena LINE dapat memiliki satu atau
lebih kata, array Hubungan untuk blok LINE menyimpan ID untuk blok WORD
turunan yang membentuk baris teks.
Pada gambar 2.6 menunjukan bagaimana line “Hello, world.” Memiliki kata
‘Hello’ dan ‘world’ yang direpresentasikan lewat blok objek
Prototype
Model Prototype adalah metode proses pembuatan sistem yang dibuat secara
terstruktur dan memiliki beberapa tahap-tahap yang harus dilalui pada
pembuatannya, namun jika tahap final dinyatakan bahwa sistem yang telah dibuat
belum sempurna atau masih memiliki kekurangan, maka sistem akan dievaluasi
kembali dan akan melalui proses dari awal. Pendekatan Prototyping adalah proses
iterative yang melibatkan hubungan kerja yang dekat antara perancang dan
pengguna(Setia, 2015).
Flask
REST
Menurut Sinha REST memiliki aturan seperti antar muka yang seragam,
sehingga jika aturan tersebut diterapkan pada web services akan dapat
memaksimalkan kinerja web services terutama pada performa, skalabilitas, dan
kemudahan untuk dimodifikasi. Pada arsitektur REST, data dan fungsi dianggap
sebagai sumber daya yang dapat diakses lewat Uniform Resource Identifier (URI),
biasanya berupa tautan pada web (Sinha et al., 2014)
2 Aplikasi Barcode Scanner Food Halal Aplikasi membaca barcode produk dan
Pada Produk Makanan Impor Berbasis mengeceknya ke database,lalu ✓
Android (Widya & Salsabila, 2019) menampilkan detail produk bila terdata - ✓ - - ✓ -
LPPOM
pada database MUI
6 Asking Chatbot for Food Ingredients Halal Aplikasi chatbot yang bisa menjawab
Status (Suardi et al., 2021) apakah suatu bahan itu halal atau non-
- - ✓ - - ✓ -
halal
Tools /
Judul Keterangan Dataset
Metode
1 Named Entity Recognition On A Dalam penelitian ini, Penulis mengembangkan
Collection Of Research Titles teknik ekstraksi informasi untuk mengenali dan
(Mariyah, 2017) mengekstrak masalah, metode, dan domain
671 jurnal diambil secara Naïve
penelitian yang terdapat dalam judul. menguji fitur
online dan lokal(archive) Bayes
kontekstual, fitur sintaksis, dan fitur bag of words
menggunakan Naïve Bayes dan Maximum Entropy.
Classifier
2 Penerapan Named Entity Recognition Penelitian ini NER yang dilakukan menggunakan
Untuk Mengenali Fitur Produk Pada E- metode Hidden Markov Model dan Rule Template Hidden
Commerce Menggunakan Rule Template dengan 6 entitas yaitu MEREK, TIPE, HARGA, 120 Data produk & 30 data Markov
Dan Hidden Markov Model (Dirgantara SPEK, N_SPEK dan N_TAG. testing Model,
et al., 2018) Rule Base
Berdasarkan analisis penulis membandingkan studi literatur dengan penelitian penulis, kelebihan penelitian penulis dengan literatur
sebelumnya yaitu:
2. Adapun yang ingin penulis kembangkan dari penelitian sebelumnya adalah dengan mengimplementasikan NER didalam aplikasi
guna mendeteksi bahan makanan yang tertulis dan ada tidaknya bahan haram di diantara bahan yang ada
3. Alasan digunakanya NER karena pada penelitian sebelumnya bila ada produk atau bahan yang tidak ada di database maka aplikasi
tidak dapat memberikan informasi apa-apa, dengan NER dan metode Rule Based, diharapkan bisa membuat model yang dapat
membaca bahan makanan tanpa bergantung dengan database
BAB III
METODOLOGI PENELITIAN
Alur penelitian
Gambar 3.1
Kerangka Berfikir
3.2.1 Observasi
Pada tahapan pengumpulan data dengan cara studi pustaka, penulis mencari
referensi-referensi yang relevan dengan objek yang akan diteliti. Pencarian
referensi dilakukan di perpustakaan, maupun secara online melalui internet. Setelah
mendapatkan referensi-referensi yang relevan tersebut, penulis lalu mencari
berbagai informasi yang dibutuhkan dalam penelitian ini. Adapun informasi yang
didapat digunakan dalam penyusunan landasan teori, metodologi penelitian serta
pengembangan aplikasi secara langsung.
Implementasi
Dalam penelitian ini ada tiga jenis entitas yang akan di Kembangan untuk di
kenali entitasnya yaitu Halal, Haram dan Syubhat adapun data yang digunakan
sebagai diambil dari beberapa sumber diantaranya:
3. e-book “Daftar Belanja Produk Halal LPPOM MUI”, ini berisi rilisan
produk-produk MUI, pada buku ini Penulis mengambil beberapa zat-
Tahap ini berisi Evaluasi Model yang telah dibangun, evaluasi akurasi OCR
dan bagaimana kemampuan sistem mengenali entitas bahan makanan pada produk
kemasa
BAB IV
IMPLEMENTASI
Aplikasi yang dirancang pada penelitian ini merupakan alat bantu alternatif
bagi pengguna untuk mencari tau ada tidaknya kandungan non halal dari produk
kemasan yang ingin di konsumsi melalui komposisi yang tertera pada kemasan
produk. Aplikasi ini dirancang untuk menjadi sebuah web yang menerapkan
teknologi Optical Character Recognition melaui layanan AWS Textract dan Named
Entity Recognition dengan library Spacy, aplikasi mampu mengambil gambar dan
membaca daftar komposisi yang tertera pada produk kemudian aplikasi dapat
menunjukan entitas makanan yang tertera pada kemasan dan mana dari entitas
tersebut yang haram.
Gambar 4.1
Gambaran Umum Aplikasi
Gambar 4.2
Flow Chart Pengumpulan Dataset
Gambar 4.3
Flowchart Implementasi OCR dengan AWS Textract
Gambar 4.4
Flowchart Pembentukan Model NER
Gambar 4.5
Rancangan Antarmuka
Untuk penelitian ini hanya diperlukan satu halaman yang akan penulis
jelaskan sebagai berikut:
Gambar 4.6
Sequence Diagram Aplikasi
Dataset
Pada penelitian ini penulis ingin melakukan percobaan terhadap dataset yang
dimiliki untuk mendapatkan model yang dapat mengidentifikasi entitas makanan
yang tertera pada kemasan produk dan apakah entitas tersebut tergolong haram
atau tidak. Pada tahap ini, penulis merencanakan segala persiapan yang akan
dilakukan untuk membentuk dataset
Dalam penelitian ini dataset yang digunakan diambil dari beberapa sumber
diantaranya yang utama dari web USDA’s FoodData, e-book berjudul “Resep
Masakan Indonesia A-Z” dan “Daftar Belanja Produk Halal LPPOM MUI” data
yang akan dikelompokkan menjadi data makanan yang berjumlah 39.565 data.
Karena dataset diambil dari beberapa sumber maka harus dilakukan teks
preprocessing untuk membentuk dataset text Preprocessing Data merupakan proses
mengubah data menjadi sesuatu yang dapat dipahami.Adapun Langkah yang
dilakukan yaitu:
4.2.1.2 Filtering
Filtering adalah proses menghilangkan tautan url, tanda titik berulang,
hashtag, mention, tanda baca, angka, tambahan spasi dan stopword. Dalam proses
Setelah melakukan kedua proses diatas terbentuklah data yang akan dijadikan
dataset untuk dilakukan training untuk pemodelah NER dengan library spacy
Berikut adalah dataset yang siap digunakan untuk membentuk model entitas bahan
makanan lihat tabel 4.3
strawberry cheesecake
spaghetti meatballs
Pada tahapan ini, dataset yang telah melewati tahapan pre-processing akan
menjadi input untuk proses pelatihan, dalam proses ekstraksi informasi digunakan
Library spaCy untuk Named Entity Recognition (NER). Named entity adalah objek
yang diberi nama, dalam penelitian seluruh dataset dijadikan objek untuk
mendapatkan ekstraksi informasi entitas makanan. spaCy dapat mengenali berbagai
jenis entitas bernama dalam dokumen, dengan meminta model untuk mengenali
entitas tersebut.
dikonsumsi
Untuk menandai suatu entitas spaCy menggunakan list sebagai data training.
Setiap list harus berisi teks dan dict. dict harus menyimpan indeks awal dan akhir
dari entitas bernama dalam teks, dan kategori atau label entitas bernama. Misalnya,
kutipan diatas adalah contoh teks yang telah diberi anotasi NER-Tagging dari
index entitasnya, Untuk penelitian ini penulis menerapkan anotasi dengan
membentuk template dari kalimat-kalimat yang terdapat pada komposisi yang
tertera pada kemasan produk dari observasi penulis lakukan maka terbentuklah
template-template berikut lihat gambar 4.7:
Untuk menghindari bias entitas ketika situasi di mana model NER mampu
mengidentifikasi entitas makanan, tetapi lupa bagaimana mengklasifikasikan
entitas lain seperti ORG atau PERSON. Meskipun ORG atau PERSON, entitas lain
akan membantu mengaitkan makanan relasi lainya, maka model perlu ditraining
dengan kalimat umum agar mampu mengenali entitas lain meski telah dilatih
khusus untuk mengenali entitas Bahan makanan untuk datasetnya peneliti
menggunakan base model en-core dari spacy dan dataset NPR.CSV yang berisi
artikel-artikel umum contohnya lihat gambar.
Gambar 4.9 diatas adalah contoh NER-Tagging sebagian data yang telah
digenerate dan entitasnya dengan model spacy.
Dari data yang diolah sebelumnya sudah siap untuk di training, data yang
ditrain adalah data yang di generate dengan entitas halal digabungkan dengan data
generati dari revisi entitas tadi agar tidak terjadi bias entitas yang menyebabkan
model cenderung menebak setiap entitas menjadi entitas halal, Berikut beberapa
proses Named Entity Recognition (NER) menggunakan Library SpaCy
Untuk mengatur konfigurasi Training data pada spaCy digunakan skrip diatas
yang secara otomatis spaCy akan menggenerate file config.cfg yang berisikan
beberapa konfigurasi sebagai berikut:
[paths]
train = null
dev = null
vectors = null
init_tok2vec = null
[system]
gpu_allocator = null
seed = 0
[nlp]
lang = "en"
pipeline = ["tok2vec","ner"]
batch_size = 1000
disabled = []
db.to_disk("./train.spacy")
#menyimpan data dalam format train.spacy, data inilah yang
dapat dibaca spacy untuk dilatih modelnya
Setelah proses diatas dijalankan dan penulis sudah menyiapkan data training
sesuai format yang dapat dibaca spaCy, proses training sudah dapat dijalankan
dengan menjalankan skrip berikut:
Untuk dataset entitas haram dan Syubhat penulis mengambil dari Halal
Nutrition Food halal.addi.is.its.ac.id dan juga dari Halal Advisory Service
ahore.comsats.edu.pk, Berikut penerapan Rules-Based pada penelitian ini dapat
dilihat pada pseudocode Rules-Based dibawah ini:
ruleEntity.add_patterns([{"label": "entitas",
"pattern": jenisEntity}])
nlp.add_pipe(rulerEntitas)
• Entity ruler adalah aturan yang akan diterapkan dimodel untuk kedua
entitas diatas, disini peneliti menerapkan Overwrite yang artinya
Ketika model NER bertemu dengan kata yang ada didalam list maka
beri atau ubah entitasnya menjadi entitas baru yaitu
‘haram’,‘Syubhat’,’ K-Key’ dan ‘S-Key’ secara mutlak
• Rules for diatas adalah melakukan overwrite dari semua yang data
yang ada dilist
Dari diagram diatas setiap entitas halal, Syubhat dan haram masuk akan
diseleksi apakah ditemukan setelah entitas K-Key atau setelah entitas S-Key, bila
new_ents=[]
detected_entities=[]
not_ing=[]
other_entities=[]
RETURN doc
nlp.add_pipe(ingredients_rule)
• Set variable komposisi = false, variable ini akan jadi penanda sudah
ditemukan atau belum kata kunci “komposisi” dan “ingredients”
Sebelum rule diterapkan kedalam model maka berikut adalah output yang
dikeluarkan
Dari output diatas terlihat model membaca beberapa entitas yang tidak
terdapat di dalam komposisi seperti kata “babi” diatas ataupun entitas “ayam”,
“sapi”,”kentang” meski kata tersebut merupakan bahan makanan namun dalam
konteks teks di atas kata tersebut adalah informasi umum bukan bahan yang
terdapat pada komposisi, jika salah mesin tetap membaca entitas tersebut haram
padahal entitas tersebut tidak terdapat dalam komposisi. Maka akan terjadi
misinformasi dari yang seharusnya pengguna terima.
4.3.5 Visualisasi
Pada proses ini dilakukan visualisasi pada entitas dengan fungsi ent yang
memberi warna entitas dan labelnya dalam teks proses ini bertujuan untuk
Argument Deskripsi
ents Jenis entitas yang akan di highlight
colors Warna yang akan menandakan entitas.
Secara default, displaCy hadir dengan warna untuk semua tipe entitas yang
didukung oleh spaCy dan dapat menggunakan setelan warna untuk menambahkan
warna untuk perbedaan setiap entity. Untuk penelitian ini peneliti menggunakan
warna berikut dan entitasnya
Halal Hijau
Haram Merah
Syubhat Krem
Lainya Hitam
Gambar 4.15
Policy yang digunakan untuk Penelitian ini
mengaktifkan policy dari AWS Textract, policy disini merupakan aturan dari aws
agar pengguna bisa memilih layanan mana yang bisa dijalankan.untuk penelitian
ini penulis hanya menggunakan layanan AWS Textract dan policy yang digunakan
adalah AmazonTextractFullAccess setelah policy di aktifkan makan AWS Textract
bisa dijalankan pengguna.
Gambar diatas merupakan respon dari api textract yang telah mengolah
gambar yang diupload, berupa objek JSON yang memberikan beberapa parameter
didalamanya
4. BoundingBox : titik kordinat dari line yang dibaca dari gambar yang
di pindai
Sebagai contoh dari response yang ditunjukan gambar 4.18 Peneliti mengolah
data block Line dan mengambil Objek ‘text’ untuk diolah dengan model
Implementasi Aplikasi
antarmuka yang dibuat, disini ada dua fungsi utama yang dibuat yang pertama
adalah fungsi detect-text. Fungsi detect_text yang ditunjukan gambar 4.18 adalah
penghubung antara aplikasi dan layanan aws textract, fungsi menerima gambar
kemudian diteruskan ke fungsi aws textract, seperti yang sebelumyna dijelaskan
Fungsi yang ditunjukan gambar 4.19 adalah fungsi utama dalam aplikasi ini,
disini, yang berjalan dalam fungsi ini adalah
• detect text akan menerima respon berupa text yang telah diproses aws
textract
Pada bagian ini merupakan penampakan hasil akhir aplikasi yang dibuat
penulis, model yang telah dilatih diimplementasikan kedalam bentuk web dan
dipadukan dengan AWS Textract, penulis membangun web menggunakan
framework python Flask untuk API dari model yang sebelumnya dibuat dan
diterapkan ke dalam web yang dibangun dengan html dan javascript gambar 4.22
merupakan hasil implenatasi sesuai rancangan antarmuka yang telah dijelaskan
Pada tahapan pengujian ini dilakukan untuk mengetahui kinerja setiap fungsi
yang ada pada sistem aplikasi yang telah melalui tahapan coding sesuai dengan
perancangan yang sudah dibuat. Tahap pengujian dilakukan dengan menggunakan
user acceptance test:
Hasil
No Deskripsi Hasil yang diharapkan
sebenarnya
Evaluasi
Pada tahap ini, penulis melakukan evaluasi dari hasil tahapan proses yang
telah dilakukan dilakukan sebelumnya, evaluasi bertujuan untuk memastikan hasil
yang didapat desuai dengan tujuan penelitian, setelah model dilatih dan divalidasi
didapatka hasil berupa skor F.
Karena entitas Haram dan Syubhat ditambahkan kedalam model tidak lewat
proses training, jadi penulis akan menggenerate data test yang ada kedua entitas
tersebut didalamnya, berikut adalah template yang digunakan untuk menggenerate
kalimat testing
Dari template yang telah disiapkan di gambar 4.7 akan di generate data
anotasi untuk di testing dengan mengacak data entitas makanan, data bahan haram
dan mushboh, pada template diatas terdapat simbol sebagai tanda tempat entitas di
generate simbol {} tanda untuk data halal, symbol – untuk data haram dan symbol
@@ untuk data Syubhat, hasil dari generate data diatas kurang lebih lihat gambar
4.8, data berupa list dengan kalimat serta posisi index yang telah di beri anotasi
Berikut adalah hasil kinerja model yang telah ditrain yang diuji dengan data
testing sebanyak 586 yang sebelumnya dibentuk:
Terlihat dari gambar diatas kemampuan baca terhadap entitas umum jauh
lebih lemah karena model yang dilatih diprioritaskan untuk pembacaan entitas
makanan, hasil yang didapatkan adalah nilai Precision sebesar 0.646 nilai Recall
0.582 dan F1-Score sebesar 0.613
0,8
0,6
0,4
0,2
0
Precision Recall F1-Score
1. Halaman Depan
Gambar 5.7 diatas menunjukan tampilan menu informasi, pada halaman ini
pengguna dapat mencari tahu bahan-bahan yang haram dan syubhat, terdapat kolom
pencarian untuk mempermudah pengguna mencari tahu bahan yang ingin mereka
cari.
3. Halaman Saran
4. Halaman Hasil
!"#$#%& #()*%+%
!"#$%&' *+,',%& -.+%$ = !"#$#%& 3%"4 *("%) x 100
IPHONE X
Produk TEKS TERTERA PERBA
Teks tak
Hasil scan OCR NDING Bahan Terdeteksi Hasil
terbaca
AN
INFINIX
Produk TEKS TERTERA PERBA
Teks tak
OCR NDING Bahan Terdeteksi HASIL
Terbaca
AN
Komposisi:
Mi: Pati Kentang, Pati Kacang Hijau.
Bumbu Pasta: Kecap Bubuk komposisi: mi: pati kentang, pati kacang
(mengandung kedelal), Frukto hijau. bumbu pasta: kecap bubuk
Oligosakarida, Bumbu jamur (mengandung kedelai), frukto
Gula (mengendung pengawet sulfit), oligosakarida, bumbu jamur, gula
Bawang Bombay, Ekstrak Tulang Babi, (mengandung pengawet sulfit), bawang
Ekstrak Ragi, bombay, ekstrak tulang babi, ekstrak
Bawang Putih, Minyak Wijen, Garam, ragi, bawang putih, minyak wijen,
SOHUN
Glukosa (mengandung pengawet suifit), garam, glukosa (mengandung pengawet
CELLOPHANE Ekstrak
Maltodekstrin, sulfit), maltodekstrin, bumbu ikan tuna,
85/85 Tulang 31/31
Bumbu ikan tuna: Minyak Jagung, minyak jagung, ekstrak kelp, penguat
Babi
Ekstrak Kelp, Penguat Rasa (Dinatrium rasa (dinatrium 5'-inosinat dan dinatrium
5'-inosinat dan Dinatrium 5-guaniiat), 5'-guanilat), lada hitam, pewarna alami
Lada Hitam, Pewarna alami karamel IV, karamel iv, penstabil gom guar. minyak
Penstabil Gom Guar. bumbu: minyak wijen sayuran kering:
Minyak Bambu: Minyak Wijen jamur (mengandung pengawet sulfit),
Sayuran Kering: Jamur (Mengandung wortel, kol, hidrolisat protein nabati,
Pengawet Sulfit), Wortel, Kol, Hidrolisat jamur kuping mengandung pengawet
Protein,Nabati,Jemur Kuping natrium benzoat
Mengandung Pengawet: Natrium
Benzoat
Dari hasil hitung manual yang ditunjukan oleh tabel 5.2 dan 5.3 dengan menguji 12 produk makanan kemasan dan menggunakan
2 jenis gawai yang berbeda didapatkan rincian berikut (lihat tabel 5.4).
Gawai Hasil OCR (per kata) Hasil pembacaan model (per bahan)
83%
INFINIX SMART 6 81%
Penulis melakukan uji sistem terhadap tiga produk non halal, dari ketiga produk tersebut dua diantaranya berhasil diketahui
bahan-bahan apa yang haram dikonsumsi, dan satu produk lainya meski berlabel non-halal yang artinya dalam proses pembuatanya
bersinggungan dengan bahan non-halal namun disini sistem tidak menemui bahan haram, hanya ditemukan satu bahan syubhat
Lemak Babi,
Berhasil
Ekstrak Babi
Potassium
Berhasil
SOHUN CELLPHANE
Ekstrak Tulang
Babi
BAB VI
Kesimpulan Dan Saran
Kesimpulan
2. Hasil kinerja OCR dari AWS Textract juga mampu membaca komposisi
pada produk kemasan dengan sangat baik, dengan skor akurasi 90%.
3. Dalam uji kasusnya kemampuan OCR dan NER juga mampu untuk
menganalisa dan membaca entitas makanan yang tertera pada kemasan
produk. Dengan skor akurasi 84% yang berarti cukup baik
Saran
Penulis berharap agar penelitian ini dapat dikembangkan lebih lanjut sehingga
mendapatkan hasil yang lebih baik. Berdasarkan penelitian yang telah dilakukan,
penulis dapat memberikan beberapa saran sebagai berikut:
Gambar
Gambar
Gambar
Gambar
Basit Tri
DOKUMEN USER ACCEPTANCE TEST Penguji:
Anggoro