TA : Aplikasi Virtual Punch Training Menggunakan Microsoft Xbox Kinect.

APLIKASI VIRTUAL PUNCH TRAINING MENGGUNAKAN
MICROSOFT XBOX KINECT

TUGAS AKHIR

Nama

: Wira Wanangsyah

NIM

: 08.41010.0438

Program

: S1 (Strata Satu)

Jurusan

: Sistem Informasi


SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER
SURABAYA
2014

ABSTRAK

Microsoft merilis sebuah sensor bernama Kinect berfungsi sebagai kontrol
game alternatif dimana user dapat bergerak bebas menggunakan tubuhnya saat
berinteraksi dengan menu virtual atau bermain game. Salah satu contohnya Kinect
Sports : Boxing, didalam game tersebut tidak terdapat tampilan pengukuran
kecepatan dan kekuatan pukulan.
Dari permasalahan yang ada maka diusulkan sebuah aplikasi yang dapat
menghitung kecepatan dan kekuatan sebuah pukulan menggunakan teknologi
sensor Kinect. Perhitungan kecepatan dan kekuatan pukulan menggunakan
rangkaian rumus menghitung kecepatan dan Energi Kinetik. Kemudian nilai yang
dihasilkan dari perhitungan tersebut dijadikan parameter performa saat melakukan
latihan pukulan, lalu nilai performa akan dibuat peringkat dengan cara
membandingkan setiap nilai tertinggi yang telah dibuat pada latihan sebelumnya
agar dapat ditemukan nilai tertinggi yang baru.

Berdasar hasil penelitian tugas akhir ini dan dengan memanfaatkan
teknologi Kinect bahwa kekuatan pukulan jab dapat diukur kecepatan dan
kekuatannya, untuk kemudian digunakan sebagai penilaian dari latihan yang telah
dilakukan menggunakan aplikasi Virtual Punch Training. Namun teknologi
Kinect sendiri masih memiliki keterbatasan berupa jeda gerakan yang ditangkap
oleh sensor dan terdapat noise pada depth-sensor.

vii

DAFTAR ISI
Halaman
ABSTRAK.............................................................................................................vii
KATA PENGANTAR ......................................................................................... viii
DAFTAR ISI ........................................................................................................... x
DAFTAR GAMBAR ........................................................................................... xiv
DAFTAR TABEL ............................................................................................... xvii
DAFTAR LAMPIRAN ...................................................................................... xviii
BAB I PENDAHULUAN ....................................................................................... 1
1.1 LATAR BELAKANG ................................................................................... 1
1.2 PERUMUSAN MASALAH .......................................................................... 3

1.3 BATASAN MASALAH................................................................................ 3
1.4 TUJUAN ........................................................................................................ 4
1.5 SISTEMATIKA PENULISAN ..................................................................... 5
BAB II LANDASAN TEORI ................................................................................. 7
2.1 Menghitung Kecepatan Menggunakan Kinect .............................................. 7
2.2 Energi Kinetik................................................................................................ 7
2.3 Bagian Tubuh Manusia .................................................................................. 8
2.4 Microsoft Xbox Kinect ................................................................................ 10
2.5 Microsoft Kinect SDK ................................................................................. 12
2.6 Bahasa Pemograman C# .............................................................................. 14
2.7 UML ............................................................................................................ 15
BAB III ANALISIS DAN PERANCANGAN SISTEM ...................................... 17
3.1 Analisis ........................................................................................................ 17

3.1.1 Mengukur Kecepatan Jab ................................................................... 18
3.1.2 Mengukur Kekuatan Pukulan ............................................................. 19
3.1.3 Spesifikasi Perangkat Lunak .............................................................. 21
3.1.4 Inisialisasi Kinect ............................................................................... 22
3.1.5 Mendeteksi Objek dan Drawing User................................................ 23
3.1.6 Menampilkan Video Stream dan Depth Stream ................................. 27

3.1.7 Melakukan Pengaturan User Joint ..................................................... 28
3.2 Model Pengembangan Sistem...................................................................... 30
3.3 Use Case Diagram Aplikasi Virtual Punch Training ................................. 31
3.4 Activity Diagram .......................................................................................... 31
3.4.1 Activity Diagram untuk Use Case Memilih Options ......................... 31
3.4.2 Activity Diagram untuk Use Case Melakukan Training .................... 33
3.4.3 Activity Diagram untuk Use Case Menyimpan Hasil Training ......... 34
3.5 Sequence Diagram ....................................................................................... 35
3.5.1 Sequence Diagram Memilih Options ................................................. 35
3.5.2 Sequence Diagram Melakukan Training ........................................... 36
3.5.3 Sequence Diagram Menyimpan Hasil Training................................. 37
3.6 Class Diagram ............................................................................................. 37
3.6.1 Class Diagram Main Menu ................................................................ 38
3.6.2 Class Diagram Virtual Punch Training ............................................. 39
3.6.3 Class Diagram HoverButton .............................................................. 40
3.6.4 Class Diagram Options ...................................................................... 40
3.6.5 Class Diagram Runtime ..................................................................... 41
3.6.6 Class Diagram RuntimeData ............................................................. 41

3.6.7 Class Diagram BitmapSource ............................................................ 42

3.6.8 Class Diagram SolidColorBrush ....................................................... 42
3.6.9 Class Diagram Hitung Performa........................................................ 43
3.6.10 Class Diagram Score ........................................................................ 43
3.7 Desain User Interface .................................................................................. 44
3.7.1 Desain User Interface Form Menu Utama ......................................... 44
3.7.2 Desain User Interface Form Training................................................ 45
3.7.3 Desain User Interface Form Options ................................................. 45
3.7.4 Desain User Interface Form High Score............................................ 46
3.7.5 Desain User Interface Form Preview Result...................................... 46
BAB IV IMPLEMENTASI SISTEM DAN EVALUASI ..................................... 48
4.1 Implementasi Sistem.................................................................................... 48
4.1.1 Instalasi dan Kebutuhan Perangkat .................................................... 48
4.2 Penjelasan Hasil Implementasi .................................................................... 50
4.2.1 Form Menu Utama ............................................................................. 50
4.2.2 Form Settings ..................................................................................... 51
4.2.3 Form Play ........................................................................................... 51
4.2.4 Form Hasil Latihan ............................................................................ 52
4.2.5 Form High Score ................................................................................ 52
4.3 Uji Coba Fungsionalitas Aplikasi dan Pembahasan .................................... 53
4.3.1 Proses Mendeteksi User ..................................................................... 53

4.3.2 Proses Navigasi Menu ........................................................................ 54
4.3.3 Proses Mengubah Settings.................................................................. 54
4.3.4 Proses Training Session ..................................................................... 56

