• Tidak ada hasil yang ditemukan

Implementasi Metode Maximum Marginal Relevance (MMR) Dan Algoritma Steiner Tree Untuk Menentukan Storyline Dokumen Berita

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Metode Maximum Marginal Relevance (MMR) Dan Algoritma Steiner Tree Untuk Menentukan Storyline Dokumen Berita"

Copied!
73
0
0

Teks penuh

(1)

IMPLEMENTASI METODE MAXIMUM MARGINAL

RELEVANCE (MMR) DAN ALGORITMA STEINER TREE

UNTUK MENENTUKAN STORYLINE DOKUMEN BERITA

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

AJI TEJA HARTANTO

10111301

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)

iii

KATA PENGANTAR

Bismillahirahmaanirahiim

Dengan memanjatkan puji syukur kehadirat Allah SWT, atas rahmat dan karunianya penulis dapat menyelesaikan skripsi ini, yang merupakan syarat untuk menyelesaikan program studi Strata I Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer pada Universitas Komputer Indonesia.

Selama pelaksanaan dan penyusunan laporan Skripsi ini banyak menemui hambatan dan kesulitan. Namun berkat dorongan, bantuan dan bimbingan baik secara moril ataupun material dari berbagai pihak penulis dapat mengatasinya. Untuk itu penulis ingin mengucapkan terima kasih kepada :

1. Allah SWT yang senantiasa memberikan hidayah serta inayah-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan penuh sadar akan kewajiban fardhu kifayah.

2. Kedua orang tua dan kedua adik yang dengan penuh syukur Allah memberikan kesempatan hidup bagi mereka sehingga dapat memberikan dorongan moriil maupun materiil sehingga penulis terus berupaya untuk menuntaskan laporan tugas akhir ini.

3. Keluarga Besar Dakwah Kampus UNIKOM yang senantiasa menyebarkan dakwah ditengah-tengah civitas kampus unikom dan mendorong bersinerginya antara kuliah dan menggapai mardhatillah sehingga mengarahkan penulis dalam menuntaskan laporan ini tanpa kesia-siaan namun demi menggapai tujuan yang hakiki.

4. Keluarga Besar Asrama Revolt Camp & Umar bin Khattab yang senantiasa sangat membantu penulis dalam menyelesaikan TA ini.

(3)

iv

6. Ibu Kania Evita Dewi, S.Pd., M.Si. selaku Dosen Pembimbing II di Universitas Komputer Indonesia yang sangat membantu penulis dalam menyelesaikan skripsi ini.

7. Seluruh Dosen dan Staff pengajar jurusan Teknik Informatika Universitas Komputer Indonesia.

8. Saudara-saudara yang selalu memberikan dukungannya kepada penulis. 9. Teman-teman HIMA & UKM dalam rentang angkatan 2012-2015 yang

telah memberikan pelajaran hidup sehingga mampu mendorong penulis dalam kemandirian untuk menuntaskan laporan ini

10. Teman-teman IF-7 angkatan 2011 yang telah banyak membantu dan memberikan dorongan kepada penulis.

11. Semua pihak yang terlibat yang telah ikut membatu dalam penulisan laporan ini baik secara langsung maupun tidak langsung.

Dengan keterbatasan ilmu dan pengetahuan yang penulis miliki, penulis menyadari bahwa penyusunan skripsi ini masih jauh dari kesempurnaan dan masih terdapat kekurangan dan kelemahan, walaupun demikian penulis telah berusaha semaksimal mungkin untuk mendapat hasil yang optimal.

Bertolak dari inilah, penulis mengharapkan adanya koreksi, kritik dan saran yang membangun dari berbagai pihak sehingga menjadi bahan masukan bagi penulis untuk peningkatan di masa yang akan datang

Akhirnya penulis mengucapkan syukur alhamdullilah kehadirat ilahirobi yang tiada hentinya atas selesainya proses penulisan laporan Tugas Akhir ini Amin.

Bandung, Maret 2016

(4)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... viii

DAFTAR GAMBAR ... ix

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xv

PENDAHULUAN ... 1

Latar Belakang Masalah ... 1

Rumusan Masalah ... 2

Maksud dan Tujuan ... 2

1.3.1. Maksud ... 2

1.3.2. Tujuan... 3

Batasan Masalah ... 3

Metodologi Penelitian ... 4

1.5.1. Metode Pengumpulan Data ... 4

1.5.2. Metode Pembangunan Perangkat Lunak ... 4

1.5.3. Metode Pengujian ... 6

Sistematika Penulisan ... 7

LANDASAN TEORI ... 9

Maximum Marginal Relevance ... 9

Text Processing ... 9

2.2.1. Case Folding ... 9

2.2.2. Tokenizing ... 9

2.2.3. Filtering dan Eliminasi Stopwords ... 10

2.2.4. Stemming ... 10

Cosine Similiarity ... 12

Pembobotan MMR ... 14

Pembobotan TF-IDF ... 15

Teori Graf ... 16

(5)

vi

Tree... 19

2.8.1. Multi-view Graph ... 21

2.8.2. Himpunan Dominasi ... 21

2.8.3. Steiner tree... 21

2.8.4. Aproksimasi Steiner tree ... 22

Alur Kronologis... 22

2.9.1. Menentukan Alur Kronologis ... 23

2.9.2. Alur Kronologis yang Baik ... 24

Tingkat Komulatif Kejadian (Tingkat Insidensi Komulatif)... 24

OOP (Object Oriented Programming)... 25

2.11.1. Konsep Dasar Berorientasi Objek ... 25

UML (Unified Modeling Language) ... 28

2.12.1. Use Case Diagram ... 29

2.12.2. Activity Diagram ... 30

2.12.3. Class Diagram ... 30

2.12.4. Sequence Diagram... 31

Pengujian Perangkat Lunak ... 32

2.13.1. Pengujian Whitebox ... 32

2.13.2. Pengujian Ketergunaan (Usability Testing) ... 33

2.13.3. Notasi Big O ... 35

Perangkat Lunak Pendukung ... 37

2.14.1. Apache ... 37

2.14.2. MySQL ... 38

2.14.3. PHP... 38

2.14.4. PHPMyAdmin ... 39

2.14.5. XAMPP ... 39

2.14.6. Adobe Dreamwever CC ... 40

ANALISIS DAN PERANCANGAN SISTEM ... 41

Analisis masalah ... 41

Analisis Sistem ... 42

(6)

vii

3.2.2. Analisis Algoritma Steiner Tree ... 61

Analisis Kebutuhan Non Fungsional ... 78

3.3.1. Analisis Perangkat Keras ... 78

3.3.2. Analisis Perangkat Lunak... 79

3.3.3. Analisis Kebutuhan Pengguna ... 79

Analisis Basis Data... 80

3.4.1. Struktur Tabel ... 80

Analisis Kebutuhan Fungsional ... 81

3.5.1. Use Case Diagram ... 81

3.5.2. Activity Diagram ... 96

3.5.3. Class Diagram ... 107

3.5.4. Sequence Diagram... 107

3.5.5. Perancangan Arsitektur ... 114

IMPLEMENTASI DAN PENGUJIAN SISTEM ... 119

Implementasi Sistem ... 119

4.1.1. Implementasi Perangkat Lunak ... 119

4.1.2. Implementasi Perangkat Keras ... 120

4.1.3. Implementasi Antar Muka ... 121

Pengujian Sistem ... 122

4.2.1. Rencana Pengujian ... 123

4.2.2. Pengujian White Box ... 123

4.2.3. Pengujian Ketergunaan (Usability Testing) ... 134

4.2.4. Sekenario Pengujian Performansi ... 141

KESIMPULAN DAN SARAN ... 145

KESIMPULAN ... 145

SARAN ... 145

(7)
(8)

136

DAFTAR PUSTAKA

[1] E. Lukman, "Laporan: Inilah Yang Dilakukan 74,6 Juta Pengguna Internet Indonesia Ketika Online," Techinasia, 31 Oktober 2013. [Online]. Available: Https://Id.Techinasia.Com/Tingkah-Laku-Pengguna-Internet-Indonesia/. [Accessed 7 10 2015].

[2] J. Ahmad, L. A. Abdillah And S. , "Penerapan Teknik Web Scraping Pada Mesin Pencari Artikel Ilmiah," Sistem Informasi (Sisfo), Vol. 5, P. 6, 2014.

[3] M. Mustaqhfiri, Z. Abidin And R. Kusumawati, "Peringkasan Teks Otomatis Berita Berbahasa Indonesia Menggunakan Metode Maximum Marginal Relevance," Matics,

