Powered by Blogger.

Wednesday 3 February 2016

skripsi teknik informatika bagian 1 BAB I, BAB II

by Unknown  |  in skripsi teknik informatika at  06:52
IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATT
PADA APLIKASI KAMUS ISTILAH LATIN
FLORA DAN FAUNA BERBASIS
ANDROID



SKRIPSI


Diajukan Untuk Memenuhi Persyaratan
Mencapai Gelar Sarjana Komputer




Oleh :
FINCE TINUS WARUWU
NPM : 13110835





 


PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK BUDIDARMA
MEDAN
2014






ABSTRAK



Kamus merupakan alat bantu yang digunakan untuk menterjemahakan suatu bahasa. Penggunaan kamus sangat diperlukan namun tidak mempersulit pengguna saat menggunakannya dan dapat mempermudah pemakai dalam menterjemahkan suatu bahasa tanpa harus membawa kamus yang yang berbentuk buku yang memiliki ketebalan dan bobot yang cukup berat untuk ukuran sebuah buku. Untuk itu dibutuhkan sebuah aplikasi yang dapat mengakomodir kebutuhan setiap pemakai akan sebuah aplikasi pengganti buku yang mudah dibawa serta dapat digunakan kapan dan dimanapun secara efektif.
Aplikasi tersebut berupa kamus mobile android yang dapat dipasang pada perangkat mobile seperti handphone. Selain sebagai media komunikasi dalam bentuk panggilan suara atau pesan singkat, dalam perkembangannya merupakan media yang mampu dilengkapi dengan berbagai program aplikasi tambahan untuk kemudahan pengguna.
Dalam skripsi ini akan dibahas tentang cara menciptkan aplikasi kamus istilah-istilah latin flora dan fauna berbasis mobile android dengan algoritma string matching. Aplikasi dibangun dengan bahasa pemrograman java, dan eclipse galileo sebagai editor untuk mengedit kode program.


Kata Kunci : Kamus,Flora, Fauna, Android dan String Matching





IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATT
PADA APLIKASI KAMUS ISTILAH LATIN
FLORA DAN FAUNA BERBASIS
ANDROID




Untuk Memenuhi Persyaratan Mencapai Gelar Sarjana Komputer
Pada Strata 1 Program Studi Teknik Informatika



Yang Dipersiapkan dan Disusun Oleh :


FINCE TINUS WARUWU
NPM : 13110835


Telah Memenuhi Persyaratan Untuk Dipertahankan
Di Depan Dewan Penguji Pada Sidang Meja Hijau



Medan,    Agustus 2014

Pembimbing I,




Mesran, S.Kom, M.Kom
NIDN : 0124087801

                         Pembimbing II,




          Efori Bu’ulolo, S.Kom, M.Kom
              NIDN : 0112118801


Diketahui Oleh,
Ketua Program Studi Teknik Informatika
STMIK Budidarma Medan




Sinar Sinurat, ST, M.Kom
NIDN :0317086703








KATA PENGANTAR



Puji dan syukur penulis panjatkan kepada kehadirat Tuhan Yang Maha Esa,  Pengasih dan Maha Penyayang karena atas berkat kesehatan dan karunia-Nya yang senantiasa menyertai penulis sehingga dapat menyelesaikan skripsi ini.
Dalam penulisan proposal skripsi yang berjudul Implementasi Algoritma Knuth Morris Pratt Pada Aplikasi Kamus Istilah Latin Flora Dan Fauna Berbasis Android, penulis banyak mendapatkan bimbingan, nasehat dan saran dari berbagai pihak. Untuk itu dengan ketulusan hati, penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1.    Bapak Mesran, S.Kom, M.Kom, selaku dosen pembimbing I sekaligus Ketua STMIK BUDIDARMA MEDAN yang telah berkenan meluangkan waktu untuk memberikan petunjuk dan bimbingan kepada penulis dalam menyusun proposal skripsi ini.
2.    Bapak Efori Bu’ulolo, S.Kom, M.Kom, selaku dosen pembimbing II yang juga telah berkenan meluangkan waktu untuk memberikan petunjuk dan bimbingan kepada penulis dalam menyusun proposal skripsi ini.
3.    Bapak Sinar Sinurat, ST, M.Kom, selaku Ketua Program Studi Teknik Informatika STMIK BUDIDARMA MEDAN.
4.    Bapak dan Ibu Dosen yang telah mendidik dan membimbing penulis dalam mengerjakan proposal skripsi ini.
5.    Kedua Orang Tua tercinta dan keluarga penulis yang dengan penuh perhatian dan kesabaran selalu memberikan doa, motivasi dan semangat serta memberikan moril dan materil kepada penulis.
6.    Kepada Budidarma Programming Club (BPC) yang telah banyak membantu dalam proses penyelesaian skripsi ini.
7.    Semua pihak yang turut membantu dalam penyusunan skripsi yang tidak dapat penulis sebutkan namanya satu persatu.
Penulis menyadari sepenuhnya bahwa isi dari proposal skripsi ini jauh dari kesempurnaan sesuai yang diharapkan oleh penulis baik dari segi isi dan bentuk dalam penyusunan kalimat yang tidak lain disebabkan oleh adanya keterbatasan pengetahuan dan waktu yang dimiliki oleh penulis. Oleh karena itu penulis mengharapkan kritik dan saran yang sifatnya membangun, semoga skripsi ini dapat memberikan manfaat dan berguna bagi kita semua.


