TA : Rancang Bangun Aplikasi Penilaian Posisi Karate Menggunakan Teknologi Sensor Kinect.

(1)

RANCANG BANGUN APLIKASI PENILAIAN POSISI KARATE MENGGUNAKAN TEKNOLOGI SENSOR KINECT

Nama : HOKY AJICAHYADI NIM : 09.41010.0009

Program : S1 (Strata Satu) Jurusan : Sistem Informasi

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA


(2)

ABSTRAK

Kihon adalah teknik dasar dari ilmu bela diri Karate selain Kata (jurus) dan Kumite (pertandingan) yang sangat penting. Kihon ini merupakan dasar dalam mempelajari ilmu bela diri Karate yang terdiri dari teknik menendang memukul dan menangkis. Dalam proses pembinaan murid Karate, guru Karate sering kali kesusahan dalam proses penilaian teknik Kihon.

Untuk membantu proses penilaian teknik Kihon maka diusulkan aplikasi penilaian posisi Karate yang mengambil derajat sudut tiap persendian tubuh manusia yang dapat dideteksi menggunakan bantuan sensor Kinect. Dari 12 persendian yang dideteksi sensor Kinect akan dihitung derajat sudutnya menggunakan 2 vektor yang membentuk sendi tersebut. Dari sudut vektor tersebut akan dibandingkan dengan data model yang dijadikan acuan. Tiap persendian memiliki nilai 0-180 derajat dan selanjutnya direpresentasikan dalam model visual dengan bantuan Kinect SDK. Hasil akhir dari aplikasi ini akan menunjukkan perbandingan antara derajat persendian dari pengguna dengan data model dan nilai rata-rata selisih dari persendian.

Hasil penilaian posisi Karate pada teknik Kihon didapat dari derajat vektor yang membentuk persendian yang diproses untuk diketahui selisih derajat dari data referensi dan data dari pengguna yang didapat lalu dihitung selisihnya. Hasil uji coba atas 24 gerakan yang memiliki data referensi yang sudah diambil dan dibandingkan dengan data pengguna yang menggunakan aplikasi ini memiliki tingkat akurasi rata-rata sebesar 83%.


(3)

ix DAFTAR ISI

Halaman

ABSTRAK ... vi

KATA PENGANTAR ... vii

DAFTAR ISI ... ix

DAFTAR TABEL ... xi

DAFTAR GAMBAR ... xii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah... 3

1.3 Pembatasan Masalah ... 3

1.4 Tujuan Penelitian ... 4

1.5 Manfaat Penelitian ... 4

1.6 Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 7

2.1 Karate ... 7

2.2 Metode Pembelajaran untuk Keterampilan Motorik ... 9

2.3 Kinect ... 10

2.4 Bahasa Pemrograman C#... 12

2.5 Skeleton Tracking ... 13

2.6 Agile Software Development ... 14

2.7 Unified Modelling Language ... 15

2.8 Unified Process ... 17

2.9 Sudut Vektor ... 19

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 21

3.1 Analisis Permasalahan ... 21

3.2 Perancangan Sistem... 24

3.2.1 Agile Planning ... 37

3.2.2 Unified Process ... 37


(4)

3.2.4 Flow of Events ... 40

3.2.5 Activity Diagram ... 44

3.2.6 Sequence Diagram ... 51

3.2.7 Class Diagram ... 56

3.2.8 Struktur Tabel ... 62

3.2.9 Desain User Interface ... 67

3.3 Rancangan Pengujian Sistem ... 72

3.3.1 Rancangan Pengujian dengan Metode Blackbox ... 73

BAB IV IMPLEMENTASI DAN EVALUASI ... 76

4.1 Implementasi Sistem ... 76

4.1.1 Kebutuhan Sistem ... 76

4.2 Proses Implementasi ... 78

4.2.1 Fungsionalitas Compare ... 81

4.2.2 Fungsionalitas Feedback ... 97

4.2.3 Fungsionalitas Save ... 98

4.3 Evaluasi Sistem ... 102

4.3.1 Hasil Uji Coba dengan Metode Black Box ... 102

4.3.2 Hasil Uji Coba oleh Pengguna ... 105

BAB V KESIMPULAN DAN SARAN... 109

5.1 Kesimpulan ... 109

5.2 Saran ... 110

DAFTAR PUSTAKA ... 111


(5)

1 BAB I

PENDAHULUAN

1.1Latar Belakang Masalah

Karate merupakan salah satu dari ilmu bela diri yang diminati di Indonesia. Berbagai sekolah Karate didirikan untuk mengajarkan ilmu bela diri ini ke banyak orang mulai dari anak kecil sampai orang dewasa. Dalam proses pembelajaran, sekumpulan murid dengan tingkat yang sama dikumpulkan untuk latihan bersama, cara ini bisa kita sebut dengan cara tradisional. Cara ini memerlukan tatap muka antara murid dan pengajar secara fisik dalam prosesnya. Mereka melakukan serangkaian gerakan yang berulang-ulang untuk melatih gerakan dasar dan juga serangkaian jurus. Bagi murid tingkat rendah, gerakan dasar atau yang lebih dikenal dengan istilah kihon, merupakan fundamental yang harus dimengerti sepenuhnya.

Kihon merupakan dasar dari seluruh gerakan Karate yang akan diajarkan terus di tingkat selanjutnya, dimana sampai jenjang paling tinggi pun karatekawan tetap harus melatih teknik dasar mereka.

Bagi seorang murid yang melakukan latihan bersama dengan murid lainnya kadangkala mereka melakukan beberapa gerakan yang kurang sepadan satu sama lain. Dalam kenyataannya mereka akan dikoreksi oleh guru mereka sehingga mereka melakukan gerakan maupun posisi yang benar. Namun begitu jumlah murid mencapai jumlah tertentu, seorang sempai (sebutan guru karate) akan kesulitan dalam memeriksa posisi tubuh mereka masing-masing. Beberapa hal yang perlu dikoreksi adalah posisi badan, tangan dan kaki.


(6)

Seiring dengan perkembangan, ada dua learning environments yang dapat diterapkan dalam pembelajaran karate selain traditional group, yaitu melalui video

dan Virtual Reality (VR) dimana kedua environment ini tidak memiliki pengaruh negatif yang signifikan dalam proses penyampaian informasi dibandingkan dengan

traditional group dalam belajar Karate (Burns, et al., 2011). Komura et al. (2006) menyimpulkan perkembangan proses belajar ini akan mengarah ke e-learning martial arts yang dalam pelaksanaannya siswa akan menghadapi kesulitan dengan tidak adanya pelatih yang memberikan feedback baik berupa penilaian dan saran pada proses pembelajaran tersebut.

Di luar lingkup pembelajaran, para guru besar karate memiliki jadwal rutin untuk berkunjung ke negara-negara dengan tujuan membantu guru-guru lokal menyamakan persepsi gerakan karate. Guru besar karate ini berasal dari Jepang yang membawa pengetahuan mengenai aliran mereka dan mengajarkan posisi dan gerakan yang benar. Mereka memiliki agenda rutin untuk berkunjung ke negara- negara yang mengundang mereka. Hal ini disebabkan oleh penyampaian informasi yang berantai kadangkala tak selalu tersampaikan 100% akurat sesuai dengan sumbernya. Sama seperti pengajaran seorang guru karate satu dengan yang lainnya kadang kala memiliki perbedaan, walaupun tidak signifikan namun berpengaruh penting pada penyampaian informasi/pengajaran pada generasi selanjutnya.

Sensor Kinect merupakan sebuah teknologi ciptaan Microsoft yang dapat mendeteksi human gesture untuk berbagai keperluan, mulai dari alat pengontrol menggunakan gerakan tubuh, pendidikan, permainan, dan juga rehabilitasi. Sensor ini mampu untuk mendeteksi pergerakan manusia berdasarkan skeleton tracking


(7)

3

yang mampu mendeteksi bentuk tubuh manusia mengunakan depth sensor dan kamera RGB.

Dengan memanfaatkan kemampuan sensor ini, kita dapat membangun sebuah perangkat lunak dimana para murid dapat menilai gerakan dan posisinya dengan membandingkannya secara mandiri dengan data role model yang sudah tersimpan. Hal ini akan meningkatkan kesepadanan posisi yang dipelajari oleh para murid walaupun mereka tidak melakukan latihan dalam traditional group.

1.2Perumusan Masalah

Dari latar belakang masalah yang telah diuraikan diatas, maka dirumuskan beberapa masalah sebagai berikut :

1. Bagaimana menyimpan hasil pembacaan sensor Kinect ke dalam basis data? 2. Bagaimana menilai posisi user yang terdiri dari posisi tubuh, tangan dan kaki

dengan cara membandingkannya dengan data model yang sudah disimpan? 3. Bagaimana membangun aplikasi yang mampu menerima perintah melalui

suara?

1.3Pembatasan Masalah

Dalam pembuatan aplikasi ini terdapat beberapa batasan masalah yang perlu diketahui agar pembuatan aplikasi ini tidak menyimpang dari tujuannya. Batasan-batasan tersebut adalah :

1. Aliran Karate yang digunakan dalam program ini adalah aliran Shotokan.

2. Aplikasi ini akan menilai posisi dan gerakan dasar dari Karate (Kihon). 3. Aplikasi ini tidak membahas kata (serangkaian gerakan dasar yang terpadu). 4. Aplikasi ini menggunakan role model karatekawan.


(8)

6. Jumlah perangkat sensor Kinect yang digunakan adalah satu buah untuk setiap modulnya.

7. Dua buah sensor yang digunakan melakukan penilaian secara independen dimana masing-masing sensor menilai dari sisi yang ditangani secara bergantian.

8. Aplikasi ini menggunakan SDK versi 1.7 dalam pengembangannya.

9. Umpan balik yang diberikan program ini adalah penilaian posisi tubuh berdasarkan data model yang sudah disimpan.

10. Hasil yang diperoleh merupakan penilaian dari data posisi skeleton yang didapat dari data referensi dan bukan ukuran mutlak baik buruknya kemampuan karate seseorang melainkan tingkat kemiripan posisi tubuh dengan data referensi.

1.4Tujuan Penelitian

Penelitian ini memiliki beberapa tujuan, yaitu :

1. Dapat menyimpan hasil pembacaan sensor Kinect ke dalam basis data.

2. Dapat menilai posisi user yang yang terdiri dari posisi tubuh, tangan dan kaki. 3. Dapat membangun aplikasi yang menerima perintah melalui suara.

1.5Manfaat Penelitian

Penelitian ini memiliki beberapa manfaat, antara antara lain :

1. Perangkat lunak yang dihasilkan dapat membantu orang yang belajar karate untuk menilai diri sendiri (self assessing performance).