4.3.5 Proses Menghitung Kecepatan Pukulan ............................................. 56
4.3.6 Proses Menghitung Kekuatan Pukulan .............................................. 58
4.3.7 Proses Menampilkan Grafis Latihan .................................................. 59
4.3.8 Proses Menampilkan Nilai Tertinggi ................................................. 60
4.4 Evaluasi........................................................................................................ 61
BAB V PENUTUP ................................................................................................ 64
5.1 Kesimpulan .................................................................................................. 64
5.2 Saran ............................................................................................................ 64
DAFTAR PUSTAKA ........................................................................................... 66
LAMPIRAN ...........................................................................................................67
Lampiran 1. Biodata Penulis Dan Riwayat Pendidikan ........................................ 67
Lampiran 2 Source Code ....................................................................................... 68

DAFTAR GAMBAR
Halaman
Gambar 2.1 Jarak threshold .................................................................................... 7

Gambar 2.2 Human Segments ................................................................................ 9
Gambar 2.3 Joints dan Orientation pada Kinect................................................... 12
Gambar 2.4 Arsitektur Kinect ............................................................................... 14
Gambar 3.1 Mengukur Kecepatan Jab .................................................................. 19
Gambar 3.2 Mengukur Kecepatan Jab 2 ............................................................... 19
Gambar 3.3 Flowchart Inisialisasi Kinect ............................................................ 22
Gambar 3.4 Flowchart RuntimeFrameReady ....................................................... 24
Gambar 3.5 Flowchart DrawPoint ....................................................................... 25
Gambar 3.6 Flowchart pendeteksian kecepatan dan hantaman ............................ 26
Gambar 3.7 Flowchart ColorImageReady ............................................................ 27
Gambar 3.8 Flowchart DepthImageReady ........................................................... 28
Gambar 3.9 Flowchart ScaleJoint ......................................................................... 29
Gambar 3.10 Flowchart ScaledPosition ............................................................... 29
Gambar 3.12 Use Case Diagram Aplikasi Virtual Punch Training ..................... 31
Gambar 3.13 Activity Diagram untuk Use Case Memilih Options ...................... 32
Gambar 3.14 Activity Diagram untuk Use Case Melakukan Training ................. 33
Gambar 3.15 Activity Diagram untuk Use Case Menyimpan Hasil Training ...... 34
Gambar 3.16 Sequence Diagram Memilih Options .............................................. 35
Gambar 3.17 Sequence Diagram Melakukan Training ........................................ 36
Gambar 3.18 Sequence Diagram Menyimpan Hasil Training ............................. 37

Gambar 3.19 Class Diagram Aplikasi Virtual Punch Training ........................... 38

Gambar 3.20 Class Diagram Main Menu ............................................................. 39
Gambar 3.21 Class Diagram Virtual Punch Training .......................................... 39
Gambar 3.22 Class Diagram HoverButton ........................................................... 40
Gambar 3.23 Class Diagram Options ................................................................... 40
Gambar 3.24 Class Diagram Runtime .................................................................. 41
Gambar 3.25 Class Diagram RuntimeData .......................................................... 41
Gambar 3.26 Class Diagram BitmapSource ......................................................... 42
Gambar 3.27 Class Diagram SolidColorBrush .................................................... 42
Gambar 3.28 Class Diagram Hitung Performa..................................................... 43
Gambar 3.29 Class Diagram Score ...................................................................... 43
Gambar 3.30 Desain User Interface Form Menu Utama ...................................... 44
Gambar 3.31 Desain User Interface Form Training ............................................. 45
Gambar 3.32 Desain User Interface Form Options .............................................. 46
Gambar 3.33 Desain User Interface Form High Score......................................... 46
Gambar 3.34 Desain User Interface Form Preview Result................................... 47
Gambar 4.1 Form Menu Utama ............................................................................ 50
Gambar 4.2 Form Settings .................................................................................... 51
Gambar 4.3 Form Play .......................................................................................... 51

Gambar 4.4 Form Hasil Latihan ........................................................................... 52
Gambar 4.5 Form High Score ............................................................................... 52
Gambar 4.6 Proses pendeteksian User .................................................................. 54
Gambar 4.7 Proses navigasi Menu ........................................................................ 54
Gambar 4.8 Uji Coba Settings............................................................................... 55
Gambar 4.9 Proses perhitungan kecepatan, kekuatan pukulan ............................. 59

Gambar 4.10 Grafis Latihan.................................................................................. 60
Gambar 4.11 Proses menampilkan nilai tertinggi ................................................. 60

DAFTAR TABEL
Halaman
Tabel 2.1 Persentase berat anggota tubuh ............................................................... 9
Tabel 2.2 Persentase rata-rata berat anggota tubuh................................................. 9
Tabel 4.1 Deskripsi Tombol.................................................................................. 50
Tabel 4.2 Uji Coba Pendeteksian User ................................................................. 53
Tabel 4.3 Uji Coba Settings .................................................................................. 55
Tabel 4.4 Keluaran Kecepatan Pukulan ................................................................ 57
Tabel 4.5 Uji Coba Menghitung Kecepatan Pukulan............................................ 57
Tabel 4.6 Keluaran Kekuatan Pukulan.................................................................. 58

Tabel 4.7 Uji Coba Menghitung Kekuatan Pukulan ............................................. 58
Tabel 4.8 Hasil Evaluasi ....................................................................................... 61

DAFTAR LAMPIRAN
Halaman
Lampiran 1. Biodata Penulis Dan Riwayat Pendidikan ........................................ 67
Lampiran 2 Source Code ....................................................................................... 68

BAB I
PENDAHULUAN

1.1

LATAR BELAKANG
Bill Gates, salah satu pemilik dan pendiri perusahaan raksasa didunia,

Microsoft, menjawab tantangan dan impiannya bahwa “sebuah mesin permainan
dimana kita bisa mengambil bat dan mengayunkannya atau mengambil raket tenis
dan mengayunkan raket tersebut” (Webb and Ashley, 2012) dengan membuat
sebuah alat bernama Kinect Sensor (Kinect). Kinect sendiri dibuat khusus oleh

Microsoft untuk menjadi sebuah alat pengendali pada konsol game, Microsoft
Xbox 360. Kinect merupakan video recognition sensor yang terdiri atas 3 kamera
dan 4 mic-array, sehingga memungkinkan user untuk berinteraksi dengan game
Xbox 360 tanpa menggunakan joystik (Xbox 360 Controller). Kinect dapat
digunakan dengan sangat mudah, cukup berdiri atau duduk di depan Kinect
selanjutnya Kinect akan mendeteksi seluruh gerakan tubuh user selama dalam
jangkauan kamera Kinect yang jarak optimumnya antara 1.2 meter sampai 3.5
meter.
Microsoft merilis game Kinect Sports yang berisi beberapa model game
olahraga didalam game tersebut terdapat sebuah game olahraga tinju. Tetapi game
tinju tersebut tidak melakukan perhitungan nilai terhadap kekuatan pukulan dari
user, tetapi hanya memberi nilai pukulan yang di arahkan ke titik pukulan yang
berada didaerah kepala, daerah dada dan perut. Akhirnya game tinju tersebut
hanya sebatas game pukulan biasa yang tidak bisa digunakan untuk mengukur