Medan, 20  Agustus 2014
 Penulis,


Fince Tinus Waruwu

13110835







BAB I
PENDAHULUAN



1.1  Latar Belakang Masalah

Kamus adalah alat bantu untuk menuntut kita memahami makna sebuh kata (Ahmad Iskak, 2008 : 52). Selain menerangkan maksud suatu perkataan, kamus juga dapat digunakan sebagai pedoman bagaimana suatu kata digunakan.  Kamus juga berfungsi untuk membantu seseorang mengenal perkataan baru. Selain menerangkan maksud kata, kamus juga mungkin mempunyai pedoman sebutan, asal usul (etimologi) sesuatu perkataan dan juga contoh penggunaan bagi sesuatu perkataan. Kata kamus diserap dari bahasa Arab qamus, dengan bentuk jamaknya qawamis. Kata arab itu sendiri berasal dari kata Yunani okeanos yang berarti lautan. Sejarah itu jelas memperlihatkan makna dasar yang terkandung dalam kamus, yaitu wadah pengetahuan khususnya pengetahuan bahasa yang tidak terhingga dalam dan luasnya. Kamus merupakan buku acuan yang memuat kata dan ungkapan yang biasanya disusun menurut abjad dan berisi tentang makna dan pemakaiannya. Dalam dunia pendidikan yang terdiri dari berbagai macam istilah–istilah latin yang tidak semua orang mengetahuinya. Istilah–istilah latin flora dan fauna sebagian besar berasal dari bahasa Yunani kuno dan bahasa Latin, sebagian kecil dari bahasa Jerman, Perancis, Belanda dan Inggris, dan ada juga beberapa dari bahasa Indonesia. Untuk mempermudah pemahaman tentang arti dari istilah–istilah latin flora dan fauna dalam dunia pendidikan Ilmu Pengetahuan Alam (IPA) khususnya dalam bidang mata pelajaran Biologi  tersebut ada baiknya dirancang suatu aplikasi kamus istilah  latin flora dan fauna.
Dalam dunia teknologi, khususnya teknologi yang bergerak dalam bidang komunikasi, seperti teknologi komunikasi seluler telah menciptakan sebuah perubahan besar. Perkembangan yang pesat dari perangkat teknologi ini telah memunculkan beragamnya fungsi baru selain fungsi utamanya sebagai sebuah alat komunikasi. Selain itu handphone pun sudah memasyarakat, karena handphone dapat diperoleh dengan mudah dan murah. Selain fungsi utamanya sebagai alat komunikasi handphone juga bisa digunakan sebagai alat untuk belajar dan memperoleh pengetahuan dengan mudah. Handphone pada masa sekarang ini sudah didukung dengan sistem operasi  android, dimana android adalah sistem operasi mobile phone berbasiskan linux. Android adalah sebuah sistem operasi yang biasa disematkan pada gadget, baik itu handphone atau tablet. Android merupakan platform terobosan terbaru pada mobile device yang sangat digemari para pengguna mobile device, hal ini dikarenakan kinerja sistem pada Android mudah untuk dioperasikan dengan tampilan yang menarik dan dapat melakukan update aplikasi secara otomatis, biasa dikatakan peranan tablet dan handphone biasa menggantikan peran dari sebuah komputer. Selain itu android bersifat open source dimana source code aplikasinya diberikan secara gratis bagi para pengembang untuk menciptakan aplikasi yang dapat berjalan pada sistem operasi android.
Adapun permasalahan yang sering dihadapi adalah karena sulitnya dalam mengingat dan menghafal istilah-istilah latin flora dan fauna karena terdapat banyak nama atau istilah yang digunakan. Aplikasi kamus istilah yang akan dirancang ini adalah aplikasi yang akan dijalankan pada handphone yang didukung dengan sistem operasi android. Untuk mempermudah pencariaan kata istilah latin flora dan fauna dalam aplikasi tersebut, maka aplikasi kamus istilah latin yang akan dirancang pada android tersebut menggunakan algoritma Knuth-Morris-Pratt. Algoritma Knuth-Morris-Pratt merupakan salah satu algoritma pencarian string yang dikembangkan oleh Donald E. Knuth pada tahun 1967 dan James H. Morris bersama Vaughan R. Pratt pada tahun 1966, namun keduanya mempublikasikannya secara bersamaan pada tahun 1977. Cara kerja algoritma Knuth-Morris-Pratt adalah mencocokan pattern pada awal teks dari kiri kekanan. Algoritma Knuth-Morris-Prattakan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian sampai kondisi yang sudah ditentukan terpenuhi.
Berdasarkan dari uraian latar belakang masalah di atas maka penulis berkeinginan untuk menuangkan permasalahan tersebut kedalam sebuah penelitian yang nantinya menjadi sebuah judul skripsi  yang berjudul “Implementasi Algoritma Knuth-Morris-Pratt Pada Aplikasi Kamus Istilah Latin Flora dan Fauna Berbasis Android”.
1.2  Perumusan Masalah

Berdasarkan uraian pada latar belakang, maka yang menjadi perumusan masalah adalah :
1.        Bagaimana porses mengetahui istilah latin flora dan fauna pada kamus?
2.        Bagaimana menerapkan algoritma Knuth-Morris-Pratt dalam pencarian istilah latin flora dan fauna?
3.        Bagaimana merancang aplikasi kamus istilah latin flora dan fauna berbasis android?
4.        Bagaimana penerapan aplikasi kamus berbasis android pada  handphone yang mendukung sistem operasi android?

