39 BAB III
ANALISIS DAN PERANCANGAN
Prinsip kerja dalam sebuah sistem komputer adalah menerima masukan, memproses dan memberikan keluaran. Kepada komputer, kita memberikan data masukan yang kemudian akan diolah oleh komputer menjadi keluaran yang diharapkan pengguna. Ketika seseorang bekerja dengan komputer, ia akan melakukan interaksi dengan komputer menggunakan cara-cara tertentu. Cara interaksi antara pengguna dengan komputer pada sistem yang akan dibangun yaitu dengan menggunakan perintah lisan. Bab ini menjelaskan proses analisis dan perancangan pada sistem supaya dapat bekerja berdasarkan cara interaksi tersebut. Berdasarkan prinsip kerja tersebut, sistem yang akan dibangun akan terlihat seperti pada gambar dibawah ini (Gambar 3.1).
Gambar 3.1, Aplikasi Perintah Suara Dengan Speech API
Pada bagian masukan, seorang pengguna memberikan perintah suara (perintah ucapan). Suara tersebut diterima oleh perangkat mikropon untuk dirubah
Perintah suara Notebook/PC Membuka aplikasi Mengeksekusi shortcut aplikasi Menutup aplikasi Membuka folder Memilih task Memilih menu power Respon suara Pengguna
40
menjadi sinyal suara analog. Sinyal suara analog dari mikropon kemudian dimasukkan kedalam komputer (Notebook/PC) melalui bagian kartu suara (Sound Card). Sinyal suara analog yang diterima oleh kartu suara akan dirubah menjadi sinyal suara digital. Pada bagian proses, dengan menggunakan sistem SAPI 5.1 (Speech Application Programming Interface), sinyal suara digital yang dihasilkan dari kartu suara akan dipecah menjadi bagian suara terkecil (fonem). Fonem-fonem tersebut akan disusun sehingga menjadi data yang bisa dicocokkan dengan kata-kata dari string teks. Perintah yang bisa dicocokkan dengan string teks tersebut digunakan untuk melakukan pemanggilan fungsi eksekusi shortcut. Selain itu sistem SAPI 5.1 juga digunakan untuk mengubah string teks menjadi sinyal suara. Keluaran dari sistem berupa hasil fungsi eksekusi yang meliputi, membuka aplikasi, mengeksekusi shortcut aplikasi, menutup aplikasi, membuka
folder, memilih task, serta memilih menu power. Keluaran dari sistem juga berupa suara yang merupakan respons dari sistem terhadap perintah-perintah yang diberikan kepada sistem. Keluaran suara ini disajikan kepada pengguna melalui perangkat speaker.
Supaya sistem tersebut dapat terealisasi, harus dilakukan analisis dan perancangan secara rinci dan jelas. Analisis dan perancangan dalam bab ini menggunakan pendekatan berorientasi objek dengan menggunakan UML (Unified Modeling Language). Di dalam bab ini akan dibahas tiga artifak penting dari proses analisis dan disain, yaitu Use Case Diagram, Sequence Diagram dan Class Diagram. Use Case Diagram merupakan artifak dari proses analisis, sementara
Sequence Diagram dan Class Diagram merupakan artifak dari proses disain. Untuk menggambarkan aliran proses dari fungsionalitas sistem sebagaimana yang digambarkan dalam Use Case Diagram, digambarkan menggunakan Activity Diagram. Selain itu Component Diagram juga dibutuhkan untuk menjelaskan komponen apa saja yang nantinya harus ada di dalam sistem. Diagram-diagram tersebut dibuat dengan menggunakan Microsoft Visio 2003.
41
Fungsionalitas yang diharapkan untuk mewujudkan sistem sebagaimana yang digambarkan dalam ilustrasi diatas (Gambar 3.1), digambarkan dalam Use Case Diagram. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case yang menyusun diagram tersebut meliputi menambah perintah, mengubah perintah, menghapus perintah, mengatur respons suara, mengaktifkan pengenalan ucapan, membuka aplikasi, menutup aplikasi, membuka
folder, memilih task, mengakses keyboard, serta memilih menu power.
42
Masing-masing use case dalam Use Case Diagram pada Gambar 3.2 dapat dijelaskan sebagai berikut:
a. Menambah perintah, digunakan untuk menambahkan perintah yang baru ke dalam basis data sistem.
b. Mengubah perintah, digunakan untuk mengubah perintah yang telah disimpan dalam basis data sistem.
c. Menghapus perintah, digunakan untuk menghapus perintah tertentu dari basis data sistem.
d. Mengaktifkan pengenalan ucapan, digunakan untuk mengaktifkan mesin pengenalan ucapan agar sistem dapat menerima masukan suara.
e. Membuka aplikasi, digunakan untuk membuka aplikasi melalui perintah lisan. f. Menutup aplikasi, digunakan untuk menutup aplikasi yang aktif melalui
perintah lisan.
g. Membuka folder, digunakan untuk membuka folder dengan perintah lisan. h. Memilih task aktif, digunakan untuk memilih task dari aplikasi yang aktif
untuk ditempatkan pada posisi on top melalui perintah lisan.
i. Mengakses keyboard, digunakan untuk melakukan eksekusi dari shortcut yang berupa kombinasi tombol keybord dengan perintah lisan.
j. Memilih menu power, digunakan untuk memilih dan mengeksekusi pilihan menu power yang meliputi shutdown, restart, atau logoff melalui perintah lisan.
3.2 ACTIVITY DIAGRAM
Aliran proses yang terdapat dalam sistem untuk masing-masing use case
berawal dari aktivitas dimulai sampai aktivitas berhenti digambarkan dalam
Activity Diagram berikut ini. Activity Diagram mendeskripsikan aksi-aksi dan hasilnya.
43
Gambar 3.3, Activity Diagram Mengaktifkan Pengenalan Ucapan
Pada activity diagram mengaktifkan pengenalan ucapan (Gambar 3.3), pengguna menjalankan Aplikasi Perintah Suara yang tadinya belum aktif. Sistem akan membuat tata bahasa (grammar). Selanjutnya sistem akan mengaktifkan aturan tata bahasa. Sistem kemudian mengambil daftar perintah dari basis data dan memuat daftar perintah ke aturan tata bahasa. Setelah itu sistem dapat mengaktifkan mesin pengenalan ucapan, sehingga sistem siap mengenali perintah lisan dari pengguna.
44
Gambar 3.4, Activity Diagram Membuka Aplikasi
Pada activity diagram membuka aplikasi (Gambar 3.4), pengguna mengucapkan perintah sesuai dengan perintah yang digunakan untuk membuka aplikasi. Sistem akan melakukan pengenalan ucapan. Apabila ucapan tidak dikenali, maka sistem akan mengirimkan pesan bahwa pengenalan perintah gagal. Apabila ucapan dikenali, maka sistem akan mengambil hasil pengenalan. Sistem kemudian mencocokkan hasil pengenalan ucapan dengan basis data. Apabila hasil pengenalan sesuai perintah maka sistem akan memuat kode untuk membuka aplikasi dan membuka aplikasi yang dipanggil. Sedangkan apabila hasil pengenalan tidak sesuai perintah maka sistem akan memuat kode lain dan melakukan eksekusi lain.
c. Activity diagram menutup aplikasi
45
Gambar 3.5, Activity Diagram Menutup Aplikasi
Pada activity diagram menutup aplikasi (Gambar 3.5), pengguna mengucapkan perintah sesuai dengan perintah yang digunakan untuk menutup aplikasi. Sistem akan melakukan pengenalan ucapan. Apabila ucapan tidak dikenali, maka sistem akan mengirimkan pesan bahwa pengenalan perintah gagal. Apabila ucapan dikenali, maka sistem akan mengambil hasil pengenalan. Sistem kemudian mencocokkan hasil pengenalan ucapan dengan basis data. Apabila hasil pengenalan sesuai perintah maka sistem akan memuat kode untuk menutup aplikasi dan menutup aplikasi yang dimaksud. Sedangkan apabila hasil pengenalan tidak sesuai perintah maka sistem akan memuat kode lain dan melakukan eksekusi lain.
46
Gambar 3.6, Activity Diagram Membuka Folder
Pada activity diagram membuka folder (Gambar 3.6), pengguna mengucapkan perintah sesuai dengan perintah yang digunakan untuk membuka
folder. Sistem akan melakukan pengenalan ucapan. Apabila ucapan tidak dikenali, maka sistem akan mengirimkan pesan bahwa pengenalan perintah gagal. Apabila ucapan dikenali, maka sistem akan mengambil hasil pengenalan. Sistem kemudian mencocokkan hasil pengenalan ucapan dengan basis data. Apabila hasil pengenalan sesuai perintah maka sistem akan memuat kode untuk membuka
folder dan membuka folder yang dipanggil, melalui aplikasi windows explorer. Sedangkan apabila hasil pengenalan tidak sesuai perintah maka sistem akan memuat kode lain dan melakukan eksekusi lain.
47
Gambar 3.7, Activity Diagram Memilih Task
Pada activity diagram memilih task (Gambar 3.7), pengguna mengucapkan perintah sesuai dengan perintah yang digunakan untuk memilih task dari aplikasi yang aktif. Sistem akan melakukan pengenalan ucapan. Apabila ucapan tidak dikenali, maka sistem akan mengirimkan pesan bahwa pengenalan perintah gagal. Apabila ucapan dikenali, maka sistem akan mengambil hasil pengenalan. Sistem kemudian mencocokkan hasil pengenalan ucapan dengan basis data. Apabila hasil pengenalan sesuai perintah maka sistem akan memuat kode untuk memilih task
dan melakukan eksekusi untuk menempatkan task dari aplikasi yang dipanggil pada posisi on top. Sedangkan apabila hasil pengenalan tidak sesuai perintah maka sistem akan memuat kode lain dan melakukan eksekusi lain.
48
Gambar 3.8, Activity Diagram Mengakses Keyboard
Pada activity diagram mengakses keyboard (Gambar 3.8), pengguna mengucapkan perintah sesuai dengan perintah yang digunakan untuk melakukan eksekusi shortcut yang berupa kombinasi tombol. Sistem akan melakukan pengenalan ucapan. Apabila ucapan tidak dikenali, maka sistem akan mengirimkan pesan bahwa pengenalan perintah gagal. Apabila ucapan dikenali, maka sistem akan mengambil hasil pengenalan. Sistem kemudian mencocokkan hasil pengenalan ucapan dengan basis data. Apabila hasil pengenalan sesuai perintah maka sistem akan memuat kode tombol keyboard yang dipanggil kemudian mengeksekusinya sehingga shortcut dari aplikasi tersebut terakses. Sedangkan apabila hasil pengenalan tidak sesuai perintah maka sistem akan memuat kode lain dan melakukan eksekusi lain.
49
Gambar 3.9, Activity Diagram Memilih Menu Power
Pada activity diagram memilih menu power (Gambar 3.9), pengguna mengucapkan perintah sesuai dengan perintah yang digunakan untuk mengeksekusi menu power. Sistem akan melakukan pengenalan ucapan. Apabila ucapan tidak dikenali, maka sistem akan mengirimkan pesan bahwa pengenalan perintah gagal. Apabila ucapan dikenali, maka sistem akan mengambil hasil pengenalan. Sistem kemudian mencocokkan hasil pengenalan ucapan dengan basis data. Apabila hasil pengenalan sesuai perintah maka sistem akan memuat kode menu power seperti restart, logoff dan shutdown kemudian mengekekusi menu yang dipilih. Sedangkan apabila hasil pengenalan tidak sesuai perintah maka sistem akan memuat kode lain dan melakukan eksekusi lain.
50
Gambar 3.10, Activity Diagram Mengatur Respons Suara
Pada activity diagram mengatur respons (Gambar 3.10), pengaturan standar (default) respons suara dari sistem adalah aktif. Disini pengguna bisa menonaktifkan respons suara atau tidak. Apabila respons suara tidak dimatikan berarti pengguna tetap membiarkan respons suara dari sistem aktif. Apabila pengguna mematikan respons suara, maka sistem akan menonaktifkan mesin teks ke ucapan. Sistem kemudian menampilkan aplikasi Agen dan menampilkan respons teks. Ketika respons suara tidak aktif pengguna bisa menghidupkan respons suara maupun tidak. Apabila respons suara dihidupkan, maka sistem akan menyembunyikan respons teks yang berasal dari aplikasi Agen. Sistem kemudian mengaktifkan mesin teks ke ucapan untuk mengubah pesan sistem menjadi bentuk suara sehingga respons suara aktif.
51
Gambar 3.11, Activity Diagram Menambah Perintah
Pada activity diagram menambah perintah (Gambar 3.11), pengguna memilih jenis shortcut. Shortcut yang dipilih terdiri dari shortcut yang berupa kombinasi tombol, shortcut buka tutup aplikasi dan shortcut folder. Jika pengguna memilih jenis shortcut kombinasi tombol, maka sistem akan mengaktifkan
shortcut tombol. Pengguna kemudian memilih kombinasi tombol yang menjadi
shortcut dari aplikasi yang akan ditangani. Setelah itu pengguna memasukkan kata perintah untuk memanggilnya kemudian menyimpannya. Sistem akan menambahkan data perintah ke basis data. Jika pengguna memilih jenis shortcut
aplikasi, maka sistem akan mengaktifkan shortcut aplikasi. Pengguna kemudian memilih file yang berjenis aplikasi (exe), memasukkan kata perintah kemudian menyimpannya. Sistem akan menambahkan data perintah tersebut ke basis data. Jika pengguna memilih jenis shortcut folder, maka sistem akan mengaktifkan
shortcut folder. Pengguna kemudian memilih folder yang dikehendaki, memasukkan perintah untuk memanggilnya serta menyimpannya. Sistem akan menambahkan data tersebut ke basis data.
52
j. Activity diagram mengubah perintah
Gambar 3.12, Activity Diagram Mengubah Perintah
Pada activity diagram mengubah perintah (Gambar 3.12), pengguna memilih jenis shortcut yang ingin dirubah datanya. Jika pengguna memilih jenis
shortcut kombinasi tombol, maka sistem akan mengaktifkan shortcut tombol dan sistem akan menampilkan daftar perintah yang berjenis shortcut tombol dalam sebuah tabel, kemudian pengguna memilih perintah dari daftar yang ingin dirubah datanya. Selanjutnya pengguna mengubah data yang akan diperbaiki seperti perintah untuk memanggilnya atau kombinasi tombolnya. Jika pengguna memilih jenis shortcut aplikasi, maka sistem akan mengaktifkan shortcut aplikasi dan manampilkan daftar perintah yang berjenis shortcut aplikasi, kemudian pengguna memilih perintah dari daftar. Selanjutnya pengguna mengubah data yang akan diperbaiki seperti perintahnya atau nama file aplikasinya. Jika pengguna memilih jenis shortcut folder, maka sistem akan mengaktifkan shortcut folder dan
53
menampilkan daftar perintah dalam tabel yang berjenis shortcut folder, kemudian pengguna memilih perintah yang akan diperbaiki. Setelah itu pengguna mengubah data yang akan diperbaiki seperti nama folder atau perintahnya.
k. Activity diagram menghapus perintah
Gambar 3.13, Activity Diagram Menghapus Perintah
Pada activity diagram menghapus perintah (Gambar 3.13), pengguna memilih jenis shortcut yang ingin dihapus datanya. Jika pengguna memilih jenis
shortcut kombinasi tombol, maka sistem akan mengaktifkan shortcut tombol dan sistem akan menampilkan daftar perintah yang berjenis shortcut tombol dalam sebuah tabel, kemudian pengguna memilih perintah dari daftar yang ingin dihapus datanya. Selanjutnya pengguna menghapus data tersebut. Sistem akan menghapus datanya dari basis data. Jika pengguna memilih jenis shortcut aplikasi, maka sistem akan mengaktifkan shortcut aplikasi dan manampilkan daftar perintah yang berjenis shortcut aplikasi, kemudian pengguna memilih perintah dari daftar.
54
Selanjutnya pengguna menghapus data tersebut. Sistem akan menghapus datanya dari basis data. Jika pengguna memilih jenis shortcut folder, maka sistem akan mengaktifkan shortcut folder dan menampilkan daftar perintah dalam tabel yang berjenis shortcut folder, kemudian pengguna memilih perintah yang akan dihapus. Setelah itu pengguna menghapus data tersebut. Sistem akan mengapus datanya dari basis data.
3.3 CLASS DIAGRAM
Class diagram mendeskripsikan objek-objek yang terlibat dalam sistem dan hubungan-hubungan diantara mereka. Class adalah sebuah spesifikasi yang jika diinstasikan akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Aplikasi Perintah Suara yang akan dibangun terdiri dari class KodeShortcut, class PengaturTabel, class tb_aplikasi, class
PerintahBaku, class DataDB, class RecognitionContext, class Grammar, class
Eksekusi class DataHwnd, class TextToSpeech dan class Agen. Hubungan diantara class-class tersebut digambarkan dalam Class Diagram berikut.
55
Gambar 3.14, Class Diagram
Masing-masing class dalam Class Diagram diatas (Gambar 3.14), dapat dijabarkan dalam penjelasan dibawah ini.
1. KodeShortcut, digunakan untuk membuat file aplikasi yang akan dioperasikan dan kombinasi shortcut tombol dari aplikasi yang akan diakses menjadi kode
56
yang dapat dieksekusi oleh sistem. Class ini memiliki fungsi KombinasiTombolKeyboard(), SetDirPath() dan PencarianFile(). Fungsi KombinasiTombolKeyboard() untuk mengubah tombol keyboard ke dalam kode yang dapat digunakan oleh sistem untuk mengeksekusi tombol keyboard
tanpa menekan fisik tombol. Fungsi SetDirPath() untuk menyimpan lokasi dari file aplikasi atau file folder yang diinginkan pengguna. Sedangkan fungsi PencarianFile() untuk melakukan pencarian file yang berjenis aplikasi (exe). 2. PengaturTabel, digunakan untuk mengatur data yang akan disimpan ke dalam
tabel basis data. Class ini memiliki fungsi KoneksiBasisData(), TambahDataBasisData(), HapusDataBasisData(), UpdateDataBasisData(), TampilTabel(), PilihTipeShortcut(), TambahPerintah(), UbahPerintah(), HapusPerintah(), dan PilihData(). Fungsi KoneksiBasisData() untuk melakukan koneksi ke basis data. Fungsi TambahDataBasisData() untuk menambahkan perintah baru dan menyimpannya dalam tabel basis data. Fungsi HapusDataBasisData() untuk menghapus perintah dari basis data. Fungsi UpdateDataBsisData() untuk mengubah perintah dalam basis data. Fungsi TampilTabel() untuk menampilkan data dari basis data. Fungsi PilihTipeShortcut() untuk memilih jenis shortcut yang diinginkan oleh pengguna. Fungsi TambahPerintah() digunakan oleh pengguna untuk mengakses fungsi TambahDataBasisData(). Fungsi UbahPerintah() digunakan oleh pengguna untuk mengakses fungsi UpdateDataBasisData(). Fungsi HapusPerintah() digunakan pengguna untuk mengakses fungsi HapusDataBasisData(). Sedangkan fungsi PilihData() untuk memilih perintah yang akan dirubah atau dihapus.
3. tb_aplikasi, digunakan untuk menyimpan seluruh data perintah.
4. PerintahBaku, digunakan untuk memuat daftar perintah yang bersifat statis atau bersifat tetap. Fungsi dalam class ini yaitu DataPerintahBaku() untuk mengirimkan daftar perintah baku ke class DataDb.
5. DataDb, digunakan untuk memuat seluruh data perintah dari class
PerintahBaku dan tb_aplikasi. Fungsi dalam class ini yaitu MemuatPerintah() dan DbTambahData(). Fungsi MemuatPerintah() untuk memuat perintah dari
57
menambahkan kata perintah baru pada saat sistem membuka aplikasi, menutup aplikasi atau membuka folder.
6. RecognitionContext, digunakan untuk melakukan pengenalan ucapan. Fungsi dalam class ini yaitu InisialisasiPengenalanUcapan(), RecoContext_FalseRecognition(), RecoContext_Recognition(), AktifkanPengenalanUcapan(), dan MatikanPengenalanUcapan(). Fungsi InisialisasiPengenalanUcapan() untuk melakukan konfigurasi sebelum pengenalan ucapan diaktifkan. Fungsi RecoContext_FalseRecognition() untuk menerima pemberitahuan bahwa pengenalan ucapan gagal melakukan pengenalan. Fungsi RecoContext_Recognition() untuk menerima hasil pengenalan perintah. Fungsi AktifkanPengenalanUcapan() untuk menjalankan sistem pengenalan ucapan. Fungsi MatikanPengenalanUcapan() untuk menghentikan mesin penegenalan ucapan.
7. Grammar, digunakan untuk mengaktifkan dan memuat tata bahasa dan aturan tata bahasa. Fungsi pada class ini yaitu RebuildGrammar() dan GrammarRule(). Fungsi RebuildGrammar() untuk memuat atau memuat ulang tata bahasa. Fungsi GrammarRule() untuk mengaktifkan aturan tata bahasa. 8. Eksekusi, digunakan untuk melakukan eksekusi kode shortcut. Fungsi dalam
class ini yaitu DbEksekusi() untuk melakukan eksekusi kode shortcut yang dimuat dari basis data perintah.
9. DataHwnd, digunakan untuk mengamati setiap perubahan handle window (hWnd) dari aplikasi serta menyimpan hWnd dari setiap perubahan kejadian pada aplikasi. Fungsi dari class ini yaitu KontrolTaskTitle(), KontrolAktifTask(), KontrolDataListTitle(), dan KontrolJumlahTask(). Fungsi KontrolTeksTitle() untuk mengamati dan mencatat perubahan task title dari aplikasi. Fungsi KontrolAktifTask() untuk menempatkan task aplikasi pada posisi on top dengan memanggil task title-nya. Fungsi KontrolDataListTitle() untuk menyimpan seluruh daftar title aplikasi. Fungsi KontrolJumlahTask() untuk mengatur penambahan daftar perintah baru berdasarkan jumlah task dari aplikasi yang aktif.
10.TextToSpeech, digunakan untuk merubah string teks ke suara. Fungsi dari
58
teks ke ucapan. Fungsi TeksRespons() untuk memilih respons dari sistem, disampaikan melalui suara atau pesan teks.
11.Agen, digunakan untuk menampilkan animasi aplikasi MS Agen. Fungsi dari
class ini yaitu AgenTeks() untuk menampilkan respons teks dari sistem.
3.4 SEQUENCE DIAGRAM
Sequence diagram digunakan untuk menunjukkan aliran fungsionalitas dalam use case. Disusun berdasarkan urutan waktu dan digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah kejadian (event) untuk menghasilkan keluaran tertentu. Berdasarkan urutan waktu proses, aliran fungsionalitas dalam masing-masing use case dijelaskan dalam sequence diagram berikut.
a. Sequence diagram mengaktifkan pengenalan ucapan
59
Pada sequence diagram mengaktifkan pengenalan ucapan (Gambar 3.15), pengguna mengaktifkan RecognitionContext dengan mengaktifkan fungsi AktifkanPengenalanUcapan(). Data perintah dalam tb_aplikasi akan dimuat ke DataDb dengan menggunakan fungsi MemuatPerintah(), demikian juga data perintah yang ada dalam PerintahBaku juga akan dimuat ke DataDb dengan fungsi DataPerintahBaku(). Setelah semua data perintah berhasil dimuat, RecognitionContext akan menggunakannya untuk melakukan konfigurasi sebelum pengaktifan dengan menggunakan fungsi InisialisasiPengenalanUcapan(). Setelah itu RecogntionContext akan mengaktifkan Grammar. Grammar kemudian akan memuat aturan tata bahasa dengan menggunakan fungsi GrammarRule() dan memuat ulang tata bahasa ketika ada perubahan dalam daftar perintah dengan menggunakan fungsi RebuildGrammar(). Hasilnya, RecognitionContext siap melakukan pengenalan ucapan.
b. Sequence diagram membuka aplikasi
Gambar 3.16, Sequence Diagram Membuka Aplikasi
Pada sequence diagram membuka aplikasi (Gambar 3.16), ketika fungsi RecoContext_Recognition() pada RecognitionContext berhasil melakukan pengenalan ucapan. Perintah yang dikenali akan memicu Eksekusi untuk melakukan pembukaan file berdasarkan lokasi (PathFile) dan nama file (ExeFile)
60
dengan menggunakan fungsi DbEksekusi(PathFileDanExeFile, Open). DataWhnd akan melakukan menyimpan title dari aplikasi yang dibuka dengan fungsi KontrolDataListTitle(). Setiap ada aplikasi yang dibuka daftar perintah akan ditambah dengan perintah untuk menempatkan aplikasi yang baru dibuka tersebut pada posisi on top yang dilakukan oleh DataDb dengan fungsi DbTambahData(). RecognitionContext akan memperbaharui perubahan perintah dengan memanggil fungsi InisialisasiPengenalanUcapan() dan RebuidGrammar(). Sistem akan menyampaikan pesan ketika berhasil melakukan pembukaan file melalui fungsi TeksRespons(). Sedangkan fungsi RecoContext_FalseRecognition() untuk menangani apabila sistem gagal melakukan pengenalan ucapan dan menyampaikan pesan kegagalan pengenalan melalui fungsi TeksRespons().
c. Sequence diagram menutup aplikasi
Gambar 3.17, Sequence Diagram Menutup Aplikasi
Pada sequence diagram menutup aplikasi (Gambar 3.17), ketika fungsi RecoContext_Recognition() pada RecognitionContext berhasil mengenali perintah. Perintah yang dikenali akan digunakan oleh Eksekusi untuk melakukan penutupan aplikasi berdasarkan nama file (ExeFile) dengan menggunakan fungsi DbEkekusi(ExeFile, Close). DataHwnd akan menghapus title yang tersimpan dari aplikasi yang ditutup dengan fungsi KontrolDataListTitle(). DataDb akan
61
memperbaharui daftar perintah dengan fungsi DbTambahData(). Perubahan pada daftar perintah akan memicu RecognitionContext untuk melakukan inisialisasi dan pembuatan tata bahasa ulang dengan fungsi InisialisasiPengenalanUcapan() dan RebuildGrammar(). Ketika aplikasi berhasil ditutup Eksekusi akan mengaktifkan fungsi TeksRespons() untuk menyampaikan pesan bahwa aplikasi berhasil ditutup. Sedangkan fungsi RecoContext_FalseRecognition() pada RecognitionContext untuk menangani apabila gagal melakukan pengenalan ucapan. Pesan kegagalan ini akan disampaikan dengan fungsi TekRespons().
d. Sequence diagram membuka folder
Gambar 3.18, Sequence Diagram Membuka Folder
Pada sequence diagram membuka folder (Gambar 3.18), ketika fungsi RecoContext_Recognition() pada RecognitionContext berhasil mengenali perintah yang diucapkan pengguna. Berdasarkan perintah yang dikenali ini Eksekusi akan menggunakan lokasi folder (PathFolder) untuk membukanya dengan fungsi DbEkeskusi(PathFolder, Folder). Folder tersebut dibuka dengan aplikasi windows explorer. DataHwnd akan menyimpan title dari pembukaan
windows explorer tersebut dengan fungsi KontrolDataListTitle(). Fungsi DbTambahData() pada DataDb akan menambahkan perintah baru ke dalam daftar perintah, sehingga RecognitionContext akan melakukan konfigurasi ulang dan
62
pemuatan ulang tata bahasa dengan fungsi InisialisasiPengenalanUcapan() dan RebuildGrammar(). Setelah folder terbuka Eksekusi akan mengirimkan pesan dengan fungsi TeksRespons(). Sedangkan apabila fungsi RecoContext_FalseRecogntition() menerima kegagalan pengenalan maka RecognitionContext akan mengirimkan pesan kegagalan pengenalan dengan fungsi TeksRespons().
e. Sequence diagram memilih task
Gambar 3.19, Sequence Diagram Memilih Task
Pada sequence diagram memilih task (Gambar 3.19), ketika fungsi RecoContext_Recognition() pada RecognitionContext berhasil mengenali perintah pengguna. Berdasarkan perintah, DataHwnd akan mengambil nomor urut task title
yang dipanggil dengan fungsi KontrolJumlahTask(). Dengan menggunakan task title dari aplikasi yang diambil dengan fungsi KontrolTaskTitle(), fungsi KontrolAktifTask() akan menempatkan aplikasi yang dipanggil pada posisi on top. Setelah proses berhasil Eksekusi akan mengirimkan pesan melalui fungsi TeksRespons(). Apabila fungsi RecoContext_FalseRecognition() menerima
63
kegagalan pengenalan, RecognitionContext akan mengirimkan pesan kegagalan pengenalan dengan fungsi TeksRespons().
f. Sequence diagram mengakses keyboard
Gambar 3.20, Sequence Diagram Mengakses Keyboard
Pada sequence diagram mengakses keyboard (Gambar 3.20), ketika fungsi RecoContext_Recognition() pada RecognitionContext berhasil mengenali perintah. Perintah yang dikenali akan memicu Eksekusi untuk mengakses tombol
keyboard dengan fungsi DbEksekusi(KodeTombolKeyboard, Shortcut). Apabila eksekusi tombol shortcut dari aplikasi berpengaruh pada title aplikasi, maka DataHwnd akan mencatat perubahan dari title task tersebut dengan fungsi KontrolTaskTitle(). Setelah berhasil melakukan eksekusi, Eksekusi akan mengirimkan pesan melalui fungsi TeksRespons(). Apabila fungsi RecoContext_FalseRecognition() menerima kegagalan pengenalan, RecognitionContext akan mengirimkan pesan kegagalan melalui fungsi TeksRespons().
64
Gambar 3.21, Sequence Diagram Memilih Menu Power
Pada sequence diagram memilih menu power (Gambar 3.21), ketika fungsi RecoContext_Recognition() pada RecognitionContext berhasil mengenali perintah. Menu power yang dipilih meliputi logoff, restasrt, dan shutdown. Berdasarkan perintah yang dikenali Eksekusi akan melakukan eksekusi pada menu power dengan fungsi DbEksekusi(KodeShutdown, System). Setelah berhasil melakukan eksekusi, Eksekusi akan mengirim pesan melalui fungsi TeksRespons(). Sedangkan apabila fungsi RecoContext_FalseRecognition() menerima kegagalan pengenalan, RecognitionContext akan mengirimkan pesan melalui fungsi TeksRespons().
h. Sequence diagram mengatur respons suara
65
Gambar 3.22, Sequence Diagram Mengatur Respons Suara
Pada sequence diagram mengatur respons suara (Gambar 3.22), ketika pengguna memilih pada pilihan menu Enable Speech atau Disable Speech. Apabila pengguna memilih Enable Speech maka fungsi TTS(Kalimat, True) pada TextToSpeech akan mengaktifkan sistem teks ke ucapan. Apabila sistem teks ke ucapan telah aktif maka hasil dari setiap ekeskusi dari fungsi DbEksekusi() akan membuat Eksekusi mengirimkan pesan suara kepada pengguna dengan menggunakan fungsi TeksRespons(). Apabila pengguna memilih Disable Speech
maka fungsi TTS(Kalimat, False) pada TextToSpeech akan menonaktifkan sistem teks ke ucapan, sehingga pesan yang disampaikan oleh fungsi TeksRespons() akan ditampilkan dalam format teks dengan terlebih dahulu mengaktifkan aplikasi Agen dan mengaktifkan fungsi AgenTeks().
66
Gambar 3.23, Sequence Diagram Menambah Perintah
Pada sequence diagram menambah perintah (Gambar 3.23), pengguna memilih salah satu dari tipe shortcut yang meliputi tipe Open, Close, Folder, Shortcut dan System. Open untuk membuka aplikasi, Close untuk menutup aplikasi, Folder untuk membuka folder, Shortcut untuk eksekusi tombol keyboard
dan System untuk eksekusi menu power. Selanjutnya PengaturTabel akan melakukan koneksi ke basis data dengan fungsi KoneksiBasisData() dan kemudian menampilkan daftar perintah dari basis data dengan fungsi TampilTabel(). Untuk tipe Shortcut, pengguna harus menentukan kombinasi tombol keybord. Untuk membentuk kode shortcut dari tombol yang dipilih pengguna, KodeShortcut menggunakan fungsi KombinasiTombolKeyboard(). Untuk tipe Open, Close, dan Folder pengguna harus menentukan file aplikasi yang akan dibuka atau ditutup maupun folder yang akan dibuka. Untuk membentuk kode shortcut, KodeShortcut menggunakan fungsi PencarianFile() dan SetDirPath(). Setelah semua data perintah lengkap pengguna melakukan penyimpanan perintah dengan fungsi TambahPerintah(), dan sistem akan
67
melakukan penyimpanan perintah ke basis data dengan fungsi TambahDataBasisData().
j. Sequence diagram mengubah perintah
Gambar 3.24, Sequence Diagram Mengubah Perintah
Pada sequence diagram mengubah perintah (Gambar 3.24), pengguna memilih tipe shortcut. Setelah melakukan koneksi basis data dengan fungsi KoneksiBasisData(), PengaturTabel akan menampilkan daftar perintah melalui fungsi TampilTabel(). Pengguna harus memilih data yang akan dirubah dari tabel. Pengubahan yang dilakukan meliputi kombinasi tombol dengan fungsi KombinasiTombolKeyboard(), nama file dengan fungsi PencarianFile() atau folder dengan fungsi SetDirPath(). Setelah data diubah menggunakan fungsi UbahPerintah(), data tersebut akan disimpan ke basis data dengan fungsi UpdateDataBasisData().
68
Gambar 3.25, Sequence Diagram Menghapus Perintah
Pada sequence diagram menghapus perintah (Gambar 3.25), pengguna memilih tipe shortcut. Setelah itu PengaturTabel akan melakukan koneksi ke basis data dengan fungsi KoneksiBasisData() dan menampilkan daftar perintah dalam tabel dengan fungsi TampilTabel(). Pengguna kemudian memilih data perintah yang akan dihapus dengan fungsi PilihData(), kemudian pengguna melakukan penghapusan dengan fungsi HapusPerintah(). Selanjutnya PengaturTabel akan melakukan penghapusan data dari basis data dengan fungsi HapusDataBasisData().
3.5 COMPONENT DIAGRAM
Komponen piranti lunak adalah modul berisi code, baik berisi source code
69
penyusun sistem Perintah Suara yaitu tb_aplikasi, PemuatDataDb, ShortcutSuara, SAPI, sapisvr, PengontrolHwnd, AgentCtl, dan AgentSvr.
Gambar 3.26, Component Diagram
Rincian dari masing-masing komponen pada component diagram (Gambar 3.26) tersebut dapat dijelaskan sebagai berikut.
1. tb_aplikasi, merupakan komponen berjenis tabel. Basis data dari sistem ini hanya terdiri dari sebuah tabel saja yaitu tb_aplikasi tersebut. Komponen ini terhubung dengan class PengaturTabel dan KodeShortcut.
2. PemuatDataDb, merupakan komponen berjenis library. Komponen ini berfungsi untuk menampung seluruh daftar perintah dari basis data sebelum digunakan. Komponen ini terhubung dengan class DataDb dan PerintahBaku. 3. ShortcutSuara, merupakan komponen berjenis executable. Komponen ini
merupakan komponen utama yang berjalan pada saat run time untuk melakukan pengenalan ucapan dan eksekusi. Komponen ini terbentuk dari
class Grammar, RecognitionContext dan class Eksekusi.
4. SAPI, merupakan komponen berjenis library. File library tersebut bernama sapi.dll. Komponen ini digunakan oleh class Grammar, RecognitionContext dan TextToSpeech.
5. sapisvr, merupakan komponen executable yang aktif secara otomatis pada saat sapi.dll dijalankan. Komponen ini aktif karena jenis mesin pengenalan yang digunakan menggunakan konteks pengenalan yang bisa digunakan untuk berbagi pakai ( Shared Recognition Context ).
70
6. PengontrolHwnd, merupakan komponen berjenis library. Komponen ini untuk mengamati hWnd dan menyimpannya. Komponen ini terhubung dengan class
DataHwnd.
7. AgenCtl, merupakan komponen berjenis library. Komponen ini untuk mengaktifkan aplikasi MS Agen. Komponen ini digunakan oleh class Agen. 8. AgenSvr, merupakan komponen berjenis executable. Komponen ini berjalan
pada saat run time ketika MS Agen aktif.
3.6 RANCANGAN ANTARMUKA
Rancangan antarmuka dibagi menjadi dua bagian. Antarmuka yang pertama secara umum berfungsi untuk mendaftar semua aplikasi yang telah dibuka oleh sistem. Antarmuka kedua untuk mengelola basis data sistem. Kedua rancangan antarmuka ini dibuat menggunakan Microsoft Visio 2003.
71
Antarmuka yang pertama disebut Application Monitor (Gambar 3.27). Antarmuka ini memiliki tiga frame. Frame yang pertama (Frame1) berisi kontrol untuk memuat daftar teks. Daftar0 merupakan seluruh daftar teks perintah dari sistem. Daftar0 akan menampilkan teks perintah yang dipanggil. Kontrol yang terdapat dalam Frame1 termuat dalam komponen yang bernama PemuatDataDb (Gambar 3.26). Frame yang kedua (Frame2) berisi kontrol untuk menampilkan daftar aplikasi yang aktif. Daftar1 berisi nomor urut dari task aplikasi (Kolom1), Daftar2 berisi title dari task aplikasi (Kolom2), Daftar3 berisi hWnd dari task
aplikasi. Kontrol yang terdapat dalam Frame2 termuat dalam komponen yang bernama PengontrolHwnd (Gambar 3.26). Frame yang ketiga (Frame3) terdapat dua kontrol, untuk mematikan sistem teks ke ucapan (Pilihan1) dan untuk mematikan sistem pengenalan ucapan (Pilihan2).
72
Antarmuka yang kedua disebut Database Manager (Gambar 3.28). Antarmuka ini memiliki empat frame. Frame yang pertama (Frame1) terdiri dari empat kontrol, untuk memilih tipe Shortcut Biasa (Pilihan1), untuk tipe Shortcut
Buka Aplikasi (Pilihan2), untuk tipe Shortcut Tutup Aplikasi (Pilihan3) dan untuk tipe Shortcut Khusus (Pilihan4). Frame yang kedua (Frame2) terdapat kontrol untuk menampilkan data dari basis data sesuai tipe shortcut yang dipilih. Frame
yang ketiga (Frame3) terdiri dari 16 kontrol. Teks1 untuk memasukkan kata perintah, Teks2 untuk memasukkan kode perintah, Teks3 untuk memasukkan nama aplikasi yang dijalankan, Teks4 untuk memasukkan tipe shortcut, Teks5 untuk memasukkan kata komentar sebagai respons sistem, Teks6 untuk memasukkan fungsi tombol. Tombol1 untuk mengosongkan Teks1 sampai Teks6. Tombol2 untuk menambah perintah yang baru, Tombol3 untuk memperbaharui data, Tombol4 untuk menghapus data, Tombol5 untuk mengosongkan Teks2, Tombol6 untuk mengosongkan Teks6. Drive dan Folder untuk mencari file dan
folder. Teks7 untuk menampilkan lokasi (Path Folder) yang dipilih. Daftar1 untuk memilih file exe dari aplikasi yang akan diakses. Frame yang keempat
(Frame4) berisi kontrol yang semuanya berfungsi membentuk konfigurasi dan fungsi keyboard. Kontrol dalam Frame4 ini untuk memasukkan kombinasi tombol
shortcut atau shortcut yang menggunakan tombol-tombol fungsi dari keyboard.
3.7 RANCANGAN MENU
Menu pada Aplikasi Perintah Suara dirancang untuk tampil ketika menunjuk ikon dari Aplikasi Perintah Suara pada system tray bukan ditampilkan pada antarmuka Application Monitor. Rancangan menu pada Aplikasi Perintah Suara dibuat dibuat dengan Microsoft Visio 2003 untuk menjelaskan menu apa saja yang disediakan oleh sistem Perintah Suara. Rancangan menu tersebut seperti dalam gambar dibawah ini.
73
Gambar 3.29, Rancangan Menu
Peran dari masing-masing menu tersebut berfungsi untuk mempermudah dalam menggunakan dan mengatur Aplikasi Perintah Suara. Disable Recognition
berfungsi untuk menonaktifkan mesin pengenalan ucapan. Disable Speech
berfungsi untuk menonaktifkan mesin teks ke ucapan. Hide Assistant berfungsi untuk menyembunyikan aplikasi Agen. Command List berfungsi untuk mencetak seluruh daftar perintah. Database Manager berfungsi untuk membuka antarmuka
Database Manager. Sound Properties berfungsi untuk melakukan pengaturan suara dari perangkat kartu suara dan pengeras suara. Speech Properties berfungsi untuk mengatur sistem pengenalan ucapan dan teks ke ucapan termasuk pengaturan level dan konfigurasi mikropon serta melakukan pelatihan dan penyimpanan profil pengenalan.