1

2

seberapa kuat pukulan user dan bagaimana performa kekuatan user dalam
melakukan pukulan.
Dari kekurangan game tersebut maka akan dikembangkan sebuah aplikasi
yang dapat menghitung dan menampilkan kekuatan pukulan ke objek target.
Sehingga dapat diketahui seberapa kuat tenaga pukulan dan bagaimana performa
kekuatan dalam melakukan gerakan pukulan. Untuk dapat menghitung kekuatan
pukulan, maka diperlukan beberapa rangkaian rumus fisika, data masukan yang
dibutuhkan berupa berat badan user dan kecepatan gerakan tangan dalam
melakukan pukulan ke arah target, agar diperoleh data kecepatan pukulan dan
tenaga pukulan. Selanjutnya user akan diberi nilai berdasar kekuatan pukulan, dan
nilai tersebut akan dikumpulkan untuk waktu tertentu agar bisa dibuat peringkat,
sehingga user dapat melihat berapa rekor nilainya untuk setiap ronde.
Dengan pengembangan sistem ini diharapkan dapat digunakan user sebagai
alat pengukur kekuatan pukulan dan mencatatnya sebagai rekor pribadi, agar user
dapat mengetahui performa tubuhnya berdasarkan kekuatan saat berlatih pukulan.
Dan diharapkan pula user dapat berlatih tinju kapanpun diinginkan, tanpa perlu
membawa atau memakai alat apapun, serta dapat digunakan untuk siapa saja yang
ingin melatih pukulannya.

3

1.2

PERUMUSAN MASALAH
Sesuai dengan latar belakang di atas, ruang lingkup permasalahan yang akan

diselesaikan adalah sebagai berikut :
a.

Bagaimana membuat sistem yang dapat menghitung kecepatan dan
kekuatan pukulan dari user.

b.

Bagaimana membuat sebuah aplikasi yang dapat menerapkan cara
menghitung dengan penerapan Energi Kinetik berdasarkan masukan
dari user menggunakan Kinect.

c.

Bagaimana membuat aplikasi yang dapat menampilkan performa user
dalam melakukan latihan pukulan berdasarkan parameter kekuatan
pukulan.

1.3

BATASAN MASALAH
Agar tujuan tugas akhir ini menjadi lebih fokus dengan harapan untuk

memperoleh hasil yang maksimal, maka perlu adanya batasan masalah sebagai
berikut :
1.

Sensor yang digunakan dalam aplikasi ini adalah Microsoft Xbox 360
Kinect.

2.

Pukulan yang dimaksud adalah pukulan lurus ke arah sensor Kinect,
dan user menghadap ke Kinect.

3.

Tidak membahas peraturan Tinju.

4.

Aplikasi yang dibuat hanya untuk perorangan, tidak dapat digunakan
untuk lebih dari satu orang secara bersamaan.

5.

Tidak membahas kekurangan yang disebabkan oleh Kinect. Dalam hal
ini apabila ruangan redup maka akurasi deteksi Kinect akan berkurang.

4

Kinect hanya dapat mendeteksi gerakan user dari arah depan. Adanya
delay dalam Runtime Tracking dan Depth Tracking dikarenakan Framerate Per Second yang rendah, kurang lebih 24FPS dan kamera masih
menggunakan low definiton.
6.

Rumus perhitungan yang dipakai adalah penerapan dari perhitungan
Energi Kinetik.

7.

Target pukulan berupa tampilan virtual.

8.

Performa dan daya tahan yang dimaksud adalah berdasarkan parameter
kekuatan pukulan.

9.

Aplikasi ini dibuat menggunakan Microsoft Kinect SDK v1.7 dan
menggunakan Visual Studio 2010 bahasa pemograman C#.

1.4

TUJUAN
Beberapa tujuan dalam tugas akhir ini adalah sebagai berikut :
1.

Menerapkan rumus fisika untuk membaca kecepatan dan tenaga
pukulan user menggunakan Kinect dan menerapkan rumus tersebut
kedalam sebuah aplikasi.

2.

Menghasilkan aplikasi yang menerapkan rumus fisika yang sudah
ditentukan agar dapat digunakan dalam berbagai bidang misal olahraga
tinju sebagai alat ukur tenaga pukulan dari atlit atau sebagai alat ukur
performa pukulan atlit tinju saat melakukan latihan.

3.

Menghasilkan aplikasi yang dapat menampilkan performa kekuatan
user dalam berlatih pukulan.

5

1.5

SISTEMATIKA PENULISAN
Sistematika penulisan tugas akhir yang berjudul “Aplikasi Virtual Punch

Training Menggunakan Microsoft Xbox Kinect” sebagai berikut:
BAB I : PENDAHULUAN
Bab ini menjelaskan gambaran umum penulisan yang berisi latar belakang
masalah, perumusan masalah, batasan masalah, tujuan, dan keterangan
mengenai sistematika penulisan.
BAB II : LANDASAN TEORI
Bab ini akan menjelaskan tentang teori mencari kecepatan gerak sebuah
objek menggunakan Kinect, kemudian menghitung tenaga gerakan
tersebut menggunakan parameter energi kinetik, menjelaskan tentang berat
bagian tubuh manusia, penjelasan tentang Kinect beserta SDKnya, serta
pembahasan tentang bahasa pemograman C# dan UML.
BAB III : PERANCANGAN SISTEM
Bab ini menjelaskan mengenai analisis permasalahan, model perancangan
sistem, diagram blok Virtual Punch Training, bagaimana mengukur
kecepatan jab, mengukur kekuatan pukulan, spesifikasi perangkat lunak,
use case diagram aplikasi Virtual Punch Training, Activity diagram dari
aplikasi Virtual Punch Training, sequence diagram aplikasi Virtual Punch
Training, class diagram aplikasi Virtual Punch Training dan desain inputoutput dari aplikasi Virtual Punch Training,
BAB IV : IMPLEMENTASI SISTEM DAN EVALUASI
Bab ini menjelaskan tentang implementasi dari program Virtual Punch
Training berisikan langkah-langkah implementasi dari perancangan

6