1.3    Batasan Masalah

Dengan rumusan masalah yang telah disebutkan diatas, maka dalam skripsi ini diberikan batasan masalah yang akan dianalisa, mengingat adanya keterbatasan waktu dalam proses penyususan, yaitu sebagai berikut :
1.        Jenis teks atau string yang dicari berupa istilah latin flora dan fauna.
2.        Algoritma pencarian string matching yang digunakan adalah algortima Knuth-Morris-Pratt.
3.        Tools yang digunakan untuk merancang aplikasi ini adalah Eclipse Galileo dan emulatornya adalah emulator android dengan platform 2.2 Froyo.
4.         Aplikasi ini dijalankan pada handphone yang didukung dengan sistem operasi android versi 2.2 Froyo sampai dengan 4.1 Jelly Bean
5.         Mengingat banyak kata yang terdapat dalam istilah latin flora dan fauna, maka penulis membatasi kata yang diinputkan atau kata yang digunakan yaitu sebanyak 5 kata.
6.        Tool untuk merancang database adalah Sqlite.
7.        Aplikasi kamus latin flora dan fauna yang dirancang ini hanya menerjemahkan dari istilah latin flora dan fauna (hewan atau tumbuhan) kedalam bahasa indonesia, tidak untuk sebaliknya.


1.4    Tujuan dan Manfaat Penelitian
1.4.1   Tujuan Penelitian
Tujuan penulis melakukan penelitian ini, yaitu :
1.        Untuk memproses mengetahui istilah latin flora dan fauna pada kamus.
2.        Untuk menerapkan algoritma Knuth-Morris-Pratt dalam pencarian istilah latin flora dan fauna.
3.        Untuk merancang aplikasi kamus istilah latin flora dan fauna berbasis android.
4.        Untuk menerapkan aplikasi kamus berbasis android pada  handphone yang mendukung sistem operasi android.

1.4.2   Manfaat Penelitian
Adapaun manfaat yang diharapkan berdasarkan tujuan penelitian yang telah disebutkan di atas, maka penelitian ini mempunyai manfaat sebagai berikut :
1.        Agar mempermudah pencarian kata istilah – istilah latin flora dan fauna pada mobile device.
2.        Memberikan alternative cara agar lebih mudah mengetahui arti dari istilah– istilah latin flora dan fauna dengan mudah saat dimanapun tanpa membeli kamus hanya dengan menggunakan mobile device berbasis android yang sudah ada aplikasi kamus istilah latin flora dan fauna.

1.5    Metode Penelitian
Dalam mengembangkan aplikasi ini digunakan metodologi Rational Unifed Process (RUP). RUP merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai praktek terbaik yang terdapat dalam industri pengembangan perangkat lunak. Untuk membuat integrasi baru dalam bahasa pemodelan antar tool dan proses dalam RUP ini menggunakan UML (Unified Modeling Language). Adapun 4 tahapan kerja dari yang penulis lakukan adalah sebagai berikut:


1.        Pengumpulan data
Dilakukan dengan membaca literatur yang berkaitan dengan pembahasan dan tema yang dibuat. Cara yang dilakukan antara lain dengan membaca buku android , buku pendukung  lain, dan juga dari situs – situs hasil browsing di internet.
2.        Tahapan analisa
pada tahapan ini penulis melakukan penganalisan terhadap perancangan sistem yang akan dibangun dan menentukan batasan ruang lingkup permasalahan.
3.        Tahapan desain
Dalam tahpan ini  penulis melakukan desain secara lengkap sesuai dengan tahapan analisa yang sebelumnya.
4.        Tahapan pengujian dan implementasi
Pada tahapan ini penulis memeriksa kembali dari tahapan analisa dan desain kemudian akan dilakukan pengujian hasil desain dan berikutnya dilakukan implementasi.

1.6    Sistematika Penulisan
Sistematika penulisan skripsi ini adalah sebagai berikut:
BAB I      : PENDAHULUAN
Bab ini membahas tentang latar belakang masalah, perumusan masalah, batasan masalah, tujuan, manfaat, metode  penelitian serta sistematika penulisan.
BAB II    : LANDASAN TEORI
Pada bab ini akan dijelaskan tentang teori yang berhubungan dengan masalah yang dikaji dalam pembuatan aplikasi ini seperti konsep sistem penerjemahan, kamus, konsep pencarian stirng, algoritma knuth-morris-pratt dan juga tentang android dan software pendukung android.
BAB III   : ANALISA DAN PERANCANGAN
Bab ini menguraikan tentang analisa sistem berjalan dan perancangan sistem yang akan diterapkan.
BAB IV   : ALGORITMA DAN IMPLEMENTASI
Bab ini berisi tentang perangkat implementasi program, implementasi dan pengujian program dari sistem penerjemah yang dibangun.
BAB V    : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil analisa bab–bab sebelumnya. Serta memberikan saran–saran untuk mengembangkan suatu aplikasi yang lebih efektif.










BAB II
LANDASAN TEORI



2.1 Implementasi

