II-1 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.
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 unit- unit 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.
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
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.
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 Format Kata Pemenggalan
1 berV… ber-V…| be-rV…
2 berCAP… ber-CAP… dimana C!=”r” & P!=”er”
3 berCAerV… ber-CaerV…dimana C!=“r”
4 belajar bel-ajar
5 beC1erC2… be-C1erC2…dimana C1!={“r”|”l”}
6 terV… ter-V…| te-rV…
7 terCerV… ter-CerV… dimana C!=”r”
8 terCP… ter-CP…dimana C!=”r” dan P!=”er”
9 teC1erC2… te-C1erC2… dimana C!=”r”
Aturan Format Kata Pemenggalan 10 me{l|r|w|y}V… me-{l|r|w|y}V…
11 mem{b|f|v}... mem-{b|f|v}…
12 mempe{r|l}... mem-pe…
13 mem{rV|V}... me-m{rV|V}... | me-p{rV|V}...
14 men{c|d|j|z}... men-{c|d|j|z}...
15 menV... me-nV... | me-tV 16 meng{g|h|q}... meng-{g|h|q}...
17 mengV... meng-V... |meng-kV...
18 menyV... meny-sV…
19 mempV... mem-pV... dimana V!=„e‟
20 pe{w|y}V... pe-{w|y}V...
21 perV... per-V... | pe-rV...
22 perCAP per-CAP... dimana C!=‟r‟danP!=‟er‟
23 perCAerV... per-CAerV... dimana C!=‟r‟
24 pem{b|f|V}... pem-{b|f|V}...
25 pem{rV|V}... pe-m{rV|V}... | pe-p{rV|V}...
26 pen{c|d|j|z}.. pen-{c|d|j|z}...
27 penV... pe-nV... | pe-tV…
28 peng{g|h|q}... peng-{g|h|q}...
29 pengV... peng-V... | peng-kV...
30 penyV... peny-sV…
31 pelV... pe-lV... kecuali “pelajar” yang menghasilkan
“ajar”
32 peCerV... per-erV... dimana C!={r|w|y|l|m|n}
33 peCP… 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].
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
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 terdapat transfer pengetahuan logistik.
Jadi jumlah dokumen (d) = 3
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 TF
DF IDF (W) TF-IDF
d1 d2 d3 d1 d2 d3
manajemen 1 0 1 2 0.1761 0.1761 0 0.1761
transaksi 1 0 0 1 0.4771 0.4771 0 0
logistik 1 0 1 2 0.1761 0.1761 0 0.1761
pengetahuan 0 1 2 2 0.1761 0 0.1761 0.3522
individu 0 1 0 1 0.4771 0 0.4771 0
transfer 0 0 1 1 0.4771 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:
{ ( )) 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.
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.
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.
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 :
∑ ∑ ((∑( )
) ( ) )
2.6
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.
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
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
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 Berisi nama dari use case yang akan digunakan
Goal In Context 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
Extension Step Braching Action
2.1 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 (objek- objek 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
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.
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.
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.
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:
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:
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
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 individu- individu 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].