BAB II LANDASAN TEORI 2.1 Peringkas Teks Otomatis 2.1.1
Pengertian Konsep sederhana ringkasan adalah mengambil bagian penting dari
keseluruhan isi dari artikel. Ringkasan adalah mengambil isi yang paling penting dari sumber informasi yang kemudian menyajikannya kembali dalam bentuk yang lebih ringkas bagi penggunanya [12]. Aplikasi peringkas teks otomatis merupakan teknologi yang menawarkan solusi untuk mencari informasi dengan menghasilkan ringkasan. 2.1.2
Tahapan Membuat Ringkasan Ada beberapa tahapan untuk membuat ringkasan [8], yaitu sebagai berikut:
a. Membaca naskah asli secara menyeluruh untuk mengetahui kesan umum, gagasan pengarang, dan sudut pandangnya. b. Mencatat semua gagasan utama atau gagasan penting. c. Menyusun kembali suatu karangan singkat berdasarkan gagasan tersebut. 2.1.3
Tujuan Ringkasan Tujuan dari peringkasan teks dapat dikategorikan berdasarkan maksud,
fokus, dan cakupannya [13], yaitu sebagai berikut: a. Informatif Tujuannya ringkasan ini adalah untuk menyatakan informasi–informasi penting yang terdapat pada dokumen asal. b. Indicatif Tujuannya ringkasan ini adalah untuk dijadikan referensi yang membantu pembaca mengetahui isi dari teks daripada membaca keseluruhan teks yang ada. Ringkasan ini meliputi topik dari teks asal.
II-1
II-2
c. Evaluatif Yaitu melibatkan pembuatan sebuah pertimbangan pada teks asal, seperti suatu tinjauan ulang atau opini. d. User-Focused Yaitu ringkasan yang dibuat berdasarkan topik yang dipilih oleh user, sering yang merupakan jawaban dari query yang dimiliki oleh user. e. Generic Yaitu sifatnya lebih umum dan berdasarkan pada teks aslinya. f. Single Document Dokumen tunggal (single document) yaitu ringkasan yang dihasilkan merupakan ringkasan dari satu dokumen. g. Multi Document Pada peringkasan multi document, ringkasan merupakan hasil ringkasan dari banyak dokumen. 2.1.4
Rasio Kompresi Rasio kompresi (compression rate) pada suatu ringkasan berfungsi untuk
menentukan persentase batas panjang ringkasan yang akan ditampilkan [13]. 2.1.5
Pendekatan Peringkas Teks Terdapat 2 pendekatan peringkas teks [19], yaitu:
a. Ekstraksi (extractive summary). Pada teknik ekstraksi, sistem menyalin unitunit teks yang dianggap paling penting dari teks sumber menjadi ringkasan. Unit-unit teks yang disalin dapat berupa klausa utama, kalimat utama, atau paragraf utama tanpa ada penambahkan kalimat-kalimat baru yang tidak terdapat pada dokumen aslinya. b. Abstraksi (abstractive summary). Teknik abstraksi menggunakan metode linguistik untuk memeriksa dan menafsirkan teks dokumen menjadi ringkasan. Ringkasan teks tersebut dihasilkan dengan cara menambahkan kalimat-kalimat baru yang merepresentasikan intisari teks sumber ke dalam bentuk yang berbeda dengan kalimat-kalimat yang ada pada teks sumber.
II-3
2.1.6
Artikel Artikel adalah tulisan lengkap yang dimuat dalam surat kabar atau majalah
yang mempunyai judul, pendahuluan, penyajian masalah, pembahasan dan penutup [17]. Dalam Kamus Besar Bahasa Indonesia Departemen Pendidikan Nasional Balai Pustaka (2008) mendefinisikan artikel yaitu karya tulis lengkap di majalah dan surat kabar. 2.2 Pra Proses Tahap ini merupakan tahap awal sebelum dilakukannya peringkasan teks. Pada tahap ini proses yang dilakukan antara lain membagi dokumen menjadi kalimat, case folding, menghapus stopword, melakukan proses stemming dan membagi dokumen menjadi kata (tokenizing). a. Pemecahan Kalimat Memecah dokumen menjadi kalimat-kalimat merupakan langkah awal tahapan preprocessing. Pemecahan kalimat yaitu proses memecah string teks dokumen yang panjang menjadi kumpulan kalimat-kalimat. Dalam memecah dokumen menjadi kalimat-kalimat menggunakan fungsi split (), dengan tanda titik “.”, tanda tanya ”?” dan tanda seru “!” sebagai pemisah (delimiter) untuk memotong string dokumen [13]. b. Case Folding Case folding adalah tahapan proses mengubah semua huruf dalam teks dokumen menjadi huruf kecil, serta menghilangkan karakter selain a-z [13]. c. Penghapusan Stopword Penghapusan Stopword merupakan proses penghilangan kata stopword. Stopword adalah kata - kata yang sering kali muncul dalam dokumen namun arti dari kata-kata tersebut tidak deskriptif dan tidak memiliki keterkaitan dengan tema tertentu. Misalnya “di”, ”oleh”, “pada”, ”sebuah”, ”karena” dan lain sebagainya [13]. d. Stemming Stemming adalah proses pemetaan dari penguraian berbagai bentuk kata baik itu prefix, sufix, maupun gabungan antara prefix dan sufix (confix), menjadi
II-4
bentuk kata dasarnya [19]. Stemming pada penelitian ini menggunakan Algoritma Nazief dan Adriani. Algoritma stemming Nazief dan Adriani (1996) dikembangkan berdasarkan aturan morfologi Bahasa Indonesia yang mengelompokkan imbuhan menjadi awalan (prefix), sisipan (infix), akhiran (suffix)
dan
gabungan
awalan-akhiran
(confixes).
Algoritma
ini
menggunakan kamus kata dasar dan mendukung recoding, yakni penyusunan kembali kata-kata yang mengalami proses stemming berlebih [2]. Algoritma stemmer yang diperkenalkan Nazief dan Adriani didefinisikan sebagai berikut: 1. Di awal proses stemming dan setiap langkah yang selanjutnya dilakukan, lakukan pengecekan hasil proses stemming kata yang di-input-kan pada langkah tersebut ke kamus kata dasar. Jika kata ditemukan, berarti kata tersebut sudah berbentuk kata dasar dan proses stemming dihentikan. Jika tidak ditemukan, maka langkah selanjutnya dilakukan. 2. Hilangkan Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”). Jika berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns (“-ku”, “-mu”, atau “nya”), jika ada. 3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a. a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b. b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4 4. Hilangkan derivation prefixes. a. Langkah 4 berhenti jika : i.
Terjadi kombinasi awalan dan akhiran yang terlarang.
ii.
Awalan yang dideteksi saat ini sama dengan awalan yang dihilangkan sebelumnya.
II-5
iii.
Tiga awalan telah dihilangkan.
b. Identifikasikan tipe awalan dan hilangkan. Awalan terdiri dari dua tipe: i.
Standar (“di-”, “ke-”, “se-”) yang dapat langsung dihilangkan dari kata.
ii.
Kompleks (“me-”, “be-”, “pe”, “te-”) adalah tipe-tipe awalan yang dapat bermorfologi sesuai kata dasar yang mengikutinya. Oleh karena itu, gunakan aturan pada Tabel 2.1 untuk mendapatkan hasil pemenggalan yang tepat.
c. Cari kata yang telah dihilangkan awalannya ini di dalam kamus kata dasar. Apabila tidak ditemukan, maka langkah 4 diulangi kembali. Apabila ditemukan, maka keseluruhan proses dihentikan. 5. Apabila setelah langkah 4 kata dasar masih belum ditemukan, maka proses recoding dilakukan dengan mengacu pada aturan pada Tabel 2.1. Recoding dilakukan dengan menambahkan karakter recoding di awal kata yang dipenggal. Pada Tabel 2.1, karakter recoding adalah huruf kecil setelah tanda hubung („-‟) dan terkadang berada sebelum tanda kurung. Sebagai contoh, kata “menangkap” (aturan 15), setelah dipenggal menjadi “nangkap”.
Karena
tidak
valid, maka
recoding dilakukan dan
menghasilkan kata “tangkap”. 6. Jika semua langkah gagal, maka input kata yang diuji pada algoritma ini dianggap sebagai kata dasar. Tabel 2.1 Aturan Pemenggalan Awalan Stemmer Nazief dan Adriani
Aturan 1 2 3 4 5 6 7 8 9
Format Kata berV… berCAP… berCAerV… belajar beC1erC2… terV… terCerV… terCP… teC1erC2…
Pemenggalan ber-V…| be-rV… ber-CAP… dimana C!=”r” & P!=”er” ber-CaerV…dimana C!=“r” bel-ajar be-C1erC2…dimana C1!={“r”|”l”} ter-V…| te-rV… ter-CerV… dimana C!=”r” ter-CP…dimana C!=”r” dan P!=”er” te-C1erC2… dimana C!=”r”
II-6
Aturan 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Format Kata me{l|r|w|y}V… mem{b|f|v}... mempe{r|l}... mem{rV|V}... men{c|d|j|z}... menV... meng{g|h|q}... mengV... menyV... mempV... pe{w|y}V... perV... perCAP perCAerV... pem{b|f|V}... pem{rV|V}... pen{c|d|j|z}.. penV... peng{g|h|q}... pengV... penyV...
31
pelV...
32 33
peCerV... peCP…
Pemenggalan me-{l|r|w|y}V… mem-{b|f|v}… mem-pe… me-m{rV|V}... | me-p{rV|V}... men-{c|d|j|z}... me-nV... | me-tV meng-{g|h|q}... meng-V... |meng-kV... meny-sV… mem-pV... dimana V!=„e‟ pe-{w|y}V... per-V... | pe-rV... per-CAP... dimana C!=‟r‟danP!=‟er‟ per-CAerV... dimana C!=‟r‟ pem-{b|f|V}... pe-m{rV|V}... | pe-p{rV|V}... pen-{c|d|j|z}... pe-nV... | pe-tV… peng-{g|h|q}... peng-V... | peng-kV... peny-sV… pe-lV... kecuali “pelajar” yang menghasilkan “ajar” per-erV... dimana C!={r|w|y|l|m|n} pe-CP... dimana C!={r|w|y|l|m|n} dan P!=‟er‟
dengan : C : huruf konsonan V : huruf vokal A : huruf vokal atau konsonan P: partikel atau fragmen dari suatu kata, misalnya “er” e. Pemecahan Kata (Tokenizing) Tokenizing adalah proses pemotongan string input berdasarkan tiap kata yang menyusunnya. Pemecahan kalimat menjadi kata-kata tunggal dilakukan dengan men-scan kalimat dengan pemisah (delimiter) white space (spasi, tab, dan newline) [13].
II-7
2.3 Proses Peringkasan Teks Secara umum terdapat tiga tahapan dalam proses peringkasan teks, yaitu sebagai berikut [13]: a. Topic Identification Tahapan ini meliputi identifikasi faktor yang sangat penting tentang apa yang dibicarakan dala teks tersebut. Ada beberapa teknik untuk melakukannya, diantaranya: 1. Dalam beberapa tipe teks, informasi penting terdapat dalam bagian bagian tertentu dalam teks tersebut, seperti dalam judul, kalimat pertama, kalimat terakhir dan lain sebagainya. 2. Beberapa kata atau frase mengidentifikasi intisari dari suatu teks. 3. Beberapa kata cenderung muncul lebih. Ini dijadikan faktor penentu topik dari suatu teks (word frequency). 4. Ada juga topik diidentifikasi dari jumlah pengertiannya atau makna dibandingkan kata. b. Interpretation Interpretasi peringkas yang ekstraktif berdasarkan pada metode yang digunakan, Ekstraksi merupakan pemilihan terhadap beberapa kalimat yang dianggap paling penting dari sebuah dokumen. c. Generating Tahapan ini adalah pembangkitan atau pembentukan hasil akhir. Terdiri dari penggabungan frase, pencetakan kata atau frase dan pembangkitan kalimat. Terdapat beberapa metode yang dapat digunakan, diantaranya : 1. Extraction, hasil akhir berisi kalimat atau frase yang dihasilkan setelah semua tahap proses pada text summarization selesai dilakukan. 2. Topic list, hasil akhir berisi kata-kata yang sering muncul atau penggabungan pengertian yang telah diinterpretasi. 2.4 Algoritma TF-IDF Metode Term Frequency - Inverse Document Frequency (TF-IDF) merupakan suatu cara untuk memperoleh pembobotan berdasarkan jumlah
II-8
kemunculan suatu kata (term) dalam sebuah dokumen term frequency (TF) dan jumlah kemunculan term dalam koleksi dokumen inverse document frequency (IDF) [13]. TF merupakan banyak kata yang muncul pada sebuah dokumen, sedangkan DF merupakan banyaknya dokumen yang mengandung sebuah kata. Nilai IDF sebuah kata (term) dapat dihitung menggunakan persamaan 2.1 sebagai berikut:
2.1
N adalah jumlah dokumen yang berisi term (t) dan df adalah jumlah kemunculan kata (term) terhadap N. Adapun rumus yang digunakan untuk menghitung bobot (W) masing-masing dokumen, yaitu dapat dilihat pada rumus 2.2: 2.2 dengan: d = kalimat ke–d t = kata (term) ke–t TF = term frequency / frekuensi kata W = bobot kalimat ke–d terhadap kata (term) ke–t IDF = Inverse Document Frequency Berikut ilustrasi dari TF-IDF: dokumen 1 (d1)
: Manajemen transaksi logistik.
dokumen 2 (d2)
: Pengetahuan antar individu.
dokumen 3 (d3)
: Dalam
manajemen
pengetahuan logistik. Jadi jumlah dokumen (d) = 3
pengetahuan
terdapat
transfer
II-9
Setelah melalui proses filtering, maka kata “antar” pada dokumen 2 serta kata “dalam” dan “terdapat” pada dokumen 3 dihapus. Tabel 2.2 Contoh Perhitungan TF-IDF
Token manajemen transaksi logistik pengetahuan individu transfer
TF d2
d1 1 1 1 0 0 0
DF
d3 0 0 0 1 1 0
1 0 1 2 0 1
2 1 2 2 1 1
IDF 0.1761 0.4771 0.1761 0.1761 0.4771 0.4771
(W) TF-IDF d1 d2 d3 0.1761 0 0.1761 0.4771 0 0 0.1761 0 0.1761 0 0.1761 0.3522 0 0.4771 0 0 0 0.4771
Dari tabel di atas didapat : Bobot (w) untuk d1 = 0.8293 Bobot (w) untuk d2 = 0.6532 Bobot (w) untuk d3 = 1.1815
2.5 Teori Fuzzy Teori himpunan logika samar dikembangkan oleh Prof. Lofti Zadeh pada tahun 1965. Zadeh berpendapat bahwa logika benar dan salah dalam logika konvensional tidak dapat mengatasi masalah gradasi yang berada pada dunia nyata. Untuk mengatasi masalah gradasi yang tidak terhingga tersebut, Zadeh mengembangkan sebuah himpunan fuzzy. Tidak seperti logika boolean, logika fuzzy mempunyai nilai yang kontinue. Samar dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama [3]. Dalam teori logika fuzzy dikenal himpunan fuzzy (fuzzy set) yang merupakan pengelompokan sesuatu berdasarkan varibel bahasa, yang dinyatakan dalam fungsi keanggotaan. Di dalam semester pembicaraan U, fungsi keanggotaan dari suatu himpunan tersebut bernilai antara 0.0 sampai dengan 1.0. Jika A, hikpunan fuzzy, µA: fungsi keanggotaan dan X: semesta, maka fungsi keanggotaan daam suatu himpunan fuzzy dapat dinyatakan dengan rumus 2.3:
II-10
{
( ))
2.3
Fungsi keanggotaan suatu himpunan fuzzy dapat ditentukan dengan fungsi segitiga, trapesium atau fungsi Gauss. 2.6 K-Means Clustering K-Means Clustering merupakan salah satu metode data clustering non hirarki yang berusaha mempartisi data yang ada ke dalam bentuk satu atau lebih cluster/kelompok [16]. Metode ini mempartisi data ke dalam cluster/kelompok sehingga data yang memiliki karakteristik yang sama dikelompokkan ke dalam satu cluster yang sama dan data yang mempunyai karakteristik yang berbeda dikelompokkan ke dalam kelompok yang lain. Adapun tujuan dari data clustering ini adalah untuk meminimalisasikan objective function yang diset dalam proses clustering, yang pada umumnya berusaha meminimalisasikan variasi di dalam suatu cluster dan memaksimalisasikan variasi antar cluster. Manfaat Clustering adalah sebagai Identifikasi Object (Recognition) misalnya dalam bidang Image Processing, Computer Vision atau robot vision. Selain itu adalah sebagai Sistem Pendukung Keputusan dan Data Mining seperti Segmentasi pasar, pemetaan wilayah, Manajemen marketing dll [16]. Data clustering menggunakan metode K-Means ini secara umum dilakukan dengan algoritma dasar sebagai berikut [18]: a. Tentukan jumlah cluster b. Menentukan nilai centroid Dalam menentukan nilai centroid untuk awal iterasi, nilai awal centroid dilakukan secara acak. Sedangkan jika menentukan nilai centroid yang merupakan tahap dari iterasi dihitung berdasarkan nilai rata-rata dari data yang terletak pada centroid yang sama.
II-11
c. Menghitung jarak antara data dengan pusat cluster. Untuk menghitung jarak tersebut dapat menggunakan Euclidean Distance dengan rumus 2.4 sebagai berikut.
√(
)
2.4
dengan: De = euclidean distance i = banyaknya data x = bobot dokumen y = pusat cluster d. Pengelompokan Data Untuk menentukan anggota cluster adalah dengan memperhitungkan jarak terpendek data dengan menggunakan rumus 2.3. Nilai yang diperoleh dalam keanggotaan data pada distance matriks adalah 0 atau 1, dimana nilai 1 untuk data yang dialokasikan ke cluster dan nilai 0 untuk data yang dialokasikan ke cluster yang lain. e. Kembali ke tahap 2, lakukan perulangan hingga nilai centroid yang dihasilkan tetap dan anggota cluster tidak berpindah ke cluster lain.
2.7 Fuzzy C Means Clustering Fuzzy C Means adalah suatu teknik peng-cluster-an yang mana keberadaan tiap titik data dalam suatu cluster ditentukan oleh derajat keanggotaan. FCM menggunakan model pengelompokan fuzzy sehingga data dapat menjadi anggota dari semua kelas atau cluster terbentuk dengan derajat atau tingkat keanggotaan yang berbeda antara 0 hingga 1. Teknik ini pertama kali diperkenalkan oleh Jim Bezdek pada tahun 1981 [3]. Konsep dasar FCM adalah sebagai berikut : a. Tentukan pusat cluster, yang akan menandai lokasi rata-rata untuk tiap-tiap cluster. Pada kondisi awal, pusat cluster ini masih belum akurat. Tiap-tiap titik data memiliki derajat keanggotaan untuk tiap-tiap cluster.
II-12
b. Perbaiki pusat cluster dan derajat keanggotaan tiap-tiap titik data secara berulang, maka akan dapat dilihat bahwa pusat cluster akan bergerak menuju suatu lokasi yang tepat. Perulangan ini didasarkan pada minimisasi fungsi objektif yang menggambarkan jarak dari titik data yang diberikan ke pusat cluster yang terboboti oleh derajat keanggotaan titik data tersebut. Output dari FCM bukan merupakan fuzzy inference system, namun merupakan deretan pusat cluster dan beberapa derajat keanggotaan untuk tiap-tiap titik data [3]. Dalam algoritma FCM ini terdapat tahap-tahap yang dilakukan dalam membentuk clusterisasinya. Berikut tahapan yang dilakukan : a.
Memasukan
data
dokumen
hasil
pembobotan
tf-idf
yang
akan
dikelompokan. Setelah itu tentukan parameter yang terlibat, yaitu : 1. Jumlah cluster (c) 2. Pangkat (w) 3. Maksimum iterasi (MaxIter) 4. Eror terkecil yang diharapkan (e) 5. Fungsi objektif awal (Po=0) 6. Iterasi awal (t=1) Jumlah cluster (c) merupakan jumlah pembagian cluster yang akan dibentuk. Pangkat (w) merupakan pangkat pembobot pada nilai-nilai keanggotaan. Maksimum iterasi (MaxIter) merupakan penentuan maksimum perulangan yang dilakukan untuk menemukan pusat cluster. Eror terkecil yang diharapkan (e) merupakan selisih nilai terkecil fungsi objektif antara iterasi sebelumnya dengan iterasi sekarang. Nilai eror terkecil ini harus diatas 0. b.
Membangkitkan bilangan acak µik sebagai derajat keanggotaan untuk masing-masing dokumen terhadap masing-masing cluster. Dimana i adalah dokumen dan k adalah cluster. Bilangan acak ini berkisar antara 0 sampai 1, dan bilangan acak ini merupakan derajat keanggotaan awal yang nantinya akan diperbarui.
II-13
c.
Setelah membangkitkan pusat cluster secara acak pada tiap dokumen, langkah selanjutnya adalah menghitung kedekatan nilai term tiap dokumen terhadap masing-masing cluster. Perhitungan dilakukan dengan rumus 2.5 berikut :
∑
(( ) ∑ ( )
)
2.5
dengan : 1. vkj adalah nilai kedekatan term dokumen j terhadap cluster k. 2. µik adalah nilai pusat cluster k terhadap dokumen i. 3. xij adalah bobot term j pada dokumen i. 4. w adalah pangkat. 5. i adalah indeks dokumen. 6. j adalah indeks term. 7. k adalah indeks cluster. 8. n adalah jumlah dokumen. d.
Langkah selanjutnya adalah menghitung fungsi objektif pada iterasi ke-t. Perhitungan ini dilakukan dengan cara berikut :
∑ ∑ ((∑(
) )
(
) )
dengan : 1. Pt adalah fungsi objektif. 2. vkj adalah nilai kedekatan term dokumen j terhadap cluster k. 3. µik adalah nilai pusat cluster k terhadap dokumen i. 4. xij adalah bobot term j pada dokumen i. 5. w adalah pangkat. 6. i adalah indeks dokumen.
2.6
II-14
7. j adalah indeks term. 8. k adalah indeks cluster. 9. n adalah jumlah dokumen. 10. c adalah jumlah cluster. 11. m adalah jumlah term. e.
Setelah fungsi objektif dihitung, langkah selanjutnya adalah memperbarui derajat keanggotaan (µik).
(∑ ∑
(∑
(
) ) (
2.7
) )
dengan : 1. µik adalah nilai pusat cluster k terhadap dokumen i. 2. xij adalah bobot term j pada dokumen i. 3. vkj adalah nilai kedekatan term dokumen j terhadap cluster k. 4. w adalah pangkat. 5. i adalah indeks dokumen. 6. j adalah indeks term. 7. k adalah indeks cluster. 8. c adalah jumlah cluster. 9. m adalah jumlah term. f.
Setelah derajat keanggotaannya selesai diperbarui, langkah selanjutnya adalah mengecek kondisi berhenti : 1. Jika (|Pt – Pt-1| < e) atau (t > MaxIter), maka berhenti 2. Jika tidak : t = t + 1, kembali ke langkah c untuk melakukan perulangan sampai bisa memenuhi kondisi f.1. Setelah selesai melakukan algoritma diatas dan memenuhi kondisi f.1,
maka akan didapatkan derajat keanggotaan yang berisi nilai kedekatan dokumen dengan masing-masing cluster. Nilai kedekatan ini berkisar dari 0 sampai 1. Jika
II-15
suatu dokumen memiliki nilai kedekatan dengan suatu kelas mendekati angka 1 daripada dengan kelas lainnya, maka dokumen itu berada pada kelas tersebut. 2.8 Object Oriented Analysis and Design Analisis dan desain berorientasi objek adalah cara baru dalam memikirkan satu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Tujuan dari analisis berorientasi objek adalah untuk mengembangkan model yang menggambarkan perangkat lunak komputer karena bekerja untuk memenuhi seperangkat persyaratan yang ditentukan user. Tools yang dapat digunakan pada pendekatan analisis pengembangan sistem secara objek dapat menggunakan UML [10]. Unified Modelling Language (UML) adalah sebuah bahasa yg telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UML menggunakan class dan operation object dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa bahasa berorientasi objek. Dalam membangun block UML ada 3 hal yang harus diperhatikan, yaitu object (memodelkan konsep), relationship (mengkoneksikan object), dan diagram (grouping yang saling mengkoneksikan antara object dan relationship. Diagram yang umum dipakai dalam analisis dan desain adalah: a. Use Case Diagram Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah Use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang serupa. Sebuah use case juga dapat meng-extend usecase lain dengan behaviour-nya
II-16
sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Dasar menentukan sebuah use case adalah use case merupakan sesuatu yang menyediakan beberapa hasil terukur kepada pengguna atau sistem eksternal. Use case harus memiliki sangat jelas kriteria lulus/gagal. Pengembang, tester, penulis teknis, dan pengguna harus secara eksplisit tahu apakah sistem memenuhi kasus penggunaan atau tidak. Setiap bagian dari use case yang memenuhi tes sederhana ini mungkin menjadi kandidat yang baik untuk use case [9].
b. Use Case Scenario Sebuah diagram yang menunjukkan use case dan aktor mungkin menjadi titik awal yang bagus, tetapi tidak memberikan detail yang cukup untuk desainer sistem untuk benar-benar memahami persis bagaimana sistem dapat terpenuhi. Cara terbaik untuk mengungkapkan informasi penting ini adalah dalam bentuk penggunaan use case scenario berbasis teks per use casenya. Berikut adalah dasar format penulisan use case scenario [9]. Dasar pembangunan use case scenario dapat dilihat pada tabel di bawah ini: Tabel 2.3 Dasar Pembangunan Use Case Scenario Use Case Name Goal In Context
Berisi nama dari use case yang akan digunakan Menjelaskan apa yang actor coba untuk dapatkan dari use case
Description
Menjelaskan gambaran dari use case
Related Use Case
Daftar use case yang berhubungan dengan use case tersebut
Successful End Condition
Kondisi use case jika berhasil
Failed End Condition
Kondisi use case jika gagal
Actors
Daftar actor yang dilakukan untuk mengawali use case
Trigger
Aktifitas yang dilakukan untuk mengawali use case
Main Flow
step
action
1
Deskripsi urutan aksi dari aktifitas use case
2 3
II-17
Step
Extension
2.1
Braching Action Deskripsi urutan aksi lain selain urutan aksi utama
2.2
c. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objekobjek
yang
terkait).
Sequence
diagram
biasa
digunakan
untuk
menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan Output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan Output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message [7]. Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity. d. Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) satu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok: 1. Nama dan stereotype 2. Atribut
II-18
3. Metode Atribut dan metode dapat memiliki salah satu sifat berikut: 1. Private, tidak dapat dipanggil dari luar class yang bersangkutan. 2. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. 3. Public, dapat dipanggil oleh siapa saja. Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package. Class memiliki tipe-tipe relationship, diantaranya : 1. Asosiasi,
yaitu
hubungan
statis
antar
class.
Umumnya
menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. 2. Agregasi, yaitu hubungan yang menyatakan bagian terdiri atas dimana ketika satu class di share atau direferensikan kepada objek yang ada di class lain. 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Komposisi, yaitu jenis relasi class diagram yang kuat dimana jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka class tersebut memiliki relasi Composition terhadap class tempat dia bergantung tersebut. Sebuah relationship composition digambarkan sebagai garis dengan ujung berbentuk jajaran genjang berisi/solid. 5. Depedensi, salah satu jenis relasi class diagram yang lemah dimana objek dalam suatu class akan bekerja sangat singkat dengan objek yang ada pada class lain.
II-19
e. Acivity Diagram Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing aliran berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Standar UML
menggunakan
segiempat
dengan
sudut
membulat
untuk
menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. 2.9 Android Android adalah sistem operasi smartphone layar sentuh seperti iOS iPhone dan OS BlackBerry yang dalam pengembangannya dipimpin oleh google. Sistem operasi ini bersifat Open Source dan dikembangkan berdasarkan kernel Linux yang disematkan pada gadget, baik itu handphone atau tablet [1]. Android memiliki OS yang sangat baik, cepat dan kuat serta memiliki antarmuka pengguna intuitif yang dikemas dengan pilihan dan fleksibilitas. Sedangkan android SDK (Software Development Kit) menyediakan tools dan API yang diperlukan untuk mengembangkan aplikasi pada platform android dengan menggunakan bahasa pemrograman Java. Di dalam android terdapat activity dimana komponen ini memberi interaksi antara user dan aplikasi yang dibangun melalui user interface. Activity ini memiliki Siklus hidup yang dinamakan Android Life Cycle.
II-20
Gambar 2.1 Android Life Cycle [14]
Gambar diatas menjelaskan mengenai sebuah ilustrasi sederhana dari siklus hidup activity yang dinyatakan sebagai langkah piramida. Hal ini menunjukkan bagaimana untuk setiap callback yang digunakan untuk mengambil aktivitas langkah menuju state atas kemudian dilanjutkan pada metode callback yang mengambil langkah menurun. Kegiatan ini juga dapat kembali ke keadaan dari statepause dan stop. Siklus hidup activity ini menjadi sangat penting ketika kita hendak membuat aplikasi berbasis android. Gunanya adalah agar aplikasi yang dibangun berjalan dengan baik. Berikut penjelasan pada masing-masing state: 1. onCreate(), Method ini dipanggil ketika activity pertama kali dibuat. 2. onStart(), Method ini dipanggil ketika sebuah activity tampil ke pengguna. 3. onResume(), Method ini dipanggil ketika activity yang berjalan pada saat itudihentikan sementara (paused) dan activity sebelumnya dijalankan kembali (resumed). (Hasil dari method OnRestart()). 4. onPause(), Method ini dipanggil ketika activity di hentikan sementara (pause) dan berikutnya ketika dijalankan kembali akan berada dalam posisi resume dan memanggil method OnResume(). 5. onStop(), Method ini dipanggil ketika activity tidak lagi tampak kepada pengguna.
II-21
6. onDestroy(), Method ini dipanggil sebelum activity dihancurkan (destroy) oleh sistem (baik secara manual maupun untuk kepentingan pelonggaran memori). Banyak sekali fitur yang dapat dimanfaatkan pada platform android ini. Diantaranya adalah Location Based Services (LBS) dan Google Cloud Messaging (GCM). Location Based Services (LBS) dapat dimanfaat untuk layanan yang menggunakan informasi geografis dalam memberikan informasi lokasi kepada pengguna, sebagai petunjuk posisi atau lokasi piranti mobile pengguna berada, dan menemukan rute jalan sesuai permintaan. LBS dapat digambarkan sebagai satu layanan yang berada pada pertemuan tiga teknologi yaitu: Geographic Information System (GIS), Internet Service, dan Mobile Devices [14]. Google Cloud Messaging atau disingkat GCM merupakan suatu layanan yang disediakan oleh google, dengan layanan ini kita dapat mengirimkan data dari server ke user yang pada aplikasinya menggunakan layanan ini. Google Cloud Messaging dapat digunakan developer, khususnya developer android untuk mengirimkan push notification.
2.10
SQLite SQLite adalah database yang berukuran kecil, berdiri sendiri, bukan
database client server, tanpa konfigurasi namun mempunyai fitur penuh perintah SQL [15] .SQLite adalah sebuah open source database yang telah ada cukup lama, cukup stabil, dan sangat terkenal pada perangkat kecil, termasuk Android. Android menyediakan database relasional yang ringan untuk setiap aplikasi menggunakan SQLite. Aplikasi dapat mengambil keuntungan dari itu untuk mengatur relational database engine untuk menyimpan data secara aman dan efiesien. Untuk Android, SQLite dijadikan satu di dalam Android runtime, sehingga setiap aplikasi Android dapat membuat basis data SQLite. Karena SQLite menggunakan antarmuka SQL, cukup mudah untuk digunakan orang orang dengan pengalaman lain yang berbasis databases. Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu:
II-22
a. Database dengan konfigurasi nol, artinya tidak ada konfigurasi database untuk para developer, hal ini membuatnya relatif mudah digunakan. b. Tidak memiliki server. c. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database. d. Single file database yang membuat keamanan database secara langsung. e. Open source membuat developer mudah dalam pengembangan aplikasi. 2.11
Pengujian Black Box Metode pengujian black box fokus pada keperluan penelusuran kesalahan
fungsional dari software [10]. Ujicoba black box berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya: a. Fungsi-fungsi yang salah atau hilang b. Kesalahan interface c. Kesalahan dalam struktur data atau akses database eksternal d. Kesalahan performa e. Kesalahan inisialisasi dan terminasi Pengujian black box cenderung diaplikasikan selama tahap akhir pengujian, karena pengujian black box memperhatikan struktur kontrol maka perhatian berfokus pada domain informasi.
2.12
Teknik Evaluasi Peringkas Teks Adapun Teknik yang digunakan untuk mengevaluasi hasil suatu ringkasan
teks merupakan topik yang cukup sulit, baik evaluasi terhadap ringkasan yang dihasilkan dari mesin peringkas otomatis ataupun ringkasan yang dihasilkan secara manual yang dibuat manusia, dikarenakan tidak terdapat definisi ringkasan ideal. Metode untuk melakukan evaluasi terhadap hasil dari ringkasan secara umum dibagi 2 [16], yaitu:
II-23
a. Ekstrinsik. Metode evaluasi ekstrinsik adalah menghitung efektivitas dan akseptabilitas dari hasil ringkasan untuk tugas-tugas tertentu, misalnya assessment terhadap hasil ringkasan. b. Intrinsik. Metode evaluasi intrinsik adalah evaluasi yang dilakukan oleh system peringkas itu sendiri, misalnya menggunakan F-Measures. Evaluasi ini difokuskan pada tingkat koheren dan informatif dari hasil ringkasan. Dalam penelitian ini, metode evaluasi yang digunakan adalah metode intrinsik penghitungan F-Measure berdasarkan perhitungan Precision dan Recall merupakan standar evaluasi dalam penghitungan information retrieval. Standar evaluasi perhitungan information retrieval dengan menggunakan precision dan recall juga dapat digunakan dalam evaluasi perhitungan peringkas teks otomatis [19].
2.8
∑
∑
2.9
Kombinasi antara nilai recall dan precision menghasilkan nilai f-measure.
2.10
Precision adalah tingkat ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang diberikan oleh sistem. Sedangkan recall adalah tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi. Accuracy didefinisikan sebagai tingkat kedekatan antara nilai prediksi dengan nilai aktual. F-measure merupakan salah satu perhitungan evaluasi dalam temu kembali informasi yang mengkombinasikan recall dan precision. Ukuran yang
II-24
menampilkan timbal balik antara recall dan precision adalah f-measure yang merupakan bobot harmonic mean dari recall dan precision. Masalah utama dari hasil evaluasi peringkas teks ini adalah sangat nyata, yaitu tidak ada satupun ringkasan yang benar [13]. Untuk membantah pernyataan tersebut maka peneliti melakukan evaluasi terhadap hasil ringkasan dengan meminta pertimbangan pendapat ahli (Expert Judgment) bahasa Indonesia sebagai pengevaluasi ringkasan teks secara manual untuk menciptakan sekumpulan ringkasan manual, masing-masing satu untuk menguji teks. Pembuat ringkasan manual akan meringkas dengan cara memilih kalimat yang relevan [19]. Pada penelitian ini pembuat ringkasan manual, yaitu Expert judgment. Hasil ringkasan expert judgment akan dibandingkan dengan hasil ringkasan sistem. Yang diukur adalah jumlah kalimat yang sama (overlap), seringkali disebut dengan recall dan precision kalimat atau frase [13]. Expert judgment atau penilaian ahli adalah sebuah pendekatan untuk mengumpulkan dan mendapatkan informasi tentang pendapat dari individuindividu dengan keahlian tertentu. Pendekatan dengan cara seperti ini biasanya digunakan dalam bentuk panel, yaitu menggabungkan pendapat untuk mencakup berbagai isu tentang suatu topik. Expert judgment merupakan bagian integral dari kebanyakan cara pengambilan keputusan [4].