Implementasi adalah kegiatan akhir dari proses penerapan sistem baru dimana sistem yang baru akan dioperasikan secara menyeluruh. Implementasi bertujuan untuk melakukan proses penerapan sistem yang baru (Kusrini, Andri Koniyo, 2007 : 279). Berdasarkan pengertian tersebut dapat disimpulkan bahwa implementasi merupakan tindakan yang dilakukan untuk melaksanakan atau merealisasikan program-program  yang telah disusun demi tercapainya tujuan dari kebijakan atau program-program yang telah direncanakan.
Adapun unsur-unsur implementasi meliputi :
1.    Adanya program yang dilaksanakan
2.    Adanya kelompok target, yaitu masyarakat yang menjadi sasaran dan diharapkan akan menerima manfaat dari program tersebut.
3.    Adanya pelaksanaan, baik organisasi atau perorangan yang bertanggung jawab dalam pengelolaan, pelaksanaan maupun pengawasan dari proses penerapan tersebut.

2.2 Kamus

Kamus adalah alat bantu untuk menuntut kita memahami makna sebuh kata (Ahmad Iskak, 2008, 52). Selain menerangkan maksud suatu perkataan, kamus juga dapat digunakan sebagai pedoman bagaimana suatu kata digunakan.  Kamus juga berfungsi untuk membantu seseorang mengenal perkataan baru. Selain menerangkan maksud kata, kamus juga mungkin mempunyai pedoman sebutan, asal usul (etimologi) sesuatu perkataan dan juga contoh penggunaan bagi sesuatu perkataan. Kata kamus diserap dari bahasa Arab qamus, dengan bentuk jamaknya qawamis. Kata arab itu sendiri berasal dari kata Yunani okeanos yang berarti lautan. Sejarah itu jelas memperlihatkan makna dasar yang terkandung dalam kamus, yaitu wadah pengetahuan khususnya pengetahuan bahasa yang tidak terhingga dalam dan luasnya. Kamus merupakan buku acuan yang memuat kata dan ungkapan yang biasanya disusun menurut abjad dan berisi tentang makna dan pemakaiannya. Dalam dunia pendidikan yang terdiri dari berbagai macam istilah–istilah yang tidak semua orang mengetahuinya.
Kamus merupakan  sejenis  buku  rujukan  yang  menerangkan makna  kata‑kata. Kamus berfungsi untuk membantu seseorang mengenal perkataan baru. Selain menerangkan maksud kata, kamus juga mungkin mempunyai pedoman sebutan  asal-usul (etimologi) sesuatu perkataan dan juga contoh penggunaan bagi sesuatu perkataan. Untuk memperjelas kadang kala terdapat juga ilustrasi di dalam kamus. Biasanya hal ini terdapat dalam kamus bahasa Perancis. Kata kamus diserap dari bahasa Arab qamus, dengan bentuk jamaknya qawamis.

2.3 Flora dan Fauna