2. Perangkat lunak yang dihasilkan dapat membantu pengajar untuk menstandarkan posisi.


(9)

5

3. Penelitian ini merupakan frontier research atau penelitian rintisan yang dapat dikembangkan lebih lanjut ke arah penelitian body gesture and movement matching.

1.6Sistematika Penulisan

Laporan Tugas Akhir ini ditulis dengan sistematika penulisan sebagai berikut:

Bab I : Pendahuluan

Bab ini berisi tentang latar belakang diambilnya topik tugas akhir, rumusan permasalahan yang diambil dari latar belakang penelitian, batasan dalam penelitian, tujuan penelitian, dan manfaat dari penelitian. Bab II : Landasan Teori

Bab ini berisi tentang teori – teori yang diguanakan dalam penelitian tugas akhir ini antara lain Karate, sensor Kinect, bahasa pemrograman C#, Windows SDK forKinect dan UML.

Bab III : Analisis dan Perancangan Sistem

Bab ini berisi tentang penjelasan dari hasil analisis masalah yang dilakukan oleh peneliti dan perancangan sistem untuk menyelesaikan masalah yang mencakup diagram blok, diagram use case, diagram aktivitas, diagram sekuensial, diagram kelas, dan desain input output. Bab IV : Implementasi dan Evaluasi

Bab ini berisi tentang penjelasan dari produk penelitian, mulai dari penggunaan aplikasi sampai pengujian terhadap aplikasi. Penggunaan aplikasi akan dibahas berdasarkan fungsionalitasnya, yaitu fungsi menyimpan posisi, fungsi membandingkan data, dan fungsi umpan


(10)

balik. Pengujian aplikasi akan dilaksanakan dengan metode blackbox testing.

Bab V : Penutup

Bab ini berisi tentang kesimpulan dari hasil penelitian yang menjawab perumusan masalah dan saran dari penulis untuk pengembangan penelitian selanjutnya.


(11)

7 BAB II

LANDASAN TEORI

2.1Karate

Karate adalah seni bela diri yang berasal dari Jepang. Karate sendiri

memiliki arti tangan kosong. Menurut Zen-Nippon Karatedo Renmei/Japan

Karatedo Federation (JKF) dan World Karatedo Federation (WKF), ada beberapa

aliran karate yang utama yaitu Shotokan, Goju-Ryu, Shito-Ryu, dan Wado-Ryu

Selain aliran-aliran tersebut terdapat aliran lain yang memiliki karakteristik

tersendiri, seperti Kyokushin, Shorin-Ryu dan Uechi Ryu. Masing-masing aliran

memiliki karakteristik masing masing. Beberapa aliran tersebut memiliki

penekanan berbeda-beda dalam teknik karate, ada yang menekankan Kata,

penggunaan senjata lain selain tangan kosong, dan full body contact system.

Dalam mempelajari Karate, terdapat beberapa tingkatan yang menandakan

seberapa tinggi kemampuan bela diri Karate. Dimulai dari sabuk putih dimana

semua orang yang ingin belajar Karate akan mendapat sabuk ini tanpa melalui tahap

ujian. Tingkatan selanjutnya secara bertahap adalah kuning, hijau, biru coklat dan yang terakhir hitam.

Latihan dasar Karate terbagi tiga seperti berikut:

a. Kihon, yaitu latihan teknik-teknik dasar Karate seperti teknik memukul,

menendang dan menangkis.

b. Kata, yaitu latihan jurus atau bunga Karate.


(12)

Kihon sendiri merupakan teknik dasar yang terdiri dari teknik menyerang

dan bertahan. Kihon dilakukan secara berulang-ulang agar terbentuk respon

gerakan yang cepat dan akurat. Latihan Kihon sendiri terdiri dari berbagai latihan

yang berfungsi untuk melatih beberapa aspek dalam Karate, antara lain

Gueri(tendangan), Dachi (posisi kaki), Uke (tangkisan), Tsuki (pukulan), Uchi

(bentuk tangan).

Setiap aspek tersebut memiliki gerakan yang bervariasi dari tingkat kesulitan rendah ke tinggi. Terdapat beberapa posisi juga yang memiliki kemiripan yang hampir sama.

Gambar 2.1 Posisi Oi-tsuki (Santa-María, 2001)


(13)

9

Seperti oi-tsuki pada Gambar 1 dan kizami-tsuki pada Gambar 2, kedua posisi badan

dan kaki memiliki posisi yang sama namun yang membedakan antara dua posisi

karate ini adalah derajat kemiringan tangan dimana Oi-tsuki menarget dada lawan

dan Kizami-tsuki mengarahkan pukulan ke mata lawan.

2.2Metode Pembelajaran untuk Keterampilan Motorik

Meningkatkan keterampilan motorik manusia melibatkan berbagai faktor penting dalam masalah kemampuan kognitif. Salah satu masalah utama yang dihadapi adalah bagaimana mengambil informasi yang relevan dari lingkungan belajar. Terdapat tiga lingkungan belajar yang digunakan dalam mempelajari

keterampilan motorik, yaitu traditional group learning environment, video learning

environment, dan Virtual Reality(VR) learning environment. Traditional group

learning environment adalah lingkungan belajar yang umum dimana pengajar dan

murid bertemu dalam satu tempat dan melakukan kegiatan pembelajaran yang

dipimpin oleh guru. Sedangkan video dan VR learning environment memanfaatkan

teknologi dalam proses pembelajaran. Video learning environment dilakukan

dengan melihat tayangan video yang berisi gerakan yang ingin dipelajari melalui

layar maupun teknologi tingkat tinggi seperti head mounted display. Sedangkan VR

membutuhkan alat bantu seperti motion tracking sensor dan bantuan visualisasi

virtual humans yang dihasilkan dari proses rendering gerakan.

Masing-masing lingkungan ini memiliki kelebihan dan kekurangan

masing-masing. Traditional learning environment memiliki kelebihan dimana

pengajar dapat melakukan proses penyampaian umpan balik ke murid secara

langsung. Namun kekurangan yang dimiliki dari learning environment ini adalah


(14)

dari pengajar dan murid juga sangat mempengaruhi efektifitas dari lingkungan

belajar ini. Video learning environment sangat berguna bagi kalangan orang yang

ingin belajar namun tidak terikat dalam proses tersebut dimana learning

environment ini memiliki sifat yang fleksibel, baik waktu, tempat dan pengetahuan.

VR learning environment memerlukan teknologi yang cukup mahal yang tidak

dapat dijangkau kalangan awam. Dalam penelitiannya, Burns et al(2011)

menyimpulkan bahwa video learning environment dan VR tidak memiliki pengaruh

negatif dalam proses mengajar yang ditunjukkan dalam studi kasus Karate.

2.3Kinect

Sensor Kinect merupakan salah satu proyek pengembangan alat input

berdasarkan motion-sensing oleh Microsoft yang diumumkan dengan nama Project

Natal pada bulan Juni 2009. Sensor Kinect merupakan salah satu teknologi yang

dapat menangkap pergerakan manusia melalui depth sensor, kamera RGB dan

didukung oleh sebuah microphone array (Catuhe, 2012). Pada kemunculan

perdananya, sensor ini dijual dalam satu paket dengan konsol permainan Xbox 360.

Dalam perkembangannya, Microsoft mengeluarkan SDK Kinect untuk penggunaan

komersil yang memungkinkan para developer program mengembangkan program

mengunakan sensor Kinect. Selain digunakan untuk konsol permainan Xbox 360,

Kinect dikembangkan ke bidang lain. Beberapa contohnya adalah dalam bidang

edukasi Kinect digunakan oleh staff pengajar untuk melakukan pembelajaran yang

interaktif dengan siswanya melalui Interactive White Board, lalu dalam bidang

kesehatan Kinect digunakan sebagai alat rehabilitasi pada beberapa penyakit seperti


(15)

11

Dari sisi elektronik, sensor Kinect terdiri dari beberapa komponen yang

tampak pada gambar 3, yaitu :

1. Mikrofon

2. Pemancar sinar infrared

3. Penerima sinar infrared

4. Kamera RGB

Sensor Kinect ini dapat dihubungkan dengan komputer melalui port standar USB

2.0 yang memerlukan sebuah catu daya sebagai tenaga tambahan.

Gambar 2.3 Struktur Kinect

Dalam proses pendeteksian sensor Kinect, terdapat 3 macam aliran data yang

disampaikan sensor Kinect. Yang pertama adalah aliran data gambar berwarna yang

diperoleh dari kamera RGB. Kedua, aliran data depth sensor yang dihasilkan oleh

sinar infrared yang dikeluarkan dan diterima oleh sensor Kinect yang dapat

mengukur letak benda maupun orang yang ada di jangkauan sensor Kinect. Dan

yang terakhir adalah aliran data suara yang ditangkap oleh microphone array.

Sensor Kinect tidak memiliki Central Processing Unit, dimana alat ini berfungsi


(16)

microphone array. Melalui 3 data yang dihasilkan sensor Kinect ini, data akan

diproses di komputer melalui pustaka pengendali perangkat keras Kinect.

Semenjak Microsoft mengeluarkan Kinect for Windows Software

Development Kit pada Juni 2011, para developer di seluruh dunia dapat

menggunakan sensor Kinect dalam pengembangan aplikasi komersil. SDK resmi

yang dirilis oleh Microsoft yang terbaru sampai bulan Mei 2013 adalah SDK versi 1.7. SDK ini berisi berbagai kelas yang berguna bagi pengembang aplikasi yang

ingin menggunakan sensor Kinect.

2.4Bahasa Pemrograman C#

C# adalah sebuah bahasa pemrograman yang dikembangkan oleh Anders

Hejlsberg seorang program designer Microsoft. C# sendiri merupakan

pengembangan dari C++ dimana bahasa pemrograman ini diharapkan dapat menangani kekurangan yang dimiliki oleh C++. Bahasa pemrograman C# mendukung konsep pemrograman berorientasi objek, namun juga mendukung

generics, dan functional programming.

C# memiliki kelebihan yang berasal dari runtime C# (Common Language

Runtime - CLR)yang menyediakan beberapa servis antara lain security sandboxing,

runtime type checking, exception handling, thread management, dan yang paling

penting automated memory management (Griffiths, 2012). Selain kelebihan diatas,

bahasa pemrograman C# didukung oleh .NET framework yang dipakai di Microsoft

Windows. Dengan .NET, C# dapat menggunakan berbagai library yang ada di


(17)

13

2.5Skeleton Tracking

Salah satu dari tiga aliran data yang dihasilkan oleh sensor Kinect adalah

depth data. Aliran data ini bersifat mentah dimana diperlukan sebuah metode yang