Vol. Iv, No. 4, Pp. 1-14, 2011.

[4] S. Simon, "Studi Pohon Steiner Dan Penggunaannya Dalam Perancangan Chip Dan Jaringan," 2008.

[5] A. Baihaqi, "Penerapan Algoritma Steiner Tree Dalam Konstruksi Jaringan Pipa Gas,"

Makalah If2091 Struktur Diskrit, Pp. 1-7, 2009.

[6] M. N. Hidayatullah, "Penerapan Metodologi Waterfall Dalam Pengembangan Sistem Informasi Akademik Universitas Negeri Surabaya (Studi Kasus Pt Sentra Vidya Utama Surabaya)".

[7] R. Jeff And D. Chisnell, Handbook Of Usability Testing, Canada: Wiley Publishing, Inc., 2008.

[8] D. Nopiyanti And K. A. Sekarwati, "Aplikasi Pencarian Kata Dasar Dokumen Berbahasa Indonesia Dengan Metode Stemming Porter Menggunakan Php & Mysql," In Seminar Ilmiah Nasional Komputer Dan Sistem Intelijen (Kommit 2014) , Depok, 2014.

[9] A. D. Tahitoe And D. Purwitasari, "Implementasi Modifikasi Enhanced Confix Stripping Stemmer Untuk Bahasa Indonesia Dengan Metode Corpus Based Stemming," 2010. [10] R. V. Imbar, A. M. Ayub And A. Rehatta, "Implementasi Cosine Similarity Dan

Algoritma Smith-Waterman Untuk Mendeteksi Kemiripan Teks," Informatika, Vol. 10, No. 1, Pp. 1-12, 2014.

[11] R. Nicholas, "Aplikasi Graf Berbobot Dalam Menentukan Jalur Angkot (Angkutan Kota) Tercepat," Itb, Bandung, 2010/2011.

[12] Z. Fathoni, "Algoritma Penentuan Graf Bipartit," Makalah If2091, P. 2, 2009. [13] H. Kusniyati, "Teori Graf," In Matematika Diskrit, Pusat Bahan Ajar Dan Elearning. [14] E. N. Hayati And A. Yohanes, "Pencarian Rute Terpendek Menggunakan Algoritma

Greedy," In Seminar Nasional Ienaco, Semarang, 2014.

[15] C. Lin, C. Lin And J. Li, "Generating Event Storylines From Microblogs," In Cikm '12 Proceedings Of The 21st Acm International Conference On Information And Knowledge Management, New York, 2012 .

[16] K. Kesehatan, "Kamus Kesehatan," [Online]. Available: Http://Kamuskesehatan.Com/Arti/Tingkat-Insiden/.

[17] M. Danuri, "Object Oriented Programming (Oop)," Infokam, Vol. V, No. 1, Pp. 1-8, 2009.

[18] "Pengertian Uml ( Unified Modelling Language ) & Sejarah Uml," Abstrakpengetahuan,

10 2014. [Online]. Available:

(9)

137

[20] S. "Efisiensi Algoritma Dan Notasi O-Besar," Comtech, Vol. 2, No. 2, P. 857, 2011. [21] K. T. Martono, "Tracer Alumni Berbasis Website (Kasus: Sistem Komputer Falkutas

Teknik Undip)," Sistem Komputer, Vol. 3, No. 1, P. 33, 2013.

[22] "Phpmyadmin," Wikipedia, 6 April 2013. [Online]. Available: Https://Id.Wikipedia.Org/Wiki/Phpmyadmin. [Accessed 7 10 2015].

[23] "Xampp," Wikipedia, 5 Mei 2015. [Online]. Available: Https://Id.Wikipedia.Org/Wiki/Xampp.

[24] "Dreamweaver," Wikipedia, 6 April 2014. [Online]. Available: Https://Id.Wikipedia.Org/Wiki/Adobe_Dreamweaver.

[25] E. Saputra, Z. Mazalisa And R. Andryani, "Usability Testing Untuk Mengukur Penggunaan Website," Jurnal Teknik Informatika, Pp. 1-9, 2014.

[26] L. Marlinda And H. Rianto, "Pembelajaran Bahasa Indonesia Berbasis Web Menggunakan Metode Maximum Marginal Relevance," In Seminar Nasional Sistem Informasi Indonesia, Jakarta, 2013.

[27] A. Solihin, F. Solihin And F. H. Rachman, "Penerapan Modifikasi Metode Enhaced Confix Stripping Stemmer Pada Teks Berbahasa Madura," Sarjana Teknik Informatika,

Vol. Ii, No. 1, Pp. 1-18, 2013.

[28] D. Wang, T. Li And M. Ogihara, "Generating Pictorial Storylines Via Minimum-Weight Connected Dominating Set Approximation In Multi-View Graphs," In Twenty-Sixth Aaai Conference On Artificial Intelligence, Toronto, 2012.

[29] Andri, Heuristik Sebagaimana Secara Bahasa Dapat Diartikan Sebagai Seni Untuk Menemukan Strategi Dalam Menyelesaikan Persoalan., Jakarta: Uin Syarif Hidayatullah, 2008.

[30] S. And M. Fathoni, "Pengantar Analisa Perancangan Sistem," Jurnal Saintikom, Vol. 9, No. 2, P. 5, 2010.

[31] A. Srivastava, "Generating Storylines".

(10)

1

PENDAHULUAN

Latar Belakang Masalah

Seiring diterbitkannya data survei yang dikeluarkan Markplus Insight dan Majalah Online Marketeers 2013, terdapat 98% dari 2015 responden menjadikan sumber informasi utama adalah internet. Sebanyak 54,2% dari persentase responden tersebut, konten yang dijadikan rujukan sumber informasi adalah berita [1]. Namun, survei yang dilakukan terhadap sampel 41 pembaca menunjukan sekitar 58,84% menganggap bahwa pencarian berita untuk mendapatkan kronologis peristiwa membutuhkan waktu yang lama. Padahal, sebanyak 95% pembaca memiliki tujuan dalam aktivitas pencarian berita adalah untuk mendapatkan alur kronologis suatu peristiwa. Disamping itu, hasil pencarian yang diperoleh melalui media online, terutama pada mesin pencari tidak memahami pola semantik atau tren dari sejumlah data yang telah diperoleh [2]. Sehingga, hasil pencarian tidak terstruktur dan tidak memiliki hubungan sebab akibat antara teks dokumen satu dengan yang lainnya.

Teks representatif terhadap suatu dokumen, secara umum diterapkan sebagai fitur dalam mesin pencari. Namun, teks representatif tersebut masih berdasarkan kata kunci saja. Sehingga secara kualitas belum memenuhi representasi dokumen. Untuk mendapatkan teks representatif, penelitian yang dilakukan oleh Mustaqhfiri [3], teks representatif berupa ringkasan dihasilkan oleh metode MMR

merupakan hasil ekstraksi kalimat. Metode ini digunakan untuk mengurangi redudansi dalam perangkingan kalimat pada multi dokumen. Kualitas ringkasan yang dihasilkan dari metode MMR ini ditunjukan dengan hasil berupa recall,

precission dan kombinasi keduanya berupa f-measure. Dari data uji coba yang diambil dari surat kabar berbahasa Indonesia online sejumlah 30, menunjukan hasil rata-rata berupa recall 60%, precision 77% dan f-measure 66%.

(11)

dapat dilakukan dengan memahami keterkaitan antar dokumen teks tersebut. Untuk menentukan sebuah jaringan tanpa sirkuit (struktur pohon tanpa cabang) yang menghubungkan seluruh node dapat digunakan Steiner Tree [4]. Penerapan steiner tree dalam penelitian yang dilakukan oleh Achmad Baihaqi [5], bertujuan untuk menentukan konstruksi suatu jaringan. Dalam penerapannya digunakan dalam jaringan pipa gas dari suatu graf. Implementasi algoritma heuristic yang didasarkan pada kecepatan waktu komputasi dalam algoritma steiner tree menghasilkan konstruksi pendistribusian gas yang lebih optimal dalam pertimbangan waktu dan biaya. Hal ini dikarenakan bobot steiner tree yang dihasilkan oleh algoritma

heuristic ini belum tentu merupakan bobot yang minimum, akan tetapi bobot tersebut tidak akan melebihi suatu nilai batas atas.

Oleh karena itu, pada penelitian ini akan disusun sebuah penelitian berjudul

Implementasi Metode Maximum Marginal Relevance (MMR) dan Algoritma Steiner Tree Untuk Menentukan Storyline Dokumen Berita”