Flora berasal dari bahasa latin yaitu Flora, yang mana bisa diartikan sebagai alam tumbuhan atau nabatah yang menyangkut semua aspek mengenai macam jenis tumbuhan dan tanaman. Biasanya dalam penggunaanya akan selalu di beri-imbuhan dengan naman geografis, misalnya saja nabatah Jawa, nabatah Asia atau nabatah Eropa.
Fauna berasal dari bahasa latin, dan bisa di artikan sebagai alam hewan yang menyakup segala jenis dan macam hewan serta kehidupannya yang berada di wilayah dan masa tertentu. Flora dan Fauna dan kehidupan lainnya seperti fungi yang hidup bersama dalam wilayah dan waktu yang sama bisa di sebut dengan Biota. Sama halnya dengan flora dan fauna juga sering di tulis dengan imbuhan nama geografis di belakangnya. Misalnya saja, alam hewan peralihan, alam hewan Asia, atau alam hewan Australia. Di dalam ilmu Biologi keberadaan flora dan fauna di suatu wilayah ini biasanya di gunakan untuk mempelajari gen dan spesies tanaman dan hewan, pertumbuhan dan perkembang biakan, hubungan antara satu sama lain yang berada di wilayah yang sama. Selain itu lingkungan juga bisa membantu lebih lanjut mengenai klarifikasi flora dan fauna. Misalnya, flora dan fauna yang hidup suatu wilayah akan merujuk pada keberadaan tanaman dan hewan yang hidup di kedalaman air maupun lingkungan sekitar dari wilayah geografis tersebut (Sumber : http://www.satwa.net/19/pengertian-flora-dan-fauna.html, tanggal akses 22 Mei 2014).
2.4     String Matching

String Matching adalah proses pencarian semua kemunculan query yang selanjutnya disebut pattern ke dalam string yang lebih panjang atau teks (Riyanarto Sarno, Yeni Anistyasari, dan Rahimi Fitri, 2012 : 11). String Matching dirumuskan sebagai berikut :
              x = x[0…m-1]...................................................... (2.1)
              y = y[0…n-1]....................................................... (2.2)
Dimana :
              x adalah pattern
              m adalah panjang pattern
              y adalah teks
              n adalah panjang teks
Kedua string terdiri dari sekumpulan karakter yang disebut alfabet yang dilambangkan dengan ∑ (sigma) dan mempunyai ukuran σ (tao). String matching dibagi menjadi dua, yakni exact matching dan heuristic atau statistical matching.

2.4.1   Exact Matching

Exact matching digunakan untuk menemukan pattern yang berasal dari satu teks (Riyanarto Sarno, Yeni Anistyasari, dan Rahimi Fitri, 2012, 11). Contoh pencarian exact matching adalah pencarian kata “pelajar” dalam kalimat “Saya seorang pelajar” atau “Saya seorang siswa”. Sistem akan memberikan hasil bahwa kalimat pertama mengandung kata “pelajar” sedangkan kalimat kedua tidak, meskipun kenyataannya pelajar dan siswa adalah kata yang bersinonim, Algoritma exact matching diklasifikasi menjadi tiga bagian menurut arah pencariannya, yaitu:
1.      Arah pembacaan dari kiri ke kanan. Algoritma yang termasuk kategori ini adalah Brute Force, Morris dan Pratt (yang kemudian dikembangkan oleh Knuth, Morris, dan Pratt).
2.      Arah pembacaan dari kanan ke kiri. Algoritma yang termasuk kategori ini adalah Boyer dan Moore yang kemudian dikembangkan menjadi algoritma Turbo Boyer-Moore, Tuned Boyer-Moore, dan Zhu-Takaoka.
3.      Arah Pembacaan yang ditentukan pemrogram. Algoritma yang termasuk kategori ini adalah algoritma Colussi, Crochemore-Perrin.

2.4.2   Heuristic Matching

Heuristic matching adalah teknik yang digunakan untuk menghubungkan dua data terpisah ketika exact matching tidak mampu mengatasi karena ada pembatasan pada data yang tersedia (Riyanarto Sarno, Yeni Anistyasari, dan Rahimi Fitri, 2012 : 26). Heuristic Matching dapat dilakukan dengan perhitungan distance antara pattern dengan teks. Exact Matching dan Heuristic Matching memiliki kelemahan dalam menemukan kata yang memiliki kemiripan makna tetapi berbeda penulisan.

2.5  Algoritma

Istilah algoritma berasal dari nama seorang pengarang berkebangsaan Arab bernama Ja’fat Mohammed bin Musa al Khowarizmi (tahun 790 – 840), yang sangat terkenal dengan sebutan bapak Aljabar. Secara defenisi algoritma adalah alur pemikiran bersifat logis yang dapat dituangkan ke dalam bentuk tulisan (Antonius Rachmat C, 2010 : 4). Sebuah algoritma dikatakan benar (correct) jika algoritma tersebut berhasil mengeluarkan output yang benar untuk semua kemungkinan input. Algoritma dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai. Biasanya sebuah algoritma memiliki sifat bisa dihitung (computable) atau bisa diukur (measurable). Contoh sederhana dari sebuah algoritma adalah pengiriman surat. Misalkan seseorang ingin mengirimkan surat kepada kenalannya, langkah-langkah yang harus dilakukan oleh pengirim agar surat tersebut bisa sampai ke tujuan adalah sebagai berikut :
1.    Menulis surat
2.    Surat dimasukkan ke dalam amplop tertutup
3.    Amplop ditempeli perangko
4.    Pergi ke Kantor Pos terdekat untuk mengirimkannya
Menurut Donal E. Knuth dalam buku Algortima dan Pemrograman dengan Bahasa C, 2010, algoritma yang baik memiliki kriteria sebagai berikut :
1.    Input
Dari sisi input, program harus memiliki nol input atau lebih dari nol pengguna.
2.    Output
Dari sisi output, program harus memiliki minimal satu output. Output program bisa ditampilkan ke layar, ditulis ke file dan bahkan disimpan dalam basis data.
3.    Finite (Terbatas)
Program harus pasti dan berhenti, bukan tak terhingga. Suatu program yang dieksekusi haruslah berhenti dan selesai.
4.    Definite (Pasti)
Suatu program harus jelas kapan mulai dan kapan berakhir, apa tujuannya dan memiliki logika yang jelas agar dapat menghasilkan output yang sesuai dengan yang diharapkan.
5.    Efisien
Artinya program harus tepat, tidak memakan banyak memori dan tidak melakukan hal-hal yang tidak perlu.
Berdasarkan defenisi dan contoh algoritma diatas, maka dapat disimpulkan bahwa algoritma itu adalah urutan langkah-langkah logis yang digunakan untuk menyelesaikan masalah tertentu.

2.6 Algoritma Knuth Morris Pratt

Algoritma Knuth-Morris-Pratt merupakan proses pencocokan string (Riyanarto Sarno, Yeni Anistyasari, dan Rahimi Fitri, 2012 : 18). Bila terjadi ketidak cocokan pada saat pattern sejajar dengan teks [i..i + n -1], kita bisa menganggap ketidak cocokan pertama terjadi di antara teks [i + j] dan pattern [j], dengan <j<n. Berarti, teks [i..i + j]=pattern [0..j + 1] dan a=teks [i+j] tidak sama dengan b=pattersn [j], ketika kita menggeser.
Dengan kata lain, pencocokan string akan berjalan secara efesien bila kita mempunyai tabel yang menentukan berapa panjang kita seharusnya menggeser seandainya terdeteki ketidak cocokan di karakter ke-j dari pattern. Tabel itu harus memuat next[j] yang merupakan posisi karakter pattern[j] setelah digeser, sehingga kita menggeser pattern secara besar j-next[j] relatif terhadap teks.
Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokan string  adalah sebagai berikut :
1.        Algoritma Knuth-Morris-Pratt mulai mencocokan pattern pada awal teks.
2.        Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern, dengan karakter di teks yang bersesuaian sampai salah satu kondisi berikut terpenuhi :
a.         Karakter di pattern dan diteks yang dibandingkan tidak cocok (mismatch).
b.         Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan diposisi ini.
3.        Algoritma kemudian menggeser pattern berdasarkan table next, lalu menghitung langkah 2 sampai pattern berada di unjung teks.

Contoh penggunaan algoritma Knuth-Morris-Pratt untuk pencarian pattern dalam teks :





2.7  Android
2.7.1        Sejarah Android

Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi (Nazruddin Safaat H, 2012 : 1). Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi. Awalnya, Google Inc,  membeli Android Inc yang merupakan pendatang baru yang membuat peranti lunak untuk phonsel (smartphone). Kemudian untuk mengembangkan android dibentuklah Open Handset Alliance, konsorium dari 34 perusahaan peranti keras, peranti lunak dan telekomunikasi, termasuk Google, HTV, intel, Motorola, Qualcomm, T-Mobile dan Nvidia. Pada saat perilisan perdana android, 5 Nopember 2007, android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Dilain pihak, Google merilis kode-kode android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler.
Didunia ini terdapat dua jenis distributor sistem operasi android. Pertama mendapat dukugan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD). Sekitar September 2007 Google mengenalkan Nexus One, salah satu jenis smartphone yang menggunakan android sebagai sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 Januari 2010. Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja android ARM Holdings, Artheros Communications, diproduksi oleh Asustek Computer Inc, Germin Ltd, Softbank, Sony Ericsson, Toshiba Corp dan Vodafone Group Plc, seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana yaitu android, perangkat mobile yang merupakan modifikasi kernel Linux 2.6.
Pada masa saat ini sebagian besar vendor-vendor smartphone sudah memproduksi smartphone berbasis android, vendor-vendor itu antara lain HTC, Motorola, Samsung, LG, HKC, Huawei, Archos, Webstation Camangi, Dell, Nexus, SciPhone, WayneQ, Sony Ericsson, LG, Acer, Philips, T-Mobile, Nexian, IMO, Asus dan masih banyak lagi vendor smartphone di dunia yang memproduksi android. Hal ini karena android itu adalah sistem operasi yang open source sehingga bebas didistribusikan dan dipakai oleh vendor manapun.
Tidak hanya menjadi sistem operasi di smartphone, saat ini android menjadi pesaing utama dari Apple pada sistem operasi tablet PC. Pesatnya pertumbuhan android dikarena android itu sendiri adalah platform yang sangat lengkap baik itu sistem operasinya serta dukungan yang sangat tinggi dari komunikasi open source di dunia, sehingga android terus berkembang.