dapat mendayagunakan depth data ini. Skeleton tracking adalah sebuah fitur dari

sensor Kinect yang dikembangkan untuk mengolah depth data menjadi informasi

yang berguna, yaitu skeleton/rangka manusia. Skeleton tracking menyediakan nilai

koordinat X, Y, Z dalam bidang kartesian tiga dimensi untuk setiap joint/sendi dari

rangka manusia yang terdeteksi.

Proses pendeteksian skeleton mencakup proses analisis depth image

dengan menggunakan algoritma yang kompleks yang meliputi transformasi matrik,

machine learning, dan hal lainnya yang berhubungan untuk mengkalkulasi skeleton

points. Skeleton data didapat dari skeleton stream yang perlu diinisialisasi sehingga

secara realtime menghasilkan koleksi dari skeleton objects. Tiap skeleton object

memiliki data yang mendeskripsikan lokasi dari skeleton dan skeleton joints. Setiap

skeleton joint memiliki identitas berupa nama (kepala, pundak, lengan, siku, dan lain-lain) dan vektor 3 dimensi.

Proses skeleton tracking dapat dibantu dengan penggunaan class Skeleton

dari SDK Kinect for Windows. Melalui kelas Skeleton, Skeleton stream akan

menghasilkan SkeletonFrame objects. Proses pendeteksian skeleton ini memiliki

hasil yang perlu disesuaikan agar hasil pendeteksian menjadi lancar. Proses penyesuaian dapat dilakukan melalui penyesuaian parameter yang ada pada

skeleton stream. Parameter yang dapat disesuaikan adalah Correction, JitterRadius,


(18)

Skeleton tracking menghasilkan posisi dari seluruh joint yang dapat dideteksi menggunakan sensor Kinect. Dari data posisi ini dapat digambarkan

sebuah visualisasi dari skeleton yang dideteksi. Masing-masing persendian

dihubungkan membentuk “stick-man” yang merupakan representasi dari tubuh

manusia yang dideteksi.

2.6Agile Software Development

Perkembangan lingkungan pengembangan perangkat lunak membutuhkan waktu sesingkat mungkin dalam proses penyampaian dan pembuatan perangkat lunak. Para pengembang perangkat lunak menggunakan berbagai pendekatan dalam proses pembuatan perangkat lunak yang dapat menghasilkan produk dalam waktu yang singkat namun tanpa mengurangi kualitas produk yang dibuat. Salah satu pendekatan dalam pengembangan perangkat lunak yang dapat membantu

mempercepat pembuatan perangkat lunak adalah Agilesoftware development.

Agile memiliki beberapa karakteristik antara lain adalah modularity,

iterative, time-bound, parsimony, adaptive, incremental, convergent, people

oriented, dan collaborative (Miller, 2001). Karakteristik ini yang memungkinkan

sebuah produk perangkat lunak dapat dikembangkan dalam waktu singkat namun tanpa mengurangi fitur sebuah produk.

Beberapa karakteristik ini memiliki peran penting dalam proses pengembangan perangkat lunak dalam tugas akhir ini. Karakteristik yang pertama

yaitu modularity memungkinkan sebuah proses dibagi-bagi menjadi beberapa

komponen yang disebut aktivitas. Proses pengembangan perangkat lunak membentuk beberapa aktifitas yang mengubah perencanaan terealisasi.


(19)

15

proses pengulangan pembuatan sebuah aktifitas dimana Agile memiliki pandangan

bahwa terkadang kala kita melakukan kesalahan sebelum kita melakukannya dengan benar. Proses iterasi ini dilakukan untuk memonitor proses pengembangan

perangkat lunak ketika mengalami kesalahan maupun perubahan. Time-bound,

karakteristik ini berhubungan dengan lamanya sebuah pengembangan perangkat lunak dilakukan. Tiap proses memiliki batas waktu yang jelas sehingga masing-masing aktifitas dapat dibangun dalam jangka waktu yang jelas. Karakteristik

selanjutnya adalah adaptive yang memiliki arti bahwa dalam proses iterasi dapat

timbul resiko yang membutuhkan tambahan aktifitas yang tak terencana. Namun hal ini bukan sebuah masalah dalam Agile mengingat karakteristik ke dua yaitu

iterative yang memungkinkan adanya penyesuaian dalam proses ini. Incremental

adalah karakteristik lainnya yang mendukung karakteristik iterative karena Agile

tidak membuat seluruh sistem dalam sekali perencanaan, namun terbagi-bagi dalam

sub aktifitas.

2.7Unified Modelling Language

UML adalah singkatan dari Unified Modelling Language yang merupakan

standarisasi pemodelan dalam software engineering. UML merupakan kumpulan

notasi grafis yang disertai dengan single meta-model yang membantu mendeskripsi

dan mendesain software systems yang mengunakan konsep object oriented (Fowler,

2004). UML merupakan metodologi kolaborasi antara metode Booch yang

dikembangkan oleh Graddy Booch, OMT (Object Modelling Technique) yang

dikembangkan oleh DR. James Rumbaugh, serta OOSE (Object Oriented Software

Engineering) yang dikembangkan oleh Ivar Jacobson, dan beberapa metode


(20)

berparadigma pemrograman berorientasi objek. Penggunaan UML sendiri dapat dianalogikan sebagai cetak biru dari sebuah bangunan dimana cetak biru ini merupakan rancangan dari sebuah desainer bangunan yang berisikan detil desain

yang lengkap. Sama seperti UML, cetak biru ini diaplikasikan dalam software

engineering dimana desainer perangkat lunak menuangkan hasil desain

programnya ke dalam notasi-notasi berbentuk grafik yang memiliki standar dimana dengan standar ini diharapkan seluruh orang yang terlibat dalam pengembangan

software mampu mengerti desain yang sudah dihasilkan oleh desainer perangkat

lunak. Cetak biru ini berisikan berbagai detil informasi terkait dengan proses pembuatan perangkat lunak.

UML digunakan dalam ruang lingkup pemrograman berorientasi objek yang dapat membantu desainer perangkat lunak sebagai sarana analisis, pemahaman, visualisasi, dan komunikasi antar anggota tim pengembang (saat seorang analisis/perancang perangkat lunak bekerja dalam tim yang beranggotakan beberapa orang), serta sebagai sarana dokumentasi. Peran UML sendiri adalah

sebagai kakas (tools) yang membantu penyampaian informasi dimana UML

digunakan dengan menggunakan metodologi Unified Software Development

Process (USDP).

Dalam UML terdapat berbagai view dan diagram yang digunakan. View

yang dimaksud adalah sejumlah konstruksi pemodelan UML yang

merepresentasikan suatu aspek tertentu dari perangkat lunak yang dikembangkan. View dapat diklasifikasikan menjadi 3 area utama, yaitu : klasifikasi struktural,

perilaku dinamis, serta pengelolaan model. Keterangan mengenai view dan diagram


(21)

17

Tabel 2.1 View dan Diagram dalam UML (Nugroho, 2010)

Major Area View Diagrams Main Concepts

Structural Static view Class diagram Class,

association,generalization,

dependancy, realization,

interface

Use case view Use case

diagram

Use case, actor,

association,

extend,include, use case generalization

Implementation view

Component diagram

Component, interface,

dependancy, realization Deployment

view

Deployment diagram

Node, component,

dependancy, location

Dynamic State machine

view

Statechart diagram

Static, event, transition, action

Activity view Activity

diagram,

State, activity, completion transition, fork, join Interaction

view

Sequence diagram

Interaction, object,

message, activation Collaboration

diagram

Collaboration, interaction,

collaboration role,

message Model management Model management view

Class diagram Package, subsystem, model

Extensibility All All Constraint, streotype,

tagged values 2.8Unified Process

USDP adalah metode yang memungkinkan UML digunakan sebagai sarana pengembangan sistem/perangkat lunak mengingat UML hanyalah sebuah kakas. USDP sesungguhnya merupakan salah satu metode rekayasa perangkat lunak berorientasi objek yang secara konsisten mencoba beradaptasi dengan semakin besar dan semakin kompleksnya sistem-sistem/perangkat lunak-perangkat

lunak yang dikembangkan oleh para vendor perangkat lunak di seluruh dunia


(22)

USDP memiliki karaterisitik use-case driven, architecture centric,

iterative & incremental. Use-case driven memiliki arti bahwa perangkat lunak

yang dihasilkan semestinya bersifat melayani para penggunanya dan sesuai dengan

kebutuhan dan harapan pengguna. Architecture centric memiliki arti bahwa pada

dasarnya arsitektur memuat aspek-aspek statis dan dinamis perangkat lunak yang bersangkutan sama halnya dengan arsitektur pada sistem konstruksi teknik sipil.

Sedangkan iterative dan incremental dibagi ke dalam beberapa proyek-proyek kecil

dimana masing-masing proyek yang lebih kecil dikerjakan secara iteratif sehingga pada akhirnya menghasilkan perangkat lunak yang terintegrasi berukuran besar

yang terbentuk secara incremental. Iterasi berlangsung pada bagian-bagian kecil

dari sistem yan dapat memperluas fungsionalitas sistem menjadi lebih besar.

Unified Process atau yang dikenal dengan Unified Software Development

Process menggunakan diagram-diagram UML dalam proses perancangan

perangkat lunak. Use case merupakan diagram yang bersifat sentral dimana sistem

perangkat lunak yang dibangun berusaha memenuhi kebutuhan dan harapan pengguna serta pengembangan sistem/perangkat lunak yang dipandu oleh diagram

use case. Namun juga terdapat beberapa model-model selain use case yang

memiliki fungsi masing-masing.

Model analisis digunakan untuk memperhalus dan memperinci definisi

masing-masing use case. Spesifikasi kebutuhan dan harapan pengguna dituangkan

dalam model ini. Dapat berupa user story dimana dijelaskan sebuah kegiatan yang

dilakukan oleh pengguna dengan tujuan yang spesifik sehingga memperoleh manfaat dari kegiatan tersebut.


(23)

19

Model perancangan mendefinisikan struktur statis sistem seperti subsistem, kelas, dan antarmuka beserta hubungannya dalam kerangka sistem yang dikembangkan.

Model implementasi memuat komponen-komponen yang

merepresentasikan sistem sesuai dengan bahasa pemrograman yang dipilih dalam pengembangan perangkat lunak dan melakukan pemetaan kelas-kelas ke komponen-komponen.

Model deployment mendefinisikan simpul-simpul komputer secara fisik

yang berfungsi sebagai rencana dan panduan dalam proses menerapkan perangkat lunak ketika digunakan dalam proses aktual sistem. Model ini mencakup hubungan antar komputer seperti bagaimana komputer dihubungkan melalui jaringan dan konfigurasinya. Model ini digunakan tidak hanya ketika perangkat lunak diimplementasikan dalam cakupan perangkat lunak yang terhubung satu sama lain,