Rumusan Masalah

Berdasarkan latar belakang yang telah diuraikan diatas, maka rumusan masalah yang diperoleh adalah bagaimana meningkatkan efektivitas dan efesiensi dalam melakukan pencarian berita oleh pembaca media online dengan implementasi metode maximum marginal relevance dan algoritma steiner tree

untuk menentukan Storyline (alur kronologis) dari dokumen berita tekstual.

Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dan tujuan dari penelitian adalah sebagai berikut:

1.3.1. Maksud

Maksud dari penelitian ini adalah untuk melakukan implementasi metode

(12)

3

1.3.2. Tujuan

Adapun tujuan dari penelitian ini adalah mempermudah dan mempercepat proses pencarian yang dilakukan oleh pembaca media berita online dalam mencari alur kronologis sebuah peristiwa dengan penerapan metode maximum marginal relevance dan algoritma Steiner Tree.

Batasan Masalah

Batasan masalah dilakukan untuk membatasi penelitian ini agar dalam implementasi metode maximum marginal relevance dan algoritma steiner tree

dapat dilakukan secara lebih mendalam sehingga pembahasan tidak terlalu umum. Adapun batasan masalah yang dapat dijelaskan adalah sebagai berikut:

1. Dokumen teks artikel diperoleh dari a. detik.com/internasional, b. internasional.kompas.com, c. news.okezone.com/internasional, d. internasional.sindonews.com, e. dunia.news.viva.co.id dan

f. voa-indonesia.com

g. unisosdem

2. Dokumen teks artikel berita diambil dalam satu kategori rubrik politik internasional.

3. Peringkasan teks dilakukan dengan proses peringkasan dokumen tunggal untuk masing-masing dokumen.

4. Batasan cakupan setiap teks hasil dari ringkasan kurang sama dengan 2 kalimat.

5. Cakupan sejumlah teks berita yang menjadi alur kronologis dibatasi oleh penentuan waktu peristiwa pada teks berita itu terjadi.

6. Alur kronologis dibentuk dari berita peristiwa.

(13)

10. Sistem query yang digunakan adalah MySQL.

11. Software yang digunakan dalam penelitian ini adalah Dreamwever. 12. Proses pencarian steiner tree dari ringkasan banyak teks artikel berita

dilakukan secara offline.

13. Representasi Graph menggunakan Adjacency Matrix.

14. Segmentasi kalimat dilakukan berdasarkan simbol titik untuk membagi artikel kedalam beberapa kaliamt.

Metodologi Penelitian

Metode penelitian yang akan dilakukan dalam penelitian ini adalah dengan melakukan penelitian deskriptif, yakni metode penelitian yag sistematika dan akurat mengenai keadaan fakta penelitian. Gambaran tersebut diperoleh dengan cara mengumpulkan, mengklasifikasikan, menyajikan seta menganalisis data sehingga dapat ditaring suatu kesimpulan. Metode ini dibagi menjadi dua, yaitu pengumpulan data dan pembangunan perangkat lunak.

1.5.1. Metode Pengumpulan Data

Metode pengumpulan data yang digunakan adalah dengan melakukan studi literatur. Pada tahap ini, penggunaan metode pengumpulan studi literatur adalah untuk mencari informasi yang berkaitan dengan permasalahan sekaligus berkaitan erat dengan teknik peringkasan maximum marginal relevance dan penggunaan algoritma steiner tree dalam beberapa penelitian. Tahap ini dilakukan dengan mengumpulkan literatur, jurnal, paper, buku-buku dan bacaan-bacaan yang dapat membantu menyelesaikan penelitian ini.

1.5.2. Metode Pembangunan Perangkat Lunak

Metode yang digunakan dalam pembangunan perangkat lunak pada penelitian ini adalah metode waterfall. Secara garis besar, metode Waterfall

(14)

5

Pada tahap ini dilakukan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini dilakukan dengan studi literatur. Kemudian, dilakukan analisis terhadap algoritma yang akan diimplementasikan yakni terdiri dari penggunaan metode maximum marginal relevance dan algoritma steiner tree. Selain itu, analisis yang dilakukan antara lain analisis non-fungsional (kebutuhan hardware dan

software), serta analisis fungsional meliputi usecase diagram, class diagram,

Activity Diagram dan squencediagram.

2. System Design (Perancangan Sistem)

Proses desain akan menerjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dilakukan coding. Tahap ini memiliki tujuan dalam memberikan gambaran apa yang haris dikerjakan dan bagamana tampilannya. Tahap ini serupa dengan perancangan storyboard pra implementasi.

3. Implementation/Coding

Tahap implementasi yakni berupa penerapan hasil rancangan kepada program merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Pada tahap ini dilakukan pemrograman pada sistem yang dibangun, sekaligus melakukan implementasi algoritma didalamnya. Selain itu, pada tahap ini pula dilakukan pemeriksaan, apakah sistem yang sudah dibuat sudah memenuhi fungsi yang diinginkan atau belum.

4. Integration & Testing

(15)

Analisys Design Code Test System Information

Engineering

Gambar 1.1 Pemodelan Waterfall [6]

1.5.3. Metode Pengujian

Metode pengujian yang digunakan untuk melakukan evaluasi terhadap perangkat lunak atau sistem pencariann alur kronologis adalah teknik pengujian ketergunaan (Usability Testing). Dengan teknik ini, dilakukan pengujian perangkat lunak dengan langsung kepada pengguna. Usability memiliki lima komponen diantaranya learnability, effeciency, memorability, Errors dan Satisfaction.

Tujuan dari metode pengujian Usability Testing ini adalah menginformasikan desain dengan mengumpulkan data untuk mengidentifikasi dan memperbaiki kekurangan kegunaan yang ada dalam produk dan bahan pendukung sebelum rilis, mengeliminasi problem desain dan meminimalisir kesalahan serta menunjukan keuntungan yang diperolah dari sistem [7].

Ada beberapa langkah dalam proses melakukan pengujian ketergunaan

(usability testing) diantaranya [7]:

1. Mengembangkan perencanaan pengujian 2. Mengatur lingkundan pengujian

3. Mencari dan memilih partisipan 4. Menyiapkan bahan pengujian 5. Melakukan sesi pengujian

6. Mengadakan wawancara terhadap partisipan dan pengamat 7. Analisa data dan observasi

(16)

7

Gambar 1.2 Langkah-Langkah Pengujian Usability Testing

Sistematika Penulisan

Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut:

BAB I PENDAHULUAN

Bab ini menjelaskan tentang latar belakang masalah mengenai hal-hal yang menjadi kajian penelitian, merumuskan masalah, menentukan batasan masalah, mengutarakan maksud dan tujuan serta menjelaskan mengenai metode penelitian dan sistematika penulisan yang dimaksudkan untuk memberikan gambaran tentang penyajian laporan ini.

BAB II LANDASAN TEORI

Bab ini menjelaskan tentang metode maximum marginal relevance, teori graf, approximation steiner tree algorithm dan Storyline (alur kronologis) serta bahasa pemograman yang digunakan berikut konsep dasar dan teori-teori yang berhubungan dengan topik penelitian yang akan dilakukan.

BAB III ANALISIS DAN PERANCANGAN

Bab ini menjelaskan tentang analisis masalah berkaitan dengan tahapan dalam penggunan metode MMR dan algoritma steiner tree dalam menentukan

Storyline dokumen berita analisis kebutuhan fungsional dan perancangan antarmuka yang menggambarkan bagaimana sistem dapat menentukan Storyline

(17)

BAB IV IMPLEMENTASI DAN PENGUJIAN

Bab ini menjelaskan implementasi, kebutuhan perangkat lunak, kebutuhan perangkat lunak yang digunakan, implementasi pada sistem yang dibangun, implementasi antarmuka dan pengujian sistem dari penerapan metode maximum marginal relevance juga algoritma steiner tree yang digunakan.

BAB V KESIMPULAN DAN SARAN

(18)

9

LANDASAN TEORI

Maximum Marginal Relevance

Algoritma mazimum marginal relevance (MMR) merupakan salah satu metode ekstraksi ringkasan (extractive summary) yang digunakan untuk meringkas dokumen tunggal atau multi dokumen [3]. MMR meringkas dokumen dengan menghitung kesamaan (similiarity) antara bagian teks.

Pada peringkasan dokumen dengan metode MMR dilakuakn proses segmentasi dokumen menjadi kalimat dan dilakukan pengelompokan sesuai dengan gendeer kalimat tersebut. MMR digunakan dengan mengkombinasikan matrik cosine similiaritu untuk merangking kalimat-kalimat sebagai tanggapan pada query yang diberikan oleh user.