2.7.2   Versi Android

Telepon pertama yang memakai sistem operasi android adalah HTC Dream, yang dirilis pada 22 Oktober 2008. Dalam perkembangannya android memiliki versi-versi yaitu:
1.        Android versi 1.1
Pada 9 Maret 2009, google merilis android versi 1.1. Android versi ini dilengkapi dengan pembaruan estesis pada aplikasi jam, alarm,  voice search
pengiriman pesan dengan Gmail, dan pemberitahuan email.
2.      Android versi 1.5 (Cupcake)
Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke youtube dan gambar ke picasa langsung dari telepon.

3.      Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada bulan September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera, camcorder dan galeri yang dintegrasikan, CDMA dan EVDO, 802.1x, VPN, gestures, dan Text-to-speech engine kemampuan dial kontak, teknologi text to change speech, tidak tersedia pada semua ponsel pengadaan resolusi VWGA.

4.      Android versi 2.0 dan 2.1 (Eclair)

Pada 3 Desember 2009 kembali diluncurkan ponsel android dengan versi 2.0 dan 2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital zoom, dan bluetooth 2.1.
5.       Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portable, dan kemampuan auto update dalam aplikasi android market.

6.      Android versi 2.3 (Gingerbread)

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

7.      Android versi 3.0 dan 3.1 (Honeycomb)

Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom.
8.        Android versi 4.0 (ICS: Ice Cream Sandwich)
Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb untuk smartphone dan menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, dan berbagi informasi dengan menggunakan NFC. Ponsel pertama yang menggunakan sistem operasi ini adalah Samsung Galaxy Nexus.

9.      Android versi 4.1 (Jelly Bean)

Android Jelly Bean yaang diluncurkan pada acara Google I/O lalu membawa sejumlah keunggulan dan fitur baru. Penambahan baru diantaranya meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui voice search yang lebih cepat. Tak ketinggalan google now juga menjadi bagian yang diperbarui. Google now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olah raga. Sistem operasi Android Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google Nexus 7.

10.    Android versi 4.2 (Jelly Bean)

Fitur photo sphere untuk panaroma, day dream sebagai screensaver, power control, lock screen widget, menjalankan banyak user dalam tablet saja, widget terbaru. Android 4.2 Pertama kali dikenalkan melalui LG Google Nexus 4.

2.7.3   Arsitektur Android