namun juga mencakup kebutuhan perangkat keras dari proses deployment tersebut.

Model pengujian atau testing mendeskripsikan kasus-kasus dan prosedur

pengujian yang tujuannya adalah melakukan verifikasi terhadap perangkat lunak yang dihasilkan dengan cara melihat dan memastikan apakah yang diharapkan sesuai dengan hasil aktualisasi perangkat lunak melalui skenario pengujian.

2.9Sudut Vektor

Vektor adalah obyek geometri yang memiliki besar dan arah yang

dilambangkan dengan tanda panah (→) (Kurnianingsih & Kuntarti, 2007). Vektor

dalam ruang euklidian tiga dimensi memiliki 3 komponen yaitu i,j dan k. Untuk


(24)

dibutuhkan beberapa operasi matematika yang berasal dari rumus dasar perkalian

dot product (Wolfram, 2014). Rumus dot product ini dapat dilihat dalam rumus 2.1

... 2.1

Dimana X.Y merupakan perkalian dot dari dua buah vektor [x,y] yang didapat

dengan mencari panjang masing-masing vektor X dan Y. Panjang vektor dalam ruang euklidian tiga dimensi dilambangkan dengan notasi |vektor| yang didapat dari

perhitungan √�2+ � 2+ � 2. Dari rumus dasar di atas, dapat dikembangkan

sebuah rumus untuk mencari nilai θ yang merupakan besar sudut antara dua vektor

X dan Y.

Sudut antara dua vektor X dan Y dapat dicari dengan mencari nilai θ yang

berasal dari nilai arc cos θyang didapat. Rumus yang digunakan untuk mencari

besar sudut dengan diketahui komponen vektor X dan Y dapat dilihat di rumus 2.2.

cos � =| || |. = + +

√ 2+ 2+ 2.√ 2+ 2+ 2... 2.2

Nilai � yang didapat merupakan sudut antara dua buah vektor dalam ruang tiga


(25)

21

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1Analisis Permasalahan

Proses penilaian posisi Karate selama ini dilakukan secara langsung oleh guru Karate. Langsung disini memiliki artian yaitu guru Karate menilai posisi

Karate yang dilakukan oleh murid dengan bertatap muka secara langsung. Hal ini dilakukan secara rutin setiap dilakukan latihan Karate bersama dengan murid– murid lainnya. Di dalam proses ini guru Karate mendistribusikan pengetahuan dan

pengalamannya selama mempelajari Karate dengan memberikan saran untuk para

muridnya. Secara sederhana proses penilaian tersebut adalah sebagai berikut. Guru

Karate mengarahkan muridnya untuk melakukan sebuah gerakan. Di akhir gerakan dimana murid berusaha untuk tetap dalam keadaan diam, guru Karate akan menghampiri murid dan akan melihat posisi dari murid. Jika posisi murid kurang tepat, guru akan mengarahkan langsung untuk mengoreksi posisi yang salah.


(26)

Proses ini dapat dipersingkat dengan menambah jumlah pengajar sehingga waktu yang diperlukan dalam mengkoreksi posisi murid akan menjadi lebih singkat. Dengan adanya tambahan bantuan, maka proses latihan akan berlangsung lebih efisien. Namun tak semua kelas Karate dapat menambah tenaga pengajar untuk membantu proses latihan mereka. Maka untuk mengatasi permasalahan tersebut maka dapat dibantu oleh sebuah aplikasi penilaian posisi Karate yang dapat dilakukan mandiri oleh murid tanpa memerlukan bantuan guru namun tidak bermaksud untuk menggantikan posisi guru Karate sebagai sumber ilmu utama.

Sensor Kinect dapat membaca pergerakan manusia dengan mendeteksi persendian manusia yang tampak seperti pada Gambar 3.2. 12 persendian utama akan digunakan untuk perbandingan data yang mencakup pergelangan tangan, siku tangan,bahu, pinggul, lutut dan pergelangan kaki sebelah kiri dan kanan. Sedangkan untuk 3 titik yang dapat dibaca sensor Kinect selain persendian diatas (titik bahu tengah, titik tulang belakang, dan titik panggul tengah) tidak digunakan dalam proses penilaian.


(27)

23

Tidak semua teknik Kihon dapat dinilai menggunakan sensor Kinect. Hal ini disebabkan oleh beberapa hal antara lain adalah keterbatasan perangkat keras dan kompleksitas gerakan. Sensor Kinect generasi pertama memiliki waktu beberapa detik untuk melacak posisi tubuh manusia dimana pengguna harus bergerak untuk membedakan antara manusia dan latar belakangnya. Masalah selanjutnya terdapat pada penggunaan dua sensor Kinect untuk mengoptimalkan

skeleton tracking yang masih diteliti untuk meningkatkan keakurasiannya. Dan masalah yang terakhir yaitu posisi tubuh pada akhir gerakan Kihon tidak dapat dipertahankan kestabilannya. Hal ini merupakan masalah utama dalam penilaian tendangan dimana poisi akhir tendangan kembali ke kuda-kuda. Beberapa kihon

yang diperkirakan dapat dinilai terlampir di Lampiran 2, 3, dan 4.

Kebutuhan aplikasi yang perlu disiapkan untuk menggunakan aplikasi ini adalah perangkat keras untuk output, pemrosesan data dan sensor penangkap posisi manusia. Untuk perangkat keras output aplikasi dapat menggunakan monitor maupun proyektor. Sedangkan untuk pemrosesan data dibutuhkan sebuah komputer yang akan memproses data menjadi informasi yang diharapkan. Dan yang terakhir

dibutuhkan perangkat sensor Kinect untuk menangkap posisi manusia dan

mengubahnya menjadi data digital.

Aplikasi ini akan mengeluarkan informasi berupa nilai ketepatan posisi tubuh pada posisi karate yang ingin dinilai. Nilai ini didapat dari perhitungan rata-rata selisih tiap persendian. Proses penilaian ini dimulai dengan aplikasi akan menampilkan pilihan posisi yang akan dicoba. Lalu, pengguna aplikasi memilih salah satu dari posisi yang ingin dinilai. Selanjutnya sistem akan mengeluarkan informasi dasar mengenai gerakan Karate yang dipilih. Setelah informasi tersebut


(28)

disampaikan, sistem akan mengkonfirmasi kesiapan pengguna untuk mencoba gerakan tersebut. Ketika pengguna siap, pengguna akan melakukan gerakan yang telah dipilih dan pada akhir gerakan pengguna akan memberikan perintah suara yang menandakan pengguna sudah ada di posisi akhir gerakan yang selanjutnya akan dinilai. Penilaian ini akan dilakukan dengan melihat posisi akhir dari pengguna dan akan dibandingkan dengan data yang sudah disimpan di basis data. Lalu selanjutnya sistem akan mengeluarkan hasil penilaian dari posisi penggguna.

Dari hasil analisis diatas maka sistem aplikasi yang akan dibangun memiliki spesifikasi kebutuhan sebagai berikut :

1. Aplikasi harus dapat membaca hasil bacaan sensor Kinect.

2. Aplikasi harus dapat membandingkan hasil bacaan sensor Kinect dengan data

model yang sudah disimpan.

3. Aplikasi harus dapat menyajikan informasi sebagai umpan balik ke pengguna

aplikasi.

4. Aplikasi harus dapat menerima perintah suara.

3.2Perancangan Sistem

Untuk mencapai tujuan yang sudah disebutkan di bagian sebelumnya, aplikasi ini melalui beberapa tahap proses yang dapat dilihat pada Gambar 3.3. Secara sederhana proses-proses yang ada di aplikasi ini adalah :

1. Menampilkan pilihan gerakan Karate

2. Pengguna memilih gerakan yang diinginkan menggunakan gesture dari tangan


(29)

25

 Untuk menggerakan pointer dapat dilakukan dengan salah satu tangan. Sistem ini tidak dapat menerima masukan ketika pengguna menggunakan dua tangannya.

 Untuk memilih menu, pengguna dapat mendorong tangannya ke arah

sensor.

3. Kinect memproses pilihan tersebut dan menyampaikannya ke program berupa pilihan input.

4. Sistem akan mengeluarkan informasi mengenai gerakan Karate yang telah dipilih.

5. Sistem mengkonfirmasi kesiapan user untuk mencoba gerakan dengan

menampilkan pesan notifikasi berisi informasi mengenai proses pengambilan data.

6. User mengkonfirmasi posisi tubuh dengan menggunakan perintah suara.

7. Sistem akan memproses masukan posisi tubuh pengguna setelah pengguna memberikan perintah suara yang menandakan gerakan telah berakhir dan pengguna dalam posisi terakhir dari gerakan tersebut.


(30)

Akuisisi data skeleton

Akuisisi data melalui perintah

suara

+SDK

Penilaian posisi tubuh disertai

dengan feedback

Kelas Compare Data Kelas Feedback

Klasifikasi

Kelas Save

Data Skeleton

Model

Membandingkan data dengan model untuk

dihitung sudutnya sehingga dapat dinilai

Badan Tangan Kepala

Mengklasifikasikan data sesuai dengan bagian tubuh

Tubuh

Gambar 3.3 Blok Diagram Aplikasi

Dalam proses pengambilan data posisi tubuh, terdapat beberapa kendala antara lain keterbatasan sensor Kinect dalam mendeteksi beberapa posisi tubuh. Hal ini menyebabkan perlu adanya beberapa penyesuaian dalam proses penggunaan aplikasi. Beberapa kendala tersebut berhubungan dengan proses dan kemampuan deteksi tubuh manusia.

Kendala yang pertama adalah sensor Kinect hanya akan melakukan proses

deteksi tubuh manusia jika pengguna menghadap sensor. Hal ini menyebabkan pengguna harus menghadap sensor ketika akan dilakukan pendeteksian. Masalah ini diperparah dengan adanya jeda waktu yang diperlukan sensor yang lamanya tergantung dari pendeteksian yang dipicu oleh pergerakan tubuh manusia. Kendala ini dapat dipecahkan dengan penggunaan dua modul sensor dari dua sisi. Namun penggunaan dua sensor ini pun memiliki kelebihan dan kekurangan.


(31)

27

Kendala lainnya timbul dari kemampuan interpretasi sensor Kinect. Hasil deteksi skeleton tracking berupa sebuah gambaran rangka tubuh manusia dalam garis yang terdiri dari 20 titik. Masing-masing titik akan dihubungkan dan membentuk rangka tubuh manusia. Dalam proses pembentukan rangka ini, sensor