Text Processing

Dalam melakukan pemrosesan teks terdapat beberapa tahap, yakni masing-masing dapat dijelaskan sebagai berikut:

2.2.1. Case Folding

Case folding merupakan proses penyamaan case dalam sebuah dokumen teks [3]. Case folding dilakukan karena total semua dokumen teks konsisten dalam menggunakan huruf kapital. Untuk itu peran case-folding dibutuhkan dalam merubah kseluruhan teks dalam dokumen menjadi bentuk standar yang secara umum diubah kedalam bentuk huruf kecil.

2.2.2. Tokenizing

(19)

Kata

Hapus Kata yang masuk dalam

kamus

Kata filter

Kamus Stopwords

Gambar 2.1 Activity Diagram Filtering

2.2.3. Filtering dan Eliminasi Stopwords

Eliminasi Stopwords dilakukan dengan mengambil kata-kata penting dari hasil token. Dalam proses ini dapat dilakukan pembuangan kata yang kurang penting (stop list) atau penyimpanan kata yang dianggap penting (word list).

Penggunaan eliminasi stopwords berfungsi untuk menghilangkan kata-kata yang dianggap tidak penting, secara umum kandidat stopwords seperti article, preposisi, dan konjungsi. Beberapa kata kerja, kata sifat dan kata keterangan lainnya dapat juga dimasukan kedalam daftar stopwords.

2.2.4. Stemming

(20)

11

dasar) dari sebuah kata. Pada umumnya kata dasar pada bahasa indonesia terdiri dari kombinasi [8] :

Prefiks 1 + Prefiks 2 + Kata dasar + Sufiks 3 + Sufiks 2 + Sufiks 1

(21)

Start Input

Data Cek kamus

Kata Ada di Kamus

Cek Rule Precedence

Rule Precedence Hapus Deriv ation

Prefix

Hapus Possecive Pronoun

Recording

Hapus Possecive Pronoun

Hapus Deriv ation Suffix

Ya Tidak

Hapus Derivatio n Suffix

Hapus Deriv ation Prefix

Recording Hapus Sisipan

Cek Kamus

Kata ada di Kamus Hapus Pengulangan

Dwipurwa

Loop Pengambilan Akhiran

Hasil Stemming

End

Tidak

Tidak

Ya

Ya

Gambar 2.2 Algoritma ECS [9]

Cosine Similiarity

Cosine similiarity digunakan untuk menghitung pendekatan relevansi query

terhadap dokumen [10]. Penentuan relevansi sebuah query terhadap suatu dokumen dipandang sebagai pengukuran kesamaan vektor query dengan vektor dokumen. Semakin besar nilai kesamaan vektor query dengan vektor dokumen maka query

tersebut dipandang semakin relevan dengan dokumen. Saat mesin menerima query,

(22)

13

pada query dan sebuah vektor D (Di1,Di2, Dit) berukuran t untuk setiap dokumen.

Pada umumnya cosine similiarity dihitung dengan rumus cosine measure

(Grossman, 1998). Berikut ini adalah gambaran bagaimana query dan dokumen dibentuk menjadi model vektor.

è1

è2

Q

D

t

D1

t

t

Gambar 2.1 Vektor Skalar [3]

Penggunaan cosine similiarity adalah tindak lanjut dari proses pembobotan TF-IDF. Dari hasil pembobotan maka dicarilah kemiripan daintara dokumen yang ada. Namun penerapannya dalam MMR adalah kemiripan kalimat-kalimat dalam sebuah dokumen tekstual. Persamaannya dapat digambarkan sebagai berikut:

�� Θ = ∑ � �

√∑ d2 √∑ d2 2.1

Database dari semua dokumen direpresntasikan oleh matriks term-document (atau matriks term-frequency). Dimana setiap sel pada matriks

(23)

[

� � �� …… � �

⋮ ⋮ �⋮ …⋱

��

��

��

⋮ �� � � � � … ���]

2.2

Pembobotan MMR

MMR (maximum marginal relevance) adalah metode peringkasan yang menggunakan dokumen tunggal ataupun multi-dokumen [3]. Teknik ini menerapkan penghitungan kesamaan (similiarity) antara segmentasi teks. Segmentasi ini dilakukan terhadap kalimat-kalimat dan dilakukan pengelompokan sesuai jenis kalimat tersebut. MMR digunakan dengan mengkombinasikan matrik

cosine similiarity untuk merangking kalimat-kalimat sebagai tanggapan pada query

yang diberikan oleh user.

Pembobotan maximum marginal relevance pada kalimat menggunakan algoritma MMR. Kelimat dirangking sebagai tanggapan terhadap query yang telah dimasukan oleh user. Perhitungan MMR dilakukan dengan perhitungan iterasi antara kombinasi dua matrik cosine similiarity yakni query releance dan similiarity

kalimat.

Pengguna yang menginginkan ruang sampel informasi disekitar query, maka harus menetapkan pada nilai yang lebih rendah. Sedangkan bagi pengguna yang ingin fokus untuk memperkuat dokumen-dokumen lebih relevan, maka harus menetapkan pada nilai yang lebih dekat dengan . Kalimat dengan nilai MMR

(24)

15

Start

Stop Input dokumen dan

kalimat Query

Text Processing

Pembobotan TF-IDF

Pembobotan Query relevance similiaritu kalimat

Pembobotan MMR

Ekstraksi Ringkasan

Gambar 2.5 Proses Peringkasan Dengan Menggunakan MMR[3]

Pembobotan TF-IDF

Term Frequency (tf)factor, yaitu faktor yang menentukan bobot term pada suatu dokumen berdasarkan jumlah kemunculannya dalam dokumen tersebut [3]. Nilai jumlah kemunculan suatu kata (term frequency) diperhitungkan dalam pemberian bobot terhadap suatu kata. Semakin besar jumlah kemunculan suatu term (tf tinggi) dalam dokumen, semakin besar pula bobotnya dalam dokumen atau akan memberikan nilai kesesuian yang semakin besar.

(25)

Menurut Mandala (dalam Witten, 1999) ‘Kata yang muncul pada sedikit dokumen

harus dipandang sebagai kata yang lebih penting (uncommon tems) daripada kata yang muncul pada banyak dokumen. Pembobotan akan memperhitungkan faktor kebalikan frekuensi dokumen yang mengandung suatu kata (inverse document frequency). Hal ini merupakan usulan dari George Zipf. Zipf mengamati bahwa frekuensi dari sesuatu cenderung kebalikan secara proposional dengan urutannya.

Nilai idf sebuah sistem term (kata) dapat dihitung menggunakan persamaan sebagai berkut:

� � = �� (� �) 2.3

D adalah jumlah dokumen yang berisi term (t) dan dfi adalah jumlah kemunculan

term terhadap D. adapun algoritma yang digunakan untuk menghitung bobot (W)

masing-masing dokumen kata kunci (query), yaitu:

�,� = � �,�∗ � �� 2.4

Keterangan: d = dokumen ke-d

t = term ke-t dari kata kunci tf = term frekuensi/frekuensi kata

W = bobot dokumen ke-d terhadap term ke-t

Teori Graf

(26)

17

Kemudian, berdasarkan orientasi arah pada sisi, ada 2 jenis graf secara umum (Rio, 2010/2011) :

1. Graf tidak bearah, yaitu sisinya (edge) tidak memiliki orientasi arah 2. Graf berarah, yaitu sisinya (edge) memiliki orientasi arah.

Adapun yang disebut graf unik atau graf berbobot, yaitu suatu graf yang setiap sisinya memiliki bobot/nilai tersendiri.

2.6.1. Bipartit Graf

Graf Bipartit adalah graf yang simpulnya dapat dipisah menjadi dua himpunan, misalnya bagian U dan V, sedemikian sehingga setiap sisi pada grad tersebut menghubungkan sebuah simpul di U dengan sebuah simpul di V, grad tersebut dapat dinyatakan sebagai G(U,V). pula dengan simpul-simpul di V [12].

Kedua himpunan U dan V tersebut juga dapat dianggap sebagai suatu pewarnaan graf dengan dua warna. Apabila semua simpul di U diberi warna biru, dan semua simpul di V diberi warna hijau, masing-masing sisi akan mempunyai ujung yang berbeda warna, sama halnya dengan ketentuan pada masalah perwarnaan graf. Namun demikian, pewarnaan demikian (dua warna). Tidak mungkin dilakukan pada graf non-bipartit. Berikut ini adalah contoh dari graf bipartit.