Secara garis besar sistem operasi android terbagi menjadi lima tingkatan yaitu :
1.    Applications dan Widgets
Applications dan Widgets ini adalah layer dimana pengguna berhubungan dengan aplikasi saja. Di layer terdapat aplikasi inti termasuk client email, program SMS, kalender, peta, browser, kontak dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemograman java.
2.    Applications dan Frameworks
Android adalah open development platform yaitu android menawarkan kepada pengembang atau memberi kemampuan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service background, mengatur alarm dan menambahkan status notifications dan sebagainya. Pengembang memiliki akses penuh menuju API Frameworks seperti yang dilakukan oleh aplikasi yang kategori inti. Arsitektur aplikasi dirancang supaya pengguna dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse). Sehingga bisa disimpulkan applications frameworks ini adalah layer dimana para pembuat aplikasi melakukan pengembangan dan pembuatan aplikasi yang akan dijalankan di sistem operasi android. Komponen-komponen yang termasuk di dalam applications frameworks adalah sebagai berikut:
1.    Views
2.    Content Provider
3.    Reources Manager
4.    Notifications Manager
5.    Activity Manager
3.    Libraries
Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas kernel, Layer ini meliputi berbagai library C atau C++ seperti Libe dan SSL, serta :
1.    Libraries media untuk pemutaran media audio dan video
2.    Libraries untuk manajemen tampilan
3.    Libraries Graphics mencakup SGL dan OpenGL untuk gratifs 2D dan 3D
4.    Libraries SQLite untuk dukungan database
5.    Libraries SLL dan WebKit terintegrasi dengan web browser dan security
6.    Libraries LiveWebcore mencakup modern web browser dengan engine embeded we view
7.    Libraries 3D yang mencakup implementasi OpenGL, ES 1.0, API’s.
Libraries berisi semua kode program yang menyediakan layanan-layanan utama sistem operasi android.
4.    Android Run Time
Kedudukannya setingkat dengan libraries, android run time menyediakan kumpulan pustaka yang dapat diaktifkan oleh pengembang untuk menulis kode aplikasi android dengan bahasa pemrograman java. Layer yang membuat aplikasi android dapat dijalankan dimana dalam prosesnya menggunakan Implementasi Linux. Dalvik Virtual Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi Android. Di dalam android run time dibagi menjadi dua bagian yaitu:
a.       Core Libraries
Aplikasi Android dibangun dalam bahasa java, sementara Dalvik sebagai Virtual mesinnya bukan virtual machine Java, sehingga diperlukan sebuah libraries yang berfungsi menterjemahkan bahasa java yang ditangani oleh Core Libraries.
b.      Dalvik Virtual Machine
Virtual mesin berbasis register efesien, dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading dan manajemen tingkat rendah
5.    Linux Kernel
Linux Kernel adalah layer dimana inti dari operating system dan processing, memory, resources, drivers dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah ilnux kernel release 2.6 jika ingin mempelajari linux kernel ini, dapat mengunduh linux kernel secara gratis di situs www.kernel.org.

Berikut ini adalah gambar arsitektur sisitem operasi android :

2.7.1   Fundamental Aplikasi
Aplikasi android ditulis dalam bahasa pemrograman java. Kode java dikompilasi dengan data file resource yang dibutuhkan oleh aplikasi, dimana prosesnya di-package oleh tools yang dinamakan apt tools ke dalam paket android sehingga menghasilkan file dengan ekstensi apk. File apk itulah yang disebut dengan aplikasi, dan nantinya dapat diinstal diperangkat mobile.
Ada enam jenis komponen pada aplikasi android:
1.    Activities
Activity akan menyediakan User Interface (UI) kepada pengguna, sehingga pengguna dapat melakukan interaksi sebuah aplikasi android bisa jadi hanya memiliki activity, tetapi umumnya aplikasi banyak activity tergantung pada tujuan aplikasi dan desain dari aplikasi tersebut. Satu activity biasanya akan dipakai untuk menampilkan aplikasi atau yang bertindak sebagai user interface (UI) saat aplikasi diperlihatkan kepada user. Untuk pindah dari satu activity ke activity lain dapat melakukannya dengan satu even, misalnya click tombol. Memilih opsi atau menggunakan triggers tertentu.
2.    Service
Aplikasi ini akan memiliki dua atau lebih activity yang memungkinkan user untuk memilih istilah misalnya, atau menulis istilah dan input istilah.
3.    Broadcast Receiver
Broadcast Receiver berfungsi menerima dan bereaksi untuk menyampaikan notification. Contoh broadcast seperti notification zona waktu berubah, baterai low, gambar telah selesai diambil oleh camera, atau pengubahan referensi bahasa yang digunakan. Broadcast receiver tidak memiliki user interface (UI), tetapi memiliki sebuah activity untuk merespon informasi informasi yang diterima atau mungkin menggunakan Notification Manager untuk memberitahu kepada pengguna, seperti lampu latar atau vibrating (getaran) perangkat dan lain sebagainya.
4.    Content Provider
Content Provider membuat kumpulan aplikasi data secara spesifik sehingga bisa digunakan oleh aplikasi lain. Data disimpan dalam file sistem seperti data base SQLite. Content Provider menyediakan cara untuk mengakses data yang dibutuhkan oleh suatu activity, misalnya ketika menggunakan aplikasi yang membutuhkan peta (map) atau aplikasi yang membutuhkan untuk mengakses data kontak dan navigasi, maka disinilah fungsi Content Provider.