Kinect akan mengalami kesulitan pada bagian tubuh yang saling silang sehingga hasil interpretasi tidak akurat. Beberapa peneliti telah mengembangkan sebuah solusi untuk masalah ini dengan menggunakan dua sensor. Solusi ini dipaparkan

dalam sebuah jurnal berjudul “Improved Skeleton Tracking by Duplex Kinects: A

Practical Approach for Real-Time Applications” oleh Yeung, Kwok, dkk. Hasil penggunaan dua sensor dalam pendeteksian mampu membantu interpretasi posisi tubuh manusia menjadi lebih baik, namun untuk bagian tubuh yang saling silang masih belum dapat diinterpretasikan dengan benar.

Maka dari beberapa masalah tersebut, beberapa gerakan yang perlu untuk dilakukan penilaian dari dua sisi akan dilakukan secara bergantian menggunakan satu buah sensor. Penilaian yang dilakukan dua kali ini masing-masing akan fokus pada bagian tubuh bagian atas dan bagian bawah.

Dengan menggunakan bantuan SDK Kinect, proses akuisisi data skeleton

Kinect akan menghasilkan data persendian tubuh manusia yang terdiri dari jarak dan posisi persendian. Sistem akan mengambil data dari 12 persendian pengguna aplikasi yang terdiri dari bahu, lengan, pergelangan tangan, pinggul, lutut dan pergelangan kaki dari tubuh pengguna. 3 joint hasil skeletal tracking yang tidak digunakan dalam aplikasi ini adalah center shoulder, center hip, dan spine mengingat 3 joint tidak memberikan kontribusi yang signifikan dalam rancangan proses penilaian posisi tubuh.


(32)

Selanjutnya proses perbandingan data sendi dengan data akuisisi akan dibandingkan. Proses perbandingan ini berjalan dengan bantuan basis data dimana data model dan data akuisisi berada di basis data. Proses perbandingan ini dilakukan dengan cara mencari rata-rata persentase selisih sudut elevasi dari 12 persendian.

x̄= ∑= % − ∆ � % ... 3.1

Persamaan 3.1 adalah proses perhitungan untuk mencari nilai dari tingkat keakurasian data sendi dari model dengan data model yang didapat. J adalah derajat persendian dimana j1 adalah derajat persendian model dan j2 adalah derajat

persendian pengguna aplikasi. Hasil penilaian ini tidak menunjukkan tingkat

keakurasian pendeteksian skeleton oleh sensor Kinect melainkan tingkat

keakurasian data model dengan data yang didapat.

Dari analisis permasalahan diatas, terdapat beberapa modul yang perlu dibuat demi memenuhi kebutuhan perangkat lunak yang dibangun. Beberapa modul yang diperlukan dalam pengembangan perangkat lunak ini yaitu modul untuk menyalakan sensor Kinect, modul untuk menghitung derajat, modul untuk membandingkan data referensi dengan data pengguna, dan modul untuk perintah suara. Masing-masing modul tersebut saling berhubungan satu sama lain untuk menunjang kerja perangkat lunak.

Modul untuk menyalakan sensor Kinect dibagi menjadi dua, yaitu proses pengecekan status sensor Kinect dan proses menginisialisasi sensor Kinect. Proses pengecekan status sensor bertujuan untuk mencari sensor kinect yang terhubung dengan komputer dan siap untuk digunakan. Sedangkan proses inisialisasi sensor bertujuan untuk menyalakan sensor agar siap digunakan dalam proses berikutnya.


(33)

29

Proses pengecekan status sensor tampak pada flowchart diGambar 3.4. Sedangkan proses inisialisasi sensor dijelaskan melalui flowchart pada Gambar3.5.

Mulai

Mengecek status kinect yang

terpasang

Mentrigger INotifyPropertyChanged events Status

berubah? Tidak ada perubahan

Ada perubahan

Status sensor?

Status Kinect

Sensor status=connected

Sensor status=notpowered

Sensor status=notready Sensor

status=disconnected

Terhubung ke usb dan DC Terhubung ke DC saja Terhubung ke usb saja Status initializing

Sensor status =connected? tidak

Inisialisasi sensor

Selesai


(34)

Mulai

Menampung kinectSensor object ke dalam variabel Kinect

Status sensor isStarted?

Menampilkan colorStream, DepthStream,audioStream tidak

ya

Konfigurasi color stream

& video stream

color stream, depth stream

per frame

Color stream & Depth stream dalam satu frame

Selesai

Mengambil konfigurasi parameter colorstream & video

stream

Refresh frame selanjutnya

Window is closing event tertrigger?

ya tidak


(35)

31

Sensor Kinect memiliki kemampuan untuk melacak posisi tubuh manusia yang disebut dengan skeleton tracking. Proses skeleton tracking ini akan melalui tahap proses yang dijelaskan sebelumnya, yaitu proses pengecekan sensor dan inisialisasi sensor. Secara garis besar proses skeleton tracking tampak pada

flowchart di Gambar 3.6.

Mulai

Inisialisasi sensor

Menyalakan

kinectSensor.Skeleton.SkeletonStream

allSkeleton[][] skeletonSegment[][]

Tubuh manusia terdeteksi? Monitoring depth

data dengan algoritma SDK untuk

skeleton tracking yang ada

tidak

Selesai X,y,z dari tiap

joint Streaming skeleton data

Memproses depth stream sehingga menghasilkan data skeleton

ya

Gambar 3.6 Flowchart Proses Skeleton Tracking


(36)

Proses selanjutnya setelah skeleton tracking adalah memvisualisasikan data yang didapat menjadi bentuk rangka tubuh manusia. Proses ini disebut proses

drawing skeleton yang akan menghasilkan sebuah visualisasi kerangka manusia. Proses drawing ini melewati beberapa proses seperti yang ada pada flowchart

proses drawing skeleton di Gambar 3.7.

var i=1 Var X=1

i<skeletonSegmentRuns? Panjang SkeletonSegmentRuns

mulai

Var prev=next

next=GetJointPoint(skeleton, run[i])

i++

Var next=GetJointPoint(skeleton, run[0])

y

Mengambil parameter X dan Y untuk menggambar yang ditampung ke dalam

Var line(windows shape) X1=prev.X Y1 = prev.Y X2=next.X Y2=next.Y

Menggambar sebuah garis dengan konfigurasi koordinat titik pertama X1,Y1

dan titik kedua X2,Y2 x++

Run.length=x?

Selesai y

t X,y,z dari tiap

joint stream Skeleton tracking

Menghitung panjang skeleton segment runs[][]

X,y per bone

t

Posisi tubuh


(37)

33

Modul selanjutnya merupakan sebuah fungsionalitas yang memungkinkan pengguna untuk memerintah perangkat lunak untuk melakukan beberapa perintah yang sudah disimpan yaitu perintah suara. Proses untuk penangkapan perintah suara tampak pada flowchart pada Gambar 3.8.

Mulai

Inisialisasi sensor

Instance of class

RecognizerInfo

Memonitoring audio stream yang masuk ke

sensor Perintah suara yang terdeteksi terdeteksi sama dengan grammar? Menjalankan event handler SpeechRecognized FINISH UP EXIT

DOWN FIRST SECOND

COMBINE Menambah nilai

elevation angle dari sensor dengan nilai 3

y Mengurangi nilai elevation angle dari sensor dengan nilai 3

y Mengambil data pada bagian tubuh atas y Mengambil data pada bagian tubuh bawah y Menggabungkan data yang didapat dan

memproses nilai y Memproses nilai y Keluar dari layar pengambilan data y tidak ya

t t t

t t t Perintah suara tidak dikenali t SELESAI 1 1

Mencari file speech grammar.xml SpeechGramm ar.xml ditemukan? speechGrammar.xml Pesan error speech grammar tidak ditemukan 1


(38)

Dua modul lainnya yang perlu dibuat adalah modul penting yang berfungsi dalam proses penilaian, yaitu proses perhitungan sudut dan proses perbandingan data. Proses perhitungan sudut melalui beberapa proses yang dijelaskan melalui

flowchart pada Gambar 3.9. Sedangkan alur proses yang dilalui perangkat lunak untuk mendapatkan penilaian tampak pada Gambar 3.10. Proses perhitungan sudut menggunakan formula 2.1 yaitu rumus perkalian dot product.

Mulai

Vektor A=X1,y1,z1 Vektor B=X2,y2,z2

Skeleton tracking

α

Mengambil koordinat 2 bone yang terhubung

Selesai


(39)

35 Ga m b ar 3. 10 F lo w cha rt P ro se s referensi Mulai

Mengambil 12 sudut berdasarkan id gerakan yang ada di tabel panduan Id gerakan Perhitungan dua sudut vektor Menghitung selisih dari tiap joint Data sudut dari id gerakan

yang ingin dibandingkan (data panduan)

Sudut [i] i++

∆ Joint [i]

Skeleton tracking

Σ∆ Joint i

12

Persentase penilaian berupa rata-rata selisih sudut,data panduan, data

aktual Data sudut dari id gerakan

yang ingin dibandingkan (data realisasi)

Selesai Gerakan butuh 2 kali

pengambilan? i=13? tid ak ya Perhitungan dua sudut vektor Menghitung selisih dari tiap

joint Data sudut dari id gerakan yang ingin

dibandingkan (data panduan)

Sudut [i] i++

∆ Joint

[i] Skeleton tracking

Data sudut dari id gerakan yang ingin dibanding kan (data realisasi) i=7? ya Perhitungan dua sudut vektor

Menghitung selisih dari tiap joint Data sudut dari id gerakan yang ingin

dibandingkan (data panduan)

Sudut [i] i++

∆ Joint

[i] Skeleton tracking

Data sudut dari id gerakan yang ingin

dibandingkan (data realisasi) i=13? ya 1 1 tid ak ya Mencari data referensi sesuai dengan id gerakan

i=1

i=7


(40)

36

Proses untuk melakukan perekaman data sebagai referensi tampak pada Gambar 3.11. Inisialisasi sensor Skeleton tracking Drawing skeleton Perhitungan dua sudut vektor Mengambil data-data sudut 12 joint Memasukkan ke database 12 sudut joint Stick men mulai Tabel panduan selesai Membutuhkan dua kali perekaman data? Mengambil data-data sudut 6 joint

bagian atas 6 sudut

joint atas

Mengambil data-data sudut 6 joint bagian

bawah 6 sudut

joint bawah Id gerakan yang

ingin direkam Admin memilih gerakan

Perubahan sudut seluruh joint

tidak

ya

Refresh frame


(41)

37

3.2.1 Agile Planning

Dari aktifitas-aktifitas yang sudah diidentifikasi diatas, maka dibuatlah

user story yang masing-masing memiliki tujuan. Aktifitas-aktifitas ini akan dikembangkan satu persatu seiring dengan berjalannya waktu. Aktifitas tersebut tampak pada user story di Tabel 3.1.