(27)

2.6.2. Graf Basis Data

Graph Database merupakan sebuah teknologi penyimpanan dalam database sebagaimana graph pada umumnya yang terdiri dari kumpulan edge dan vertex

sehingga dapat diakses secara langsung melalui aplikasi dan mendukung OLTP. Graph database ini oleh para ahli digolongkan pada database jenis NoSQL. NoSQL adalah istilah umum yang merujuk pada penyimpanan data yang tidak mengikuti aturan dari Relational Database. NoSQL ini sangat cocok digunakan untuk pemrosesan Big Data dimana data mempunyai ukuran yang sangat besar serta data itu akan terus berkembang.

Lintasan

Dimisalkan G adalah suatu graf. Dan v dan w adalah 2 titik dalam G. Walk

didefinisikan sebagai barisan titik-titik berhubungan dan sisi (garis/edge) secara berselang-seling, diawali dari titik v diakhiri pada titik w. Lintasan (path) dengan asumsi n dari v ke w adalah walk dari v ke w yang semua garisnya berbeda. Dengan demikian dapat dituliskan sebagai v = v0 e1 v1 e2 v2 ... vn-1 en vn = w dengan ei ej

untuk i  j. Lintasan sederhana dengan panjang n dari v ke w adalah path dari v ke w yang semua titiknya berbeda. Sehingga dapat ditulis dalam bentuk v = v0 e1 v1 e2

v2 ... vn-1 en vn = w dengan ei ej untuk i  j dan vk vm untuk k  m [13].

V6 V5

V4 V3

V2

V1

Gambar 2.2 Graf Lintasan (Path) [13]

Tree

Pohon (atau tree) didefinisikan sebagai graf terhubung yang tidak memuat lingkaran [1]. Dengan demikian, suatu lintasan merupakan salah satu contoh dari

(28)

19

node (verteks) dalam graf bersifat sama untuk kedua arah, maka graf tersebut dikatakan graf berarah. Sedangkan jika hubungan tersebut berbeda, maka graf tersebut dikatakan graf tidak berarah. Di dalam teori graf, dikenal juga istilah graf terhubung dan sirkuit. Graf terhubung adalah graf yang setiap titiknya dapat dicapai oleh semua titik lain dalam graf tersebut, sedangkan yang dimaksud dengan sirkuit adalah lintasan/jalur yang berawal dan berakhir pada titik yang sama.

Gambar 2.3 Graf Terhubung[4]

Gambar 2.4 Graf tidak terhubung[4]

Gambar 2.5 Sirkuit[4]

(29)

1. Pertama, dipilih sebuah sirkuit dalam graf

2. Kedua, hapus salah satu garis/sisi atau path dari sirkuit itu

3. Ketiga, Graf tersebut akan tetap terhubung, namun jumlah sirkuitnya berkurang Satu.

4. Keempat, Jika proses penghapusan tersebut dilakukan berulang-ulang hingga tidak ada lagi sirkuit tersisa, maka graf tersebut menjadi sebuah pohon.

Pohon itulah yang dapat disebut sebagai spanning tree (pohon merentang). Adapun pohon steiner memiliki kesamaan dengan pohon merentang. Namun,

steiner tree memiliki aturan tambahan.

Karena tidak ada dua bintang pengganti (star-replacement) melibatkan tepi yang sama, ini membuktikan bahwa solusi dikembalikan oleh algoritma

TerminalSteiner memiliki panjang di sebagian besar kali 2ρ panjang solusi optimal.

Perhatikan bahwa waktu berjalan dari garis 2, 4, 5, dan 6 dari algoritma TerminalSteiner adalah linier. Oleh karena itu total waktu menjalankan algoritma

ini didominasi oleh algoritma ρ-pendekatan yang digunakan untuk masalah pohon

Steiner.

2.8.1. Multi-view Graph

Multi-view graph merupakan G = (V,E,A) yakni graf yang terdiri dari

verteks, edge tidak berarah dan seperangkat edge terarah (arcs).Multi-view graph

dibentuk dari kumpulan summary dokumen berita tekstual sebagai V, perhitungan

E yang tidak terarah berdasarkan tingkat kemiripan dari dua buah summary text (V).

Sedangkan, perhitungan pada variabel A (edge berarah) berdasarkan perbedaan waktu dimana berita tersebut dipublikasikan yang merepresentasikan waktu kejadian itu berlangsung atau bisa dikatakan sebagai temestamp.

2.8.2. Himpunan Dominasi

(30)

21

sederhana yang tidak memiliki loop dan sisi ganda. Himpunan ini merupakan himpunan bagian V’ dari himpunan V(G) dimana titik-titik yang tidak berada pada

V’ terhubung langsung dengan minimal satu titik pada V’.

2.8.3. Steiner tree

Algoritma Steiner tree adalah sekumpulan subset atau bagian tertentu dari

vertices pohon rentang (spanning tree). Tree adalah graf terhubung yang tidak memuat lingkaran (sirkuit). Dengan demikian, suatu lintasan merupakan salah satu contoh dari tree. Bobot dari tree didefinisikan sebagai jumlah seluruh bobot sisi

(edge) pada tree. Pada vertices yang merupakan bagian dari tree dibagi dua bagian yakni terminal dan simpul non terminal. Terminal adalah pemberian node yang harus mengandung solusi atau nilai. Cost dari pohon steiner didefinisikan sebagai

edge total weight. Pohon steiner dapat mengandung beberapa simpul nonterminal untuk mengurangi cost. Algoritma ini dihasilkan dari algoritma heuristik, yakni sebuah aproksimasi. Akibatnya, bobot steiner yang dihasilkan itu belum tentu merupakan bobot yang minimum. Walau demikian terdapat batasan dalam pembobotan Steiner tree heuristic.

2.8.4. Aproksimasi Steiner tree

Secara khusus, penggunaan algoritma aproksimasi steiner tree akan memberikan waktu perhitungan yang lebih cepat dibandingkan dengan algoritma

steiner tree yang eksak [5]. Walaupun hasilnya tidak seakurat algoritma eksak, metode aproksiamsi steiner tree dapat menentukan tree hampiran untuk graf dengan banyak titik sekitar 100 buah dalam waktu kurang dari 1 detik.

Penggunaan greedy sebagai algoritma heuristik untuk melakukan solusi aproksimasi dapat dilakukan untuk menentukan pohon steiner. Hanya saja, penggunaan algoritma greedy tidak selalu memberikan solusi yang optimal, namun algoritma greedy pasti memberikan solusi mendekati optimum (approximation)

(31)

Alur Kronologis

Alur adalah urutan kejadian (peristiwa) yang mempunyai hubungan kausalitas (sebab-akibat) untuk menghantarkan runtunan kejadian tersebut kepada pembaca. Pada dasarnya alur dan plot memiliki perbedaan. Plot adalah suatu cerita yang saling berkaitan secara kronologis untuk menunjukan suatu maksud jalan cerita. Sedangkan alur hanya menunjukan urutan kejadian berdasarkan waktu kejadian tersebut terjadi. Dengan kata lain, urutan peristiwa yang membentuk alur bila ditampilkan berdasarkan pertimbangan struktur hubungan satu sama lain dan keterkaitan kausalitasnya maka dapat membentuk sebuah plot.

Alur kronologis adalah nama lain dari alur maju, alur lurus atau alur progresif. Peristiwa-peristiwa ditampilkan secara kronologis, maju, secara runtut dari awal tahap tengah hingga akhir. Dalam alur ini terdapat hitungan jam, menit, detik, hari dan sebagainya.

Gambar 2.6 Contoh Alur Kronologis “Revolusi Mesir”[15]

Demonstran bentrok dengan

polisi

Tidak ada pernyataan

Mubarak

Pengumuman

Api meluas ke musium

Pelindung manusia lindungi

Musium

Harapan antiquitis ok

Looters hancurkan mumi

Revolusi diikuti Eritrea

Rakyat diundang untuk mendukung

(32)

23

2.9.1. Menentukan Alur Kronologis

