BAB 2
TINJAUAN PUSTAKA
2.1
Artificial Intelligence Artificial Intelligence atau yang biasa disebut Kecerdasan Buatan atau Inteligensia Semu dalam Bahasa Indonesia didefinisikan sebagai kecerdasan yang ditunjukkan oleh sebuah mesin atau software. Lebih spesifik lagi, menurut Russell dan Norvig (2010:2) menyatakan bahwa inteligensia semu adalah sebuah pembelajaran yang membahas tentang penghitungan yang membuat komputer mampu untuk merasakan, melakukan, dan memikirkan sesuatu. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan saraf tiruan dan robotika. Menurut Russell dan Norvig (2010:2) terdapat empat macam pendekatan dalam Artificial Intelligence : 1. Thinking humanly 2. Acting humanly 3. Thinking rationally 4. Acting rationally Thinking humanly dan acting humanly adalah dua definisi dalam arti yang sangat luas. Sampai saat ini, pemikiran manusia yang diluar rasio, yakni refleks dan intuitif, belum dapat ditirukan sepenuhnya oleh komputer. Dengan demikian kedua definisi ini dirasa kurang tepat untuk saat ini. Jika kita menggunakan definisi ini, maka banyak produk komputasi cerdas saat ini yang tidak layak disebut sebagai produk AI. Definisi thinking rationally terasa lebih sempit daripada acting rationally. Oleh karena itu, definisi AI yang paling tepat untuk saat ini adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga
7
8 bisa melakukan aksi secara rasional berdasarkan hasil penalaran tersebut (Suyanto, 2014:4).
2.1.1 Thinking Humanly: The Cognitive Modeling Approach Jika kita mengibaratkan sebuah program dapat berpikir seperti manusia, maka kita harus tahu terlebih dahulu bagaimana seorang manusia berpikir. Ada tiga macam cara yang dapat dilakukan dalam pendekatan ini: melalui introspeksi, mencoba untuk menangkap pemikiran kita sendiri pada saat kita berpikir; melalui eksperimeneksperimen psikologi, yaitu mengamati tingkah laku seseorang secara langsung; dan melalui brain imaging, yaitu mengamati cara kerja otak secara langsung.
2.1.2 Acting Humanly: The Turing Test Approach Pada tahun 1950, Alan Turing merancang sebuah tes bagi computer yang memiliki inteligensia untuk menguji apakah komputer tersebut mampu mengelabui manusia yang menginterogasinya melalui teletype (komunikasi berbsasis teks jarak jauh). Jika interrogator tersebut tidak dapat membedakan yang diinterogasi adalah komputer atau manusia, maka komputer berinteligensia tersebut lulus dari Turing test. Untuk dapat lulus dari tes tersebut, komputer harus memiliki kemampuan sebagi berikut: •
Natural
language
processing,
untuk
memungkinkan
berkomunikasi dengan sukses dalam Bahasa Inggris. •
Knowledge representation, untuk menampung apa yang komputer itu tahu atau dengar.
•
Automated reasoning, untuk menggunakan informasi yang sudah ditampung tadi untuk menjawab pertanyaan dan menarik sebuah kesimpulan baru.
•
Machine learning, untuk dapat beradaptasi dengan keadaan baru dan mampu mendeteksi dan mengekstrapolasi pola.
•
Computer vision, untuk mempersepsikan objek
•
Robotics, untuk memanipulasi dan menggerakkan objek.
9 Turing test sengaja menghindari interaksi fisik antara interrogator dan komputer karena simulasi fisik manusia tidak memerlukan inteligensia.
2.1.3 Thinking Rationally: The “Laws of Thought” Approach Filsuf Yunani Aristoteles adalah salah satu yang pertama untuk mencoba untuk menyusun "pemikiran yang benar," yang adalah proses pemikiran tak terbantahkan. Silogismenya menyediakan polapola untuk struktur argumen yang selalu menghasilkan kesimpulan yang
benar
jika
diberikan
premis
yang
benar,
sebagai
contoh,”Sokrates adalah seorang manusia; setiap manusia pasti akan mati; maka dapat disimpulkan Sokrates akan mati.” Hukum pemikiran seperti ini seharusnya mengatur bagaimana pikiran beroperasi; studi mereka memprakarsai sebuah bidang yang disebut logika. Pada tahun 1965 sudah terdapat program yang mampu, pada prinsipnya untuk memecahkan masalah yang dideskripsikan dalam notasi logis (meskipun jika tidak ada solusi, program akan mengalami looping forever). Yang disebut tradisi logicist dalam artificial intelligence diharapkan diciptakan dalam sebuah program agar tercipta intelligent system. Terdapat dua masalah dalam pendekatan ini, yaitu: 1. Tidak mudah untuk membuat pengetahuan informal dan menyatakan pengetahuan tersebut ke dalam formal term yang diperlukan dalam notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%. 2. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam prinsip” dan memecahkannya ”dalam dunia nyata”.
2.1.4 Acting Rationally: The Rational Agent Approach Pendekatan ini menggunakan sesuatu yang disebut dengan rational agent. Sebuah agent adalah sesuatu yang bertindak (diambil dari Bahasa Latin agere, yang berarti untuk melakukan), Rational
10 agent adalah salah satu yang bertindak untuk mencapai hasil terbaik atau, ketika terdapat ketidakpastian, mengeluarkan hasil terbaik yang diharapkan. Membuat inferensi yang logis merupakan bagian dari rational agent. Hal ini disebabkan karena satu-satunya cara untuk melakukan aksi secara rasional adalah dengan menalar secara logis. Melalui penalaran secara logis, dapat ditarik suatu kesimpulan bahwa aksi yang diberikan akan mencapai tujuan atau tidak. Apabila tujuan tercapai, maka agent dapat bertindak sesuai dengan kesimpulan tersebut. Terdapat empat teknik dasar dalam pemecahan masalah dalam AI (Suyanto, 2014:2), yaitu: searching, reasoning, planning , dan learning. Keempat teknik yang memiliki karakteristik unik tersebut, bisa
digunakan
secara
sendiri-sendiri
atau
digabungkan.
Penggabungan bisa dilakukan secara serial atau paralel untuk membangun aplikasi yang sederhana hingga sebuah sistem yang lebih besar. Misalkan, suatu aplikasi bisa dibangun menggunakan teknik searching yang diikuti teknik reasoning yang dilakukan secara paralel dengan teknik learning.
Gambar 2.1 Empat teknik dasar dalam AI Sumber: (Suyanto, 2014:3)
11 2.2
Speech Recognition Speech Recognition (SR) atau disebut juga Automatic Speech Recognition (ASR) adalah suatu pengembangan teknik dan sistem yang memungkinkan komputer untuk menerima masukan berupa kata yang diucapkan Menurut Becchetti dan Ricotti (2004:6) pada intinya ASR (Automatic Speech Recognition) System seperti manusia, mengandalkan parametric model dimana pengetahuan dapat diperoleh melalui tuning parameter. Parameter diatur sehingga model tersebut merepresentasikan fenomena yang bisa dikenali dengan cara yang seakurat mungkin. Pada awalnya, meski model diinisialisasikan untuk manusia, model juga harus diinisialisasikan untuk ASR. Ini merupakan tahapan awal untuk ASR System. Kemudian model memperoleh pengetahuan melalui mengamati sampel dari objek yang harus dikenali secara berulang kali, dalam hal ini suara akustik dan hal terkait lainnya. Tahapan ini disebut sebagai “training” atau pelatihan dan merupakan tahapan kedua pada “hidup” ASR (Becchetti dan Ricotti, 2004:6). Bagi manusia, pengenalan terdiri dari menghubungkan ucapan untuk melakukan suatu konsep, untuk ASR deretan kata-kata dikaitkan dengan ucapan. Dalam ASR, pengenalan dilakukan dengan mencari deretan katakata yang paling cocok dengan pengamatan akustik sesuai dengan yang disediakan model. Dapat diasumsikan bahwa otak melakukan prosedur yang sama (Becchetti dan Ricotti, 2004:7). Akurasi pengenalan pada dasarnya tergantung oleh banyaknya materi pelatihan yang diamati oleh model dan pada kapasitas model untuk menyerap pengetahuan, dengan kata lain kompleksitas model tersebut. ASR tidak mampu melakukan pelatihan 365 hari selama bertahun-tahun dan modelnya jauh lebih sederhana dari bagian dari otak yang ditujukan untuk melakukan pengenalan ucapan; ini menunjukkan batasan performa ASR dibandingkan manusia (Becchetti dan Ricotti, 2004:7).
12 Teknologi speech recognition memiliki kelebihan seperti: •
Cepat Teknologi ini mempercepat transmisi informasi dan umpan balik dari transmisi tersebut. Contohnya pada komando suara. Hanya dalam selang waktu sekitar satu atau dua detik setelah kita mengkomandokan perintah melalui suara, komputer sudah memberi umpan balik atas komando kita.
•
Mudah digunakan Kemudahan teknologi ini juga dapat dilihat dalam aplikasi komando suara. Komando yang biasanya kita masukkan ke dalam komputer dengan menggunakan tetikus (mouse) atau papan ketik (keyboard) kini dapat dengan mudahnya kita lakukan tanpa perangkat keras, yakni dengan komando suara
Terdapat kekurangan dari teknologi speech recognition, diantaranya adalah: •
Rawan terhadap gangguan sinyal suara lain terutama di tempat yang ramai.
•
Kata-kata yang diucapkan sulit dikenali apabila cara pengucapan berbeda meskipun oleh pembicara yang sama. Intonasi, logat, dan kecepatan pengucapan sangat mempengaruhi
•
Bahasa lisan seringkali diucapkan tidak sesuai dengan kaidah tata bahasa yang baku
•
2.3
Jumlah kata yang dikenali masih terbatas
Interaksi Manusia Komputer Pada dasarnya aplikasi pada komputer dirancang untuk dapat berinteraksi dengan manusia sebagai user. Interaksi tersebut terjadi melalui user interface sebagai sarana manusia berinteraksi dengan komputer. Interaksi manusia komputer adalah pengaplikasian metode-metode yang digunakan
oleh
manusia
dalam
(Shneiderman dan Plaisant, 2010:22).
penerapan
penggunaan
komputer
13 2.3.1 Lima Faktor Manusia Terukur Pada perancangan user interface terdapat lima faktor yang harus diperhatikan untuk kemudahan user (Shneiderman dan Plaisant, 2010:32), yaitu: 1. Time to learn Lamanya waktu yang diperlukan user untuk mempelajari dan memahami cara menggunakan aksi-aksi yang relevan dalam mengerjakan tugas. 2. Speed of performance Lamanya waktu yang diperlukan user untuk menyelesaikan suatu tugas. 3. Rate of errors Kemungkinan seberapa banyak dan tipe kesalahan apa saja yang dapat dilakukan user. 4. Retention over time Seberapa baik user mampu mempertahankan pengetahuannya dalam periode waktu tertentu. 5. Subjective satisfaction Seberapa puas user terhadapa aspek-aspek yang terdapat di dalam user interface pada saat menggunakan aplikasi.
2.3.2 Delapan Aturan Emas Terdapat delapan aturan emas yang dapat dijadikan sebagai panduan dalam mendesain sebuah user interface (Shneiderman dan Plaisant, 2010:8889). Prinsip-prinsip tersebut antara lain: 1. Strive for consistency Konsistensi dibutuhkan dalam segala situasi, dalam pengunaan tampilan seperti menu, help screen, warna, layout, kapitalisasi, font, dan sebagainya. 2.
Cater to universal usability Mengenali kebutuhan dari user yang berbeda-beda serta memfasilitasi perubahan konten. Perbedaan tersebut meliputi rentang usia, ketidak mampuan, dan perbedaan teknologi dalam setiap kebutuhan panduan desain.
14 3.
Offer informative feedback Harusnya ada umpan balik (feedback) yang jelas untuk setiap aksi user.
4.
Design dialogs to yield closure Urutan langkah suatu aksi seharusnya disusun ke dalam grup dengan awal, tengah, dan akhir. Umpan balik yang informatif pada akhir aksi harus memberikan kepuasan.
5.
Prevent errors Sebaiknya menghindari terjadinya kesalahan (error) yang serius atau fatal ketika sistem digunakan oleh user dalam melakukan perancangan sistem,
6.
Permit easy reversal of actions Aksi-aksi yang dilakukan di dalam sistem harus dapat dikembalikan ke aksi atau keadaan yang sebelumnya, sehingga user dapat membatalkan (cancel) aksi ketika mengetahui adanya kesalahan aksi tersebut.
7.
Support internal locus of control User yang berpengalaman menginginkan experience pengendalian dimana pengguna menguasai antarmuka dan antarmuka tersebut merespon aksi dari user.
8.
Reduce short-term memory load Keterbatasan pemrosesan informasi dalam memori jangka pendek user merupakan salah satu hal yang harus diperhatikan
2.4
UML UML (Unified Modelling Language) adalah sekumpulan pemodelan konvensi yang digunakan untuk merincikan atau menggambarkan sebuah sistem perangkat lunak dalam hal objek dalam bentuk diagram (Whitten dan Bentley, 2007:371).
2.4.1 Class Diagram Class diagram adalah penggambarna grafis dari struktur objek statis sistem, menunjukkan kelas-kelas objek yang menyusun sistem tersebut dan juga hubungan antar kelas objek tersebut (Whitten dan Bentley, 2007:400). Class diagram dibuat berdasarkan dengan pemodelan objek yang terdiri dari:
15 1. Object Class Kumpulan instansi objek yang memiliki attributes dan behavior yang sama. Biasanya disebut hanya class. 2. Attributes Data yang merepresentasikan karakteristik sebuah objek. 3. Behavior Kumpulan sesuatu yang dapat dilakukan oleh sebuah objek dan sesuai dengan fungsi yang bekerja pada data objek (attributes). Dalam pemodelan objek juga sering disebut sebagai method, operation, atau service.
Gambar 2.2 Contoh Object Class beserta Attribute dan Behaviors (Whitten dan Bentley, 2007:375)
4. Object Class Relationship Relasi yang terdapat antar object class dan memiliki banyak arti, seperti: •
Association, merupakan relasi antar object class yang terhubung oleh garis.
•
Multiplicity, menandakan jumlah minimum atau maksimum kejadian satu object class dengan satu kejadian dari object class yang terkait.
16
Gambar 2.3 Contoh Multiplicity (Whitten dan Bentley, 2007:377) •
Aggregation, menunjukan hubungan di mana satu class besar mengandung atau terhubung dengan satu atau lebih class yang lebih kecil yang merupakan bagian darinya.
Gambar 2.4 Contoh Aggregation Relationship
(Whitten dan
Bentley, 2007:379) •
Composition, sebuah hubungan aggregation di mana class yang besar mempengaruhi class kecil yang terkait dengan dirinya.
Gambar 2.5 Contoh Composition Relationship (Whitten dan Bentley, 2007:379)
17 2.4.2 Use Case Diagram Use Case Diagram adalah sebuah diagram yang menggambarkan interaksi antara sistem dan sistem eksternal dan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem (Whitten dan Bentley, 2007:246).
1. Use Case Pemodelan use case mengidentifikasi dan menjelaskan fungsi sistem dengan menggunakan alat yang disebut use case (Whitten, 2007:246). Use case menjelaskan fungsi sistem dalam perspektif pengguna eksternal melalui cara dan terminologi yang mereka pahami. Use case direpresentasikan secara grafis dalam bentuk elips dengan nama use case-nya terletak di atas, bawah, atau di dalam elips. Satu use case mewakili satu tujuan dari sistem dan menggambarkan urutan aktivitas dan interaksi pengguna dalam mencapai tujuan tersebut
Gambar 2.6 Simbol Use Case (Whitten dan Bentley, 2007:246)
2. Actors Actor ialah apa saja yang perlu berinteraksi dengan sistem untuk melakukan pertukaran data (Whitten dan Bentley, 2007:247). Sebuah actor memulai aktivitas sistem, dalam hal ini sebuah use case dengan tujuan untuk menyelesaikan beberapa tugas bisnis yang menghasilkan sesuatu yang bernilai dan terukur.
18
Gambar 2.7 Simbol Actor (Whitten dan Bentley, 2007:247)
3. Relationship Relationship atau hubungan digambarkan sebagai garis yang ada diantara dua simbol di dalam use case diagram. Arti dari sebuah hubungan bisa berbeda tergantung dengan bagaiman garis tersebut digambar dan simbol apa yang saling terhubung (Whitten dan Bentley, 2007:247). • Associations, hubungan antara actor dan use case yang menandakan adanya interaksi diantara keduanya. Digambarkan sebagai garis penuh yang menghubungkan actor dan use case.
Gambar 2.8 Associations Relationship Sumber: (Whitten dan Bentley, 2007:248) • Extend, digunakan untuk menghubungkan use case dengan extension use case. Extension use case adalah sebuah use case yang terdiri dari langkah-langkah yang diekstrak dari use case yang lebih kompleks untuk menyederhanakan kasus awal dan dengan demikian memperluas fungsi. Digambarkan dengan garis panah (penuh atau putus-putus) dengan label <<extends>> dari extension use case menuju use case awal.
19
Gambar 2.9 Extend Relationship Sumber: (Whitten dan Bentley, 2007:249) • Includes (Uses), menghubungkan abstract use case dengan use case. Abstract use case adalah use case yang mengurangi redundansi diantara dua atau lebih use case dengan menggabung langkah
umum yang
terdapat dalam use case
tersebut
Digambarkan dengan garis panah (penuh atau putus-putus) dengan label <
> atau <<uses>> dari use case awal menuju abstract use case
. Gambar 2.10 Includes(Uses) Relationship Sumber: (Whitten dan Bentley, 2007:249) • Depends On, hubungan yang mengindikasikan bahwa suatu use case tidak bisa dilakukan sebelum suatu use case tertentu selesai dilakukan. Digambarkan dengan garis panah (penuh atau putusputus) dengan label <<depends on>> dari use case menuju use case yang ia tergantung.
20
Gambar 2.11 Depends On Relationship (Whitten dan Bentley, 2007:250)
2.4.3 Activity Diagram Activity
diagram
adalah
sebuah
diagram
yang
dipakai
untuk
menggambarkan aliran dari proses bisnis, langkah-langkah dari use case, atau logika dari suatu perilaku objek (method) (Whitten dan Bentley, 2007:390). Hampir menyerupai flowchart, hanya saja pada activity diagram tersedia mekanisme untuk menunjukan aktivitas-aktivitas secara paralel. Aktivitasaktivitas ini biasanya dipisah berdasarkan aktor spesifik atau kelas tertentu, pemisahan ini disebut swimlane.
21
Gambar 2.12 Contoh Activity Diagram Sumber: (Whitten dan Bentley, 2007:250)
Activity diagram memiliki notasi tersendiri untuk membantunya menjelaskan sebuah proses berlangsung.
22 Tabel 2.1 Notasi pada Activity Diagram Sumber: (Whitten dan Bentley, 2007:391)
2.4.4 Sequence Diagram Sequence diagram adalah diagram yang menunjukan bagaimana objek berinteraksi satu sama lain melalui pesan yang di eksekusi use case atau operasi (Whitten dan Bentley, 2007:394). Terdapat beberapa notasai yang terdapat di dalam sequence diagram, diantaranya: 1. Actor, menginisialisasikan aktor yang terdapat di use case dan memiliki simbol yang sama.
23 2. System, kotak yang mengindikasikan sistem secara keseluruhan. Colon (:) merupakan notasi standar
sequence diagram yang
mengindikasikan instansi yang berjalan dalam sistem. 3. Lifelines, garis vertikal putus-putus yang terbentang kebawah dari actor dan simbol-simbol system, yang mengindikasikan kehidupan sequence. 4. Activation bars, batang yang ditempatkan menutupi lifeline dan mengindikasikan periode waktu dimana actor atau system aktif berinteraksi. 5. Input messages, garis panah horizontal dari actor menuju system yang mengindikasikan input berupa pesan. 6. Output messages, garis panah horizontal putus-putus yang berasal dari system menuju actor sebagai reaksi atau output dari inputan.
Gambar 2.13 Contoh Sequence Diagram (Whitten dan Bentley, 2007:250)
24 2.5
Waterfall Dalam pembuatan suatu program atau aplikasi diperlukan adanya model proses metodologi, salah satunya adalah waterfall model atau disebut juga linear sequential model. Waterfall model menyarankan pendekatan sekuensial yang sistematis dalam pengembangan software yang dimulai dari spesifikasi kebutuhan pelanggan dan berkembang melalui perancangan (Pressman, 2005:47). Waterfall model merupakan pola pikir tertua dalam software engineering. Model ini disebut sebagai waterfall (air terjun) karena untuk menuju ke tahap selanjutnya, tahapan yang terdahulu harus sudah selesai. Dikarenakan proses yang seperti ini sering kali tim dalam proyek terhambat karena harus menunggu tahapan berakhir. Waterfall model memiliki lima tahapan dalam pengembangannya: •
Komunikasi (communication) Tahap ini dimulai dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam program aplikasi
•
Perancangan (planning) Pada tahapan ini proses pengumpulan elemen ditingkatkan dan dipusatkan secara khusus untuk karakteristik dari program yang akan dibuat.
•
Desain (Modelling) Pada tahap ini proses perancangan menerjemahkan kebutuhan elemen sistem yang direpresentasikan ke dalam sebuah blueprint yang
dapat
diperkiran
kualitasnya
sebelum
dilakukan
pengkodean. •
Pembangunan (construction) Pada tahap ini dilakukan proses pengkodean (coding) , hal ini dilakukan agar desain yang tadi sudah dibuat bisa dimengerti oleh komputer dalam bahasa pemrograman. Tahap ini merupakan implementasi dari tahap desain yang secara teknis nantinya dikerjakan
oleh
programmer.
Setelah
pengkodean
maka
dilakukan pengujian. Pengujian dimaksudkan untuk memastikan hasilnya sesuai kebutuhan yang sudah didefinisikan sebelumnya.
25 •
Penyebaran (Deployment) Pada tahap ini program sudah selesai dibuat dan disebarkan ke pelanggan atau konsumen. Selain itu pemeliharaan program juga dilakukan oleh tim proyek. Pemeliharaan suatu program diperlukan karena program yang dibuat tidak selamnya hanya seperti itu. Pengembangan merupakan salah satu bagian dari pemeliharaan. Pengembangan terjadi untuk memperbaiki error kecil yang tidak ditemukan sebelumnya atau menerima umpan balik dari para pengguna sehingga terjadi adanya penambahan fitur-fitur yang belum ada pada program tersebut.
Gambar 2.2 Waterfall model Sumber:(Pressman, 2005:47)
2.6
C# C# (dibaca see sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, dan Visual Basic dengan beberapa penyederhanaan. Menurut standar ECMA-334 C# Language Specification (Deitel dan Deitel, 2005:3). C# dikembangkan Microsoft pada tahun 1999 melalui sebuah tim yang dipimpin oleh Anders Hejlsberg. C# pertama kali diperkenalkan ke publik pada tahun 2000 sebagai bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan platform Microsoft .NET Framework (Hamilton, 2008). Pengalaman Helsberg sebelumnya dalam mendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common Language Runtime (CLR). Dari kutipan
26 atas interview dan makalah-makalah teknisnya ia menyebutkan kelemahankelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahankelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan baru yang menutupi kelemahan-kelemahan tersebut, dan pada akhirnya memengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance). Fitur-fitur tersebut di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek. Dikembangkan sesuai dengan standar European Computer Manufacturer Association (ECMA) C# memiliki beberapa tujuan desain seperti: •
Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
•
Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi.
•
Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++.
•
Dukungan untuk internasionalisasi (multi-language) juga sangat penting.
•
C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem client-server (hosted system) maupun sistem embedded (embedded system), mulai dari perangkat lunak yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
27 •
Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat dengan menggunakan bahasa pemrograman C dan bahasa rakitan.
•
Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat, pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan pengumpulan sampah (garbage collection) secara otomatis.
2.6.1 Microsoft Visual Studio Microsoft Visual Studio merupakan sebuah software suite yang dikembangkan oleh Microsoft yang berfungsi sebagai sarana pengembangan aplikasi (MSDN, 2014). Microsoft Visual Studio mengandung compiler, SDK (Software Development Kit), IDE (Integrated Development Environment), dan dokumentasi dalam bentuk MSDN Library. Compiler yang terdapat dalam Microsoft Visual Studio mencakup bahasa pemrograman seperti sebagai berikut: 1. Visual C++. 2. Visual C#. 3. Visual Basic. 4. Visual Basic .Net. 5. Visual F#
2.6.2
Visual C# Visual C# merupakan implementasi dari bahasa C# oleh Microsoft. Microsoft Visual Studio mendukung Visual C # dengan fitur lengkap code editor, compiler, proyek template, designer, code wizards, debugger yang kuat dan mudah digunakan, dan alat-alat lainnya. Class library .Net Framework menyediakan akses ke banyak layanan sistem operasi dan kelas-kelas lain yang dirancang dengan baik yang mempercepat siklus pengembangan secara signifikan (MSDN, 2014).
28 2.7
System.Speech dan System.Speech.Recognition 2.7.1 System.Speech System.Speech adalah sebuah class library yang merupakan bagian dari .Net Framework. System.speech memiliki namespaces yang mendukung dalam speech.recognition (MSDN, 2014). Tabel 2.2 Namespaces pada System.Speech (MSDN, 2014) Namespace System.Speech.AudioFormat
Deskripsi Namespace ini terdiri dari sebuah class tunggal yang bernama SpeechAudioFormat, yang mengandung informasi mengenai format suara yang di input ke dalam speech recognition engine, atau output dari speech synthesis engine
System.Speech.Recognition
Namespace ini digunakan untuk mengimplementasi speech recognition dari Windows Desktop Speech Technology
System.Speech.Recognition.SrgsGrammar
Namespace ini digunakan untuk membuat grammar dalam pemrograman sesuai dengan W3C Speech Recognition Grammar Spesifikasi Versi 1.0 (SRGS)
System.Speech.Synthesis
Namespace N:System.Speech.Synthesis mengandung class yang digunakan untuk mengninisialisasi dan mengkonfigurasi speech synthesis engine, untuk membuat perintah, menghasilkan ucapan, menanggapi peristiwa, dan memodifikasi karakteristik suara
System.Speech.SynthesisTtsEngine
Namespace ini mendukung pembuatan Speech Synthesis Markup Language (SSML) berdasarkan engine khusus untuk merender text to speech (TTS)
2.7.2 System.Speech.Recognition Namespace System.Speech.Recognition mengandung Software Windows Desktop Speech Technology yang menawarkan infrastruktur sederhana speech recognition yang mendigitalkan sinyal akustik, dan mendapatkan kembali kata-kata dan elemen-elemen ucapan dalam input audio. Aplikasi menggunakan namespace System.Speech.Recognition untuk mengakses dan memperluas teknologi dasar speech recognition ini dengan cara mendefinisikan algoritma untuk mengidentifikasi dan
29 bekerja atas frasa tertentu atau pola kata, dan dengan mengelola perilaku runtime dari infrastruktur ucapan (MSDN, 2014). Tabel 2.3 Beberapa Kelas pada System.Speech.Recognition (MSDN, 2014)
Kelas
Deskripsi
Choices
Merepresentasikan satu set alternatif batasan grammar pada speech recognition
Grammar
Sebuah objek runtime yang merujuk ke grammar pada speech recognition, yang dapat digunakan oleh aplikasi untuk menentukan batasan untuk speech recognition
GrammarBuilder
Menyediakan mekanisme untuk membangun batasan untuk grammar pada speech recognition secara pemrograman
SpeechRecognitionEngine
Menyediakan sarana untuk mengakses dan mengelola speech recognition engine
Di dalam System.Speech.Recognition terdapat kelas bernama Grammar yang digunakan untuk membuat grammar. Pembuatan grammar terdiri dari aturan-aturan atau batasan, yang mendefinisikan sebuah kata atau frase, agar kata atau frase tersebut dapat dikenali sebagai input yang berarti oleh aplikasi. Dengan menggunakan constructor untuk kelas Grammar, dapat dibuat objek grammar pada runtime GrammarBuilder, objek grammar berisi kata yang akan dimasukkan dalam aplikasi. Menggunakan kelas GrammarBuilder dan Choices, grammar dapat dibuat secara programatis dari tingkat kompleksitas rendah hingga menengah yang dapat digunakan untuk melakukan pengenalan untuk berbagai skenario umum. Instance dari SpeechRecognizer dan SpeechRecognitionEngine yang disertakan dengan objek Grammar menyediakan akses utama ke speech recogniton engine dari Windows Desktop Speech Technology.
30 2.8
SQL Server Express SQL Server Express merupakan salah satu versi dari Microsoft SQL Server relational database management system. Perbedaan utamanya terdapat pada ketersediaan SQL Express yang gratis untuk diunduh dan digunakan. Ini terdiri dari basis data yang khusus ditujukan untuk aplikasi tertanam (embedded) dan skala kecil. SQL Server Express menyediakan beberapa fitur yang sama dengan versi berbayarnya tetapi dengan beberapa batasan tentunya (Microsoft Corporation, 2015), seperti: •
Batas maksimum kapasitas basis data hanya 10 GB dibandingkan 524 PB pada versi berbayar.
•
Tidak ada SQL Agent Service.
•
Batasan dalam pemanfaatan perangkat keras (CPU fisikal tunggal, penggunaan 1 GB RAM)
2.9
Jurnal / State of The Art
2.9.1 Building a Pronunciation Dictionary for Indonesian Speech Recognition System Jurnal ini membahas mengenai pengembangan sebuah generator kamus pelafalan Bahasa Indonesia. Kamus pelafalan merupakan salah satu bagian yang penting dalam pengembangan ASR System (Automated Speech Recognition). Dalam pengembangan dibuat dua macam kamus pelafalan, yang pertama dibuat secara manual, dan yang kedua menggunakan kamus pelafalan yang di-generate secara otomatis. Di dalam kamus pelafalan terdapat daftar kata beserta cara pengucapannya dalam phone symbol. Zahra, Baskoro, dan Adriani (2009) menggunakan phone symbol yang sudah dibuat sebelumnya untuk bahasa Indonesia berdasarkan standar ARPABET. Phone symbol tersebut terdiri dari 33 simbol yang mencakup 23 simbol tunggal dan 10 simbol berpasangan.
31 Tabel 2.4 Indonesian phone symbol (Zahra, Baskoro, dan Adriani, 2009)
Kemudian menggunakan letter-to-phone program sebanyak 50.988 kata formal murni Indonesia yang berasal dari koran indonesia online dibuat kamus plafalannya berdasarkan phone symbol sebelumnya (Zahra, Baskoro, dan Adriani, 2009).
Tabel 2.5 Contoh hasil kamus pelafalan (Zahra, Baskoro, dan Adriani, 2009)
Kamus pelafalan tersebut kemudian dibuat menjadi dua macam, yang pertama murni hasil dari letter-to-phone program tanpa diubah (kamus peafalan otomatis), dan yang kedua diperiksa kembali satu persatu jika ada pelafalan yang salah dan diperbaiki (kamus pelafalan manual). Setelah memiliki dua macam basis data kamus pelafalan, dibuatlah ASR system dengan kedua kamus pelafalan tersebut sebagai basis datanya yang kemudian akan diujikan. Pengujian dilakukan melalui empat macam sumber input. Yang pertama input berasal dari suara siaran radio Indonesia, yang kedua berasal dari siaran berita televisi indonesia, yang ketiga menggunakan kata-kata yang direkam melalui telpon genggam, dan yang keempat melalui kata-kata yang direkam menggunakan rekorder. Keempat macam sumber input tersebut berisi kata-kata maupun percakapan yang terdapat dalam basis data (Zahra, Baskoro, dan Adriani, 2009). Hasil
percobaan
mengindikasikan
bahwa
ASR
system
yang
menggunakan kamus pelafalan manual memilik WER (Word Error Rate) lebih kecil daripada kamus pelafalan otomatis.
32 Tabel 2.6 Hasil performa ASR (Zahra, Baskoro, dan Adriani, 2009)
Hasil dari percobaan ini menyimpulkan bahwa kamus pelafalan yang direvisi secara manual sedikit lebih unggul dari kamus pelafalan yang digenerate secara otomatis, in berarti kamus pelafalan otomatis masih bisa dijadikan sebagai alternatif karean perbedaan performa yang tidak jauh. Diharapkan percobaan ini bisa menjadi dasar pengembangan kamus pelafalan bahasa Indonesia yang tidak hanya mencakup kata-kata formal bahasa Indonesia, tetapi juga kata-kata informal yang diucapkan sehari-hari (Zahra, Baskoro, dan Adriani, 2009).
2.9.2 Kamus Digital Dengar Tulis Ucap Bahasa Indonesia Ricky, Wahyudi, dan Hidayatno (2011) membuat sebuah aplikasi kamus Bahasa Indonesia digital berbasis desktop yang mampu menerima input melalui ketikan dan ucapan. Selain itu aplikasi ini juga mampu mengucapkan kata beserta arti katanya melalui bantuan IndoTTS dalam sistem tulis-ucap. Kata yang dimasukkan sebanyak 106 kata Bahasa Indonesia yang diambil dari Kamus Besar Bahasa Indonesia. Kata tersebut beserta artinya dimasukkan ke MS Access 2003 sebagai basis data. Untuk bahasa pemrograman digunakan Visaul Basic 6 untuk perancangan user interface dan pengambilan basis data, kemudian untuk pengenalan ucapan menggunakan Matlab 7.1 (Ricky, Wahyudi, dan Hidayatno, 2011). Metode pengenalan suara yang digunakan adalah kombinasi metode LPC (Linear Predictive Coding) untuk pengekstraksian suara masukan dan HMM (Hidden Markov Model) untuk pemodelan suara. Pengenalan suara dilakukan dengan membandingkan nilai yang dihasilkan dari ekstraksi ciri dengan model HMM yang telah tersedia. Jika ditemukan model yang cocok, maka model itulah yang digunakan dalam pengisian kata. Proses pembentukan ucapan digunakan bantuan MBROLA speech engine. Hasil pengujian basis data suara responden yang memiliki basis data dengan
33 mengucapkan lema yang terdapat pada basis data tanpa derau adalah 84,62 %, sedangkan hasil pengujian dengan derau adalah 66,67 %, dan hasil pengujian responden yang memiliki basidata dengan mengucapkan lema yang tidak terdapat pada basis data suara adalah 93,75 %. Hasil pengujian basis data suara untuk responden yang tidak memiliki basis data suara adalah 75,99%. Hasil pengujian basis data kata dengan memasukkan kata yang terdapat pada basis data kata, yang tidak terdapat pada basis data kata, dan hasil pengujian dengan memasukkan huruf atau suku kata adalah 100 % (Ricky, Wahyudi, dan Hidayatno, 2011).
2.9.3 Aplikasi Mobile Kamus Istilah Psikologi Berbasis Android 2.2 Aplikasi Mobile Kamus Istilah Psikologi Berbasis Android 2.2 merupakan aplikasi kamus pada telepon seluler yang dibuat menggunakan salah satu paket Java dan XML. Aplikasi ini memiliki fitur utama untuk mencari kata istilah psikologi beserta aslinya. Selain itu aplikasi ini juga memilik fitur untuk menambahkan kata baru yang sebelumnya belum ada di basis data. Fitur lainnya seperti mengedit kata yang sudah ada beserta artinya juga terdapat pada aplikasi ini. Penggunaan SQLite sebagai basis data dimaksudkan agar pengguna dapat menyimpan kata yang diinginkan (Parno, Dharmayanti, dan Nandang, 2011). Aplikasi ini mempunyai kelebihan seperti : dapat mencari kata tanpa harus membawa buku, mempermudah dalam proses pencarian kata, user dapat merubah basis data aplikasi dengan menambah dan menghapus kata sesuai dengan yang dibutuhkan, menambah minat belajar bahasa psikologi, menambah sarana baru untuk belajar dan menambah fungsi telepon genggam dalam hal pendidikan (Parno, Dharmayanti, dan Nandang, 2011).
34