program Virtual Punch Training dan hasil implementasi dari program,
serta melakukan pengujian terhadap aplikasi Virtual Punch Training yang
telah dibuat beserta pengujian terhadap kemampuan Kinect apakah dapat
menyelesaikan permasalahan

yang dihadapi

sesuai dengan

yang

diharapkan.
BAB V : PENUTUP
Bab ini berisi kesimpulan yang menjawab pernyataan dalam perumusan
masalah dan beberapa saran yang bermanfaat dalam pengembangan
aplikasi Virtual Punch Training di waktu yang akan datang.

BAB II
LANDASAN TEORI

2.1

Menghitung Kecepatan Menggunakan Kinect
Untuk menghitung kecepatan menggunakan Kinect dibutuhkan sebuah

masukan berupa posisi objek dan waktu yang ditempuh objek. (Catuhe, 2012 dan
Microsoft, 2012). Nilai masukan dapat diperoleh dari Runtime Tracking atau
Depth Tracking. Cara mendapatkan masukan tersebut dengan membuat sebuah
threshold. Titik U sebagai posisi dimana user berdiri dan titik K adalah posisi
Kinect, sedangkan titik U1 sebagai marker awal pukulan dan U2 sebagai marker
akhir dari pukulan. Jarak antara titik U – K adalah 1,5 meter sedangkan jarak titik
U1 – U2 adalah 50 cm.
Jarak optimal dan hasil tangkapan terbaik pada Kinect adalah sejauh 1,2
meter sampai 3 meter (Catuhe, 2012), oleh karena itu akan digunakan setengah
dari jarak optimal tersebut agar Kinect berfungsi dengan normal sehingga
mendapatkan hasil terbaik dan optimal kecepatan pukulan dari tangan user.

Gambar 2.1 Jarak threshold
2.2

Energi Kinetik
Setiap sistem fisik menyimpan sebuah energi, untuk mengetahui berapa

besarnya energi yang tersimpan dalam sebuah benda maka diperlukan persamaan
khusus untuk menghitungnya. Secara umum adanya energi dalam sebuah benda
dapat diketahui dengan mengamati perubahan sifat dari benda atau sistem

7

8

tersebut. Dikarenakan bentuk energi yang terlalu banyak maka secara umum
energi dapat didefinisikan sebagai kapasitas sebuah benda untuk melakukan
usaha.
Energi Kinetik merupakan energi yang dimiliki benda karena gerakannya.
Dapat juga didefinisikan sebagai usaha yang dibutuhkan untuk menggerakkan
suatu benda dengan massa tertentu dari posisi diam sampai pada kecepatan
tertentu.
Dalam fisika, energi kinetik biasa dituliskan dengan persamaan berikut

.........................(1)
Dimana Energi Kinetik (Ek) adalah setengah dari massa benda dikalikan
dengan kuadrat kecepatan benda tersebut. Willem's Gravesande telah melakukan
percobaan untuk membuktikan rumus tersebut dengan cara menjatuhkan benda
kedalam tanah liat dari hasil percobaan tersebut dia menyimpulkan bahwa
kedalaman dari lubang tanah liat yang dihasilkan benda yang jatuh tersebut
berbanding lurus dengan kuadrat kecepatan.
Energi Kinetik memiliki satuan internasional yaitu Joule dan dilambangkan
dengan kapital J, atau bisa juga ditulis Newton meter (N.m) (Zainuri, 2007)
Karena setiap benda yang bergerak memiliki energi kinetik, maka nilai dari
energi kinetik tersebut yang akan digunakan untuk merepresentasikan kekuatan
sebuah pukulan.

2.3

Bagian Tubuh Manusia
Tubuh manusia terdiri dari beberapa bagian besar, dan setiap bagian tersebut

memiliki massanya masing-masing. Menurut situs ExRx (ExRx, 2013) yang

9

berdasarkan hasil studi de Leva mengemukakan bahwa tubuh manusia terbagi atas
beberapa bagian dan memiliki berat seperti tabel berikut:

Gambar 2.2 Human Segments
Tabel 2.1 Persentase berat anggota tubuh (ExRx, 2013)
Percentages of Total Body Weight
Segment
Males Females Average
Head & Neck 6.94 6.68
6.81
Trunk
43.46 42.58
43.02
Upper Arm
2.71 2.55
2.63
Forearm
1.62 1.38
1.5
Hand
0.61 0.56
0.585
Thigh
14.16 14.78
14.47
Shank
4.33 4.81
4.57
Foot
1.37 1.29
1.33
lalu jika dibuat tabel rata-rata maka hasilnya sebagai berikut:
Tabel 2.2 Persentase rata-rata berat anggota tubuh (ExRx, 2013)
de Leva's Segment Weight data
Segment Quantity Percent Extension
Head
1 6.810
6.81
Trunk
1 43.020
43.02
Total Arm
2 4.715
9.43
Total Leg
2 20.370
40.74
Total Percent:
100
Dapat dilihat dari tabel 2.2 bahwa berat sebuah tangan manusia adalah 4.715
persen dari berat tubuhnya. Maka jumlah persen ini nantinya akan dihitung
dengan massa masukan pada rumus energi kinetik.

10

Dikarenakan perbedaan penamaan antara massa dan berat, apabila dalam
ilmu fisika massa merupakan berat dalam ilmu biologi ataupun masyarakat umum
dimana satuannya sama-sama gram atau Kilogram. Maka untuk selanjutnya
penyebutan massa dan berat adalah memiliki maksud yang sama hanya berbeda
bidang studinya saja.

2.4

Microsoft Xbox Kinect
Microsoft Xbox 360 Kinect atau biasa disebut Kinect, pada awalnya

memiliki nama Project Natal. Kinect adalah produk dari Microsoft yang
memperkenalkan teknologi motion gaming sebagai fitur utamanya. Kinect
membuat pemain dapat berinteraksi dengan konsol Xbox 360 tanpa bantuan game
controller. Menggunakan Kinect, pemain dapat bermain Xbox 360 cukup hanya
dengan menggunakan gerakan anggota tubuhnya.
Teknologi Kinect diciptakan dengan tujuan untuk memperluas peminat
konsol Xbox 360 diluar batas kalangan gamer. Saat ini Kinect bersaing ketat
dengan Playstation Move milik Sony dan Wii MotionPlus milik Nintendo. Kinect
pertama kali dirilis pada tanggal 4 November 2010 di wilayah USA.
Kinect dibuat berdasarkan sistem software dari developer Rare yang
merupakan bagian dari Microsoft Game Studios. Sedangkan teknologi kamera
yang digunakan oleh Kinect dibuat dari developer Israel, PrimeSense.
Kinect dilengkapi dengan kamera RGB, Depth Sensor, Multi-Array
Microphone untuk menangkap dan mengenali suara, dan dilengkapi sebuah Tilt
motor agar bisa menyesuaikan derajat tangkapan kamera. Teknologi Depth Sensor
Kinect merupakan sensor tiga dimensi (3D) untuk mengenali gerakan pemain.