Sebagaimana telah dibahas berkaitan dengan alur kronologis dari berita tekstual, alur kronologis ini dihasilkan dari kumpulan hasil ringkasan yang relevan. Secara intuitif, dapat diambil ringkasan terbaik untuk merepresebtasujab ringkasan yang duplikat. Represetatif dari artikel tekstual berupa ringkasan menghasilkan plot dasar untuk setiap fase. Kemudian dari setiap representatif berita tekstual yakni ringkasan tersebut dikoneksikan atau dihubungkan sesuai untuk menggambarkan pengembangan struktur dari peristiwa (event). Secara berurut, untuk mengeliminasikan noisy dari ringkasan artikel, hanya teks terpublikasi setelah waktu tertentu yang dapat dianggap sebagai fase berikutnya. Terakhir, ada yang boleh dalam cara yang berbeda untuk menghubungkan representatif artikel dengan dan sebuah hubungan optimal seharusnya menjadi satu yang menghubungkan titik-titik tersebut lebih halus.

Berikut ini adalah arsitektur sistem untuk menghasilkan alur kronologis

Titik dominan Steiner Tree

Kumpulan Artikel

Ringkasan berita tekstual MMR

Query Alur Kronologis

Gambar 2.7 Arsitektur Sistem [15]

2.9.2. Alur Kronologis yang Baik

Dalam menggenerasikan alur kronologis atau Storyline tentu pembahasan yang paling pokok adalah bagaimana hasil yang diberikan oleh sistem memiliki unsur-unsur berikut (Anunaya Srivastava):

(33)

2. Relevan : memiliki keterkaitan antara dokumen berita yang satu dengan yang

lainnya.

3. Redudansi kecil atau sedikit: tidak ada pengulangan terhadap berita atau sedikit.

4. Keterkaitan : Keterhubungan antar dokumen. 5. Coverage : mewakili sebuah ulasan.

Tingkat Komulatif Kejadian (Tingkat Insidensi Komulatif)

Dalam pembahasan berkaitan dengan ilmu kesehatan sering di istilahkan sebagai Tingkat Insidensi Komulatif. Tingkat insiden (incident rate) adalah proporsi penduduk yang memiliki kondisi tertentu yang dimulai selama periode waktu. Angka ini diukur dengan salah satu dari tiga cara, yaitu tingkat serangan, tingkat kepadatan kejadian, atau risiko kejadian kumulatif [16].

Namun, dalam hal ini, Tingkat Kumulatif Kejadian menunjukan sejumlah atau banyaknya kejadian maupun peristiwa yang terjadi dalam kurun waktu tertentu.

OOP (Object Oriented Programming)

(34)

25

Gambar 2.8 Skema OOP [17]

2.11.1. Konsep Dasar Berorientasi Objek

Pemrograman borientasi objek menekankan pada konsep-konsep berikut yang merupakan ciri khasnya, yaitu :

1. Kelas

Kelas adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi

object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. Objek Objek membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

Properties Pengatur

Obyek

OBJECT PROGRAM /

TOOLBOX REPORT

FORM

DATABAS OTHERS

(35)

2. Abstraksi

Abstraksi merupakan kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

3. Enkapsulasi

Enkapsulasi memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

4. Polimorfisme

(36)

27

meningkat, tapi bagaiman proses peningkatan kecepatan ini dapat berbeda-beda untuk setiap jenis mobil.

5. Inheritas

Inheritas mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut ( bahasa berbasis objek tidak selalu memiliki inheritas.) Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

UML (Unified Modeling Language)

Unified Modeling Language (UML) merupakan salah satu alat bantu yang

dapat digunakan dalam bahasa pemograman yang berorientasi objek, saat ini UML

(37)

Unified Modeling Language merupakan metode pengembangan perangkat lunak (sistem informasi) dengan menggunakan metode grafis serta merupakan bahasa untuk visualisasi, spesifikasi, konstruksi serta dokumentasi.

1. Unified Modeling Language (UML) adalah bahasa yang telah menjadi standard untuk visualisasi, menetapkan, membangun dan mendokumentasikan arti suatu sistem perangkat lunak.

2. Unified Modeling Language (UML) dapat didefinisikan sebagai sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak.

3. Unified Modeling Language (UML) merupakan standard modeling

language yang terdiri dari kumpulan-kumpulan diagram, dikembangkan untuk membantu para pengembang sistem dan software agar bisa menyelesaikan tugas-tugas seperti :

a. Spesifikasi b. Visualisasi c. Desain arsitektur d. Konstruksi

e. Simulasi dan testing f. Dokumentasi

Berdasarkan beberapa pendapat yang dikemukakan diatas dapat ditarik

kesimpulan bahwa “Unified Modeling Language (UML) adalah sebuah bahasa yang

berdasarkan grafik atau gambar untuk menvisualisasikan, menspesifikasikan, membangun dan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis Objek (OOP) (Object Oriented programming)”.

(38)

29

2.12.1. Use Case Diagram

Diagram Use Case menggambarkan apa saja aktifitas yang dilakukan oleh suatu sistem dari sudut pandang pengamatan luar. yang menjadi persoalan itu apa yang dilakukan bukan bagaimana melakukannya. Diagram Use Case dekat kaitannya dengan kejadian-kejadian. Kejadian (scenario) merupakan contoh apa yang terjadi ketika seseorang berinteraksi dengan sistem.

Gambar 2.2 Use Case Diagram

2.12.2. Activity Diagram

Pada dasarnya diagram Activity sering digunakan oleh flowchart. Diagram ini berhubungan dengan diagram Statechart. Diagram Statechart berfokus pada obyek yang dalam suatu proses (atau proses menjadi suatu obyek), diagram Activity berfokus pada aktifitas-aktifitas yang terjadi yang terkait dalam suatu proses tunggal. Jadi dengan kata lain, diagram ini menunjukkan bagaimana aktifitas-aktifitas tersebut bergantung satu sama lain.

Actor

Cancel Appointment

Make Appointment

Check Patient Record

Request Medication

Pay Bill

Extension Points

More Treatment

Bill Insurence

Schedul er

Doctor

Clerk Defer Payment

<<include>>

<<include>>

<<extend>>

system name

System Boundary

Include Use Case

Extende Use Case

extention point

generalization

Use Case

(39)

2.12.3. Class Diagram

Diagram Class memberikan pandangan secara luas dari suatu sistem dengan menunjukan kelas-kelasnya dan hubungan mereka. Diagram Class bersifat statis; menggambarkan hubungan apa yang terjadi bukan apa yang terjadi jika mereka berhubungan.

Gambar 2.3 Class Diagram

2.12.4. Sequence Diagram

Diagram Class dan diagram Object merupakan suatu gambaran model statis. Namun ada juga yang bersifat dinamis, seperti Diagram Interaction. Diagram sequence merupakan salah satu diagram Interaction yang menjelaskan bagaimana suatu operasi itu dilakukan; message (pesan) apa yang dikirim dan kapan pelaksanaannya. Diagram ini diatur berdasarkan waktu. Obyek-obyek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut.

(40)

31

Gambar 2.4 Sequence Diagram

Pengujian Perangkat Lunak

Ujicoba perangkat lunak merupakan elemen yang kritis dan perepresentasikan tinjauan ulan yang menyeluruh terhadap spesifikasi, desain dan pengkodean. Ujicoba merepresentasikan ketidanormalan yang terjadi pada pengembangan perangkat lunak [19]. Dari teknik yang dapat diterapkan dalam menguji suatu perangkat lunak dapat menggunakan dua jenis pengujian yang umum digunakan, yakni:

2.13.1. Pengujian Whitebox

Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software [19]. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya (Ayuliana, 2009):

1. Fungsi-fungsi yang salah atau hilang

Window

UserInterface

aChain

HotelChain

aHotel

Hotel

makeReservation ():void

makeReservation ():void

*[for each day] isRoom := available():boolean

[isRoom]

aReservation

Reservation

aNotice

Confirmation

if a room is available for each day of the stay, make a

reservation and send a confirmation

note

creation condition iteration

activation bar message

(41)

2. Kesalahan interface

3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan performa

5. kesalahan inisialisasi dan terminasi

2.13.2. Pengujian Ketergunaan (Usability Testing)

Ketergunaan atau Usability adalah ketika suatu produk memiliki kegunaan yakni seorang pengguna dapat melakukan apa yang dia ingin lakukan dengan cara yang ia harapkan untuk dapat melakukannya, tanpa halangan, ragu-ragu atau pertanyaan [7]. Dalam konsep usability ada beberapa atribut yang menunjukan bahwa suatu produk atau sistem memiliki ketergunaan yakni suatu produk harus melingkupi beberapa hal [7]:

1. Usefulness