2.8  Database
Kata database dalam bahasa Indonesia diartikan sebagai basis data, dimana pengertian luas dari basis data adalah suatu aplikasi yang menyimpan data dan memelihara secara menyeluruh dan secara sistematis memelihara data dan membuat data tersebut tersedia saat dibutuhkan (Janner Simarmata, 2007, 2). Basis data memiliki dua bagian utama yaitu file yang memegang basis data fisik dan perangkat lunak Database Manajement Sistem (DBMS) menggunakan aplikasi untuk mengakses data. DBMS bertanggung jawab menguatkan strusktur basis data, seperti berikut :
1.    Memelihara hubungan antar data di dalam basis data.
2.    Memastikan bahwa data tersimpan secara tepat, dan menetapkan aturan hubungan data agar tidak dilanggar.
3.    Pemulihan (recovery) semua data dari kegagalan sistem.
Kebutuhan basis data dalam sistem informasi meliputi:
1.      Memasukan, menyimpan dan mengambil data
2.      Membuat laporan berdasarkan data yang telah disimpan
Dalam perancangan suatu perangkat lunak aplikasi, seperti aplikasi yang akan dirancang pada skripsi ini diperlukan suatu database untuk menyimpan istilah-istilah bahasa kedokteran. Database yang akan dirancang nantinya akan dikoneksikan ke android, nama software yang digunakan untuk merancang database tersebut adalah Sqlite.

2.8.1   SQLite
QLite adalah database yang berukuran kecil , berdiri sendiri, bukan database client server, tanpa konfigurasi namun mempunyai fitur penuh perintah SQL. Agar lebih jelas tenang sqlite akan saya jelaskan dalam format FAQ (sumber : http://www.candra.web.id/2012/11/21/pengantar-sqlite, tanggal akses 13 Juni 2014). SQLite merupakan produk public domain, artinya tidak punya lisensi, dan boleh mengambil source code-nya secara free. Tipe data yang digunakan dalam  sqlite sama dengan yang digunakan pada software database lainnya, yaitu numeric (integer,float, double), text (char,varchar,text),  dan date time.
Contoh produk yang menggunakan SQLite seperti PHP, Firefox, Chrome, Iphone dan Android. Di Browser firefox, Sqlite dipakai untuk menyimpan konfigurasi, bookmark dan history website sedangkan di smartphone android, SQLite dipakai untuk menyimpan contact, data-data aplikasi seperti kamus.

2.9     Unified Modeling Language (UML)

Dalam perancangan suatu aplikasi diperlukan adanya bahasa pemodelan terhadap aplikasi yang akan dibuat. Bahasa pemodelan yang akan dibuat harus ada standarisasi agar orang di berbagai negara dapat mengerti akan pemodelan perangkat lunak yang dirancang. Unified modeling language sebagai bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam Ms. Word untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan atau aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem.
Unfied modeling language adalah sebuah bahasa standard untuk pengembangan sebuah software yang dibangun dengan menggunakan teknik pemrograman berorintasi objek (Rosa A.S-M.Shalahuddin,  2001, 118). Unfied modeling language tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan seperti requirements, arsitektur, design, source code, project plan, test, dan prototype. Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model.

2.9.1        Hubungan (Relationship)

Ada 4 macam hubungan di dalam penggunaan Unified Modelling Language, yaitu:
1.      Dependency.
Menggambarkan hubungan semantik antara dua benda  yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency menggambarkan sebuah panah dengan garis putus-putus.
2.      Association
Menggambarkan hubungan antar benda struktural yang terhubung diantara objek. Kesatuan objek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya.
3.      Generalizations
Menggambarkan hubungan khusus dalam objek anak (child) yang menggantikan objek  parent (induk). Dalam hal ini, objek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada objek induk. Digambarkan dengan garis panah.

4.      Realizations
Menggambarkan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations.

2.9.2   Bagan dan Diagram
UML terdiri atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun  solusi  dari  permasalahan suatu model (Rosa A.S M. Shalahuddin, 2011, 120). UML mempunyai 9 diagram, yaitu :
1.      Use Case Diagram, menggambarkan sekelompok use case dan aktor yang disertai dengan hubungan diantaranya. Berikut ini adalah simbol-simbol yang digunakan pada use case diagram :

2.      Class Diagram, menggambarkan struktur sistem dari defenisi kelas yang akan dibuat untuk membangung sistem. Class diagram memiliki atribut dan metode atau operasi.  Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsi-fungsi sesuai dengan kemampuan sistem. Sebagai aturan secara umum maka sebuah metode yang dibuat  harus memiliki kadar cohesien yang kuat dan kadar coupling yang lemah. Berikut ini adalah simbol-simbol yang ada pada digram kelas :

3     Activity Diagram, menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem. Yang perlu diperlihatkan disini adalah bahwa diagram aktivitas menggambrkan akitivitas sistem bukan apa yang dilakukan aktor. Berikut ini adalah simbol-simbol yang ada pada diagram aktivitas :

4      Object Diagram, yang merupakan varian dari kelas diagram yang memperlihatkan lebih detail banyaknya objek yang mengintantiasi (instances) kelas. Pada objek diagram harus dipastikan semua kelas yang sudah didefenisikan harus dipakai objeknya, karena jika tidak, pendefenisian kelas itu.
5      State Diagram, yang memperlihatkan semua keadaan (state) yang dapat dimiliki oleh kelas dan event yang dapat merubah keadaan tersebut.
6.   Sequence Diagram, yang memperlihatkan kolaborasi dinamika antara objek-objek dengan suatu urutan pesan (a sequence ofmessage) antar objek tersebut. Berikut ini adalah simbol-simbol yang ada pada diagram aktivitas 

Proudly Powered by Blogger.