11

Sensor ini dapat mengenali sampai enam orang sekaligus, namun hanya dua
pemain berstatus aktif yang dapat dideteksi gerakannya oleh Kinect. Depth Sensor
terdiri dari sebuah proyektor Infra-Red (IR) yang dikombinasikan dengan sensor
monokrom CMOS. Inilah yang dapat membuat Kinect melihat dalam bentuk 3D
dalam keadaan cahaya apapun. Kalkulasi jarak antara obyek yang ditangkap
dengan Kinect diperoleh berdasarkan sinar IR tersebut. Semakin pendek jaraknya,
maka semakin bersinar poin yang ditangkap sensor. Jarak tangkap Depth Sensor
dapat diatur. Kinect mampu mengkalibrasikan sensor secara otomatis berdasar
pola permainan berada, termasuk benda-benda yang berada disekitar pemain.
Inovasi utama dari Kinect adalah kemampuannya yang lebih maju dalam
mengenali wajah, gerakan dan suara. Kinect menghasilkan video dengan 30Hz
frame rate. Dengan video stream RGB pada VGA yang beresolusi 11-bit (640 x
480 pixel dengan tingkat sensivitas 2048). Sensor memiliki daerah pandang
angular dengan sudut 57 derajat pada bidang horizontal dan 43 derajat pada
bidang vertikal. Sensor ini juga dapat dimiringkan hingga 27 derajat ke atas
ataupun ke bawah.
Kinect mampu menangkap dan mendeteksi gerakan tubuh secara akurat,
pemain hanya menggunakan tubuh untuk berinteraksi dengan dashboard konsol
Xbox 360, bermain game, bahkan untuk mengakses fitur-fitur Xbox Live.
Mekanisme kerja Kinect menangkap dan mengenali pergerakan tubuh dari
pemain adalah sebagai berikut:
1.

Posisi pemain harus menghadap Kinect terlebih dahulu.

2.

Kemudian Kinect menangkap titik-titik persendian pada tubuh yang disebut
Joint. Ada 20 titik pada tubuh yang dapat terdeteksi oleh Kinect meliputi

12

kepala, bahu tengah, bahu kanan, bahu kiri, siku kanan, siku kiri,
pergelangan tangan kanan, pergelangan tangan kiri, tangan kanan, tangan
kiri, tulang punggung, pinggul tengah, pinggul kanan, pinggul kiri, pinggul
tengah, lutut kanan, lutut kiri, pergelangan kaki kanan, pergelangan kaki
kiri, kaki kanan dan kaki kiri.
3.

Joint yang tertangkap oleh sensor tadi dikonversi menjadi titik koordinat 3D
(x,y,z) bertipe float. Sehingga setiap pemain melakukan gerakan, maka titik
koordinat dari joint yang bersangkutan juga turut berubah pula. Sumbu x
merepresentasikan

gerakan

merepresentasikan

gerakan

pemain
pemain

secara

horizontal,

sumbu

y

vertikal,

sumbu

z

secara

merepresentasikan jauh dekatnya posisi pemain dari Kinect.

Gambar 2.3 Joints dan Orientation pada Kinect
(Webb and Ashley, 2012 dan Catuhe,2012)

2.5

Microsoft Kinect SDK
Kinect for Windows SDK adalah toolkit pemograman untuk developer

aplikasi. Hal ini memungkinkan para akademik dan komunitas untuk mengakses

13

kemampuan yang ditawarkan oleh perangkat Microsoft Kinect yang terhubung ke
komputer dengan OS Windows 7.
SDK ini dilengkapi driver, API untuk raw sensor streams, skeletal tracking,
dokumentasi instalasi dan resource lainnya. SDK ini juga menyediakan
kemampuan-kemampuan Kinect bagi para developer yang akan membuat aplikasi
dengan C++, C# maupun Visual Basic dengan menggunakan Microsoft Visual
Studio 2010.
SDK ini mencakup beberapa fitur diantaranya:
1.

Raw Sensor Streams
Akses ke raw data stream dari depth sensor, color camera sensor dan empat
microphone array memungkinkan developer untuk membangun proyek
mereka menggunakan low-level stream yang dihasilkan oleh Kinect.

2.

Skeletal Tracking
Kemampuan untuk melacak gambar kerangka satu atau dua orang yang
bergerak dalam bidang Kinect sehingga mudah untuk membuat aplikasi
berbasis gerakan.

3.

Kemampuan audio yang canggih
Kemampuan pemrosesan audio yang canggih termasuk acoustic noise
suppression dan echo cancellation, beam formation untuk mengidentifikasi
sumber suara dan terintegrasi dengan Windows Speech Recognition API.

4.

Contoh kode dan dokumentasi
SDK mencakup lebih dari 100 halaman dokumentasi teknis. Selain file
bantuan, dokumentasi termasuk panduan rinci untuk sampel yang
disediakan dengan SDK.

14

5.

Instalasi mudah
Instalasi SDK berlangsung cepat, tidak memerlukan konfigurasi yang rumit
dan ukuran installer kurang dari 300MB.

Kinect SDK memiliki arsitektur sebagai berikut, agar aplikasi yang dibuat
menggunakan SDK bisa berkomunikasi dengan Kinect. (Microsoft, 2012).

Gambar 2.4 Arsitektur Kinect

2.6

Bahasa Pemograman C#
C# sering dianggap sebagai bahasa penerus C++ atau versi canggih, karena

ada anggapan bahwa tanda # adalah perpaduan 4 tanda tambah yang disusun
sedemikian rupa sehingga membentuk tanda pagar. Akan tetapi, terlepas dari
benar tidaknya anggapan tersebut, C# adalah sebuah bahasa pemrograman yang
berorientasi pada objek yang dikembangkan oleh Microsoft dan menjadi salah

15

