ANALISIS DAN PERANCANGAN SISTEM
3.3. Perancangan Sistem
3.3.1 Windows API
Ada beberapa API yang digunakan dalam aplikasi ini, yaitu :
1. UnhookWindowsHookEx
Berguna untuk melepaskan hook pada keyboard sehingga sistem tidak akan menerima atau mendeteksi input apapun dari keyboard. Sistem juga tidak akan mampu memprediksi kata karena sistem tidak mendapat input dari user.
2. SetWindowsHookEx
Berguna untuk memasang hook pada keyboard sehingga sistem akan menerima atau mendeteksi input apapun dari keyboard. Dengan adanya hook
ini sistem dapat menentukan input apa yang dapat diterima oleh sistem dan
input apa yang tidak diterima oleh sistem. 3. GetForegroundWindow
Berguna untuk mendeteksi foreground window (Window yang sedang digunakan oleh user). Fungsi ini berguna untuk mendeteksi apakah user
berpindah aplikasi atau tidak, Jika ketika user mengetik dan tiba-tiba berganti aplikasi, sistem akan menghapus prediksi kata sebelumnya sehingga user bisa memulai prediksi kata yang baru di aplikasi yang lain.
4. GetWindowText
Berguna untuk mendapatkan Title dari suatu window aplikasi. GetWindowText
biasanya digunakan bersamaan dengan GetForegroundWindow karena sistem bisa mendeteksi apakah user berpindah ke window aplikasi lain dengan melihat title dari sebuah window aplikasi. Jika title tidak berubah berarti user
belum ada berganti ke aplikasi yang lain, bila title berubah maka user telah berpindah ke aplikasi yang lain sehingga sistem akan menghapus prediksi kata di aplikasi sebelumnya dan memulai prediksi kata yang baru di aplikasi yang baru.
3.3.2 Flowchart Sistem
Fazly (2002) menyebutkan dalam penelitiannya “It is clear that the higher the number of words in the suggestion list, the greater the chance of having the intended word among the suggestions. But, larger values for n impose a cognitive load on the user as they make the search time for the desired word longer, and it is more likely that the user will overlook the word they are looking for. Different users of word-completion utilities may prefer different values for this parameter, according to their level and type of disabilities” berdasarkan kata-kata ini, Fazly akhirnya menentukan banyaknya kata yang ditampilkan yaitu 1, 5, dan 10 untuk mengukur performa dari sistem word prediction. Penulis menggunakan 5 kata yang ingin ditampilkan pada sistem word prediction.
Adapun alur kerja yang terdapat pada sistem word prediction dapat dilihat pada Gambar 3.2.
Langkah-langkah flowchart pada Gambar 3.2 menjelaskan bagaimana alur kerja yang terdapat di dalam sistem, proses pencarian kata untuk mendapatkan prediksi kata yang terbaik, yaitu :
1. Pengguna memberikan input berupa huruf awal dari kata yang diinginkan. 2. Ketika pengguna mengetik input, sistem akan langsung mendeteksi tombol
yang ditekan oleh pengguna, dan membandingkan huruf-huruf tersebut dengan kata-kata yang berada di dalam database kata.
3. Setelah itu sistem akan mencari kata-kata yang mempunyai awalan huruf yang sama dengan input, dan sistem mencari 5 kata yang mempunyai frekuensi user dan kata tertinggi.
4. Bila sistem tidak menemukan kata yang mempunyai awalan dari input huruf, sistem akan membiarkan user untuk mengetik kata yang diinginkan sampai selesai, kemudian sistem akan secara otomatis menambahkan kata tersebut ke dalam database.
5. Bila sistem menemukan kata yang mempunya awalan dari input huruf, sistem akan menampilkan 5 kata tersebut pada window yang disediakan.
6. Pengguna bisa memilih apakah prediksi kata yang ditampilkan oleh sistem sudah tepat atau belum, bila belum tepat pengguna bisa menambah input huruf sampai kata yang diinginkan oleh pengguna ditampilkan oleh sistem.
7. Bila prediksi kata sudah tepat, pengguna bisa memilih kata tersebut dengan tombol angka yang ada pada keyboard, dan sistem akan langsung mengirim sisa keystroke pada kata tersebut ke textfield pengguna. Kemudian frekuensi kata dan frekuensi user dari kata tersebut akan bertambah 1.
Algoritma yang digunakan untuk mencari 5 kata teratas pada sistem ini bisa dilihat pada Gambar 3.3 yaitu :
1. Pertama-tama sistem akan mengurutkan semua kata yang berada di dalam
database berdasarkan frek_user dari yang terbesar sampai dengan yang terkecil dengan menggunakan fungsi yang ada pada ORDER BY dan
DESCENDING yang ada pada MySQL.
3. Bila dari 5 kata tersebut ada kata yang memiliki nilai frek_user sama dengan 0, maka sistem akan mengurutkan kata-kata yang memiliki nilai frek_user = 0 tersebut berdasarkan frek_unigram yang terdapat pada setiap kata dengan menggunakan fungsi di dalam MySQL yaitu ORDER BY dan DESCENDING. Agar kata-kata tersebut diurutkan dari yang memiliki nilai frek_unigram terbesar sampai dengan nilai frek_unigram yang terkecil. Setelah itu sistem akan menampilkan 5 kata tersebut kepada user.
3.3.3 Perancangan Database
Berikut ini adalah rancangan database sistem word prediction.
A. Tbl_unigram
Tabel unigram adalah tabel yang dirancang untuk menyimpan kata, frekuensi kata, dan frekuensi user. Rancangannya dapat dilihat pada Gambar 3.4.
Tbl_unigram
Primary Key id_unigram Integer(11) kata_unigram Varchar(26) frek_unigram Integer(11) frek_uniuser Integer(11) Gambar 3.4 Rancangan tbl_unigram Keterangan dari Gambar 3.4:
1. PK adalah primary key dari tbl_unigram yaitu id_unigram.
2. kata_unigram merupakan kolom untuk menyimpan semua kata yang akan digunakan pada sistem word prediction.
3. frek_unigram merupakan kolom yang berfungsi untuk menyimpan frekuensi suatu kata. Frekuensi inilah yang berguna untuk mengurutkan kata apa yang paling sering digunakan.
4. frek_uniuser merupakan frekuensi kata yang sering digunakan oleh user. kolom ini berguna untuk jenisadaptasi recency information. Jadi, selain frekuensi kata yang sudah ditentukan sebelumnya, ada juga frekuensi kata yang sering digunakan oleh user sehingga dapat meningkatkan akurasi prediksi kata dari sistem.
B. Tbl_login
Tabel login adalah tabel yang dirancang untuk menyimpan username, password, dan nama pengguna. Rancangannya dapat dilihat pada Gambar 3.5.
Tbl_login
Primary Key id_login Integer (11) username Varchar(26) password Varchar(26) nama_login Varchar(20) Gambar 3.5 Rancangan tbl_login
Keterangan dari Gambar 3.5 :
1. PK adalah primary key dari tbl_login yaitu id_login.
2. Username merupakan kolom untuk menyimpan username pengguna. 3. Password merupakan kolom untuk menyimpan password pengguna.
4. Nama_login merupakan kolom yang digunakan untuk menyimpan informasi nama pengguna.
C. Tbl_unigramnamauser
Tabel unigramnamauser adalah tabel yang dirancang untuk menyimpan kata, frekuensi kata, dan frekuensi user, namun tiap pengguna akan mempunyai tabel dengan nama yang berbeda. Jadi, tiap pengguna akan mempunyai database kata yang berbeda. Rancangannya dapat dilihat pada Gambar 3.6.
Tbl_unigram
Primary Key id_unigram Integer(11) kata_unigram Varchar(26) frek_unigram Integer(11) frek_uniuser Integer(11) Gambar 3.6 Rancangan tbl_unigramnamauser
Keterangan Gambar 3.6:
1. PK adalah primary key dari tbl_unigram yaitu id_unigram.
2. kata_unigram merupakan kolom untuk menyimpan semua kata yang akan digunakan pada sistem word prediction.
3. frek_unigram merupakan kolom yang berfungsi untuk menyimpan frekuensi suatu kata. Frekuensi inilah yang berguna untuk mengurutkan kata apa yang paling sering digunakan.
4. frek_uniuser merupakan frekuensi kata yang sering digunakan oleh user. kolom ini berguna untuk jenisadaptasi recency information. Jadi, selain frekuensi kata yang sudah ditentukan sebelumnya, ada juga frekuensi kata yang sering digunakan oleh user sehingga dapat meningkatkan akurasi prediksi kata dari sistem.
3.3.4 Diagram Use Case
Use case diagram merupakan pemodelan terhadap cara kerja maupun tingkah laku sistem informasi yang akan dibuat. Use case mendeskripsikan interaksi tipikal antara
user dengan sistem itu sendiri dengan member sebuah narasi tentang bagaimana sistem tersebut digunakan (Fowler, 2005). Pada Gambar 3.5 akan ditampilkan fitur- fitur apa saja di dalam sistem yang bisa dimanfaatkan oleh user.
Gambar 3.7 Diagram use case sistem
3.3.5 Use case spesifikasi
Use case spesifikasi adalah dekskripsi mengenai use case diagram, menjelaskan bagaimana sebuah use case itu bekerja (Muchtar, et al. 2011). Tabel 3.2, 3.3, 3.4, .3.5, dan 3.6 menjelaskan spesifikasi use case yang digunakan dalam sistem yang akan dibangun.
Tabel 3.2 Spesifikasi use case untuk login
Nama use case login
Aktor User
Deskripsi Use case ini digunakan oleh user untuk masuk ke dalam sistem
Tabel 3.2 Spesifikasi use case untuk login (Lanjutan)
Pre Condition User harus memiliki username dan password untuk login
Characteristic of activation Eksekusi hanya dapat dilakukan oleh user
Basic flow
- User memasukkan username dan password pada form
yang tersedia, lalu klik login
- Sistem akan mengecek apakah username dan
password ada atau tidak [H-1 Akun tidak tersedia]
- Jika akun tidak ada dalam database maka user
diharuskan untuk daftar terlebih dahulu
Alternative flow
H-1 : Akun tidak tersedia
Sistem akan menampilkan pesan bahwa informasi login salah
H-2 : Field tidak diisi
Sistem akan memberikan pemberitahuan bahwa ada
field yang belum terisi. User harus mengisi field
tersebut
Post condition User dapat masuk dan menggunakan sistem
Limitation -
Tabel 3.3 Spesifikasi use case untuk input huruf Nama use case Input huruf
Aktor User
Deskripsi Use case ini digunakan oleh user untuk mengetik huruf ke dalam sistem
Tabel 3.3 Spesifikasi use case untuk input huruf (Lanjutan)
Pre Condition User harus meng-kliktombol aktif terlebih dahulu
untuk dapat mengetik huruf ke dalam sistem
Characteristic of activation -
Basic flow
- User meng-klik tombol aktif untuk agak program dapat menerima input huruf dari user
- Sistem akan mengecek huruf yang di-input oleh user
ke dalam database, apakah ada kata yang mempunyai awalan dari huruf yang di-input oleh user
[H-1 Kata tidak tersedia]
- Jika kata ada dalam database, sistem akan menampilkan 5 kata yang mempunyai frekuensi user
dan kata tertinggi pada kolom yang tersedia
Alternative flow H-1 : Kata tidak tersedia
Sistem tidak akan menampilkan apapun pada kolom yang tersedia, namun akan menambahkan kata tersebut ke dalam database setelah user menekan tombol "space" pada keyboard
Post condition User dapat memilih kata yang diinginkannya dengan menekan tombol angka 1 sampai dengan 5 pada
keyboard, sistem akan mengirim kata tersebut ke dalam
textfield yang ada
Tabel 3.4 Spesifikasi use case untuk tambah kata Nama use case Tambah kata
Aktor User
Deskripsi Use case ini digunakan oleh user untuk menambahkan kata ke dalam database
Pre Condition -
Characteristic of activation -
Basic flow
- User memasukkan kata baru, frekuensi kata, dan frekuensi user
[H-1 Kata sudah ada di dalam database] [H-2 Field tidak diisi]
- User berhasil menambah kata ke dalam database
Alternative flow
H-1 : Kata sudah ada di dalam database
Sistem akan memberikan pemberitahuan bahwa kata yang di-input oleh user sudah ada di dalam database.
User harus meng-input kata baru yang lain
H-2 : Field tidak diisi
Sistem akan memberikan pemberitahuan bahwa ada
field yang belum terisi. User harus mengisi field
tersebut
Post condition User dapat menambahkan kata baru selanjutnya ke
dalam database
Tabel 3.5 Spesifikasi use case ubah kata Nama use case Ubah kata
Aktor User
Deskripsi Use case ini digunakan oleh user untuk mengubah informasi kata yang ada di dalam database
Pre Condition -
Characteristic of activation -
Basic flow
- User memilih kata yang informasinya ingin diubah pada window yang tersedia
- User dapat mengubah isi dari field yang tersedia, isi tersebut diambil dari informasi kata yang sudah ada sebelumnya
[H-1Field tidak diisi]
- User berhasil mengubah kata yang ada dalamdatabase
Alternative flow
H-1 : Field tidak diisi
Sistem akan memberikan pemberitahuan bahwa ada
field yang belum terisi. User harus mengisi field
tersebut
Post condition User dapat mengubah informasi kata yang lain
Tabel 3.6 Spesifikasi use case untuk hapus kata Nama use case Hapus kata
Aktor User
Deskripsi Use case ini digunakan oleh user untuk kata yang ada di dalam database
Pre Condition -
Characteristic of activation -
Basic flow
- User memilih kata yang ingin dihapus pada window
yang tersedia
[H-1 Tidak memilih kata yang ingin dihapus]
- User berhasil menghapus kata yang ada dalam
database
Alternative flow
H-1 : Tidak memilih kata yang ingin dihapus
Sistem akan memberikan pemberitahuan bahwa user
harus memilih kata yang ingin dihapus
Post condition Kata tersebut sudah terhapus di dalam database
Limitation -
Tabel 3.7 Spesifikasi use case untuk cari kata Nama use case Cari kata
Aktor User
Deskripsi Use case ini digunakan oleh user untuk mencari kata yang ada di dalam daatbase
Pre Condition -
Tabel 3.7 Spesifikasi use case untuk cari kata (Lanjutan)
Basic flow
- User memasukkan kata yang ingin dicari pada field
yang tersedia [H-1 Field kosong]
- Sistem menampilkan kata yang ingin dicari
Alternative flow
H-1 : Field kosong
Sistem akan menampilkan semua kata yang ada di dalam database
Post condition -
Limitation -
3.3.6 Activity Diagram
Activity diagram sistem menggambarkan urutan aktifitas dalam sistem yang sedang dirancang. Aktifitas yang digambarkan hanya secara umum, tidak secara eksak seperti pembuatan flowchart yang terstruktur. Activity diagram menjelaskan tentang kegiatan apa yang dapat dilakukan pada sistem tetapi tidak menjelaskan apa yang dilakukan oleh actor (Fowler, 2005). Activity diagram yang akan dibangun dapat dilihat pada Gambar 3.8.
Pada gambar 3.8, apabila user ingin mengaktifkan fitur prediksi kata, user
harus login terlebih dahulu, sistem akan mengecek apakah user ada atau tidak. Setelah itu user harus mengklik tombol aktifkan. Setelah itu sistem akan memanggil
KeyboardHook yang berguna untuk menerima input huruf yang user berikan melalui
keyboard. Setelah user memberikan input huruf, sistem akan mencari kata yang mempunyai awalan huruf berdasarkan dari input user. Kemudian sistem akan menampilkan kata-kata tersebut kepada user.Setelah user memilih kata-kata yang ditampilkan oleh sistem, maka sistem akan mengirimkan sisa huruf dari kata tersebut ke textfield yang tersedia.
Gambar 3.8 Activity diagram sistem (prediksi kata)
Pada Gambar 3.9, apabila user ingin menambah kata yang ada di dalam
database, user harus login terlebih dahulu, sistem akan mengecek apakah user ada atau tidak. User harus mengklik tombol tambah kata terlebih dahulu, kemudian sistem akan menampilkan window baru yang berisi kolom-kolom yang harus user isi, seperti nama kata, frekuensi kata, dan frekuensi user. Lalu sistem akan mengecek ke dalam
database apakah kata tersebut sudah terdapat didalam database atau belum. Jika kata tersebut terdapat di dalam database, sistem akan menampilkan pesan error dan meminta user untuk memasuki kata yang lain. Bila kata tersebut belum ada terdapat di dalam database, sistem akan menambah kata tersebut ke dalam database.
Gambar 3.9 Activity diagram sistem (tambah kata)
Gambar 3.10 merupakan activity diagram jika user ingin menghapus suatu kata di dalam database, user harus login terlebih dahulu, sistem akan mengecek apakah user ada atau tidak. Setelah itu User memilih kata yang dihapus, setelah memilih kata tersebut, user menekan tombol hapus. Lalu sistem akan mengecek kata tersebut di dalam database dan akan meminta konfirmasi kepada user, apakah user
ingin menghapus kata tersebut. Bila user sudah mengkonfirmasi maka kata tersebut akan dihapus dari dalam database oleh sistem.
Gambar 3.10 Activity diagram sistem (hapus kata)
Pada Gambar 3.11, apabila user ingin mengubah informasi sebuah kata, seperti nama kata, frekuensi kata, dan frekuensi user, user harus login terlebih dahulu, sistem akan mengecek apakah user ada atau tidak. Setelah itu user memilih kata yang informasinya ingin diubah. Setelah itu user harus mengklik tombol ubah kata, dan sistem akan menampilkan beberapa informasi yang ada pada kata yang dipilih oleh
user. Setelah user selesai mengubah informasi dari kata tersebut, sistem akan mengecek apakah informasi yang diisi oleh user sudah benar atau belum. Bila sudah benar, sistem akan mengubah informasi dari kata tersebut di dalam database.
Gambar 3.11 Activity diagram sistem (ubah kata)
3.3.7 Perancangan Antar Muka
Perancangan antar muka merupakan gambaran umum tentang perancangan setiap tampilan yang terdapat dalam sistem yang akan dibangun. Berikut akan dijelaskan rancangan bagian-bagian dari sistem:
a. Rancangan tampilan awal
Pada tampilan awal sistem terdapat nama aplikasi di bagian atas. Kemudian ada dua tombol, yaitu tombol aktif dan pengaturan. Kata-kata yang diprediksi juga akan ditampilkan pada tampilan ini. Rancangan tampilan seperti Gambar 3.12.
Gambar 3.12 Rancangan tampilan awal aplikasi
Keterangan :
1. Tombol aktif berguna untuk mengaktifkan prediksi kata pada sistem. Bila tombol ini ditekan, maka sistem akan mulai mengambil input
huruf yang diketik oleh user pada keyboard. Tombol ini juga berguna untuk menonaktifkan prediksi kata pada sistem.
2. Tombol pengaturan berguna untuk masuk ke halaman pengaturan.
b. Rancangan tampilan pengaturan
Pada halaman ini, user tidak hanya bisa melihat dan mencari kata-kata apa saja yang ada di dalam database. Namun user bisa menambah kata yang baru, mengubah informasi yang ada di dalam suatu kata, dan menghapus kata. Rancangan halaman ini bisa dilihat pada Gambar 3.13.
Gambar 3.13 Rancangan tampilan halaman pengaturan
Keterangan :
1. Pada field cari, user bisa mengetik kata yang ingin dicarinya, sistem akan secara otomatis menampilkan bila kata tersebut tersedia dalam database, kata tersebut akan ditampilkan pada kolom daftar kata.
2. Kolom Daftar kata berfungsi untuk menampilkan kata-kata apa saja yang ada di dalam database
3. Tombol tambah digunakan bila user ingin menambah kata baru. Bila tombol tersebut di-klik, sistem akan menampilkan halaman tambah kata.
4. Tombol ubah digunakan bila user ingin mengubah kata yang ada di dalam database. Bila tombol tersebut di-klik, sistem akan menampilkan halaman ubah kata.
5. Tombol hapus digunakan bila user ingin menghapus kata yang ada di dalam database. Bila tombol tersebut di-klik, sistem akan menghapus kata yang dipilih oleh user.
6. Pada bagian tab halaman ada tombol about yang berguna untuk menampilkan halaman about.
7. Tombol OK dan kembali berguna untuk kembali ke tampilan awal sistem.
c. Rancangan tampilan tambah kata
Pada halaman ini, user bisa menambah kata baru sekaligus menambah informasi frekuensi kata, dan frekuensi user. Rancangan tampilan bisa dilihat pada Gambar 3.14.
Gambar 3.14 Rancangan tampilan halaman tambah kata
Keterangan :
1. Tombol kembali berguna untuk kembali ke halaman pengaturan. 2. Tombol tambah berguna untuk menambah kata baru yang di-input oleh
user. Tombol ini juga akan memberitahu bisa proses menambah kata berhasil.
d. Rancangan tampilan about
Halaman ini berisi biodata penulis dan logo Universitas Sumatera Utara, yang menandakan sistem ini diproduksi oleh mahasiswa Universitas Sumatera Utara. Rancangan tampilan halaman bisa dilihat pada Gambar 3.15.
Gambar 3.15 Rancangan tampilan halaman about
e. Rancangan tampilan login
Pada halaman login, sistem menampilkan form login. User harus memasukkan
username dan password untuk masuk ke halaman berikutnya. Rancangan halaman login seperti Gambar 3.16.
Gambar 3.16 Rancangan tampilan halaman login
f. Tampilan halaman daftar
Pada halaman daftar, sistem menampilkan form pendaftaran. User harus memasukkan nama, username, dan password untuk mendaftarkan suatu akun disistem yang akan digunakan nantinya untuk menggunakan word prediction. Rancangan halaman daftar seperti Gambar 3.17.
BAB 4