Masing-masing dari user story tersebut akan mengalami fase inception, elaboration, construction, dan transition secara iterative jika dibutuhkan. Setiap user story yang berhasil dibuat akan disimpan dan dilanjutkan ke user story

berikutnya secara incremental. Jika di tengah jalan akan diadakan penyesuaian, maka proses yang sedang dijalani akan hentikan sementara dan kembali ke proses sebelumnya yang perlu dilakukan perbaikan maupun perubahan.

Tabel 3.1 User Story

Nama Aktifitas Sebagai Kegiatan Tujuan

Menampilkan pilihan gerakan karate

Pengguna Melihat gerakan

yang tersedia

Memilih gerakan yang diinginkan

Menampilkan informasi gerakan

Pengguna Mencari tahu

informasi mngenai gerakan yang dipilih Mengetahui informasi dari gerakan Memilih gerakan karate

Pengguna Memilih gerakan

yang diinginkan

Membuka window penilaian sesuai dengan gerakan yang dipilih Melakukan

proses penilaian

Pengguna Melakukan

penilaian posisi

Memproses posisi user menjadi nilai

berdasarkan dara referensi

Update data referensi

Admin Melakukan

update data referensi

Mengubah data

referensi sesuai dengan data yang dimasukkan

3.2.2 Unified Process

Pengembangan perangkat lunak ini menggunakan framework Unified


(42)

inception, elaboration, construction, dan transition. Pada tahap inception dilakukan

proses penentuan scope produk dan batasan-batasannya, menguraikan

permasalahan menjadi sub bagian yang lebih kecil, menentukan perencanaan jadwal dan biaya yang terkait.

Dalah tahap inception ini telah ditentukan scope program sebagai berikut :

1. Program yang dikembangkan akan menghasilkan penilaian posisi

2. Program yang dikembangkan menggunakan sensor Kinect

3. Program yang dikembangkan akan dapat menerima inputan data referensi

dari role model

4. Program yang dikembangkan mampu menerima perintah melalui suara

Sedangkan batasan-batasan produk yang teridentifikasi antara lain :

1. Sensor Kinect yang digunakan adalah satu buah

2. Proses pengembangan menggunakan SDK Kinect for Windows versi 1.7

Uraian permasalah dapat dilihat pada user story dalam bagian Agile planning.

Sedangkan pada tahap elaboration dihasilkan rancangan-rancangan

mendetail dari perangkat lunak seperti use case diagram, activity diagram dan class diagram. Rancangan-rancangan ini menjadi panduan dalam tahap berikutnya yaitu

construction. Rancangan-rancangan ini dibagi menurut fungsionalitasnya. Berbagai fungsi yang diperlukan dalam perangkat lunak ini menggunakan beberapa kelas dalam SDK Kinect. Beberapa rancangan dalam proses pengembangan perangkat lunak ini terdiri dari proses pengecekan status sensor, proses inisialisasi sensor, proses skeleton tracking, proses drawing skeleton, proses perhitungan sudut vektor, proses perbandingan data dan proses perintah suara yang merupakan hasil analisis kebutuhan perangkat lunak.


(43)

39

Pada tahap ini perangkat lunak mulai dibangun untuk memenuhi kebutuhan pengguna yang sudah dijabarkan melalui user story. Ketika terdapat masalah maupun penyesuaian dalam rancangan spesifikasi perangkat lunak, maka akan dilakukan proses perubahan yang diperlukan sampai kebutuhan terpenuhi secara

iterative. Pada tahap transition, dilakukan uji coba pada perangkat lunak agar dapat di deploy.

3.2.3 Use Case Diagram Aplikasi Penilaian Posisi Karate

Use case memberikan gambaran terhadap aktivitas utama pelaku dalam sistem atau actor dan kegiatan yang dapat dilakukannya dalam aplikasi. Sistem akan berinteraksi dengan pengguna sesuai diagram use case pada Gambar 3.12.

Gambar 3.12 Use Case Diagram Utama

Dari diagram use case tersebut dapat dilihat bahwa terdapat dua aktor, yaitu

user dan admin. Aktor user adalah pengguna aplikasi yang ingin menilai posisi tubuh dengan menggunakan aplikasi. Sedangkan aktor admin adalah aktor yang

menampilkan daftar gerakan memilih gerakan

<<include>>

penilaian gerakan User

(from Actors)

memasukkan data

Admin


(44)

bertanggung jawab dalam memasukkan data-data yang diperlukan agar aplikasi dapat berjalan. Terdapat empat use case yang masing-masing merupakan kegiatan yang memiliki tujuan masing-masing. Penjelasan mengenai masing-masing use case tampak pada Tabel 3.2.

Tabel 3.2 Detail Use Case

No. Nama Use Case Aktor Penjelasan

1. Memilih gerakan User Kegiatan user dalam menentukan

gerakan yang ingin dicoba

2. Penilaian gerakan User Kegiatan user dalam melakukan gerakan

yang ingin dicoba

3. Menampilkan

daftar gerakan

Sistem Bagian dari use case memilih gerakan yang dijalankan oleh sistem sehingga menampilkan pilihan gerakan

4. Memasukkan data Admin Kegiatan admin dalam memasukkan data

referensi ke dalam basis data agar dapat dipakai dalam aplikasi

3.2.4 Flow of Events

Flow of events merupakan gambaran dari aliran kejadian yang tersususn secara runtut. Disini akan tampak aliran sebuah aktifitas yang di lengkapi dengan bagaimana aktifitas tersebut dimulai dan bagaimana aktifitas itu berakhir. Flow of events merupakan penjabaran awal user story yang selanjutnya akan didetailkan dalam activity diagram. Flow of events dari beberapa aktifitas yang diidentifikasi pada usecase diagram akan dibahas pada bagian selanjutnya.

a. Flow of Event dari Use Case Menampilkan Pilihan Gerakan

Use case menampilkan pilihan gerakan diawali ketika pengguna aplikasi memilih masuk pada splash screen. Aliran aktifitas dalam use case ini akan berakhir dengan kondisi akhir yaitu sistem menampilkan pilihan gerakan yang ada dalam basis data. Untuk lebih detailnya dapat dilihat pada flow of event di Tabel 3.3.


(45)

41

Tabel 3.3 Flow of Event dari Use Case menampilkan Pilihan Gerakan Use Case

Detail

Menampilkan Pilihan Gerakan Kebutuhan

terkait

A1. Pengguna aplikasi perlu melihat pilihan-pilhan gerakan yang ditampilkan dalam program. Infotmasi yang perlu didapat dari pilihan-pilhan gerakan ini adalah nama gerakan,

keterangan singkat mengenai gerakan, dan gambar posisi akhir gerakan yang disimpan dalam basis data

Tujuan Memberikan daftar pilihan gerakan ke pengguna

Prasyarat Sensor Kinect terhubung

Kondisi akhir sukses

Pilihan gerakan ditampilkan beserta detailnya. Kondisi akhir

Gagal

- Jika Pilihan gerakan tidak memiliki gambar dan informasi

maka akan ditampilkan selection display yang kosong

Aktor utama Pengguna aplikasi

Aktor sekunder

Sistem

Pemicu Pengguna aplikasi memilih untuk masuk ke aplikasi melalui

splash screen

Alur utama Langkah Aktor Aksi

1. Sistem Menampilkan form selamat datang

2. User Memilih tombol mulai

3. Sistem Mendeteksi dan menyalakan sensor

4. Sistem Menampilkan keterangan sensor siap

5. Sistem Menampilkan menu pilihan gerakan

6. Sistem Mendeteksi pergerakan tangan user

7. Sistem Menampilkan kinect cursor

Alur perluasan

4.1 Sistem Menampilkan keterangan sensor

tidak ditemukan

6.1 Sistem Active movement detection dilakukan

untuk memonitoring pergerakan tangan selama form dibuka

b. Flow of Event dari Use Case Memilih Gerakan

Use case memilih gerakan diawali ketika pengguna aplikasi memilih

gerakan baik menggunakan kinect cursor ketika ditemukan sensor Kinect maupun

dengan tetikus. Aliran aktifitas dalam use case ini akan berakhir dengan kondisi akhir yaitu sistem menerima pilihan gerakan dari user dengan nilai id gerakan sesuai dengan gerakan yang dipilih. Untuk lebih detailnya dapat dilihat pada flow of event di Tabel 3.4.


(46)

Tabel 3.4 Flow of Event dari Use Case memilih Gerakan Use Case Detail Memilih gerakan Kebutuhan terkait

A1. Pengguna aplikasi mampu memilih gerakan yang

dinginkan untuk dinilai menngunakan hand tracking

Tujuan Memberikan pilihan gerakan ke sistem

Prasyarat Sensor Kinect terhubung

Kondisi akhir sukses

Pilihan gerakan disampaikan ke sistem berupa id gerakan Kondisi akhir

Gagal

Aktor utama Pengguna aplikasi

Aktor sekunder Sistem

Pemicu Sistem menampilkan menu pilihan gerakan untuk dipilih

Alur utama Langkah Aktor Aksi

1. User Mengarahkan kinect cursor ke info

pilihan gerakan yang dipilih

2. Sistem Menampilkan selection display dari

pilihan gerakan yang dipilih selama 10 detik

3. User Mendorong tangannya ke arah sensor Kinect diatas pilihan gerakan yang diinginkan

4. Sistem Mendeteksi id gerakan dari pilihan

gerakan yang dipilih

5. Sistem Menampilkan kinectWindow dengan

parameter id gerakan yang sudah disampaikan dari form Menu pilihan gerakan

Alur perluasan 4.1 User Mengarahkan pointer mouse ke info

pilihan gerakan yang dipilih

3.1 Sistem Memilih pilihan gerakan yang

diinginkan dengan menggunakan mouse

c. Flow of Event dari Use Case Penilaian Gerakan

Use case penilaian gerakan diawali ketika pengguna aplikasi telah memilih

gerakan yang selanjutnya akan membuka kinect window yang menerima id gerakan

yang disampaikan oleh form sebelumnya. Aliran aktifitas dalam use case ini akan berakhir dengan kondisi akhir yaitu sistem menampilkan hasil penilaian yang merupakan hasil pemrosesan data. Untuk lebih detailnya dapat dilihat pada flow of event di Tabel 3.5.


(47)

43

Tabel 3.5 Flow of Event dari Use Case memilih Gerakan Use Case

Detail

Penilaian Gerakan Kebutuhan

terkait

A1. Aplikasi menampilkan notifikasi mengenai proses pengambilan data yang perlu dilakukan beserta hitungan mundur. Pengambilan data dibagi menjadi tiga tipe yaitu pengambilan data penuh, pengambilan data bagian atas, dan pengambilan data bagian bawah.