Atribut ini menyangkut sejauh mana suatu produk memungkinkan pengguna dalam mencapai tujuan-tujuannya dan penilaian pengguna terhadap kesediannya untuk menggunakan produk tersebut. Namun, dorongan untuk menggunakan sistem atau produk tersebut akan tidak masuk akal bilamana produk hanya dibiarkan tanpa ada ketergunaan. Jika sistem mudah digunakan, mudah untuk dipelajari dan memuaskan untuk digunakan tapi tidak mencapai tujuan yang spesifik dari pengguna tertentu, hal itu pun tidak akan berguna meskipun diberikan secara gratis.

Artinya, pada tahap awal pengembangan produk, harus memastikan produk atau fitur apa yang diperlukan dalam sistem sebagai unsur-unsur kegunaan.

2. Efficiency

Efesiensi adalah kecepatan yang dapat dicapai untuk merealisasikan tujuan pengguna dengan akurasi tertentu dan ukuran waktu yang normal. Misalnya, menetapkan pengujian ketergunaan yang mengatakan “95% dari semua pengguna akan dapat memuat (menjalankan) perangkat

(42)

33

3. Effectiveness

Efektivitas mengacu pada sejauh mana produk berperilaku dimana pengguna berharap akan kemudahan. Selain itu, pengguna padat menggunakannya untuk melakukan apa yang mereka inginkan. Hal ini biasanya diukur secara kuantitatif dengan tingkat kesalahan. Kegunaan dalam pengujian berdasarkan ukuran efektivitas sekaligus untuk efesiensi harus diikat kedalam beberapa persentase dari total pengguna. Memperluas contoh dari efisiensi yang mungkin dinyatakan sebagai 95% dari semua pengguna akan dapat memuat atau menjalankan perangkat lunak dengan benar pada usaha yang pertama.

4. Satisfying

Mengacu pada persepsi pengguna, perasaan maupun pendapat dari pada produk tersebut. Biaranya diperoleh dari kedua pertanyaan baik tertulis maupun lisan. Pengguna lebih mungkin untuk melakukan dengan baik pada produk yang memenuhi kebutuhan mereka sehingga memberikan kepuasan. Biasanya, pengguna diminta untuk menilai produk atau sistem yang mereka coba dan ini sering dapat mengungkapkan penyebab dan alasan bagaimana suatu masalah dapat terjadi.

5. Learnable

Learnable merupakan bagian dari efektivitas dan memiliki kaitan erat dengan kemampuan pengguna dalam mengoperasikan sistem untuk beberapa tingkat yang ditetapkan secara kompetensi yang telah ditentukan setelah beberapa jumlah dan periode pelatihan. Hal ini juga dapat mengacu pada kemampuan pengguna yang jarang mempelajari kembali sistem setelah periode tidak aktif.

6. Accessible

(43)

pembahasan ini, aksesibilitas mempertimbangkan bagi penyandang cacat dapat memperjelas dan menyederhanakan desain untuk orang-orang yang menghadapi keterbatasan sementara (misal, cedera) atau situasional (misalnya kondisi lingkungan perhatian atau buruk dibagi seperti cahaya terang atau tidak cukup cahaya). Ada banyak perangkat pedoman yang tersedia dalam membuat desain aksesabel.

Membuat hal-hal yang lebih bermanfaat dan dapat diakses adalah bagian dari disiplin yang lebih besar dari desain yang berpusat pada pengguna.

2.13.3. Notasi Big O

Berikut ini merupakan beberapa contoh nilai Big-O yang bisa ditemukan dalam beberapa literatur [20] :

1. O(1): konstan. Algoritma dengan O-Besar O(1) dieksekusi di kecepatan yang sama tidak tergantung pada data masukannya. Sebagai contoh, algoritma yang selalu menghasilkan nilai yang sama apapun nilai masukannya dapat dipandang sebagai algoritma dengan efisiensi O(1). Contoh lain adalah algoritma untuk menentukan suatu bilangan genap atau ganjil, look table atau hash table adalah konstan ukuran tabel tetap. O(log n): logaritmik. Algoritma yang didasarkan pada pohon biner kerap mempunyai efisiensi O(log n). Hal ini disebabkan karena BST (binary search tree) yang sangat seimbang mempunyai banyak lapisan log dan untuk mencari sembarang elemen di BST memerlukan penelusuran satu simpul di setiap lapisan. Algoritma untuk mencari suatu item di array terurut menggunakan pencarian biner atau balanced search tree serta semua operasi di binomial heap adalah O(log n).

(44)

35

algoritma harus menelusuri seluruh array untuk mencek setiap elemen dalam array yang berarti O(n). Keadaan rerata berdasarkan pada asumsi bahwa elemen yang dicari ada dalam array dan setiap elemen mempunyai peluang yang sama untuk ditemukan. Pencarian hanya perlu mengunjungi n/2. Contoh lain adalah link-list. Akses elemen pada link-list adalah O(n) karena link-list tidak mendukung akses acak. Menambahkan dua integer n-bit menggunakan ripple carry adalah O(n).

3. O(n log n): loglinear, quasilinear atau linearithmik. Algoritma pengurutan yang baik kerap mempunyai order O(n log n). Contoh algoritma dengan efisiensi ini adalah algoritma yang tergabung dalam kelompok devide and conquer (DAC) seperti quick sort (best dan average case) dan merge sort. Algoritma merge sort membagi array menjadi dua bagian, urutkan kedua subarray secara rekursif dengan memanggil dirinya sendiri dan kemudian gabung kembali hasilnya kedalam array tunggal. Karena setiap kali membagi array menjadi dua bagian maka perulangan luar mempunyai

efisiensi log n, dan untuk setiap “level” array yang dibagi menjadi dua

bagian maka harus menggabungkan kembali semua elemen ke dalam satu array, operasinya membutuhkan order n. Algoritma pengurutan paling popular quick sort mempunyai kinerja terbaik O(n log n) yang membuatnya menjadi algoritma pengurutan yang sangat cepat didasarkan pada asumsi bahwa semua nilai berbeda dan dalam keadaan acak. Tetapi data masukan yang paling jelek akan membuat kinerjanya menjadi O(n2

). Contoh lain algoritma loglinear adalah Fast Fourier Transform (FFT) dan heapsort.

(45)

Dengan demikian algoritma membandingkan secara rerata elemen ke j+1 yang akan disisipkan separuh sub-array yang telah urut, sehingga tj = j/2. Hasil akhirnya waktu eksekusi kasus rerata adalah fungsi kuadratik dari ukuran masukan; sama dengan waktu eksekusi kasus terjelek. Contoh lain algoritma kuadratik adalah mengalikan dua bilangan n-digit menggunakan algoritma sederhana.

5. O(2n): eksponensial. Efisiensi non-polinomial yang paling penting adalah exponential time. Banyak masalah penting yang hanya dapat diselesaikan oleh algoritma dengan efisiensi seperti ini.

Perangkat Lunak Pendukung

2.14.1. Apache

Apache adalah sebuah nama web server yang bertanggung jawab pada request-response HTTP dan logging informasi secara detail (kegunaan basicnya) [21]. Selain itu, Apache juga diartikan sebagai suatu web server yang kompak, modular, mengikuti standar protokol HTTP, dan tentu saja sangat digemari.

Kesimpulan ini bisa didapatkan dari jumlah pengguna yang jauh melebihi para pesaingnya. Sesuai hasil survai yang dilakukan oleh Netcraft, bulan Januari 2005 saja jumlahnya tidak kurang dari 68% pangsa web server yang berjalan di Internet. Ini berarti jika semua web server selain Apache digabung, masih belum bisa mengalahkan jumlah Apache.

Saat ini ada dua versi Apache yang bisa dipakai untuk server produksi, yaitu versi mayor 2.0 dan versi mayor 1.3. Apache merupakan webserver yang paling banyak digunakan saat ini. Hal ini disebabkan oleh beberapa sebab, di antaranya adalah karena sifatnya yang opensource dan mudahnya mengkostumisasikannya. diantaranya dengan menambahkan support secure protocol melalui ssl dan konektifitasnya dengan database server melalui bahasa scripting PHP.

2.14.2. MySQL

(46)

37