satu bahasa pemrograman yang mendukung .NET programming melalui Visual
Studio.
C# didasarkan pada bahasa pemrograman C++. C# juga memiliki kemiripan
dengan beberapa bahasa pemrograman seperti Visual Basic, Java, Delphi dan
tentu saja C++. C# memiliki kemudahan syntax seperti Visual Basic, dan tentu
saja ketangguhan seperti Java dan C++. Kemiripan-kemiripan ini tentunya
memudahkan programmer dari berbagai latar belakang bahasa pemrograman tidak
perlu waktu yang lama untuk menguasainya, karena bagaimanapun juga C# lebih
sederhana dibandingkan bahasa-bahasa seperti C++ dan Java.
C# didesain oleh program designer dari Microsoft, Anders Hajlsberg.
Sebelum bekerja pada Microsoft, Anders bekerja di borland, tempat dia menulis
Pascal compiler. Sebelum mengembangkan C#, Anders mengetahui berbagai
macam kekurangan pada bahasa C++, Delphi, Java, dan Smaltalk, karena itu
Anders menciptakan bahasa C# yang lebih tangguh. Hal ini juga menjelaskan
mengapa C# memiliki kemiripan dengan beberapa bahasa tersebut dan menjadi
salah satu alasan mengapa C# memiliki lebih banyak nilai tambah apabila
digunakan untuk mengembangkan aplikasi Kinect menggunakan SDK milik
Microsoft dibandingkan menggunakan bahasa C++ ataupun VB.Net. (Microsoft,
2013).

2.7

UML
Notasi UML dibuat sebagai kolaborasi dari Grady Booch, DR. James

Rumbough, Ivar Jacobson, Rebecca Wirfs-Brock, Peter Yourdon, dan lainnya.
Jacobson menulis tentang pendefinisian persyaratan – persyaratan sistem yang

16

disebut use case. Juga mengembangkan sebuah metode untuk perancangan sistem
yang disebut Object Oriented Software Enginnering (OOSE) yang berfokus pada
analisis. Booch, Rumbough, dan Jacobson biasa disebut dengan tiga sekawan (tree
amigos). Semuanya bekerja di Rational Software Corporation dan berfokus pada
standarisasi dan perbaikan ulang UML.
Penggabungan beberapa metode menjadi UML dimulai 1993. Setiap orang
dari tiga sekawan di rational mulai menggabungkan idenya dengan metode –
metode lainnya. Pada akhir tahun 1995 Unified Method versi 0.8 diperkenalkan.
Unified Method diperbaiki dan diubah menjadi UML pada tahun 1996, UML 1.0
disahkan dan diberikan pada Object Technology Group (OTG) pada tahun 1997,
dan pada tahun itu juga beberapa perusahaan pengembang utama perangkat lunak
mulai mengadopsinya. Pada tahun yang sama OTG merilis UML 1.1 sebagai
standar industri.

17

BAB III
ANALISIS DAN PERANCANGAN SISTEM

3.1

Analisis
Punch training merupakan bentuk latihan fisik dimana dilakukan gerakan

memukul dengan cara mengepalkan tangan lalu menghantamkannya ke sebuah
sasaran. Punch termasuk gerakan pertahanan yang digunakan untuk memberi
jarak antara diri sendiri dengan musuh atau lawan, sehingga terdapat jeda waktu
untuk melarikan diri ataupun memberi serangan lanjutan. Gerakan punch biasanya
dipakai dalam beberapa seni beladiri ataupun olahraga petarung. Salah satu
contohnya adalah tinju.
Jab adalah contoh dari gerakan paling dasar dari sebuah punch, yaitu
dengan mengepalkan tangan dan memukul lurus kedepan sejajar dengan dada
sampai tangan benar-benar lurus, jab dapat dilakukan dengan cepat dan memiliki
efek yang cukup besar untuk melumpuhkan target sementara. Biasanya jab
digunakan untuk membuat pengalih perhatian, bertahan ataupun membuat jarak.
Kekuatan pukulan seorang atlit tinju atau siapapun yang melakukan pukulan
dapat dilihat dari kekuatannya saat melakukan jab dimana kekuatan jab ditentukan
oleh beberapa faktor diantaranya berat tangan si pemukul dan kecepatan tangan
saat melakukan jab. Sehingga semakin cepat gerakan tangan dan semakin berat
tangan si pemukul maka akan memiliki jab yang lebih bertenaga daripada yang
kecepatan pukulannya pelan tetapi tangannya berat atau sebaliknya.
Sehingga untuk melihat kekuatan jab dapat menggunakan Kinect sebagai
sensor penangkap gerakan dan menggunakan rumus fisika untuk menghitung data

18

yang dihasilkan oleh Kinect. Untuk menghitung berat tangan dari pemukul akan
menggunakan rumus segmen tubuh milik de Leva yaitu berat satu tangan manusia
adalah 4,715 persen dari berat tubuh keseluruhan. Kemudian untuk mengukur
kecepatan tangan saat melakukan jab punch akan menggunakan Kinect, dimana
Kinect sudah memiliki kemampuan untuk mengukur jarak dengan menggunakan
Depth-Sensor, Depth-Sensor bekerja menggunakan Infrared-beam dengan
memanfaatkan waktu pantulan dari cahaya Infrared, semakin cepat pantulan
cahaya Infrared ditangkap oleh Kinect maka semakin dekat objeknya dengan
Kinect, sehingga untuk menentukan jarak suatu objek menjadi lebih akurat.
Terdapat pula Runtime-Tracking yang berfungsi untuk mendeteksi posisi tubuh
seperti tangan, kepala, kaki, badan, dan lainnya.
Dari hasil perhitungan tersebut nantinya akan dimunculkan sebuah grafik
kepada user sehingga user dapat mengetahui seberapa kuat tenaga jab yang dia
lakukan dan untuk mengukur performa kekuatan pukulan saat melakukan training
akan diberikan sebuah penghitung waktu dan batas pukulan tertentu sebagai
standar training yang harus dilewati, dimana standar tersebut dapat dimasukkan
secara manual.

3.1.1 Mengukur Kecepatan Jab
Untuk mengukur kecepatan Jab user harus berdiri di depan menghadap
Kinect seperti gambar 3.1, dimana X1 adalah jarak 0 cm yang akan ditampilkan
oleh Kinect, jarak ini didapat oleh kemampuan Depth-Sensor milik Kinect,
sedangkan X2 merupakan jarak antara user dan Kinect dimana Kinect tidak akan

19

memulai perhitungan kecepatan apabila user tidak berada di area X2, area X2 ini
nantinya dapat ditentukan jaraknya didalam program yang akan dibuat.

Gambar 3.1 Mengukur Kecepatan Jab
Setelah user berada di area X2 untuk dapat dilakukan perhitungan kecepatan
maka user harus melakukan gerakan Jab lurus ke arah Kinect seperti gambar
dibawah.

Gambar 3.2 Mengukur Kecepatan Jab 2
Kinect yang telah melakukan tracking terhadap tangan akan mencatat
perubahan jarak dan waktu tempuh tangan dari X2 ke X3. Sehingga dari waktu
tempuh tersebut akan dibagi dengan jarak dari X2 ke X3, maka ditemukanlah
sebuah variabel kecepatan v, dimana v ini disimpan kedalam memori aplikasi dan
nantinya akan digunakan untuk perhitungan kekuatan pukulan.