Tujuan Memberikan Penilaian gerakan ke user

Prasyarat Sensor Kinect terhubung

Kondisi akhir sukses

Nilai disampaikan ke user

Kondisi akhir Gagal

Aktor utama Sistem

Aktor sekunder Pengguna aplikasi

Pemicu Pengguna aplikasi memilih salah satu dari pilihan gerakan

yang ada

Alur utama Langkah Aktor Aksi

1. Sistem Menampilkan notifikasi informasi

pengambilan data dan dan akan hilang setelah hitungan mundur selesai

2. User Melakukan gerakan yang dipilih

3. User Mengakhiri gerakan dengan mengucapkan finish

4. Sistem Mengambil nilai derajat per join

5. Sistem Membandingkan nilai user dengan data

referensi

6. Sistem Menampilkan hasil penilaian

Alur perluasan 3.1 User Mengakhiri gerakan pada pengambilan

pertama dengan mengucapkan save first

3.2 User Mengakhiri gerakan pada pengambilan

pertama dengan mengucapkan save

second

3.3 User Mengakhiri proses pengambilan data

dengan mengucapkan combine

d. Flow of Event dari Use Case Memasukkan Data

Use case memasukkan data diawali ketika admin masuk ke windowupdate

data referensi. Aliran aktifitas dalam use case ini akan berakhir dengan kondisi akhir yaitu basis data dengan id gerakan yang ingin diubah memiliki nilai yang


(48)

sudah berubah sesuai dengan perekaman data sudut sendi yang dilakukan. Untuk lebih detailnya dapat dilihat pada flow of event di Tabel 3.6.

Tabel 3.6 Flow of Event dari Use Case Memasukkan Data Use Case

Detail

Memasukkan data Kebutuhan

terkait

A1. Admin dapat memasukkan data referensi posisi melalui sensor Kinect dengan Kinect skeleton tracking dan

pengukuran derajat sendi

Tujuan Menyimpan data referensi persendian sebagai referensi

Prasyarat Sensor Kinect terhubung dan diinisialisasi

Kondisi akhir sukses

Data referensi gerakan tersimpan Kondisi akhir

Gagal

Data referensi tidak tersimpan

Aktor utama Admin

Aktor sekunder Sistem

Pemicu Admin masuk ke window update untuk mengubah data

referensi yang sudah ada

Alur utama Langkah Aktor Aksi

1. Sistem Menampilkan pilihan gerakan yang

dapat diupdate datanya

2. Admin Memilih gerakan yang ingin direkam

datanya

3. Sistem Menginisialisasi sensor Kinect

4. Sistem Menggambar stickmen beserta sudutnya

5. Admin Menekan tombol simpan

6. Sistem Memasukkan data ke dalam basis data

Alur perluasan - - -

3.2.5 Activity Diagram

Activity diagram merupakan representasi grafis dari alur kegiatan (workflows) yang menjelaskan secara mendetail dari berbagai kegiatan. Setiap use case memiliki activity diagram masing–masing. Pada bagian selanjutnya akan dijelaskan activity diagram per use case yang ada.


(49)

45

a. Activity Diagram dari Use Case Menampilkan Pilihan Gerakan

Gambar 3.13 Activity Diagram dari Use Case Menampilkan Pilihan Gerakan

memilih tombol

mulai

memilih menu pilih gerakan

menggunakan kinect cursor

menampilkan menu

pilihan gerakan

inisialisasi

sensor kinect

kinect ditemukan?

menampilkan pesan

kinect tidak ditemukan

kinect tidak ditemukan

menampilkan pesan

kinect ditemukan

kinect ditemukan

mendeteksi

user

menampilkan form

selamat datang

user ditemukan?

loading kinect

cursor

user ditemukan

user tidak ditemukan

sistem user


(50)

Activity diagram dari use case menampilkan pilihan gerakan tampak pada Gambar 3.13. Aktifitas pertama dalam diagram ini adalah menampilkan form selamat datang dan aktifitas terakhir adalah memilih menu pilihan gerakan menggunakan kinect cursor. Penjelasan dari activity diagram ini adalah sebagai berikut :

1. Aktifitas pertama diawali oleh sistem dengan menampilkan form selamat datang yang memberikan penjelasan singkat mengenai maksud dan tujuan aplikasi beserta keterangan bahwa aplikasi ini membutuhkan perangkat sensor

Kinect.

2. User akan merespon dengan memilih tombol mulai yang selanjutnya akan memicu aplikasi untuk menginisialisasi sensor Kinect.

3. Jika sensor Kinect tidak ditemukan akan muncul pesan bahwa aplikasi ini

membutuhkan sensor Kinect. Sedangkan jika ditemukan sensor Kinect maka

akan muncul pesan yang menunjukan proses sensor Kinect sudah tersambung.

4. Setelah sensor Kinect berhasil diinisialisasi, akan muncul menu pilihan gerakan.

5. Aplikasi akan segera mendeteksi user yang ada di depan sensor Kinect. 6. Jika ditemukan user, selanjutnya aplikasi akan mencari pergerakan telapak

tangan user yang akan menjadi penggerak kinect cursor.


(51)

47

b. Activity Diagram dari Use Case Memilih Gerakan

Activity diagram dari use case memilih gerakan tampak pada Gambar 3.14. Aktifitas pertama dalam diagram ini adalah user mengarahkan kinect cursor

gerakan yang dipilih dan berakhir ketika pilihan gerakan disimpan.

Gambar 3.14 Activity Diagram dari Use Case Memilih Gerakan user mengarahkan kinect

cursor ke gerakan yang dipilih

user mendorong tangan ke arah sensor kinect

user memilih pilihan konfirmasi atau browsing gerakan browsing gerakan

sistem menampilkan form informasi detil gerakan

pihan gerakan disimpan

sistem user


(52)

Penjelasan activity diagram ini adalah sebagai berikut :

1. User mengarahkan kinect cursor diatas gerakan yang ingin diketahui

penjelasannya.

2. Sistem akan menampilkan informasi detil gerakan.

3. Untuk memilih gerakan yang ingin dicoba, user mengarahkan kinect cursor di pilihan yang dikehendaki.

4. User memilih dengan mendorong telapak tangan ke arah sensor kinect.

5. Pilihan gerakan akan disimpan oleh aplikasi untuk mengambil parameter yang

dibutuhkan

c. Activity Diagram dari Use Case Penilaian Gerakan

Activity diagram dari use case penilaian gerakan tampak pada Gambar 3.15. Aktifitas pertama dalam diagram ini adalah menampilkan hitungan mundur dan diakhiri dengan menampilkan hasil penilaian. Penjelasan dari activity diagram

ini adalah sebagai berikut ;

1. Setelah user memilih pilihan gerakan yang ingin dinilai, sistem akan memunculkan hitungan mundur sebagai waktu agar user siap.

2. Setelah hitungan mundur habis, user dapat memeragakan gerakan yang dipilih dan mempertahankan posisi akhirnya.

3. Untuk memberitahu aplikasi bahwa user sudah dalam posisi akhir, user perlu

memberikan perintah suara ke sistem dengan mengucapkan “finish

4. Aplikasi akan mengambil data derajat per join dari hasil skeleton tracking.

5. Aplikasi akan mengolah data tersebut dengan membandingkannya dengan data


(53)

49

6. Aplikasi menampilkan hasil perbandingan data yang didapat dengan data yang

sudah disimpan beserta tafsirannya.

Gambar 3.15 Activity Diagram dari Use Case Penilaian Gerakan melakukan gerakan

yang dipilih

mengakhiri gerakan yang dipilih dengan mengucapkan "finish"

menampilkan hitungan mundur

mengambil nilai derajat per join

membandingkan nilai user dengan data master

menampilkan hasil penilaian sistem : Admin user : User


(54)

d. Activity Diagram dari Use Case Memasukkan Data

Gambar 3.16 Activity Diagram dari Use Case Memasukkan Data

masuk ke window

update gerakan

memilih gerakan yang

ingin direkam datanya

menekan

tombol update

gerakan yang dipilih membutuhkan 2

kali pengambilan data?

menekan tombol

simpan bawah

menekan tombol

simpan bawah

menampilkan list

pilihan gerakan

inisialisasi

sensor kinect

kinect ditemukan?

skeleton tracking

tidak dilakukan

skeleton tracking

diaktifkan

mengambil dan menyimpan data sudut persendian

sesuai dengan id gerakan yang dipilih Sistem


(55)

51

3.2.6 Sequence Diagram

Sequence diagram menggambarkan jalannya suatu proses yang melibatkan

object atau instance dari suatu class. Berikut adalah sequence diagram dari aplikasi ini.

a. Sequence Diagram dari Menampilkan pilihan Gerakan

Sequence diagram dari use case menampilkan pilihan gerakan dapat dilihat pada Gambar 3.17.

Gambar 3.17 Sequence Diagram dari Menampilkan Pilihan Gerakan

: User

: User Splash Screen : splashScreenSplash Screen : splashScreen form Menu : menuform Menu : menu sub page Selection Display :

selectionDisplay

sub page Selection Display :

selectionDisplay

kinectSensor :

skeletonTracking

kinectSensor :

skeletonTracking

DetilGerakan : detilGerakan DetilGerakan : detilGerakan : kinectWindow : kinectWindow buka( )

tutup( )

buka( )

hoverPilihan( )

createSelectionDisplay(Integer) createKinectSensorChooser( )

sensorStart( ) void void

tekanPilihan( )

tutup( )

load(idGerakan) getDetil(Integer)

getImage(Integer)


(56)

Penjelasan dari sequence diagram tersebut adalah sebagai berikut :

1. Kegiatan memilih gerakan di trigger ketika user menjalankan file executable

dari aplikasi.

2. Aplikasi akan menampilkan splash screen. 3. User menekan tombol masuk.

4. Splash screen akan menutup dirinya dan memanggil form menu.

5. Form menu akan menngunakan class dari SDK Kinect untuk melakukan

inisialisasi dalam menggunakan sensor Kinect.

6. Jika ditemukan sensor Kinect maka sensor digunakan dalam form Menu.

7. Ketika user meletakan pointer di atas pilihan gerakan, form menu akan memanggil Selection Display.

8. Ketika Selection Display menginisialisasi untuk tampil, pada saat itu juga method getDetil dan getImage akan dipanggil yang akan memberikan data-data yang akan dimuat di halaman Selection Display.

9. Selanjutnya user dapat memilih sebuah gerakan dengan dengan cara menekan

pilihan tersebut lalu form Menu akan menutup dan form Kinect Window akan

dimuat. Form Kinect Window akan terbuka dengan variabel idgerakan yang dipilih menjadi parameternya.