seluruh dunia, diantaranya Silicon Graphics (http://www.sgi.com), Siemens Nixdorf (http://www.siemens.com), Alesis Digital Studio Electronics (http://www.alesis.com) dan masih banyak perusahaan-perusahaan terkemuka lainnya yang menggunakan MySQL. Perusahaan-perusahaan tersebut dapat dilihat

pada MySQL user’s list di http://www.mysql.com/information/userlist.htm.

MySQL adalah sebuah text based database server, artinya MySQL tidak dibuat dalam bentuk aplikasi yang memiliki Graphical User Interface

2.14.3. PHP

PHP (Personal Home Page) dahulunya merupakan objek pribadi dari Rasmus Lerdorf (PHP versi 1) yang digunakan untuk membuat homepage pribadinya. PHP merupakan scripting yang menyatu dalam HTML dan berada di server (server side HTML – embeded scripting) yang digunakan untuk membuat halaman web yang dinamis.

Dinamis berarti halaman yang akan ditampilkan dibuat saat halaman itu diminta oleh client. Mekanisme ini menyebabkan informasi yang diterima client

selalu yang terbaru. Semua script PHP dieksekusi pada server dimana script tersebut dijalankan.

Style standar PHP selalu diawali dengan <?php dan diakhiri dengan tanda ?> dan style PHP ini sangat mirip dengan program XML atau seperti pada C atau Perl. Selain itu PHP juga mendukung komentar C, C++, dan Unix shell-style.

2.14.4. PHPMyAdmin

(47)

satunya adalah phpMyAdmin. Dengan phpMyAdmin kita dapat membuat tabel, mengisi data dan lain-lain dengan mudah tanpa harus hafal perintahnya.

2.14.5. XAMPP

Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl [23]. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. Untuk mendapatkanya dapat mendownload langsung dari web resminya.

2.14.6. Adobe Dreamwever CC

Dreamweaver memiliki fitur browser yang terintegrasi untuk melihat halaman web yang dikembangkan di jendela pratinjau program sendiri agar konten memungkinkan untuk terbuka di web browser yang telah terinstal [24]. Aplikasi ini menyediakan transfer dan fitur sinkronisasi, kemampuan untuk mencari dan mengganti baris teks atau kode untuk mencari kata atau kalimat biasa di seluruh situs, dan templating feature yang memungkinkan untuk berbagi satu sumber kode atau memperbarui tata letak di seluruh situs tanpa server side includes atau scripting. Behavior Panel juga memungkinkan penggunaan JavaScript dasar tanpa pengetahuan coding, dan integrasi dengan Adobe Spry Ajax framework

(48)

193

KESIMPULAN DAN SARAN

KESIMPULAN

Berdasarkan hasil implementasi dan pengujian dari metode MMR dan algoritma Steiner Tree, maka diperoleh kesimbulan bahwa pencarian alur kronologis memberikan kemudahan secara efesien kepada pengguna dalam mencari berita-berita secara runut dalam bentuk alur kronologis.

SARAN

Pembanguna aplikasi pencari alur kronologis berita bertujuan untuk menyelesaikan persoalan efektivitas dan efesiensi dalam proses pencarian berita yang dilakukan oleh kebanyakan para pembaca media online. Hanya saja, penelitian ini dibatasi hanya pada aspek penerapan metode saja sehingga dapat menghasilkan sebuah alur kronologis dengan mengacu pada berita internasioanl. Maka dari itu, perlu ada pengembangan yang lebih luas untuk bisa mewadahi semua pembaca media online. Adapun saran-saran terhadap pengembang adalah sebagai berikut:

1. Memberikan fitur tambahan berupa RSS sehingga sistem dapat menerima berita secara otomatis sehingga perbendaharaan peristiwa yang terjadi akan memberikan alur yang mengarah pada sifat komprehensif.

2. Melakukan perbaikan pada tahap textprocessing terutama pada tahap

stemming sehingga tidak memakan waktu yang lama dalam melakukan eksekusi. Selain itu, secara kualitas mampu membersihkan kata dari berbagai bentuk imbuhan dengan efesien.

(49)

F-1

DAFTAR RIWAYAT HIDUP

Nama Lengkap : Aji Teja Hartanto

Nama Panggilan : Aji

Tempat/Tanggal Lahir : Bandung , 10 Januari 1994 Jenis Kelamin : Laki-laki

Agama : Islam

Status : Belum Menikah

Kewarganegaraan : Indonesia

Alamat Tetap : Jl. Sedap Malam VI No 6 Rancaekek Kencana No Telepon : Rumah : -

Handphone : 085777511087

Email : Itera194@gmail.com

(50)

F-2

1. Studi Tour Musium Geologi Bandung, SMPN 1 Paseh. 2. Studi Tour Indosat M2, Jakarta. SMK Medikacom 2009.

3. Seminar Islamic Civilization Forum LDK UMMI UNIKOM 2012/2015 4. TDOK LDK UMMI UNIKOM 2012, 2013, 2014, 2015.

5. Simposium Nasional BKLDK 7-9 2012 6. Kuliah Bersama Teknik Informatika 2011 7. Kongres Mahasiswa Indonesia 2014. 8. LKMM BEM UNIKOM 2013 9. LKMM HMIF UNIKOM 2014

10. Seminar IoT & SMARCITY 2016 Teknik Informatika UNIKOM. 11. Seminar WISE Smart City Widyatama 2016

12. Be:Logix: Building App for Android Mobile Device, 2015.

2011 – 2016 : Universitas Komputer Indonesia, Fakultas Teknik dan ilmu komputer, Program Studi Teknik Informatika. Program Srata-1

2008 – 2011 : SMK Medikacom Bandung 2005 – 2008 : SLTP Negeri 1 Paseh 1999 – 2005 : SD Negeri Babakan Loa

PENDIDIKAN FORMAL

(51)

1999 – 2005 : Anggota Pramuka SDN 1 Babakan Loa 2005 - 2008 : Anggota Paskibra SMP N 1 Paseh

2006 : Delegasi Olimpiade Fisika SMPN 1 Paseh, Kecamatan Paseh. 2009 : Menggagas Komunitas Animasi Spiegel Anivers.

2011 : Anggota Syiar LDK UMMI UNIKOM

2012 : Panitia Acara Islamic Civilization Forum 2012, 2013, 2014 : Panitia Qurban LDK UMMI UNIKOM

2012-2013 : Ketua Divisi Opini & Propaganda GEMA Pembebasan Komisariat

2013 : Pemred. Pers Mahasiswa “Catatan Aktivis Pembebasan”. 2013 : Anggota Pers Birama UNIKOM (Redaktur Politik)

2013 - 2015 : Ketua Organisasi Ekstra Kampus GEMA Pembebasan Komisariat 2016 : Kepala Divisi Kajian Strategis GEMA Pembebasan Kota

Bandung

2013, 2014, 2015 : Koor. Treatikal LDK UMMI UNIKOM 2015 : Panitia Acara Islamic Civilization Fest

(52)

F-4

Spesifikasi Keterangan

Adobe Flash Animasi, AS2.

Adope Photoshop Desain

Adobe Dreamwever Pemrograman Web: PHP, CSS, Javascript, HTML Mic. Visual Studio Pemrograman Desktop: C#

Eclips Pemrograman Mobile: Android

Corel Desain Vektor

Adobe After Effect Video Intro editing Adobe Priemere Video editing 3D Max Studio Modelling

(53)
(54)

Gambar

Gambar  2.6  Contoh Alur Kronologis “Revolusi Mesir” [15]
Gambar  2.8 Skema OOP [17]
Gambar 2.2 Use Case Diagram
Gambar 2.3  Class Diagram
+7

Referensi

Dokumen terkait

Berdasarkan pada penilaian kerentanan baik dengan menggunakan skenario lingkungan maupun skenario ekonomi maka wilayah yang termasuk dalam kerentanan sosial tinggi

Pajak penghasilan pasal 21 merupakan pajak atas penghasilan berupa gaji, upah honorarium, tunjangan, dan pembayaran lain dengan nama dan dalam bentuk apapun sehubungan

Kesimpulan dari penelitian yang dilakukan adalah LKO juvenile gurame yang dipelihara pada salinitas yang berbeda selama 28 hari menunjukkan adanya perbedaan nyata

Desain Kawasan Strategis Biak Bosnik Kabuaten Biak Nu!&#34;or Tenaga Admin / Operator Komputer  Sekertaris.

Karir Dokter di Ranah Pelayanan Primer PDKI Pusat - Filosofi Pelayanan dan &#34;Central Values&#34; Kedokteran Keluarga 18 Des6.

yang didapat sesuai persyaratan diterimanya hipotesis, dengan demikian menerima hipotesis yang menyatakan bukti fisik, keandalan, daya tanggap, jaminan dan empati berpengaruh

Dalam penelitian ini, untuk meningkatkan perkembangan populasi disusun 6 skenario yang dapat dijelaskan sebagai berikut: (i) Tanpa Skenario, perkembangan populasi mengikuti

Material Testing Equipment for : Soil, Aggregat, Cement, Concrete, Asphalt, Laboratory and Field... Supplied complete with dial and