3.1.2 Mengukur Kekuatan Pukulan
Untuk pengukuran kekuatan pukulan akan digunakan akan menggunakan
perhitungan Energi Kinetik (Ek = ½ m.v2), yaitu setengah dikalikan massa benda

20

dikalikan kuadrat kecepatan. Pertama dibutuhkan masukan massa, massa
merupakan bobot yang dimiliki suatu benda atau objek, dikarenakan massa yang
akan dihitung adalah hanya massa sebuah tangan maka akan digunakan tabel
segmentasi tubuh manusia oleh de Leva, dimana sebuah tangan memiliki bobot
4,715 persen dari keseluruhan tubuh manusia. Massa tersebut didapatkan dari
masukan massa tubuh user kedalam program. Dimana massa tersebut akan
menjadi variable masukan M, kemudian masukan M akan dicari massa tangannya
(MT) dengan rumus M x 4,715 / 100, hasil dari perkalian tersebut akan
menghasilkan massa tangan dengan variabel MT, sehingga rumus Energi Kinetik
berubah menjadi Ek = ½ MT.v2.
Setelah variabel MT berisi nilai selanjutnya adalah mengkuadratkan variabel
kecepatan v yang telah didapat sebelumnya. Hasil dari pengkuadratan v akan
dikalikan dengan MT, kemudian hasil perkalian tersebut akan dikalikan dengan
setengah maka akan di dapat sebuah persamaan akhir Ek = ½ MT.V, nilai tersebut
yang akan dijadikan variabel Kekuatan (Ek) di dalam program.
Sedangkan untuk pencatatan performa akan menggunakan sistem nilai
tertinggi, dimana nilai tersebut didapat dari nilai variabel Ek yang telah ditemukan
sebelumnya, kemudian Ek yang dihasilkan oleh Jab selama latihan akan dicatat
tenaga pukulan terkuat dan pukulan terlemah, selanjutnya disimpan sebagai rekor
pribadi. Apabila nilai dalam satu sesi lebih tinggi dari sesi sebelumnya maka nilai
tertinggi tersebut akan menggantikan nilai yang sebelumnya. Sehingga setiap user
melakukan training dapat meningkatkan performa kekuatan pukulan dengan
mengalahkan nilai training di sesi yang lalu.

21

3.1.3 Spesifikasi Perangkat Lunak
Dari hasil analisis diatas maka dibutuhkan sebuah aplikasi yang dapat
melakukan hal berikut :
A.

Ketika user berada dalam jangkauan Kinect maka tampilan dilayar harus
menampilkan tubuh user secara virtual.

B.

Dapat menangkap masukan gerakan user dari Kinect. Dengan cara
melakukan tracking terhadap kedua tangan dan memberi ID pada setiap
tangan. Sehingga apabila setiap ID tersebut mengenai triger dalam program
akan menjalankan aksi sesuai triger yang ada, misal memillih menu.

C.

Menggunakan masukan tersebut untuk menghitung kecepatan jab dari user
menggunakan teknik perpindahan objek. Yaitu dengan cara menghitung
jarak dari titik awal ke titik akhir pergerakan kemudian dihitung dengan
waktu perpindahan.

D.

Menghitung kekuatan jab menggunakan cara yang sudah ditentukan
dibagian analisis.

E.

Menggunakan nilai dari kekuatan jab sebagai parameter penilaian saat
melakukan training.

F.

Setiap hasil training akan dibandingkan dengan nilai latihan sebelumnya
dan memberikan peringkat setiap sesi training.

G.

Dapat menyajikan grafik performa dalam satu sesi training.

22

3.1.4 Inisialisasi Kinect
Prosedur inisialisasi digunakan untuk melakukan inisialisasi awal guna
mempersiapkan Kinect yang akan dipakai. Terdapat beberapa proses inisialisasi
diantaranya :
A.

Proses inisialisasi runtime Kinect yang terdiri atas 3 sub-proses. Dimana
proses tersebut berperan untuk mempersiapkan Kinect yang akan digunakan

B.

Sub-proses inisialisasi color image berperan untuk menginisialisasi sensor
live feed camera atau RGB kamera pada Kinect.

C.

Sub-proses inisialisasi depth frame berperan untuk menginisialisasi 3D
depth sensor pada Kinect.

D.

Sub-proses inisialisasi runtime frame berperan untuk menginisialisasi
runtime tracking pada Kinect.

Prosedur inisialisasi Kinect dapat dilihat pada Gambar 3.3 :

Gambar 3.3 Flowchart Inisialisasi Kinect

23

3.1.5 Mendeteksi Objek dan Drawing User
Prosedur yang dipakai untuk mendeteksi objek dan menggambar user
adalah sebagai berikut :
A.

Prosedur RuntimeFrameReady digunakan untuk mendeteksi user runtime

dengan cara menggambar titik-titik pada persendian (joint) tubuh
A.1 Proses clear image berperan dalam melakukan refresh pada
komponen canvas image pada WPF-form, berguna agar gambar
runtime tidak tertumpuk setiap kali user melakukan pergerakan.
A.2 Proses deklarasi variabel bertipe RuntimeFrame berperan untuk
menampung runtime data user.
A.3 Proses penyesuaian runtime dan jumlah maksimal user untuk
membatasi runtime agar tidak mendeteksi runtime lain setelah runtime
pertama terdeteksi. Hal ini bertujuan agar meningkatkan kinerja
aplikasi dalam melakukan pendeteksian user.
A.4 Proses menggambar ellipse digunakan untuk menempelkan gambar
ellipse dari form pada setiap runtime joint yang terdeteksi.
A.5 Proses isi ellipse dengan warna agar setiap ellipse yang dibuat
memiliki warna.
Proses yang terjadi pada prosedur RuntimeFrameReady dapat dilihat pada Gambar
3.4.

24

Gambar 3.4 Flowchart RuntimeFrameReady
B.

Prosedur DrawPoint digunakan untuk menggambar titik-titik pada tubuh

user dan digunakan pada prosedur RuntimeFrameReady.
Beberapa proses yang terjadi pada saat DrawPoint antara lain:
B.1 Proses deklarasi variabel scaledJoint berperan untuk menandai joint
pada titik tubuh user.
B.2 Proses deklarasi variabel bertipe ellipse digunakan untuk membuat
ellipse yang nantinya akan ditempelkan pada titik joint dari user.
B.3 Proses deklarasi SolidColorBrush digunakan untuk mengisi warna
yang nantinya berperan dalam proses pewarnaan ellipse.
B.4 Proses mengisi width, geight dan opacity dari ellipse digunakan untuk
menentukan ukuran tinggi, lebar serta tingkat transparansi dari ellipse
yang dibuat.

