1. DATA PRIBADI
nama : Meilia Rahmawati
jenis kelamin : Perempuan
tempat,tanggal Lahir : Cirebon, 12 Mei 1990
agama : Islam
kewarganegaraan : Indonesia
status : Belum kawin
anak ke : Tiga dari lima bersaudara
alamat : Jl. Sekar Kemuning No.17/19 RT. 01/03 Kelurahan
Karyamulya Kecamatan Kesambi Cirebon 45135
telepon : +6285721127268
e-mail : meilia.rahmawati12@yahoo.co.id
2. RIWAYAT PENDIDIKAN
1. Taman Kanak-Kanak : TK Pelita Ibu
Tahun ajaran 1995-1996
2. Sekolah Dasar : SD Negeri Karya Mulya I
Tahun ajaran 1996-2002
3. Sekolah Menengah Pertama : SMP Negeri 2 Cirebon
Tahun ajaran 2002-2005
4. Sekolah Menengah Atas : SMA Negeri 1 Cirebon
Tahun ajaran 2005-2008
5. Perguruan Tinggi : FTIK Unikom Bandung
Bandung
DAN PENGEMBANGAN SUMBER DAYA AIR
SKRIPSI
Diajukan Untuk Menempuh Ujian Akhir Sarjana Program Studi S1Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
MEILIA RAHMAWATI
10108051
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
iii
Assalammu’alaikum Wr. Wb.
Segala puji bagi Allah swt yang telah memberikan rahmat dan hidayah-Nya
serta kemampuan dan kesehatan kepada penulis, sehingga laporan Tugas Akhir yang berjudulkan “ANALISIS PERFORMANSI ALGORITMA BAUM
WELCH DALAM MENENTUKAN KATA KUNCI SUATU DOKUMEN DI
LINGKUNGAN PERPUSTAKAN PUSAT PENELITIAN DAN
PENGEMBANGAN SUMBER DAYA AIR” dapat terselesaikan sebagai prasyarat utama untuk memenuhi salah satu syarat dalam menyelesaikan
pendidikan strata satu (S1) Program Studi Teknik Informatika, Fakultas Teknik
dan Ilmu Komputer, Universitas Komputer Indonesia.
Penulis menyadari bahwa dalam laporan ini masih terdapat kelemahan atau
kekurangan, jauh dari kesempurnaan yang hanya dimiliki Allah swt. Hal ini tidak
lain akan keterbatasan pengetahuan dan pengalaman yang penulis miliki. Namun,
penulis telah berusaha dengan kemampuan penulis dalam penyelesaian
penyusunan laporan ini. Oleh karena itu, kritik dan saran yang sifatnya
membangun akan penulis terima dengan senang hati.
Tak lupa pada kesempatan ini, penulis ingin mengucapkan terima kasih
kepada semua pihak yang turut mendukung, membantu pikiran serta dorongan
semangat bagi penulis dalam pengerjaan dan penyelesaian proses penyusunan
skripsi ini. Untuk itu, penulis juga mengucapkan terima kasih kepada:
1. Allah swt yang telah memberikan kesehatan, kasih dan sayang-Nya serta
rahmat dan hidayah-Nya dalam pengerjaan skripsi ini hingga terselesaikan.
2. Mamih dan Papih selaku orang tuaku serta adik dan kakak, yang telah
iv Komputer Indonesia.
4. Ibu Mira Kania Sabariah, S.T., M.T., selaku dosen pembimbing yang telah
meluangkan waktu dan tenaganya untuk membimbing dengan sabar dan
memberi masukan, pengarahan kepada penulis dalam penyusunan skripsi ini.
5. Bapak Adam Mukharil Bachtiar, S.Kom., selaku dosen wali sekaligus sebagai
reviewer seminar dan penguji 1 sidang skripsi yang membantu dalam
kelancaran seminar dan sidang skripsi serta kritik dan sarannya dan kelancaran
selama perkuliahan dan mengajarkan ilmunya kepada penulis selama kuliah di
Universitas Komputer Indonesia.
6. Ibu Inne Novitasari, S.Si., M.Si., selaku penguji 3 sidang skripsi yang
membantu dan melancarkan dalam sidang skripsi serta kritik dan sarannya.
7. Ibu Anjelita S.Sos. yang telah menerima penulis untuk melakukan penelitian
tugas akhir di Pusat Penelitian dan Pengembangan Sumber Daya Air Bandung
dan memberikan informasi yang beguna bagi penyusunan skripsi ini, begitu
pula dengan Ibu Ratih yang telah memberikan informasi mengenai di
lingkungan perpustakaan Pusat Penelitian dan Pengembangan Sumber Daya
Air.
8. Bapak dan Ibu Dosen IF Uiversitas Komputer Indonesia yang telah
memberikan pengetahuan dan pengajaran kepada penulis.
9. Turyni Nindinda, Chindy V Rangkuti, teman-teman seperjuangan IF 2
angkatan 2008 dan teman-teman seperjuangan selama perkuliahan yang telah
bersama-sama melewati pahit manisnya masa-masa perkuliahan ini. Serta
kakak dan adikku selama dikosan yang turut menemani masa perkuliahan
serta dalam penyusunan skripsi ini.
10.Dan semua pihak yang turut andil dalam membantu jalannya proses
v
menyinggung. Akhir kata, penulis berharap semoga hasil penelitian skripsi yang
berupa laporan ini dapat bermanfaat, khususnya bagi penulis dan umumnya bagi
pembaca.
Wa’alaikumsalam Wr.Wb
Bandung, Februari 2013
vi DAFTAR ISI
ABSTRAK ... i
ABSTARCT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... vi
DAFTAR GAMBAR ... ix
DAFTAR TABEL ...x
DAFTAR SIMBOL ... xii
DAFTAR LAMPIRAN ... xiv
BAB I PENDAHULUAN ...1
1.1 Latar Belakang Masalah ... 1
1.2 Perumusan Masalah... 3
1.3 Maksud dan Tujuan ... 3
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 4
1.5.1. Metode Pengumpulan Data ... 4
1.5.2. Metode Simulasi Perangkat Lunak ... 5
1.6 Sistematika Penulisan ... 7
BAB II TINJAUAN PUSTAKA ...9
2.1 Tinjauan Perusahaan ... 9
2.1.1 Sejarah Pusat Penelitian dan Pengembangan Sumber Daya Air ... 9
2.1.2 Logo Pusat Penelitian dan Pengembangan Sumber Daya Air ... 9
2.1.3 Badan Hukum Instansi ... 11
vii
2.2 Landasan Teori ... 13
2.2.1 Dokumen ... 13
2.2.2 Abstrak ... 13
2.2.3 Kata kunci ... 13
2.2.4 Algoritma ... 15
2.2.4.1 Kompleksitas waktu asimptotik ... 15
2.2.5 Algoritma Baum Welch ... 21
2.2.5.1 Flowchart Algortitma Baum Welch ... 25
2.2.6 Perancangan Terstruktur ... 28
2.2.6.1. Diagram konteks ... 28
2.2.6.2. DFD ... 28
2.2.7 DELPHI ... 28
BAB III ANALISIS ...31
3.1 Analisis Masalah ... 31
3.2 Analisis Algoritma ... 32
3.1.1 Perhitungan kompleksitas waktu Asimptotik Algoritma Baum Welch ... 32
3.1.2 Tahapan Alur Kerja Menentukan Kata Kunci Terhadap Sampel Kasus ... 44
3.1.1.1 Preprocessing ... 44
3.1.1.2 Probabilistik Menggunakan Algoritma Baum Welch ... 57
3.1.1.3 Penentuan Kata Kunci ... 86
3.1.3 Penghitungan nilai Kompleksitas Waktu Algoritma Baum Welch terhadap seluruh sampel abstrak dokumen... 87
BAB IV PENGUJIAN ...95
viii
4.2.1 Kesimpulan Pengujian... 114
BAB V KESIMPULAN DAN SARAN ...115
5.1 Kesimpulan... 115
5.2 Saran ... 115
117
DAFTAR PUSTAKA
[1] (2012, Maret) [Online]. http://kamusbahasaindonesia.org/kata/mirip
[2] (2012, Mei) [Online].
http://digilib.its.ac.id/public/ITS-Undergraduate-17143-Paper-361900.pdf
[3] (2012, Maret) [Online].
http://www-rcf.usc.edu/~lototsky/MATH508/Baum-Welch.pdf
[4] (2012, Maret) [Online].
http://www.scribd.com/doc/39720824/Ebook-Hidden-Markov-Models-Theory
[5] (2012, Maret) [Online].
http://achmad.blog.undip.ac.id/files/2009/06/markov.pdf
[6] (2012, Juni) [Online]. www.delphi.about.com
[7] Adam Mukharil Bachtiar, "Diktat Perkuliahan Analisis Algoritma,"
Universitas Komputer Indonesia, Bandung,.
[8] R. C. T. Lee , Chin-Liang Chang, and S.S. Tseng , introduction to the design
and analysis of algorithms a strategic approach.: McGraw-Hill, 2005.
[9] Ilham Perdana, "Diktat Perkuliahan Metodologi Penelitian," Universitas
Komputer Indonesia, Bandung,.
[10] Roger S. Pressman, Software Engineering: A Practitioner's Approach, 4th
ed. New York: McGraw-Hill Companies, 2001.
[11] PUSAIR. [Online]. www.pusair-pu.go.id
[12] (2012, Juli) [Online]. http://www.pu.go.id
[13] (2012, Mei) [Online].
http://widodo.staff.uns.ac.id/2010/03/08/ringkasan-modul-1-konsep-dan-definisi-dokumentasi/
[14] (2012, Mei) [Online]. http://kamusbahasaindonesia.org/dokumen
[15] (2012, Mei) [Online].
http://yuni-nurjanah.blog.undip.ac.id/files/2010/08/Presentasiok.pdf
Kalimat," Institut Teknologi Bandung, Bandung, Tesis 2008.
[17] eko budi purwanto, perancanan dan analisis Algoritma, 1st ed. 2008: Graha
Ilmu.
[18] Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal & C, 1st
ed. Bandung: Informatika Bandung, 2007.
[19] (2012, Maret) [Online]. http://www.cs.ubc.ca/~murphyk/Bayes/rabiner.pdf
[20] (2012, Mei) [Online].
http://lib.ugm.ac.id/digitasi/upload/1833_MU.11030014.pdf
[21] (2012, Mei) [Online].
http://repository.usu.ac.id/bitstream/123456789/22192/1/Appendix.pdf
[22] Andri Rizki Amirulloh, Pemilihan Kata Kunci Otomatis pada Dokumen
Menggunakan Hidden Markov Model. bandung: Prodi IF-ITB, 2011.
[23] Leman,. Jakarta: PT Elex Media Komputindo, 1998.
[24] (2012, Juni) [Online]. http://www.embarcadero.com
1 1.1 Latar Belakang Masalah
Pusat Penelitian dan Pengembangan Sumber Daya Air adalah salah satu
instansi yang bergerak dibidang penelitian dan pengembangan Sumber Daya Air.
Di Pusat Penelitian dan Pengembangan Sumber Daya Air hasil analisis dari
penelitian akan didokumentasikan dan disimpan diperpustakaan Pusat Penelitian
dan Pengembangan Sumber Daya Air serta diberikan kata kunci untuk indeks
pencarian.
Suatu kata kunci merupakan sebuah kata atau konsep dengan keistimewaan,
yang berarti kata apapun yang digunakan sebagai kunci dan kode atau digunakan
untuk menghubungkan kekata lain atau informasi lain [1]. Kata kunci yang paling
baik adalah kata kunci yang terdiri dari rangkaian kata benda atau kata sifat [2].
Kata kunci suatu dokumen mewakili isi dari dokumen tersebut. Dengan kata
kunci, kita dapat mengetahui inti dari dokumen itu. Kata kunci juga digunakan
dalam pencarian suatu dokumen dengan mesin pencari. Oleh karena itu,
menentukan kata kunci sangatlah penting. Kita dapat memahami isi dari dokumen
sebelum membaca keseluruhan dari dokumen tersebut dengan kata kunci. Apabila
kata kunci yang dipilih tidak tepat, maka seseorang dapat salah dalam memahami
isi dari dokumen sebelum ia membaca dari keseluruhan dokumen dan juga
seorang informan atau peneliti yang ingin melakukan pencarian terhadap
dokumen yang dibutuhkannya tidak terarahkan dengan baik sesuai dengan data
yang diinginkan.
Berdasarkan observasi di Perpustakaan Pusat Penelitian dan Pengembangan
Sumber Daya Air, hasil penelitian tahun-tahun sebelumnnya masih terdapat
abstrak yang belum diberikan kata kunci. Saat ini di perpustakaan dan peneliti
Pusat Penelitian dan Pengembangan Sumber Daya Air untuk menentukan kata
kunci suatu dokumen masih dilakukan dengan membaca ulang isi dari abstrak
membutuhkan waktu yang lama dan jika dokumen tersebut banyak maka akan
membutuhkan sumber daya manusia yang cukup banyak pula.
Oleh karena itu, dibutuhkan penggunaan kata kunci yang tepat pada dokumen
tersebut, sehingga kata kunci yang akan digunakan tepat pemilihannya sesuai
dengan isi dokumen. Selain itu juga dapat mempercepat waktu dalam pemberian
kata kunci setiap dokumen.
Salah satu algoritmayang dapat digunakan dalam penentuan kata kunci adalah
Algoritma Baum Welch. Algoritma Baum Welch merupakan algoritma yang
digunakan pada proses learning dengan mengoptimalkan nilai parameter Model
Markov Tersembunyi atau Hidden Markov Method (HMM). Dalam menentukan
rangkaian yang belum diketahui, algoritma Baum Welch mengoptimalkan nilai
parameter yang diberikan. Dinamai Algoritma Baum Welch berasal dari nama
Leonard E. Baum dan Lloyd R. Welch [3]. Algoritma Baum Welch dikenal juga
dengan Algoritma Forward-Backward [4].
HMM telah banyak digunakan karena model yang kaya akan struktur
matematika dan mengandung teori dasar yang dapat diterapkan dalam berbagai
bidang [5]. Sudah banyak penelitian dilakukan menggunakan Algoritma Baum
Welch dibidang teknik elektro, ilmu komputer, statistik komputasi dan
bioinformatika [3], terutama diaplikasikan di bidang speech recognition dan
bioinformatics [6].
Setiap algoritma memiliki performansi yang berbeda-beda. Nilai performansi
suatu algortima dilihat dari kemangkusannya. Suatu algoritma dikatakan bagus
apabila algoritma tersebut mangkus atau efisien. Kemangkusan algoritma dapat
dilihat dari beberapa faktor. Salah satunya adalah menghitung jumlah waktu yang
dibutuhkan untuk menjalankannya dengan menghitung nilai kompleksitas waktu
asimptotik menggunakan notasi Big-O [7] [8].
Berdasarkan permasalahan di atas maka penelitian ini dilakukan untuk
Analisis Performansi Algoritma Baum Welch Dalam Menentukan Kata Kunci
1.2 Perumusan Masalah
Berdasarkan latar belakang masalah maka dapat dirumuskan bagaimana
mendapatkan teknik pencarian kata kunci suatu dokumen dengan menganalisis
performansi Algoritma Baum Welch.
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas
akhir ini adalah untuk melakukan analisis performansi Algoritma Baum Welch
dalam menentukan kata kunci suatu dokumen.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah :
1. Untuk mengetahui nilai performansi Algoritma Baum Welch dalam
menentukan kata kunci suatu dokumen di lingkungan perpustakaan Pusat
Penelitian dan Pengembangan Sumber Daya Air dengan menghitung
kompleksitas waktu asimptotik Algoritma Baum Welch menggunakan notasi
Big-O.
2. Untuk mendapatkan teknik pencarian kata kunci suatu dokumen di
lingkungan perpustakaan Pusat Penelitian dan Pengembangan Sumber Daya
Air, sehingga dapat mempercepat waktu dalam penentuan kata kunci
dokumen.
1.4 Batasan Masalah
Batasan masalah dari analisis performansi Algortima Baum Welch dalam
menentukan kata kunci suatu dokumen adalah sebagai berikut:
1. Data masukan pada simulator berupa abstrak yang yang ada di lingkungan
perpustakaan Pusat Penelitian dan Pengembangan Sumber Daya Air yang
telah diberikan kata kunci serta jumlah kata kunci dan kata kunci abstrak
tersebut akan dibandingkan dengan kata kunci dan jumlah kata kunci yang
dihasilkan oleh simulator.
2. Algoritma yang diterapkan adalah Algoritma Baum Welch dalam metode
Model Markov Tersembunyi atau Hidden Markov Metode (HMM).
3. Kajian tata bahasa tidak dilakukan ke dalam sistem diasumsikan sudah benar
secara tata bahasa.
5. Aplikasi yang dibangun dalam pembuatan simulasi menggunakan Delphi
2009.
6. Pendekatan Pembangunan Perangkat Lunak ini menggunakan metode
tersruktur.
7. Menganalisis performansi Algoritma Baum Welch dengan menghitung nilai
kompleksitas waktu Asimptotik Algoritma Baum Welch menggunakan notasi
Big-O.
8. Membandingkan hasil kata kunci baru dan jumlah kata kunci baru dengan
kata kunci lama dan jumlah kata kunci lama dengan asumsi bahwa kata kunci
lama telah benar, sehingga untuk membandingkan mengacu pada kata kunci
lama.
9. Membandingkan kesesuaian kata kunci baru dengan kriteria kata kunci dan
kesesuaian dengan isi abstrak.
10.Keluaran yang dihasilkan pada simulator adalah kumpulan kata kunci, jumlah
kata kunci, nilai kompleksitas waktu asimptotik Big-O dan nilai parmeter
yang mempengaruhinya.
11.Kata kunci yang dihasilkan oleh sistem adalah beberapa kata kunci yang
terdiri dari gabungan 2 kata.
1.5 Metodologi Penelitian
Metodologi penelitian yang digunakan adalah metode deskriptif, yaitu
metode yang menggambarkan fakta-fakta dan informasi dalam situasi atau
kejadian sekarang secara sistematis, faktual dan akurat. Metode penelitian ini
memiliki dua metode yaitu metode pengumpulan data dan metode simulasi
perangkat lunak.
1.5.1. Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah
sebagai berikut :
a. Studi Literatur
Metode pengumpulan data dilakukan dengan cara mengumpulkan literatur,
jurnal, paper, bacaan-bacaan dan website yang ada kaitannya dengan judul
b. Observasi
Metode pengumpulan data dengan mengadakan penelitian dan peninjauan
langsung terhadap permasalahan yang diambil.
c. Interview
Metode pengumpulan data dilakukan dengan mengadakan tanya jawab secara
langsung yang ada kaitannya dengan topik yang diambil [9].
1.5.2. Metode Simulasi Perangkat Lunak
Metode simulasi perangkat lunak menggunakan paradigma perangkat lunak
secara waterfall, yang meliputi beberapa proses diantaranya:
a. System Engineering
Perangkat lunak selalu menjadi bagian dari sistem yang lebih besar, sehingga
dimulai dengan menganalisis seluruh sistem memperoleh persyaratan suatu sistem
tersebut secara keseluruhan. Kemudian memutuskan fungsi apa yang akan
dialokasikan untuk komponen-komponen perangkat lunak. Output dari
keuntungan yang muncul dari tahap ini adalah sebagai spesifikasi sistem
persyaratan untuk sistem perangkat lunak dalam konteks yang lebih luas dari
komponen sistem berakhir.
b. Analysis
Tahan ini berkonsentrasi pada perangkat lunak, memberikan detail yang lebih
dan berfokus pada proses pengumpulan persyaratan yang dimulai pada tahap
sebelumnya. Untuk memperoleh pemahaman wilayah informasi yang menyeluruh.
Setelah memperhatikan pada apa yang perlu dilakukan.
Masukan untuk tahap ini adalah sistem spesifikasi persyaratan yang
diproduksi oleh keadaan sistem rekayasa. Hasil dari tahap ini adalah spesifikasi
persyaratan perangkat lunak yang berwujud, cukup tepat dan lengkap digunkan
sebagai dasar untuk pemecahan rancangan tersebut.
c. Design
Proses desain berkaitan dengan banyak aspek dari sistem perangkat lunak.
Untuk memperoleh gambaran abstrak perangkat lunak secara menyeluruh untuk
d. Coding
Tahap penerjemahan data atau pemecahan masalah adalah tugas yang lebih
sederhana. Tujuannya adalah untuk mengubah gambaran abstrak yang dihasilkan
oleh tahap perencanaan ke dalam sesuatu yang lebih berwujud dan nyata.
Mengubah kode dalam bahasa tertentu yang dapat dikompilasi atau ditafsirkan
untuk menghasilkan modul yang dapat dilaksanakan.
e. Testing
Memastikan bahwa dari sudut pandang dalam, semua pernyataan dalam kode
telah diuji, dan dari sudut pandang luar, semua persyaratan telah dipenuhi. Hasil
dari tahap ini adalah suatu verifikasi dan validasi produk perangkat lunak tersebut.
f. Maintenance
Tahap ini tidak terlalu banyak dalam pembangunan tetapi lebih merupakan
gagasan suatu lingkup untuk mencakup sisa penggerak sebuah sistem perangkat
lunak setelah disampaikan kepada siapa pun yang ditugaskan hal tersebut. [10]
Berikut adalah gambar Waterfall Model.
System engineering
analysis
design
coding
testing
maintenance
1.6 Sistematika Penulisan
Sistematika penulisan dalam penelitian ini disusun untuk memberikan
gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas
akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN
Bab I menguraikan tentang latar belakang permasalahan, mencoba merumuskan
inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian,
yang kemudian diikuti dengan pembatasan masalah, asumsi, serta sistematika
penulisan.
BAB II LANDASAN TEORI
Bab II membahas berbagai konsep dasar dan teorI.teori yang berkaitan dengan
topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis
permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah
pernah dilakukan sebelumnya termasuk sintesisnya.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab III menganalisis masalah dari model penelitian untuk memperlihatkan
keterkaitan parameter yang diteliti serta model matematis untuk analisisnya.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab IV mengimplementsi hasil analisis dan pengujian terhadap sistem yang telah
dirancangan dan dibangun.
BAB V KESIMPULAN DAN SARAN
Bab V berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan
9 2.1 Tinjauan Perusahaan
2.1.1 Sejarah Pusat Penelitian dan Pengembangan Sumber Daya Air
Adapun sejarah Pusat Penelitian dan Pengembangan Sumber Daya Air dari
tahun ke tahun dapat dilihat sebagai berikut:
1936 Departement voor Verkeer en Waterstaat (V en W) mendirikan
Hydrodinamisch Laboratorioum
1947 Instituut voor Weg en Waterbouwkundige Onderzoekingen
1950 Institut Teknik Air dan Tanah
1966 Lembaga Penyelidikan Masalah Air (LPMA)
1974 Direktorat Penyelidikan Masalah Air (DPMA)
1984 Pusat Penelitian dan Pengembangan Pengairan, berada dibawah Badan
Litbang Departemen Pekerjaan Umum
1999 Pusat Penelitian dan Pengembangan Teknologi Sumber Daya Air, berada
dibawah Badan Litbang Departemen Permukiman dan Pengembangan
Wilayah (Kimbangwil)
2001 Pusat Penelitian dan Pengembangan Sumber Daya Air, berada dibawah
Badan Litbang Departemen Permukiman dn Prasarana Wilayah
2004 Pusat Penelitian dan Pengembangan Sumber Daya Air, berada dibawah
Badan Litbang Departemen Pekerjaan Umum
2010 Pusat Penelitian dan Pengembangan Sumber Daya Air, berada dibawah
Badan Litbang Kementerian Pekerjaan Umum
2.1.2 Logo Pusat Penelitian dan Pengembangan Sumber Daya Air
Berikut adalah Motto dan lambang Pusat Penelitian dan Pengembangan
Sumber Daya Air .
Gambar II.1 Lambang Pusat Penelitian dan Pengembangan Sumber Daya Air
Keterangan gambar:
1. Lambang Departemen PU berlukiskan Baling-baling dengan ketentuan seperti
tercantum pada gambar.
2. Warna dasar lambang adalah kuning (kuning kunyit).
3. Warna baling-baling adalah biru kehitam-hitaman.
4. Penggunaan lambang : lihat Manual Tata Persuratan.
Arti Simbolis Lambang Departemen Pekerjaan Umum
1. Baling-baling
Menggambarkan D I N A M I K A Berdaun 3 yang merupakan segitiga
berdiri tegak lurus menggambarkan STABILITAS Secara keseluruhan
menggambarkan DINAMIKA YANG STABIL dan STABILITAS YANG
DINAMIS.
2. Bagian daun baling-baling yang mengarah keatas
Melambangkan PENCIPTAAN RUANG.
3. Bagian lengkungnya dari daun baling-baling
Memberikan perlindungan untuk ruang kerja tempat tinggal bagi manusia.
4. Bagian daun baling-baling yang mengarah ke kiri dengan bagian lengkungnya
yang telungkup
Menggambarkan penguasaan bumi da alam dan pengusahaan untuk
sebesar-besarnya kemakmuran rakyat. Garis Horizontal : bentang jalan / jembatan
5. Bagian daun baling-baling yang mengarah ke kanan dengan bagian
lengkungnya yang terlentang
Menggambarkan usaha pengendalian dan Penyaluran untuk dimanfaatkan
bagi sebesar-besarnya kemakmuran rakyat.
Garis Horizontal : bentang jalan / jembatan diatas sungai sebagai usaha untuk
pembukaan dan pembinaan daerah.
6. Baling-baling dengan 3 daun ini menggambarkan
Tiga unsur kekaryaan Departemen Pekerjaan Umum. Tirta, Wisma (Cipta)
dan Marga.
Trilogi Departemen Pekerjaan Umum, Bekerja keras, Bergerak cepat,
Bertindak tepat.
7. W A R N A
Tiga unsur kekaryaan Departemen Pekerjaan Umum. Tirta, Wisma (Cipta)
dan Marga.
Warna kuning sebagai warna dasar melambangkan keagungan yang
mengandung arti KeTuhanan Yang Maha Esa, Kedewasaan dan
Kemakmuran.
Warna biru kehitam-hitaman, mengandung arti Keadilan Sosial, Keteguhan
hati, Kesetiaan pada tugas dan ketegasan bertindak.
Warna yang berbentuk dari warna dasar dan likisan baling-baling membentuk
huruf-huruf P.U.
8. Lambang P.U.
Menggambarkan fungsi dan peranan Departemen Pekerjaan Umum dalam
pembangunan dan Pembinaan prasarana guna memanfaatkan bumi dan air
serta kekayaan alam bagi kemakmuran rakyat, berlandaskan Pancasila.
2.1.3 Badan Hukum Instansi
Sebagaimana tercantum dalam Peraturan Menteri Pekerjaan Umum Nomor :
08/PRT/M/2010 tanggal 8 Juli 2010 Tentang Organisasi dan Tata Kerja
2.1.4 Struktur Organisasi dan Job Description
Struktur organisasi Pusat Penelitian dan Pengembangan Sumber Daya Air dapat
dilihat pada Gambar II.2.
Gambar II.2 Struktur organisasi Pusat Penelitian dan Pengembangan Sumber Daya Air Bandung
Tugas :
Sesuai dengan Peraturan Menteri PU Nomor 08/PRT/M/2010 tentang
Organisasi Dan Tata Kerja Kementerian Pekerjaan Umum, Kementerian
Pekerjaan Umum mempunyai tugas : menyelenggarakan urusan di bidang
pekerjaan umum dalam pemerintahan untuk membantu Presiden dalam
menyelenggarakan pemerintahan negara.
Fungsi :
1. Perumusan, penetapan dan pelaksanaan kebijakan di bidang pekerjaan umum.
2. Pengelolaan barang milik / kekayaan negara yang menjadi tanggung jawab
Kementerian Pekerjaan Umum.
3. Pengawasan atas pelaksanaan tugas di lingkungan Kementerian Pekerjaan
Umum.
4. Pelaksanaan bimbingan teknis dan supervisi atas pelaksanaan urusan
Kementerian Pekerjaan Umum di daerah.
2.2 Landasan Teori
2.2.1 Dokumen
Dokumen adalah sebuah tulisan yang memuat informasi. Biasanya dokumen
ditulis dikertas dan informasinya ditulis memakai tinta baik memakai tangan atau
memakai media elektronik (seperti printer). Namun pada zaman sekarang, media
elektronik seperti komputer juga dapat digunakan untuk menyimpan dan
menampilkan dokumen. menurut kamus besar bahasa Indonesia, dokumen
merupakan surat tertulis atau tercetak yang dapat dipakai atau dijadikan sebagai
bukti keterangan [3] [14]. Sehingga dokumen merupakan bukti asli yang tercetak
memakai tinta maupun tersimpan melalui media elektronik yang digunakan untuk
mendukung suatu kebenaran atau keaslian suatu keterangan atau hasil penelitian
[15]. Setiap penelitian yang dilakukan oleh Pusat Penelitian dan Pengembangan
Sumber Daya Air didokumentasikan dalam media kertas maupun elektronik.
2.2.2 Abstrak
Abstrak adalah representasi dari isi dokumen yang singkat dan tepat. Abstrak
merupakan bentuk ringkas dari isi suatu dokumen yang terdiri atas bagian-bagian
penting dari suatu tulisan, dan mendeskripsikan isi dan cakupan dari tulisan.
Dengan adanya abstrak pada dokumen dapat memudahkan mendapatkan
informasi suatu dokumen tanpa harus membaca isi dari keseluruhan dokumen.
2.2.3 Kata kunci
Kata kunci merupakan kata atau konsep dengan keistimewaan, dengan ini
berarti kata apapun yang digunakan sebagai kunci dan kode atau digunakan untuk
menghubungkan kekata lain atau informasi lain. Kata kunci suatu dokumen
mewakili isi dari dokumen tersebut. Kata kunci diperlukan pada saat proses
pencarian dokumen. Sehingga memilih atau menentukan kata kunci suatu
dokumen sangatlah penting [1]. Kata kunci yang paling baik adalah kata kunci
yang terdiri dari rangkaian kata benda atau kata sifat [2].
Penentuan kata kunci menggunakan rantai markov atau markov chain. Proses
markov merupakan proses stokastik masa lalu tidak mempunyai pengaruh pada
probabilitas transisi dimana kata pada state berpengaruh pada kata sebelumnya.
[5] [16]
Kata kunci yang dihasilkan terdiri dari gabungan 2 kata yaitu pasang kata
yang terdapat didalam abstrak. Penentuan kata kunci atau pasangan kata yang
dipilih adalah berdasarkan nilai dari pasangan kata yang terdapat pada abstrak.
Keterkaitan kata satu dengan lainnya dapat dilihat pada gambar gambar II.3
dengan menggunakan markov chain. kata 1, kata 2 dan kata 3 adalah contoh kata
yang terdapat pada abstrak. nilai aij adalah probabilitas transisi yang didapatkan
dari algoritma Baum Welch. a0j merupakan state awal (phi) pada algoritma Baum
Welch.
Kata 1 Kata 2
Kata 3 Start
0
End 4 a01
a03 a02
a13
a12
a21
a23
a31 a32
a24
a34 a11
a14
a22
a33
Gambar II.3 Rangkaian kata dalam markov chain [16]
Probabilitas pasangan = Phii.bi(Oi).aij.bj(Oj) (II.1) [16]
Contoh penentuan kata kunci :
Pasang kata yang terdapat pada abstrak adalah pasangan kata 1 dan kata2, kata 2
dan kata 3, kata 3 dan kata2. Maka nilai yang dihasilkan setiap pasangan adalah
Probabilitas pasangan kata 1 dan kata 2
= Phikata1.bkata1(Okata1).akata1kata2.bkata2(Okata2)
Probabilitas pasangan kata 2 dan kata 3
= Phikata2.bkata2(Okata2).akata2kata3.bkata3(Okata3)
Probabilitas pasangan kata 3 dan kata 2
2.2.4 Algoritma
Algoritma merupakan salah satu cabang ilmu komputer yang membahas
prosedur penyelesaian suatu permasalahan [17]. Algoritma adalah urutan
langkah-langkah dalam menentukan suatu masalah. Algoritma juga dapat
didefinisikan dengan deretan langkah komputasi yang mentransformasikan
masukan (input) menjadi keluaran (output) [18]. Jadi algortima adalah
serangkaian urutan langkah-langkah atau prosedur untuk menyelesaikan suatu
masalah dengan memproses nilai masukan menjadi nilai keluaran.
Algoritma dapat ditulis dalam bentuk pseudocode ataupun flowchart.
Pseudocode berasal dari kata pseudo yang artinya mirip atau menyerupai dan code
berarti kode sehingga pseudocode adalah kode yang menyerupai kode program
sebenarnya [17]. Sedangkan flowchart merupakan bentuk gambar atau diagram
yang mempunyai aliran satu atau dua arah secara sekuensial.
Dalam mempelajari algortima, kita diperlukan untuk dapat menganalis
algoritma dalam menentukan performansinya. Suatu Algoritma tidak saja harus
benar, tetapi juga harus efisien dengan menghitung nilai dari performansinya .
Setiap algortima memiliki nilai performansi yang berbeda-beda. Performansi
suatu Algoritma dapat diukur dengan menghitung nilai kompleksitas waktunya
dimana setiap langkahnya akan dihitung [17] [7].
2.2.4.1 Kompleksitas waktu asimptotik
Kompleksitas waktu asimptotik merupakan waktu yang dibutuhkan suatu
Algoritma menyelesaikan tiap langkahnya. Setiap Algoritma memiliki
kompleksitas waktu yang berbeda-beda. Komplesitas waktu asimptotik diperlukan
untuk menghitung performansi suatu Algoritma. Untuk menghitung kompleksitas
waktu asimptotik suatu Algoritma digunakanlah notasi “O-Besar” (Big-O) yang merupakan notasi kompleksitas waktu asimptotik. Definisi dari Big-O atau
O(g(n)) adalah kumpulan semua fungsi yang order of growth-nya lebih kecil atau
sama dengan g(n), sedangkan definisi dari order of growth adalah istilah yang
dapat digunakan untuk pola varian jumlah input dalam suatu pengujian algoritma.
Contoh:
Perhitungan kompleksitas waktu asimptotik dengan menghitung nilai O-besar
dari setiap instruksi di dalam Algoritma dengan contoh dibawah ini, kemudian
diterapkan teorema O-Besar.
1. Pengisian nilai (assignment), perbandingan, operasi aritmetik, read, write
membutuhkan waktu O(1).
2. Pengaksesan elemen larik atau memilih field tertentu dari sebuah record
membutuhkan waktu O(1).
Kompleksitas waktu di atas adalah O(1), didapat dari
= O(1)+ O(1)+ O(1)
= O(max(1,1))+ O(1)
= O(1)+ O(1)
= O(max(1,1))
= O(1)
3. If c then s1 else s2. Membutuhkan waktu Tc + max(Ts1,Ts2). read(x); O(1)
x:=x+a[k]; O(1)+ O(1)+ O(1)= O(1)
writeln(x); O(1)
read(x); O(1)
if x mod 2=0 then O(1)
begin
x:=x+1; O(1)
writeln(x); O(1)
end
else
i:=2; O(1)
while i<=n do O(n)
begin
jumlah:=jumlah+a[i]; O(1)
i:= i +1; O(1)
end;
Kompleksitas waktu di atas adalah O(1), didapat dari
= O(1) + O(1) max (O(1)+ O(1), O(1))
= O(1) + max(O(1), O(1))
= O(1)
4. Kalang for. Kompleksitas waktu kalang for adalah jumlah pengulangan dikali
dengan kompleksitas waktu badan kalang.
Kompleksitas waktu di atas adalah O(n), didapat dari
= O(n) . O(1)
= O(n.1)
= O(n)
5. While c do s; dan repeat s until c; untuk kedua buah kalang, kompleksitas
waktunya adalah jumlah pengulangan dikali dengan waktu badan c dan s.
Kompleksitas waktu di atas adalah O(1), didapat dari
= O(1)+ O(n){O(1)+O(1)}
= O(1)+ O(n) O(1)
= O(1)+ O(n.1)
= O(1)+ O(n)
= O(n)
For i=1 to n do O(n)
Pengelompokan Algoritma Berdasarkan Notasi O-Besar
Urutan spektrum kompleksitas waktu algoritma adalah :
algoritma polinomial algoritma eksponensial
Penjelasan masing-masing kelompok algoritma adalah sebagai berikut :
Tabel II.1 Kelompok Algoritma dan penjelasannya
Kelompok
Algoritma Penjelasan
O(1) Kompleksitas O(1) berarti waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan. Contohnya prosedur tukar di bawah ini:
Kelompok
Algoritma Penjelasan
O(log n) Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya berjalan lebih lambat daripada pertumbuhan n. Algoritma yang termasuk kelompok ini adalah algoritma yang memecahkan persoalan besar dengan mentransformasikannya menjadi beberapa persoalan yang lebih kecil yang berukuran sama (misalnya algoritma pencarian_biner). Di sini basis algoritma tidak terlalu penting sebab bila n dinaikkan dua kali semula, misalnya, log n meningkat sebesar sejumlah tetapan.
O(n) Algoritma yang waktu pelaksanaannya lanjar umumnya terdapat pada kasus yang setiap elemen masukannya dikenai proses yang sama, misalnya algoritma pencarian_beruntun. Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula.
O(n log n) Waktu pelaksanaan yang n log n terdapat pada algoritma yang memecahkan persoalan menjadi beberapa persoalan yang lebih kecil, menyelesaikan tiap persoalan secara independen, dan menggabung solusi masing-masing persoalan. Algoritma yang diselesaikan dengan teknik bagi dan gabung mempunyai kompleksitas asimptotik jenis ini. Bila n = 1000, maka n log n mungkin 20.000. Bila n dijadikan dua kali semual, maka n log n menjadi dua kali semula (tetapi tidak terlalu banyak).
O(n2) Algoritma yang waktu pelaksanaannya kuadratik hanya praktis digunakan untuk persoalana yang berukuran kecil. Umumnya algoritma yang termasuk kelompok ini memproses setiap masukan dalam dua buah kalang bersarang, misalnya pada algoritma urut_maks. Bila n = 1000, maka waktu pelaksanaan algoritma adalah 1.000.000. Bila n dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat menjadi empat kali semula.
Kelompok
Algoritma Penjelasan
O(n2) Algoritma yang waktu pelaksanaannya kuadratik hanya praktis digunakan untuk persoalana yang berukuran kecil. Umumnya algoritma yang termasuk kelompok ini memproses setiap masukan dalam dua buah kalang bersarang, misalnya pada algoritma urut_maks. Bila n = 1000, maka waktu pelaksanaan algoritma adalah 1.000.000. Bila n dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat menjadi empat kali semula.
O(n3) Seperti halnya algoritma kuadratik, algoritma kubik memproses setiap masukan dalam tiga buah kalang bersarang, misalnya algoritma perkalian matriks. Bila n = 100, maka waktu pelaksanaan algoritma adalah 1.000.000. Bila n dinaikkan menjadi dua kali semula, waktu pelaksanan algoritma meningkat menjadi delapan kali semul.
O(2n) Algoritma yang tergolong kelompok ini mencari solusi persoalan secara "brute force", misalnya pada algoritma mencari sirkuit Hamilton (lihat Bab 9). Bila n = 20, waktu pelaksanaan algoritma adalah 1.000.000. Bila n dijadikan dua kali semula, waktu pelaksanaan menjadi kuadrat kali semula!
Nilai masing-masing fungsi untuk setiap bermacam-macam nilai n
Gambar II.4Grafik nilai masing-masing fungsi untuk setiap bermacam-macam n
Sebuah masalah yang mempunyai algoritma dengan kompleksitas polynomial
dengan kasus-terburuk dianggap mempunyai algoritma yang “bagus”; yang artinya masalah tersebut mempunyai algoritma yang mangkus, dengan catatan
polynomial tersebut berderajat rendah. Jika polinomnya berderajat tinggi, waktu
yang dibutuhkan untuk mengeksekusi algoritma tersebut panjang. [7] [8]
2.2.5 Algoritma Baum Welch
Algoritma Baum Welch merupakan salah satu algortima yang digunakan
untuk menyelesaikan suatu masalah dalam Hidden Markov Model. Hidden
Markov Model merupakan perluasan dari proses Markov yaitu proses stokastik
masa lalu tidak mempunyai pengaruh pada masa yang akan datang bila masa
sekarang diketahui [19] [5]. Dinamai Algoritma Baum Welch berasal dari nama
Leonard E. Baum dan Lloyd R. Welch [3]. Permasalahan pada Algoritma Baum
log n n n log n n2 n3 2n n!
0 1 0 1 1 2 1
1 2 2 4 8 4 2
2 4 8 16 64 16 24
3 9 24 64 512 256 362880
4 16 64 256 4096 65536 20922789888000
Welch adalah bagaimana menghasilkan nilai parameter model A, B dan π yang optimal sehingga mendapatkan hasil rangkaian dari rangkaian pengamatan atau
observasi. Algoritma Baum Welch menggunakan parameter-parameter dari HMM
untuk dihitung sehingga mendapatkan model yang optimal atau terbaik.
Mengoptimalkan nilai parameter yang artinya memaksimalkan nilai probabilitas dari rangkaian pengamatan P(O|λ), dengan diberikannya model λ(A, B, π). Tidak ada pendekatan analitik untuk permasalahan ini, akan tetapi terdapat prosedur
iterative dengan menggunakan Algoritma Baum Welch [19][20].
Adapun penjelasan dari parameter-parameternya sebagai berikut:
1. A={aij}, himpunan nilai probabilitas transisi yaitu kemungkinan perpindahan
dari state i ke state j.
2. B={bj(ok)}, himpunan nilai probabilitas emisi yaitu kemungkinan simbol
pengamatan pada state j.
3. π ={π i}, himpunan nilai perpindahan state awal.
Adapun parameter lainnya yaitu N dan M. N adalah jumlah state dalam model
dan M adalah jumlah simbol pengamatan.
Langkah-langkah Algoritma Baum Welch adalah sebagai berikut:
1. Inisialisasi nilai parameter N, M, A, B dan π.
2. Menghitung probabilitas maju (forward probability) dan probabilitas mundur
(backward probability). Hasil dari probabilitas maju dan mundur akan
digunakan dalam perhitungan menentukan nilai probabilitas transisi dan
emisi.
Untuk menghitung probabilitas maju (forward probability) digunakan prosedur
forward.
Prosedur Forward
Inisialisasi
∝1 = � 1 ≤ i ≤N (II.2)
Induksi
�_ � = 1 (t=1) (II.6)
_ � = ��
�−1 �=1
� �−1
�=1 (II.7)
_ � = ��=1 � � �
�=1 (II.8)
(untuk pembilangan pada saat Ot=Vk)
� = � |λ� = � �
� . � �
=1 (II.9)
� = � =1 ��=1 � �+1 �+1�+1 �+1 (II.10)
Untuk menghitung probabilitas mundur (backward probability) digunakan
prosedur forward.
Prosedur Backward
3. Menghitung kembali probabilitas transisi, probabilitas emisi dan state awal
yang baru.
Nilai � dan � didapat dari :
4. Mengulang kembali langkah 2 hingga parameter-parameter dari HMM konvergen (berubah secara tidak signifikan) dengan membandingkan P(O|λ) yang lama dengan yang baru. Jika P(O|λ) baru lebih besar dari P(O|λ) lama maka telah konvergen.
Inisialisasi
= 1 1 ≤ i ≤N (II.4)
Induksi
�|�_ � = �� |�|� � �|�_ �
dapat ditulis kembali,
�|� � = � � � � � � (II.11)
dengan,
� � � = �−1= �= |�
|�
� � _ � (II.12)
� � � = �� �=� �= |�|� � _ � (II.13)
max �|� � = |�_ � ≥ |�
5. Didapat nilai probabilitas transisi (A), probabilitas emisi (B) dan state awal (π) yang optimal [19] [20] [21].
Perhitungan pada langkah inisialisasi, nilai probabilitas transisi
menggunakan smoothing bigram karena apabila terdapat probabilitas pasang kata
yang 0 maka nilainya akan dihampiri oleh probabilitas smoothing bigram.
smoothing bigram yang digunakan adalah Jelinec-Mercer smoothing karena pada
penelitian yang dilakukan oleh Yudi Wibisono menyebutkan bahwa
Jelinec-Mercer smoothing dapat meningkatkan kinerja sistem dengan nilai λ = . .
Rumus Jelinec-Mercer smoothing adalah sebagai berikut:
Keterangan:
�|� −1 = −1 , kemungkinan kemunculan pasang katga
� = _ , kemungkinan kemunculan suatu kata λ = . , konstanta antara 0 sampai 1
Nilai probabilitas transisi adalah A={aij}={P(Cj|Ci)}={P(Ci|CI.1)}.
Probabilitas transisi merupakan kemungkinan atau probabilitas suatu kata
dipengaruhi oleh kata sebelumnya. Ci adalah kata pada state i dan CI.1 atau Cj
adalah kata sebelumnya. � � adalah jumlah pasangan kata yang muncul
pada abstrak, � adalah jumlah kata pada state i yang muncul pada abstrak
2.2.5.1 Flowchart Algortitma Baum Welch
Flowchart merupakan bentuk gambar atau diagram yang mempunyai aliran
satu atau dua arah secara sekuensial. Gambar II.3 merupakan gambar flowchart
dari Algoritma Baum Welch.
Nilai inputan pada Algoritma Baum Welch adalah jumlah kata pada abstrak
tanpa mengalami pengulangan kata yang telah dihitung pada proses diluar
algoritma Baum Welch. Jumlah kata dimasukkan pada nilai N pada Algoritma
Baum Welch. Pada algoritma Baum Welch terdapat parameter M yaitu panjang
observasi. Dikarenakan nilai N dan M adalah sama maka untuk parameter M
dihilangkan dan digantikan dengan parameter N saja.
Selanjutnya masuk keproses inisialisasi parameter baru yaitu himpunan
probabilitas transisi (A), himpunan probabilitas emisi (B), himpunan state awal
(Phi) dan P(O|λ) awal yang nantinya akan diisikan dengan P(O|λ) yang baru. Nilai dari Parameter baru ini akan digunakan dalam proses selanjutnya yaitu proses
perhitungan probabilitas forward dan backward.
Setelah menghitung probabilitas forward dan backward maka hasil dari kedua
proses ini akan digunakan dalam menentukan parameter yang baru. Hasil dari
perhitungan parameter baru digunakan kembali untuk mendapatkan nilai P(O|λ). Nilai P(O|λ) akan dijadikan tolak ukur apakah seluruh parameter telah bernilai optimal.
Pada iterasi pertama P(O|λ) lama akan diisikan dengan P(O|λ) baru dan parameter lama digantikan dengan parameter baru. Proses perhitungan kembali
nilai probabilitas forward dan backward untuk mendapatkan nilai parameter yang
baru. Barulah pada iterasi lebih dari 1 nilai P(O|λ) akan dibandingkan. Jika P(O|λ) baru lebih kecil dari P(O|λ) lama dan iterasi lebih dari 1 atau iterasi belum mencapai batas iterasi maka dilakukan perulangan mencari parameter baru. Jika
nilai P(O|λ) baru lebih besar dari P(O|λ) lama maka iterasi berhenti dan mendapatkan nilai parameter yang baru atau telah optimal.
Hasil dari prosedur Algoritma Baum Welch adalah nilai probabilitas transisi,
probabilitas emisi dan state awal. probabilitas transisi merupakan kemungkinan
merupakan kemungkinan atau probabilitas pengamatan pada state j. State awal
mulai
nilai N dan iterasi: N=jumlah kata,
Mengisi nilai parameter lama dengan parameter baru :
P(O|λ) = P(O|λ) bar, Pengisian nilai parameter awal
(probabilitas transisi (A), emisi(B), state awal(phi) dan
P(O|λ)),stop_iterasi
Menghitung probabilitas forward
Menghitung probabilitas backward
menghitung nilai parameter baru (probabilitas transisi (A), emisi(B), state awal(phi) dan P(O|λ))
Jumlah kata,p, pasang kata, jumlah
kata,total
menghitung nilai P(O|λ) baru
Mendapatkan
Nilai N dan iterasi
Nilai T
Pada flowchart Algoritma Baum Welch diatas masih terdapat proses yang
masih dapat diuraikan lagi. Penjelasan dari setiap proses atau prosedur yang
terdapat pada Algoritma Baum Welch akan dijelaskan pada bab 3 subbab 3.1.1.2.
2.2.6 Perancangan Terstruktur
Dalam tahap perancangan suatu sistem diperlukan adanya teknik-teknik
penyusunan sistem untuk menganalisa dan mendokumentasikan data yang
mengalir di dalam sistem tersebut. Tools yang digunakan untuk memodelkan
adalah diagram konteks dan Data Flow Diagram (DFD).
2.2.6.1. Diagram konteks
Diagram konteks adalah arus data yang berfungsi untuk menggambarkan
keterkaitan aliran-aliran data antara sistem dengan bagian-bagian luar (kesatuan
luar). Kesatuan luar ini merupakan sumber arus data atau tujuan data yang
berhubungan dengan sistem informasi tersebut. Diagram konteks bisa disebut
dengan“Model sistem pokok (fundamental system model) mewakili keseluruhan
elemen software dengan masukan (input) dan keluaran (output) yang diidentifikasi
dengan anak panah masuk dan keluar memperlihatkan sumber data”.
2.2.6.2. DFD
Data Flow Diagram digunakan untuk menggambarkan suatu sistem yang
telah ada atau sistem baru yang akan dikembangkan secara logika tanpa
mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau
lingkungan fisik dimana data tersebut akan disimpan. Data Flow Diagram juga
digunakan pada metodologi pengembangan sistem yang terstruktur [23].
2.2.7 DELPHI
Delphi adalah sebuah IDE Compiler untuk bahasa pemrograman Pascal dan
lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh
CodeGear sebagai divisi pengembangan perangkat lunak milik Embarcadero,
divisi tersebut sebelumnya adalah milik Borland. Dengan menggunakan Free
Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan
untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows
Umumnya Delphi lebih banyak digunakan untuk pengembangan aplikasi
desktop dan enterprise berbasis database, tapi sebagai perangkat pengembangan
yang bersifat general-purpose ia juga mampu dan digunakan dalam berbagai jenis
proyek pengembangan software.
Perbedaan fitur yang utama antara Delphi, Kylix dengan IDE-IDE yang lain
adalah keberadaan bahasanya (Bahasa pemrograman delphi), VCL/CLX (Visual
Component Library), Penekanan konektifitas database yang sangat baik, dan
banyaknya komponen-komponen pihak ketiga yang mendukungnya.
Adapun sejumlah keuntungan Embarcadero Delphi, antara lain: Komunitas
pengguna yang besar pada Usenet maupun web, Dapat mengkompilasi menjadi
single executable (aplikasi portable), memudahkan distribusi dan meminimalisir
masalah yang terkait dengan versioning, banyaknya dukungan dari pihak ketiga
terhadap VCL (biasanya tersedia berikut source codenya) ataupun tools
pendukung lainnya (dokumentasi, tool debugging), optimasi kompiler yang cukup
cepat, mendukung multiple platform dari source code yang sama dan untuk yang
dikelola oleh embarcadero, delphi dapat dijalankan pada multiflatform yaitu
31 3.1 Analisis Masalah
Berdasarkan hasil wawancara, dilingkungan perpustakaan dan peneliti Pusat
Penelitian dan Pengembangan Sumber Daya Air untuk menentukan kata kunci
dokumen masih dilakukan dengan membaca ulang isi dari abstrak dokumen
kemudian baru ditentukan kata kuncinya. Terdapat sebagian dokuman yang belum
diberikan kata kunci. Oleh karena itu, pegawai perpustakaan mengalami kesulitan
dalam menentukan kata kunci yang tepat untuk dokumen yang belum memiliki
kata kunci.
Kata kunci mencerminkan isi dari keseluruhan dokumen. Dengan kata kunci
kita dapat mengetahui secara abstrak isi dari dokumen tersebut sebelum kita
membaca keseluruhan dokumen. Biasanya seseorang yang ingin mencari data dari
dokumen, orang tersebut tidak akan membaca secara keseluruhan dari dokumen
itu. Ia akan melihat indeks atau kata kunci yang terkait dengan dokumen itu.
Kemudian barulah membaca abstraknya. Jika yang dicari sesuai maka dokumen
akan dibaca secara keseluruhan.
Abstrak adalah inti dari keseluruhan inti dokumen. Apabila kata kunci yang
digunakan tidak sesuai dengan abstrak maka kata kunci tersebut tidak sesuai
dengan isi dokumen.
Jadi, kata kunci dibutuhkan seseorang dalam pencarian suatu dokumen yang
dicarinya. Dengan kata lain, kata kunci dapat mengarahkan kita kedokumen yang
ingin dicari. Untuk itu pemilihan kata kunci yang tepat sangatlah penting dalam
memberikan informasi mengenai dokumen itu dan seseorang dalam pencarian
suatu dokumen melalui mesin pencari. Jika kata kunci yang dipilih tidak tepat
maka dokumen yang dibutuhkan pula tidak terarahkan dengan baik melalui mesin
pencarian.
Salah satu algoritmayang dapat digunakan dalam penentuan kata kunci adalah
digunakan pada proses learning dengan mengoptimalkan nilai parameter Model
Markov Tersembunyi atau Hidden Markov Method (HMM). Dalam menentukan
rangkaian yang belum diketahui, algoritma Baum Welch mengoptimalkan nilai
parameter yang diberikan.
Setiap algoritma memiliki performansi yang berbeda-beda. Nilai performansi
suatu algortima dilihat dari kemangkusannya. Suatu algoritma dikatakan bagus
apabila algoritma tersebut mangkus atau efisien. Salah satu melihat kemangkusan
algoritma adalah dengan menghitung kompleksitas waktu asimptotik
menggunakan notasi Big-O.
Berdasarkan permasalahan di atas maka diperlukan teknik pencarian kata
kunci suatu dokumen dengan menganalisis performansi Algoritma Baum Welch
dengan memaksimalkan nilai probabilitas dari kata yang terdapat dalam abstrak.
3.2 Analisis Algoritma
Algoritma merupakan sekumpulan langkah atau perintah untuk dapat
menyelesaikan suatu masalah [18]. Suatu algortima dikatakan bagus apabila
algortima tersebut mangkus atau efisien. Untuk menilai suatu Algoritma dikatakan
bagus dapat menggunakan kemangkusan algortima. Untuk itu diperlukan analisis
untuk mengukur performansi suatu algortima dengan mengukur kemangkusannya
dengan menghitung nilai dari kompleksitas waktu asimptotiknya menggunakan
notasi “O-Besar” (Big-O), dimana meningkatnya nilai n dapat mempengaruhi kebutuhan waktu Algoritma [7] [8].
3.1.1 Perhitungan kompleksitas waktu Asimptotik Algoritma Baum Welch
Perhitungan kompleksitas waktu asimptotik Algoritma Baum Welch dapat
dihitung dengan menelusuri setiap langkah Algoritma Baum Welch pada
pseudocode-nya. Pseudocode algoritma Baum Welch yang telah diberikan notasi
Big-O disetiap langkahnya dapat dilihat pada Tabel III.1.
Tabel III.1Pseudocode Algoritma Baum Welch dengan notasi Big-O
Isi pseudocode penanda
procedure BaumWelch(input jumlah_kata:integer, p:integer,
p_paskata:LarikReal, p_kata:LarikReal, output
A:LarikReal, B:LarikReal, Phi:LarikReal)
terdefinisi}
{F.S: nilai probabilitas transisi, probabilitas emisi dan
state awal maksimum atau optimal}
Kamus:
Stop_iterasi :boolean
i,j,k,t: integer
z: real
Algoritma:
{langkah 1 : inisialisasi nilai N, M A, B dan π}
{inisialisasi N dan iterasi}
N←jumlah_kata O(1)
iterasi ← 0 {inisialisasi iterasi bernilai 0} O(1) InisialisasiParameterAwal(N,p,p_paskata,p_kata,A,B,Phi,
stop_iterasi,prob_lama) O(N2)
T←N {banyaknya waktu T sebanyak state observasi} O(1)
Repeat
{Langkah 2 : menghitung probabilitas forward dan
backward}
ProbabilitasForward(N,A,B,Phi,alpha,lamda,prob_forward)
O(N3)
ProbabilitasBackward(N,A,B,beta) O(N3)
{Langkah 3 : menghitung kembali probabilitas transisi
dan emisi}
ParameterBaru(N,A,B,Phi,beta,alpha,A_bar,B_bar,
Phi_bar)
O(N3)
{menghitung ( ̅)}
ProbabilitasOLamda(N,A,B,Phi,gamma,epsilonl,
total_epsilon,total_gamma,prob_baru) O(N3)
if ((iterasi≥1)&&((prob_baru < prob_lama) ||
(iterasi←batas_iterasi))) then O(1) stop_iteras←true O(1) else
for i←1 to N do O(N)
for j←1 to N do O(N)
a[i][j] ← a_bar[i][j] O(1)
endfor
endfor
…1
…2 …3
…4
for j←1 to N do O(N)
for k←1 to M do O(N)
b[j][k] ← b_bar[j][k] O(1)
endfor
endfor
for i←1 to N do O(N)
phi[i] ← phi_bar[i] O(1)
endfor
prob_lama ← prob_baru O(1) iterasi ← iterasi + 1 O(1) endif
{Langkah 4 : kembali kelangkah 2 sampai 3 hingga
nilai ( ̅) konvergen atau mendekati 1}
until (stop_iterasi ← true || iterasi = batas_iterasi) O(N)
{Langkah 5 :mendapatkan nilai probabilitas maksimal}
if(prob_baru >= prob_lama) then O(1)
for i←1 to N do O(N)
for j←1 to N do O(N)
a[i][j] ← a_bar[i][j] O(1)
endfor
endfor
for j←1 to N do O(N)
for k←1 to M do O(N)
b[j][k] ← b_bar[j][k] O(1)
endfor
endfor
for i←1 to N do O(N)
phi[i] ← phi_bar[i] O(1)
endfor
endif
endprocedure
…6
Perhitungan kompleksitas waktu Asimptotik Algoritma Baum Welch dengan
notasi Big-O adalah sebagai berikut :
= O(1) + max(O(N2),O(N2),O(N))
= O(1) + O(N2)
= max(O(1),O(N2))
= O(N2)
Perhitungan nilai Big-O pada pseudocode yang ditandai kotak warna biru : = max (O(1),max((O(N).O(N).O(1)),(O(N).O(N).O(1)),(O(N).O(1))))
= max (O(1),max(O(N2),O(N2),O(N)))
= max (O(1),O(N2))
= O(N2)
Nilai kompleksitas waktu asimptotik Algoritma Baum Welch
= max(O(1),O(1), O(1),O(N2),(max(O(1),O(N3),O(N3),O(N3),O(N3),O(N2)).O(N))
,O(N2))
= max(O(1),O(1), O(1),O(N2),(O(N3).O(N)),O(N2))
= max(O(1),O(1), O(1),O(N2),O(N4),O(N2))
= O(N4) …6
Berdasarkan perhitungan kompleksitas waktu asimptotik dengan notasi Big-O
yang diuraikan diatas, maka Algoritma Baum Welch memiliki kompleksitas waktu
dengan nilai Big-O adalah O(N4). Berdasakan nilai laju pertumbuhan N,
Algoritma Baum Welch termasuk dalam kelompok algoritma polinomial dengan
derajat polinomial adalah 4. Algoritma polinomial termasuk algoritma yang bagus
atau mangkus dengan syarat polinomial berderajat rendah. Algoritma Baum Welch
memiliki derajat yang rendah yaitu 4. Parameter-parameter yang dapat
mempengaruhi performansi Algoritma Baum Welch yang dapat dilihat pada
pseudocode-nya adalah sebagai berikut:
1. N merupakan jumlah state atau jumlah kata pada abstrak tanpa pengulangan
kata.
2. T merupakan variable waktu (sejumlah dengan nilai jumlah kata pada abstrak
tanpa pengulangan kata).
Maka besarnya nilai waktu kompleksitas akan dipengaruhi tiga parameter
yaitu jumlah kata pada abstrak tanpa pengulangan, variable T dan jumlah iterasi
atau pengulangan.
Pada pseudocode Algoritma Baum Welch, masih terdapat beberapa prosedur
didalamnya yang dapat diuraikan kembali. Berikut adalah beberapa prosedur
dengan notasi Big-O dan perhitungan kompleksitas waktunya :
1. Pseudocode prosedur inisialisasi parameter awal dapat dilihat pada Tabel
III.2 beserta notasi Big-O dan perhitungan waktu kompleksitasnya.
Tabel III.2Prosedur inisialisasi parameter awal
Isi pseudocode
procedure InisialisasiParameterAwal(input N:integer,p:integer,
p_paskata:LarikReal, p_kata:LarikReal, output A:LarikReal,
B:LarikReal, Phi:LarikReal,stopiterasi:Boolean, prob_lama:real)
{I.S : jumlah kata telah terdefinisi}
{F.S: mendapatkan nilai } awal, nilai parameter awal yaitu
probabilitas transisi (A), probabilitas emisi (B) dan state
awal (phi)}
Kamus:
i,j,k,b1: integer
Algoritma:
{inisialisasi nilai awal probabilitas A={aij} }
for i←1 to N do O(N)
for j←1 to N do O(N)
a[i][j]←(p*p_paskata[i][j])+((1-p)*p_kata[j]) O(1) endfor
endfor
{inisialisasi nilai awal probabilitas B={bj(Ot)} }
for j←1 to N do O(N)
for k←1 to N do O(N)
b1 ← p_kata[j] O(1)
if (k=j) then O(1)
b[j][k] ← b1 O(1) else
endfor
endfor
{inisialisasi nilai state awal phi }
for i←1 to N do O(N)
phi[i] ← 1 / N O(1)
endfor
stop_iterasi ← false {inisialisasi iterasi belum berhenti}
O(1)
prob_lama ← prob_baru {inisialisasi nilai } O(1) endprocedure
Perhitungan waktu kompleksitas pada prosedur inisialisasi parameter awal :
=
max((O(N).O(N).O(1)),(O(N).O(N).max(O(1),O(1),O(1),O(1))),(O(N).O(1)),O(1)
,O(1))
= max((O(N).O(N).O(1)),(O(N).O(N).O(1)),(O(N).O(1)),O(1),O(1))
= max(O(N2),O(N2),O(N),O(1),O(1))
= O(N2) …1
2. Pseudocode prosedur probabilitas forward dapat dilihat pada Tabel III.3
beserta dengan notasi Big-O dan perhitungan kompleksitas waktunya.
Tabel III.3 Pseudocode prosedur probabilitas forward
Isi pseudocode
Procedure ProbabilitasForward(input N:integer, A:LarikReal,
B:LarikReal, Phi:LarikReal, output alpha:LarikReal,
lamda:LarikReal, prob_forward:real)
{I.S : probabilitas transisi, emisi dan state awal telah
terdefinisi}
{F.S: mendapatkan probabilitas forward}
Kamus:
i,t,z: integer
Algoritma:
{Langkah 1 : Inisialisasi}
for i←1 to N do O(N)
{nilai lamda awal dari nilai probabilitas awal dengan t=1}
endfor
{langkah 2 : Induksi}
{menghitung nilai lamda pada waktu t=1 sampai t=T-1}
for t←2 to T do O(N)
for j←1 to N do O(N)
z ← 0 O(1)
for i←1 to N do O(N)
z ← ( alpha[t-1][i] * a[i][j] ) + z O(1) endfor
lamda[t][j] ← z * b[j][t] {b[i][t]=bi(Ot)} O(1) endfor
endfor
{langkah 3 : Terminasi}
{pada state terakhir T=N}
for i←1 to N do O(N)
prob_forward ← lamda[T][i] + prob_forward {P(O|λ)}
{∑ } O(1)
endfor
endprocedure
Perhitungan waktu kompleksitas prosedur probabilitas forward :
= max((O(N).O(1)), (O(N).O(N).max(O(1),(O(N).O(1)),O(1))), (O(N).O(1)))
= max(O(N), (O(N).O(N).max(O(1),O(N),O(1))), O(N))
= max(O(N), (O(N).O(N).O(N)), O(N))
= max(O(N), O(N3), O(N))
= O(N3) …2
3. Pseudocode prosedur probabilitas backward dapat dilihat pada Tabel III.4
beserta notasi Big-O dan perhitungan kompleksitas waktunya.
Tabel III.4 Pseudocode prosedur probabilitas backward
Isi pseudocode
Procedure ProbabilitasBackward(input N:integer, A:LarikReal,
B:LarikReal, output : A:LarikReal, B:LarikReal, output
beta:LarikReal)
{F.S: mendapatkan probabilitas backward}
Kamus:
i,t,j: integer
Algoritma:
{Langkah 1 : Inisialisasi}
for i←1 to N do O(N)
beta[T][i] ← 1/N O(1)
endfor
{langkah 2 : Induksi}
for t←T-1 down to 1 do O(N)
for i←1 to N do O(N)
beta[t][i] ← 0 O(1)
for j←1 to N do O(N)
beta[t][i]←(a[i][j]*b[j][t+1]*beta[t+1][j])+
beta[t][i] {b[i][t]=bi(Ot)} O(1)
endfor
endfor
endfor
endprocedure
Perhitungan kompleksitas waktu prosedur probabilitas backward :
= max((O(N).O(1)), (O(N).O(N).max(O(1),(O(N).O(1))))
= max(O(N), (O(N).O(N).max(O(1),O(N),O(1))), O(N)))
= max(O(N), (O(N).O(N).O(N)), O(N))
= max(O(N), O(N3), O(N))
= O(N3) …3
4. Pseudocode Prosedur Parameter Baru dapat dilihat pada Tabel III.5 beserta
notasi Big-O dan perhitungan kompleksitas waktunya.
Tabel III.5 Pseudocode prosedur menghitung parameter baru
Isi pseudocode
Procedure ParameterBaru(input N:integer, A:LarikReal,
B:LarikReal, Phi:LarikReal, beta:LarikReal , alpha:LarikReal,
output A_bar:LarikReal, B_bar:LarikReal, Phi_bar:LarikReal)
{I.S : probabilitas forward dan backward telah terdefinisi}
{F.S: mendapatkan nilai parameter baru yaitu probabilitas
Kamus:
i,t,j,k,s: integer
Algoritma:
{menghitung nilai }
total_epsilon ← 0 O(1)
{menghitung nilai epsilon}
for t←1 to T-1 do O(N)
sum_epsilon← 0 O(1)
for i←1 to N do O(N)
for j←1 to N do O(N)
sum_epsilon←alpha[t][i]*a[i][j]*b[s][j][t+1]* beta[t+1][j] O(1)
total_epsilon← total_epsilon + sum_epsilon O(1) endfor
endfor
for i←1 to N do O(N)
for j←1 to N do O(N)
epsilon[t][i][j]←(alpha[t][i]*a[i][j]*b[s][j][t+1]* beta[t+1][j])/sum_epsilon O(1)
endfor
endfor
endfor
{menghitung nilai gamma }
total_gamma ← 0 O(1)
for t←1 to T do O(N)
sum_gamma ← 0 O(1)
for i←1 to N do O(N) sum_gamma ← alpha[t][i]*beta[t][i] + sum_gamma O(1) total_gamma ← sum_gamma+total_gamma O(1) endfor
for i←1 to N do O(N)
gamma[t][i] ← alpha[t][i]*beta[t][i] + sum_gamma O(1) endfor
endfor
{menghitung Probabilitas transisi atau nilai ̅̅̅̅ }
for i←1 to N do O(N)
sum_gamma_bawah← 0 O(1) sum_epsilon_atas← 0 O(1) for t←1 to T-1 do O(N) sum_gamma_bawah ← gamma[t][i]+sum_gamma_bawah O(1) sum_epsilon_atas ←epsilon[t][i][j]+sum_epsilon O(1) endfor
a_bar[i][j] ← sum_epsilon_atas/sum_gamma_bawah O(1) endfor
endfor
{Probabilitas emisi}
for j←1 to N do O(N)
for k←1 to M do O(N)
sum_gamma_atas ← 0 O(1)
sum_gamma_atas ← 0 O(1)
for t←1 to T do O(N) sum_gamma_bawah ← gamma[t][j]+sum_gamma_bawah O(1)
{jika Ob[t] =Ob[j]}
if (k←t) then O(1) sum_gamma_atas ← gamma[t][j]+sum_gamma_atas O(1) endif
endfor
b_bar[j][k] ← sum_gamma_atas /sum_ gamma_bawah O(1) endfor
endfor
{inisialisasi nilai state awal phi }
for i←1 to N do O(N)
phi_bar[i] ← gamma[1][i] O(1)
endfor
endprocedure
Perhitungan waktu kompleksitas prosedur menghitung parameter baru pada :
waktu kompleksitas pada langkah menghitung epsilon
= O(N).max(O(1),(O(N).O(N).max(O(1),O(1))),(O(N).O(N).O(1)))
= O(N).max(O(1),(O(N).O(N).O(1)),O(N2))
= O(N).max(O(1),O(N2),O(N2))
= O(N).O(N2)