b. Sequence Diagram dari Memilih Gerakan

Dalam aktifitas memilih gerakan akan digunakan kelas dari SDK yaitu kelas kinectCursor dan KinectRegion dalam hal mendeteksi pergerakan tangan pengguna beserta aksi yang akan dilakukan oleh pengguna, yaitu mendorong,

menggenggam, dan menggerakan kursor. Sequence diagram dari penilaian gerakan


(57)

53

Gambar 3.18 Sequence Diagram dari Memilih Gerakan

Penjelasan dari sequence diagram tersebut adalah sebagai berikut :

1. User menggerakan tangannya di depan sensor sehingga aplikasi akan

menangkap pergerakan tangan.

2. Pergerakan tangan dideteksi oleh program melalui kelas KinectCursor

3. Setelah user terdeteksi, aplikasi akan membuat object hand pointer.

4. Kelas kinectRegion yang berfungsi sebagai content control memiliki area dalam layar aplikasi dimana hand pointer yang sudah dibuat dapat digunakan. 5. Ketika tangan pengguna bergerak, aplikasi akan mengupdate letak hand

pointer menggunakan metode getPosition.

6. Ketika tangan pengguna mengalami perubahan jarak pada sumbu z atau dapat

dikatakan mendekati sensor, maka kelas KinectCursor akan memproses posisi : User

: User : kinectCursor : kinectCursor : kinectRegion : kinectRegion : kinectWindow : kinectWindow capture( )

initializeKinectRegion( )

addHandpointer( ) getPosition( ) getPressTarget( )

getPosition( )


(58)

dari handcursor dan jika terdapat target pilihan maka target tersebut akan dieksekusi menurut event handler.

c. Sequence Diagram dari Penilaian Gerakan

Sequence diagram dari penilaian gerakan dapat dilihat pada Gambar 3.19.

Gambar 3.19 Sequence Diagram dari Penilaian Gerakan

: User

: User form KinectWindow : kinectWindowform KinectWindow : kinectWindow compare : comparecompare : compare panduan : Panduanpanduan : Panduan form WindowHasil :

windowHasil

form WindowHasil :

windowHasil

charting : charting charting : charting buka(idgerakan)

setPanduan(idgerakan)

setRealisasi(joints[] )

nilai( )

getHasil( )

getPanduanData(idgerakan)

getHasil( )

getPanduan( ) setPanduan( )


(59)

55

Penjelasan dari sequence diagram tersebut adalah sebagai berikut :

1. Form Kinect Window dibuka atas dasar kegiatan aktifitas user sebelumnya dalam form Menu yang disertai dengan penyampaian parameter idgerakan.

2. Form Kinect Window akan mengambil nilai panduan dari gerakan yang

dimaksud dan menampungnya dalam array joint sesuai dengan parameter idgerakan.

3. Ketika user dalam keadaan stabil dan mengucapkan voice command untuk memerintahkan aplikasi untuk masuk ke tahap penilaian maka akan dipanggil metode setRealisasi yang akan menjadi array joint yang akan dibandingkan. 4. Setelah itu akan dipanggil method nilai yang akan melakukan perhitungan

untuk membandingkan dua data yang sudah didapat sebelumnya untuk mendapatkan hasil melalui metode getHasil dalam kelas compare.

5. Kelas compare juga akan memanggil metode setHasil dan setPanduan unttuk

menampung data ke tabel charting untuk membantu proses penyajian data.

6. Lalu form Kinect Window akan memanggil form Window Hasil dimana

sebelum dimuat akan mencari data dalam tabel charting yang digunakan untuk penyajian data penilaian.

d. Sequence Diagram Memasukkan Data

Sequence diagram dari penilaian gerakan dapat dilihat pada Gambar 3.20. Penjelasan dari sequence diagram ini adalah sebagai berikut :

1. Admin membuka form maintenance

2. Form maintenance akan memuat data panduan dari tabel panduan

3. Admin memasukkan idposisi yang ingin diubah lalu form maintenance akan


(1)

berbeda. Hasil pengambilan pertama dapat dilihat pada Gambar 4.16 dengan hasil 96%. Untuk pengambilan kedua dengan hasil 93% dapat dilihat di Gambar 4.18.

Gambar 4.18 Uji Coba oi tsuki kedua

Gambar 4.19 Uji Coba Oi tsuki ketiga

Pada Gambar 4.19 tampak hasil uji coba dengan memeragakan pukulan dengan tangan kanan dimana semestinya yang diperlukan adalah pukulan menggunakan tangan kiri. Hasil uji coba ini memiliki hasil 66% dimana kesalahan terjadi secara signifikan yang diakibatkan dari data bagian tubuh yang tidak sesuai


(2)

dengan data model pada bagian tangan. Hasil uji coba pertama memiliki nilai lebih baik karena kesalahan yang dilakukan bersifat minor dan hanya terletak pada bagian tangan kiri yang memiliki nilai sudut elevasi yang lebih besar dibandingkan dengan data model. Sedangkan uji coba ke tiga memiliki nilai yang lebih buruk dikarenakan terdapat kesalahan pada tangan kanan dan kiri pengguna. Dari hasil uji coba ini dapat dilihat kemampuan program dalam menilai posisi tubuh dimana aplikasi mampu memberikan penilaian posisi tubuh yang salah dan memberikan penilaian yang memiliki korelasi antara data model dengan data pengguna aplikasi. Program mampu menilai posisi tubuh secara komprehensif.


(3)

BAB V

KESIMPULAN DAN SARAN

5.1Kesimpulan

Setelah dilakukan analisis, perancangan dan pembuatan aplikasi penilaian posisi karate menggunakan sensor Kinect, dapat disimpulkan beberapa hal sebagai berikut:

a. Aplikasi yang dibuat mampu mengambil derajat persendian untuk dibandingkan yang disimpan dalam basis data berupa koleksi 12 joint value dengan identifier persendian.

b. Aplikasi yang dibuat mampu menilai posisi pengguna dengan cara membandingkan derajat dari persendian yang dihitung dari nilai koordinat X,Y dan Z yang ditangkap oleh sensor Kinect lalu dilakukan proses pencarian sudut dari 2 vektor yang membentuk joint. Dari seluruh joint yang ada, derajat yang didapat akan dibandingkan dengan data referensi yang sudah disimpan sebelumnya.

c. Aplikasi yang dibuat mampu dikendalikan dengan perintah suara dengan menggunakan Speech Recognition Grammar dalam format XML yang diproses menggunakan Microsoft Speech Engine.

Dari hasil uji coba, aplikasi ini memiliki rata-rata keakurasian antara data referensi dan data model sebesar 83,85%. Angka ini didapat dari proses uji coba dengan melakukan 10 kali pengambilan data tiap gerakan yang ada yang dinilai dengan cara dibandingkan dengan data referensi.


(4)

5.2 Saran

Dari penelitian yang telah dilakukan, terdapat beberapa saran yang dapat menjadi masukan bagi penelitian selanjutnya. Saran–saran tersebut adalah:

a. Penggunaan 2 sensor Kinect secara simultan untuk menghasilkan penilaian yang lebih akurat. Penggunaan 2 sensor ini dapat digabung dalam 1 modul aplikasi yang selanjutnya akan digunakan secara bergantian dari sisi yang berlainan. Hal ini dapat mengeliminasi proses pengambilan data yang lebih dari satu kali.

b. Proses perekaman data referensi dapat menggunakan role model yang memiliki pengetahuan yang lebih tinggi.

c. Data sudut dapat dikembangkan lagi sehingga dapat dibuat aplikasi untuk merender model 3 dimensi dari skeleton sehingga model referensi dapat diproyeksikan dalam bidang 3 dimensi.

d. Aplikasi ini dapat dikembangkan dengan menilai seluruh proses gerakan dari awal sampai akhir yang merupakan pengembangan dari aplikasi ini yang hanya mengambil posisi akhir. Pengembangan ini dapat dilakukan dengan cara mengkombinasikan seluruh frame selama gerakan tersebut dilakukan.


(5)

DAFTAR PUSTAKA

Abdiwan, M. (2011, Juli 24). Tribun Kembangkan Karate Do, Foto 1 - Tribun

Images. Dipetik September 20, 2013, dari Tribun News:

http://www.tribunnews.com/images/view/4140/tribun-kembangkan-karate-do#.Umii__ml6HM.

Burns, A.-M., Kulpa, R., Durny, A., Spanlang, B., Slater, M., & Multon, F. (2011). Using Virtual Humans and Computer Animations to Learn Complex Motor Skills : A Case Study in Karate. BIO Web of Conferences, 1. doi:http://dx.doi.org/10.1051/bioconf/20110100012.

Catuhe, D. (2012). Programming with the Kinect for Windows Software Development Kit. Washington: Microsoft Press.

Fowler, M. (2004). Uml Distilled : A Brief Guide to the Standard Object Modeling Language. Boston: Addison-Wesley Professional.

Griffiths, I. (2012). Programming C# 5.0. Sebastopol: O'Reilly.

Khan, M. E. (2010). Different Forms of Software Testing Techniques for Finding Errors. IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 3, No 1, May 2010, 11-16.

Komura, T., Lam, B., Lau, R. W., & Leung, H. (2006). e-Learning Martial Arts.

Advances in Web Based Learning – ICWL 2006, 239-248.

doi:10.1007/11925293_22.

Kurnianingsih, S., & Kuntarti, S. (2007). Matematika SMA dan MA 3A Untuk Kelas XII Semester 1 Program IPA. Jakarta: Esis/Erlangga.

Microsoft Corporation. (t.thn.). JointType Enumeration. Dipetik September 5, 2013, dari MSDN – the Microsoft Developer Network: http://msdn.microsoft.com/en-us/library/microsoft.kinect.jointtype.aspx Miller, G. G. (2001). The Characteristics of Agile Software Processes. Proceedings

of the 39th Int’l Conf. and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS’01).

Nugroho, A. (2010). Rekayasa Perangkat Lunak Berorientasi Objek dengan Metode USDP. Penerbit ANDI.

Santa-María, J. (2001). tsuki, zuki, golpes de puño de karate. Dipetik Juni 7, 2013,

dari Karate Do Shotokan:


(6)

Wolfram. (2014, Februari 4). Dot Product -- from Wolfram MathWorld. Diambil kembali dari Wolfram MathWorld: The Web's Most Extensive Mathematics Resource: http://mathworld.wolfram.com/DotProduct.html.

Yeung, K. Y., Kwok, T. H., & Wang, C. C. (2013). Improved Skeleton Tracking by Duplex Kinects: A Practical Approach for Real-Time Application. Journal of Computing and Information Science in Engineering, 13. doi:10.1115/1.4025404.