25

B.5 Proses menambah ellipse berperan dalam membuat ellipse dengan
atribut parameter yang diatur sebelumnya.
Proses yang terjadi pada prosedur DrawPoint dapat dilihat pada Gambar 3.5.

Gambar 3.5 Flowchart DrawPoint
Flowchart pseudocode berikut digunakan untuk mendeteksi kecepatan pukulan
dari user dan mendeteksi adanya hantaman dengan objek virtual yang dibuat.
Penjelasan proses yang terjadi pada pendeteksian kecepatan dan pendeteksian
hantaman dengan objek virtual adalah sebagai berikut :
A.

Proses Pendeteksian User
- User berdiri tegak didepan Kinect pada jarak antara 150 - 155 cm.
- User melambaikan tangan kearah Kinect agar Kinect dapat memberikan
ID pada masing-masing tangan.

B.

Proses Pendeteksian Tangan
- Tangan harus berada di area tangkapan Kinect, setelah tangan terdeteksi
maka diberikan ID pada masing-masing tangan kemudian diberikan
sebuah kursor berupa sarung tangan.

26

C.

Proses Pendeteksian Kecepatan Pukulan
- Tangan yang sudah terdeteksi akan diukur jaraknya.
- Setiap tangan memiliki ID dan counter-timer masing-masing.
- Jika tangan terdeteksi pada jarak 150 cm maka counter-timer akan diatur
ke posisi 00.00.00.000.
- Jika tangan bergerak maju mendekati Kinect sehingga jaraknya kurang
dari 150 cm atau sama dengan 149 cm maka counter-timer akan di Mulai.
- Apabila tangan sudah dekat dengan Kinect dengan jarak tangan kurang
dari 100 cm atau sama dengan 100 cm maka counter-timer akan
dihentikan, mainkan efek hantaman lalu dicatat waktu yang dihasilkan
oleh counter-timer tersebut.
- Hitung waktu yang didapat dari counter-timer dengan cara yang telah
ditentukan dibagian analisis, kemudian catat hasilnya. Hasil tersebut
merupakan kecepatan tangan. Masing-masing nilai dibedakan sesuai ID
tangan tersebut.

Gambar 3.6 Flowchart pendeteksian kecepatan dan hantaman

27

3.1.6 Menampilkan Video Stream dan Depth Stream
Prosedur yang dipakai untuk menampilkan video stream dan depth stream
pada layar adalah sebagai berikut:
A.

Prosedur ColorImageReady digunakan untuk menampilkan video stream

yang ditangkap Kinect ke layar.
Proses yang terjadi pada prosedur ColorImageReady antara lain :
A.1 Proses deklarasi variabel bertipe planarImage berperan menampung
video output dari kamera RGB Kinect.
A.2 Proses mengisi komponen image pada WPF-form berperan mengisi
image dengan video output dari kamera RGB.
Proses yang terjadi pada prosedur ColorImageReady ini dapat dilihat pada
Gambar 3.7

.
Gambar 3.7 Flowchart ColorImageReady
B.

Prosedur DepthImageReady digunakan untuk menampilkan depth stream

yang ditangkap Kinect ke layar.
Proses yang terjadi pada prosedur DepthImageReady antara lain :
B.1 Proses deklarasi variabel bertipe planarImage berperan untuk
menampung depth output dari depth sensor Kinect.

28

B.2 Proses mengisi komponen image pada WPF-form berperan mengisi
image dengan depth output dari depth sensor.
Proses yang terjadi pada prosedur DepthImageReady ini dapat dilihat pada
Gambar 3.8.

Gambar 3.8 Flowchart DepthImageReady
3.1.7 Melakukan Pengaturan User Joint
Prosedur pengaturan user joint digunakan supaya joint yang dideteksi sesuai
dengan posisi dan ukuran user.
A.

Prosedur ScaleJoint digunakan untuk mengukur joint pada user.

Proses yang terjadi pada prosedur ScaleJoint adalah sebagai berikut :
A.1 Proses deklarasi JointID yang berfungsi menampung ID dari joint
yang dideteksi.
A.2 Proses mengisi koordinat X dan Y dengan posisi user berperan untuk
menentukan letak koordinat dan posisi user.
A.3 Deklarasi StatusTracking berperan untuk menandai apakah user telah
terdeteksi atau belum.
Proses dari prosedur ScaleJoint ini dapat dilihat pada Gambar 3.9.

29

Gambar 3.9 Flowchart ScaleJoint
B.

Prosedur ScaledPosition digunakan untuk mengukur posisi user dari layar.

Proses yang terjadi pada prosedur ScaledPosition adalah sebagai berikut :
B.1 Proses deklarasi variabel bertipe float yang berperan untuk
menampung titik koordinat dari posisi user.
B.2 Jika nilai posisi user lebih besar dari ukuran canvas maka posisi
dianggap sama dengan ukuran canvas.
B.3 Jika nilai posisi user kurang dari nol maka posisi dianggap sama
dengan nol. Selain itu nilai float posisi user dianggap sama dengan
posisi user saat itu.
Proses pada prosedur ScaledPosition dapat dilihat pada Gambar 3.10.

Gambar 3.10 Flowchart ScaledPosition

30

3.2

Model Pengembangan Sistem
Berdasarkan hasil analisis tersebut, maka akan dibuat sebuah pengembangan

aplikasi, dimana proses yang terjadi dalam aplikasi Virtual Punch Training dapat
digambarkan sebagai berikut:

Gerakan

User

Menyimpan rekor
pukulan

Mencatat
perubahan posisi
koordinat tangan

Mencatat tenaga
pukulan dan waktu
pukulan

Data
DepthStream

Penentuan
Koordinat Tangan
dan Tubuh

Data
Skeletal
Joint

Memasukkan Nama

Memasukkan Berat
Badan

Menampilkan Gerakan

Menampilkan Hasil
Training

Pengolahan Data
Depth-Stream dan
Skeletal Joint

Menghitung waktu
perubahan posisi
koordinat tangan
Menghitung
kecepatan gerakan
tangan dengan
berat badan

Gambar 3.11 Blok Diagram Aplikasi
Berikut adalah cara kerja dari aplikasi Virtual Punch Training menggunakan
Microsoft Xbox Kinect:
1.

User melakukan interaksi terhadap aplikasi dengan menggunakan gerakan
tangan didepan Kinect, dan memilih menu yang tersedia. User juga dapat
berinteraksi secara manual dengan mouse dan keyboard.

2.

Gerakan interaksi User ditangkap oleh Kinect kemudian data Depth-Stream
dan data Skeletal-Joint dimasukkan kedalam komputer untuk diproses oleh
aplikasi.

31

3.

Aplika