Anatomi Manusia Berdimensi Tiga Menggunakan Leap Motion Controller

(1)

BAB 2

LANDASAN TEORI

Bab ini membahas tentang teori penunjang serta penelitian sebelumnya yang berhubungan dengan anatomi dan Leap Motion Controller.

2.1. Anatomi

Anatomi berasal dari kata bahasa Yunani anatemno, yang berasal dari dua kata, yakni ana yang berarti atas dan temno yang berarti memotong. Anatomi merupakan cabang dari ilmu biologi yang mempelajari struktur dan bagian-bagian dari suatu organisme, termasuk sistem, organ, dan jaringan. Ilmu ini juga mempelajari penampilan dan posisi dari berbagai bagian tubuh, bahan penyusunnya, posisinya, dan hubungannya dengan bagian yang lain.

Berdasarkan cara pengamatannya, anatomi dapat dibagi menjadi dua. Yang pertama adalah mikroskopik anatomi yang mengamati objek-objek anatomi yang tidak bisa diamati dengan kasat mata sehingga dibutuhkan alat bantu khusus seperti mikroskop. Yang kedua adalah makroskopik anatomi, di mana anatomi dipelajari dengan pengamatan kasat mata atau tanpa alat bantu.


(2)

2.1.1. Anatomi Manusia

Anatomi manusia atau antro merupakan cabang dari ilmu anatomi. Gray (1918) menjelaskan ilmu ini dapat dipelajari dengan dua metode. Yang pertama adalah anatomi sistemik di mana berbagai struktur dianggap terpisah. Yang kedua adalah organ-organ dan jaringan-jaringan dipelajari hubungannya satu sama lain, hal ini disebut dengan topografikal atau anatomi regional.

2.2. Anatomy tengkorak manusia (Sobotta, 2001)

2.1.2 Sejarah Anatomi


(3)

tubuh hewan diperiksa, diamati, dan dibandingkan. Banyak penemuan-penemuan zaman kuno yang masih dipakai dalam ilmu anatomi sekarang ini seperti jantung, ginjal, hati, dan lain-lain. Bahkan pada peradaban Yunani kuno, sudah tercatat perbedaan antara arteri dan vena. Tercata juga dalam sejarah bahwa Hipocrates II adalah orang pertama yang menulis tentang anatomi manusia (Malomo, et al. 2006).

Anatomi terus berkembang dari zaman kuno menuju abad pertengahan. Tersebutlah Aelius Galenus atau Claudius Galenus (131-201 M), yang lebih dikenal dengan Galen of Pergamon, adalah seorang dokter yang memiliki reputasi yang baik sekali pada masanya. Selama masa yang dimilikinya, Galen menerbitkan lebih dari 200 buku dan berpengaruh dalam pemikiran anatomi dan obat-obatan untuk 1300 tahun ke depannya (Hagens, 2002).

Pada abad pertengahan terdapat larangan-larangan khususnya dari agama yang tidak memperbolehkan pembedahan tubuh manusia. Namun, pembedahan pada hewan tetap dapat dilakukan untuk tetap melakukan pembelajaran anatomi. Pada masa itu, terdapat beberapa kontribusi yang diberikan seperti perbaikan pada buku-buku Galen. Dua di antaranya adalah Ibn al-Nafis (1210-1288 M) yang memperbaiki bahwa tidak ada keterbukaan pada interventrikular dalam jantung dan Al-Baghdadi (1162-1231 M) yang menunjukkan bahwa rahang bawah tidak terdiri dari dua tulang (Prioreschi, 2006). Masih di abad pertengahan, nama Andreas Vesalius (1514-1564 M) muncul dalam sejarah literatur kedokteran di salah satu tempat yang terkenal (Ivanova, et al. 2001). Profesor anatomi dari Universitas Padua, Itali, ini dianggap sebagai penemu anatomi manusia modern. Dengan bukunya yang berjudul De humani corporis fabrica, disusunnya ke dalam tujuh volume. Andreas juga memperbaiki beberapa kesalahan yang terdapat dalam anatomi oleh Galen, seperti tujuh tulang di sternum dikuranginya menjadi tiga.

Di masa sekarang ini, anatomi sudah didukung dengan buku-buku yang lebih lengkap dan detail. Ditambah lagi dengan teknologi-teknologi pendukung yang ada, seperti mesin MRI dan CAT scanners. Bahkan juga ada model anatomi langsung yang berasal dari plastinasi oleh Guter von Hagens.


(4)

Gambar 2.3. Tubuh-tubuh yang diplastinasi (Hagens, 2002)

2.1.3 Pembelajaran Anatomi

Anatomi merupakan sebuah ilmu. Untuk mendapatkan suatu ilmu diperlukan upaya pembelajaran. Salah satu proses pembelajaran adalah dengan adanya upaya pengajaran. Benly (2014) meneliti berbagai pengajaran anatomi yang di antaranya adalah metode tradisional, metode pembedahan, dan metode Ultrasound Imaging.

1. Metode tradisional

Metode yang dapat dianggap sebagai metode paling tradistional adalah metode pengajaran melalui papan tulis dan kapur. Metode ini berpusat pada penjelasan di sebuah papan tulis dengan kapur mengenai kata-kata penting dan gambar-gambar yang berhubungan dengan anatomi. Meskipun saat ini sudah digunakan presentasi menggunakan sistem digital, cara pembelajaran anatomi tersebut masih dianggap metode tradisional.

2. Metode pembedahan

Metode pembedahan mendukung lebih banyak kejelasan pada organ-organ anatomi. Hal ini juga dapat membantu pelajar dalam medis pada saat mereka melakukan sebuah operasi. Mereka dapat lebih mudah mengingat bagian-bagian tertentu dibandingkan metode tradisional.


(5)

3. Metode Ultrasound Imaging

Metode Ultrasound Imaging merupakan salah satu contoh metode pengajaran anatomi menggunakan teknologi modern. Ultrasound Imaging berdasarkan kemampuannya untuk merefleksikan citra dari struktur-struktur di bawah tampilan, seperti kemampuan lainnya, yang membutuhkan latihan dan pengetahunan khusus. Gelombang ultrasound akan terus menembus objek anatomi dan merefleksikan sebagiannya.

Thiriet et al. (2011) meneliti beberapa metode pembelajaran anatomy manusia berdimensi tiga. Metode pembelajaran yang pertama adalah dengan menggunakan video animinasi berdimensi tiga yang ditampilkan sewaktu pengajaran. Metode yang kedua adalah menggunakan podcast, sebuah sarana multimedia yang dapat diakses dengan jaringan internet, untuk menampilkan video pembelajaran anatomi manusia. Metode yang terakhir adalah menggunakan Portable Document Format (PDF) berdimensi tiga untuk pembelajaran anatomi manusia.


(6)

2.2. Leap Motion Controller

Leap Motion Controller adalah alat sensor perangkat keras komputer yang mendukung gerakan tangan dan jari sebagai masukan, yang dapat disamakan fungsinya seperti mouse, namun tidak membutuhkan kontak langsung dengan tangan atau sentuhan (Yowanda, et al. 2014). Leap Motion Controller terkadang juga disingkat menjadi Leap Motion. Namun, pengertian Leap Motion dapat juga berarti perusahaan Leap Motion yang mengeluarkan Leap Motion Controller. Maka dari itu alat yang berupa sensor gerak tangan ini seterusnya akan disebut dengan Leap Motion Controller.

Leap Motion Controller merupakan sebuah alat yang menarik. Dikarenakan bentuknya yang kecil, alat ini dapat dengan mudah diletakkan di permukaan meja maupun laptop atau keyboard (Canneyt, 2013). Selain diletakkan di atas meja dengan menghadap ke atas (table-mounted), alat ini juga bisa diletakkan di atas kepala (head-mounted) menghadap depan maupun bawah dengan bantuan alat tertentu seperti Oculus Rift. Meskipun diletakkan di berbagai sisi dan dan menghadap ke berbagai arah, Leap Motion Controller dalam keadaan tetapnya akan menghasilkan posisi tangan yang sejajar dengan tubuh pengguna pada tampilan antarmuka.

Sebagai alat sensor, Leap Motion Controller memiliki beberapa alat di dalamnya untuk mengamati. Alat-alat tersebut berupa kamera IR monokromatik dan tiga inframerah LED. Dengan alat-alat tersebut, Leap Motion Controller mampu mengamati gerakan tangan yang dalam jangkauan berbentuk hemisphere dengan radius sejauh 1 meter seperti yang terdapat pada Gambar 2.5. Jarak jangkauan ini nantinya akan membuat wilayah seperti kotak yang disesuaikan dengan layar. Jarak jangkauan ini sendiri bisa dibentuk menjadi sebuah kelas bernama InteractionBox dalam antarmuka pemrograman aplikasinya. Selain InteractionBox, juga terdapat kelas-kelas lainnya yang digunakan dalam antarmuka pemrograman aplikasi, khususnya dalam pembuatan sistem yang menggunakan Leap Motion Controller.


(7)

Gambar 2.5. Jarak deteksi Leap Motion Controller (Yowanda, et al. 2014)

2.2.1. Fitur-Fitur Leap Motion Controller

Awalnya, Leap Motion Controller hanya dapat mengamati gerakan dan citra tangan secara menyeluruh, tanpa memperhatikan bagian-bagian tangan secara detail. Setelah beberapa perkembangan, Leap Motion Controller akhirnya mampu mengamati hal-hal yang lebih detail pada bagian tangan seperti ruas tangan, kiri atau kanan, skala genggaman tangan, dan sebagainya. Perkembangan ini disebut dengan Skeletal Tracking atau disebut juga dengan V2.

Adapun fitur-fitur yang terdapat pada Leap Motion Controller dengan Skeletal Tracking yang dimilikinya berdasarkan Leap Motion (2015) antara lain sebagai berikut. 1. Hand Model: model tangan yang digunakan setelah dikembangkannya V2 memberikan informasi yang lebih lengkap. Posisi ruas jari berserta perputaran engselnya lebih dapat diakses dan konsisten.

2. Pinch: fitur ini mendukung gerakan jari yang bersentuhan dengan jari lainnya, dengan skala nol sampai satu.


(8)

3. Grab: fitur ini mengindikasikan seberapa mirip tangan dengan kondisi menggenggam, dengan skala nol sampai satu. Setiap jari yang tidak ikut menggenggam akan mengurangi nilai skala tersebut.

4. Data Confidence: fitur ini mendeteksi ketika tangan sulit untuk diamati oleh Leap Motion Controller. Jika salah satu tangan mendekati pinggiran layar atau saling menutup satu sama lain, nilai fitur ini akan turun dari satu hingga nol.

5. Left or Right: pengamatan menandai tangan yang terdapat pada layar apakah kiri atau kanan.

6. Finger Type: pengamatan mendukung tangan dengan komposisi lima jari yang dapat diambil nilai posisi dan rotasinya masing-masing.

7. Bone Positions: fitur ini mengembalikan nilai posisi dan rotasi dari masing-masing tulang yang terdapat pada telapak jangan dan jari.

2.2.2. Spesifikasi Leap Motion Controller

Adapun spesifikasi teknis produk Leap Motion Controller berdasarkan Leap Motion (2015) adalah sebagai berikut

1. Persyaratan Sistem Minimum

 Windows® 7/8 atau Mac® OS X 10.7

 Prosesor AMD Phenom™ II atau Intel® Core™ i3/i5/i7  2 GB RAM

 USB 2.0 port 2. Warranty Terms

 Windows® 7/8 or Mac® OS X 10.7 3. Perangkat Lunak

 Perangkat lunak dan applikasi yang digunakan dapat diperoleh di http://leapmotion.com/setup.


(9)

2.2.3. Antarmuka Leap Motion Controller

Terdapat dua jenis antarmuka pada Leap Motion Controller. Antarmuka ini digunakan dalam memperoleh data yang akan digunakan pada antarmuka pemograman aplikasi. Adapun kedua jenis antarmuka ini adalah antarmuka aplikasi alami dan antarmuka WebSocket.

Antarmuka aplikasi alami didukung melalui library yang diisi secara dinamis. Library ini menghubungkan layanan Leap Motion dan mendukung data pengamatan tangan ke perangkat komputer. Library ini dapat langsung terhubung dengan pemrograman berbahasa C++ dan Objective-C, atau dapat juga dengan bahasa pemrograman yang tertentu yang terdapat untuk Java, C#, dan Phyton.

Adapun tahap-tahap pada antamuka pemrograman aplikasi ini adalah sebagai berikut.

1. Data dari pengamatan gerakan tangan yang diamati oleh Leap Motion Controller diterima oleh layanan Leap Motion melalui USB. Data tersebut diproses dan dikirimkan ke aplikasi yang memungkinkan pengguanaan Leap Motion Controller. Pada dasarnya, data tersebut dikirimkan ke aplikasi foreground. Namun, data tersebut juga dapat diterima oleh aplikasi background.

2. Aplikasi Leap Motion berjalan secara terpisah dengan layanannya dan memungkinkan dilakukannya pengaturan kepada instalasi Leap Motion.

3. Layanan Leap Motion mengirimkan data pengamatan gerakan tangan dan jari ke aplikasi latar depan. Aplikasi yang menggunakan Leap Motion Controller dapat terhubung dengan layanan tersebut menggunakan library alami dari Leap Motion. 4. Layanan Leap Motion akan berhenti mengirimkan data pengamatan gerakan tangan

dan jari ketika aplikasi foreground yang menggunakan Leap Motion Controller tersebut kehilangan fokusnya. Sementara aplikasi background dapat terus menerima data tersebut meskipun tidak sedang dalam fokus atau berkerja di background.


(10)

Gambar 2.6. Sistem arsitektur antarmuka aplikasi alami dengan Leap Motion Controller (Leap Motion, 2014)

Dalam antarmuka WebSocket, layanan Leap Motion menggunakan server WebSocket pada domain localhost pada port 6347. Antarmuka WebSocket mendukung data pengamatan gerakan tangan dan jari dalam bentuk pesan JSON. Klien library JavaScript telah menyediakan penggunaan untuk pesan JSON dan menyajikan data pengamatan gerakan tangan dan jari sebagai objek JavaScript pada umumnya.

Adapun tahap-tahap dalam penggunaan antarmuka aplikasi web yang menggunakan Leap Motion Controller adalah sebagai berikut.

1. Server WebSocket yang didukung oleh layanan Leap Motion adalah http://127.0.0.1:6437.

2. Server WebSocket dapat diaktifkan maupun dibatalkan melalui panel kendali Leap Motion oleh pengguna.

3. Server mengirim data pengamatan gerakan tangan dan jari dalam bentuk pesan JSON. Aplikasi dapat mengirimkan pesan pengaturan kembali ke server.

4. Klien library JavaScript, leap.js, harus digunakan dalam aplikasi web tersebut. Library tersebut akan membangun koneksi ke server dan menggunakan pesan JSON. Antarmuka pemrograman aplikasi yang disajikan oleh library JavaScript ini


(11)

memiliki struktur dan filosofi yang sama dengan antarmuka pemrograman aplikasi alami.

Gambar 2.7 Sistem arsitektur antarmuka aplikasi web dengan Leap Motion Controller (Leap Motion, 2014)

2.2.3. WebSocket Communication

Leap Motion Controller yang terpasang pada suatu komputer dan memiliki aplikasinya mengkomunikasikan data tangan ke aplikasi menggunakan WebSocket. Server WebSocket ini didukung oleh proses leapd, yang dijalankan sebagai service pada Windows dan daemon pada OS X dan Linux. Server WebSocket ini juga menggunakan port 6347 pada domain localhost (http://127.0.0.1:6437).

Leap Motion Controller mendukung sebuah protokol untuk komunikasi data tangan ke komputer. Sementara komunikasi server WebSocket dengan client dihubungkan dengan sebuah subprotokol pertukaran data. Subprotokol inilah yang menentukan pesan yang akan dikirim dari server ke client dan format dari JSON data yang digunakan. Setiap frame yang berisi data dari server Websocket yang mengandung JSON mendefinisikan frame tersebut. Berikut adalah atribut-atribut berserta tipe datanya dari frame dalam pesan JSON (Leap Motion, 2014).


(12)

"currentFrameRate": float

"id": float

"r": array dari float (Matriks)

"s": float

"t": array dari float (vector)

"timestamp": integer

"gestures": array dari objek Gesture

(Atribut-atribut vary by tipe gestur)

"center": array dari float (vector) -- hanya circle

"direction": array dari float (vector) -- hanya swipe, keyTap, screenTap

"duration": microsecond dalam integer

"handIds": array dari integer

"id": integer

"normal": array dari float -- hanya circle

"pointableIds": array

"position": array dari float (vector) -- hanya swipe,

keyTap, screenTap

"progress": float -- hanya circle, keyTap, screenTap "radius": float -- hanya circle

"speed": float -- hanya swipe

"startPosition": array dari float (vector) -- hanya swipe

"state": string -- salah satu dari "start", "update", "stop"

"type": string -- salah satu dari "circle", "swipe",

"keyTap", "screenTap"

"hands": array dari objek Hand

"armBasis: vector berbasis tiga dari lengan (array dari

vector)

"armWidth: float

"confidence: float

"direction": array dari float (vector)

"elbow: array dari float (vector)


(13)

"palmNormal": array dari float (vector)

"palmPosition": array dari float (vector) "palmVelocity": array dari float (vector)

"pinchStrength: float

"r": array dari float (Matriks)

"s": float

"sphereCenter": array dari float (vector) "sphereRadius": float

"stabilizedPalmPosition": array dari float (vector)

"t": array dari float (vector)

"timeVisible": float

"type": string -- salah satu dari "right" atau "left"

"wrist: array dari float (vector)

"interactionBox": object

"center": array dari float (vector)

"size": array dari float (vector)

"pointables": array dari objek Pointable

"bases": vector berbasis tiga untuk setiap tulang, dalam

index order, pergelangan hingga ujung jari, (array of

vectors).

"btipPosition": posisi ujung dari distal phalanx sebagai array dari tiga float.

"carpPosition": posisi pangkal dari tulang metacarpal

sebagai array dari tiga float.

"dipPosition:" posisi pangkal dari distal phalanx sebagai

array dari tiga float.

"direction": array dari float (vector)

"extended": boolean (true atau false)

"handId": integer

"id": integer

"length": float

"mcpPosition": vektor posisi sebagai array dari tiga

floating point number

"pipPosition": vektor posisi sebagai array dari tiga floating point number


(14)

"timeVisible": float

"tipPosition": array dari float (vector) "tipVelocity": array dari float (vector)

"tool": boolean (true atau false)

"touchDistance": float

"touchZone": string – salah satu dari "none", "hovering", "touching"

"type": integer - 0 adalah ibu jari; 4 adalah kelingking "width": float

2.2.4. Controller

Controller merupakan kelas utama dalam penggunaan antarmuka pemrograman aplikasi yang menggunakan Leap Motion Controller. Controller juga terkadang disebut sebagai istilah lain dari Leap Motion Controller. Namun, dalam hal ini kita akan menyebut alat sensor tersebut sebagai Leap Motion Controller, sementara kelasnya adalah Controller.

Kelas Controller akan mendeklarasikan bahwa Leap Motion Controller akan digunakan pada skrip yang dituju. Dengan kelas Controller, dapat diperoleh data-data seperti terhubungnya alat Leap Motion Controller ke komputer, penggunaan kelas Frame dan Gesture, dan sebagainya. Oleh karena itu, kelas ini dideklarasikan pada saat permulaan program.

Kelas Controller memiliki beberapa properti sebagai berikut.

1. Config: Mengembalikan objek Config untuk melakukan query terhadap sistem Leap Motion dalam informasi pengaturan.

2. Devices: Daftar dari alat Leap Motion Controller yang terhubung dan dapat dikenal. 3. HasFocus: Melaporkan apakah aplikasi yang sedang berjalan sebagai fokus

(foreground application) atau tidak.

4. Images: Kumpulan citra terbaru dari kamera Leap Motion.

5. IsConnected: Melaporkan apakah Controller ini sedang terhubung dengan layanan Leap Motion dan perangkat keras Leap Motion sedang terpasang atau tidak


(15)

2.2.5. Frame

Kelas Frame merupakan turunan dari kelas Controller. Kelas ini menerima masukan dari gerakan tangan dan jari dalam setiap frame pada saat program dijalankan. Kelas inilah yang nantinya digunakan dalam berbagai hal di antarmuka pemrograman aplikasi yang menggunakan Leap Motion Controller. Kelas Hand, Finger, dan Tool adalah turunan dari kelas ini.

Kelas Frame memiliki beberapa properti sebagai berikut.

1. CurrentFramesPerSecond: Mengembalikan estimasi frame per detik dari Leap Motion Controller dengan jenis data float.

2. Fingers: Daftar dari objek Finger yang terdeteksi dalam satu frame, diurutkan secara acak.

3. Hands: Daftar dari objek Hand yang terdeteksi dalam satu frame, diurutkan secara acak.

4. Id: Sebuah identitas (ID) unik untuk kelas Frame ini. 5. Images: Daftar citra-citra dari kamera Leap Motion.

6. InteractionBox: InteractionBox yang sedang berlangsung pada suatu frame. 7. Invalid: Mengembalikan sebuah objek invalid dari kelas Frame.

8. IsValid: Melapokan apakah instansi dari Frame valid atau tidak.

9. Pointables: Daftar dari objek Pointable (jari dan alat) yang terdeteksi dalam suatu frame, diurutkan secara acak.

10.Serialize: Menuliskan object Frame sebagai sebuah byte string.

11.Timestamp: Waktu yang ditangkap frame dalam mikrodetik yang berlalu sejak Leap dimulai.

12.Tools: Daftar alat yang terdeteksi dalam suatu frame, diurutkan secara acak.

2.2.6. Finger

Dengan didukungnya oleh perkembangan Skeletal Tracking, Leap Motion Controller kini dapat mengamati berbagai hal yang dilakukan oleh jari. Kelas Finger tidak hanya memiliki properti untuk menerima data masukan seperti gerakan jari, tegaknya jari, maupun arah yang ditunjuk oleh jari, tetapi kini juga dapat mengamati dan mengenal masing-masing jari. Sebelumnya kelima jari dalam tangan dianggap sama, namun


(16)

dengan perkembangan tersebut, kelas Finger mendapat dukungan lebih untuk digunakan dalam antarmuka pemrograman aplikasinya.

Kelas Finger memiliki beberapa properti sebagai berikut. 1. Direction: Vektor dari arah jari menunjuk,

2. Frame: Kelas Frame yang berasosiasi dengan kelas ini. 3. Hand: Kelas Hand yang berasosiasi dengan kelas ini.

4. Id: Sebuah identitas (ID) unik untuk objek ini yang tetap bernilai sama saat melawati tiap frame berturut-turut selama jari masih teramati.

5. Invalid: Mengembalikan objek invalid.

6. IsExtended: Melaporkan apakah jari yang dimaksud sedang dalam postur memanjang atau tidak.

7. IsFinger: Melaporkan apakah benar yang diamati terdapat jari atau tidak.

8. IsTool: Melaporkan apakah yang diamati adalah sebuah alat yang sedang digenggam atau tidak.

9. IsValid: Melaporkan apakah yang diamati merupakan objek dari kelas Pointable yang valid atau tidak.

10.Length: Estimasi panjang dari jari atau alat dalam milimeter.

11.StabilizedTipPosition: Posisi ujung yang stabil dari kelas Pointable yang dimaksud. 12.TimeVisible: Durasi dari jari yang terlihat oleh Leap Motion Controller dalam

satuan detik.

13.TipPosition: Posisi ujung jari dalam milimeter dari posisi asal Leap Motion. 14.TipVelocity: Laju perubahan jarak pada posisi ujung jari dalam satuan milimeter/

per detik.

15.TouchDistance: Nilai perbandingan untuk jarak antara jari dengan bidang sentuh. 16.TouchZone: Zona sentuh untuk jari yang sedang digunakan.


(17)

Gambar 2.8. TipPosition dan Direction dari kelas Finger (Canneyt, 2013)

2.2.7. Hand

Dalam setiap frame program yang dijalankan, gerakan tangan akan diamati oleh perangkat Leap Motion Controller. Kelas Hand akan bertindak untuk menerima data dari pengamatan tersebut. Sama seperti kelas Finger, kelas ini juga mendapat perkembangan khusus sejak Skeletal Tracking diterapkan. Salah satu perkembangan pada kelas Hand adalah sebelumnya hanya menerima tangan tertutup atau terbuka, kini berganti menjadi kekuatan genggaman tangan yang menerima nilai mulai dari nol hingga satu. Selain itu, dengan kelas ini, Leap Motion Controller juga dapat membedakan tangan yang diamaati adalah tangan kanan atau kiri.

Kelas Hand memiliki beberapa properti sebagai berikut.

1. Arm: Lengan yang terhubung dengan tangan yang sedang diamati oleh Leap Motion Controller.

2. Basis: Orientasi tangan dengan basis matriks.

3. Confidence: Mengembalikan nilai kepastian dari 0.0 sampai 1.0 untuk pose tangan yang terlihat.

4. Direction: Arah dari telapak tangan yang menuju jemari.

5. Fingers: Daftar jari yang terdeteksi dalam sebuah frame yang terhubung dengan tangan yang sedang digunakan, dengan urutan dari ibu jari sampai kelingking.


(18)

6. Frame: Kelas Frame yang berasosiasi dengan kelas Hand ini.

7. GrabStrength: Nilai 0 sampai 1 untuk kekuatan genggaman tangan. Nilai 1 adalah saat tangan benar-benar tergenggam.

8. Id: Sebuah identitas (ID) unik untuk objek ini yang tetap bernilai sama saat melawati tiap frame berturut-turut selama jari masih teramati.

9. Invalid: Mengembalikan objek invalid dari kelas Hand.

10.IsLeft: Idetifikasi apakah tangan yang dimaksud adalah tangan kiri. 11.IsRight: Idetifikasi apakah tangan yang dimaksud adalah tangan kanan. 12.IsValid: Melaporkan objek dari kelas Hand adalah valid.

13.PalmNormal: Nilai normal vektor untuk telapak tangan.

14.PalmPosition: Posisi tengah telapak tangan dalam milimeter dari jarak awal Leap Motion.

15.PalmVelocity: Laju perubahan posisi telapak tangan dalam satuan milimeter per detik.

16.PalmWidth: Estimasi lebar dari telapak tangan dalam posisi mendatar.

17.PinchStrength: Nilai 0 sampai 1 untuk kekuatan jepitan tangan, minimal dengan dua jari. Nilai 1 adalah saat tangan benar-benar menjepit.

18.Pointables: Daftar dari objek kelas Pointable yang terdeteksi dalam suatu frame yang berasosiasi dengan tangan yang dimaksud, diurutkan secara acak.

19.SphereCenter: Titik tengah dari sebuah bola yang terbentuk sesuai dengan lengkungan tangan. Saat telapak tangan melengkung dengan jemarinya, tangan membuat sebuah pose seolah sedang memegang sebuah bola. Ukuran bola ini akan disesuaikan dengan pose tangan tersebut.

20.SphereRadius: Jari-jari atau radius dari bola yang terbentuk sesuai dengan lengkungan tangan.

21.StabilizedPalmPosition: Posisi telapak tangan yang stabil dari kelas Hand yang dimaksud.

22.TimeVisible: Durasi dari tangan yang terlihat oleh Leap Motion Controller dalam satuan detik.


(19)

2.2.8. Gesture

Selain gerakan tangan dan jari seperti menggenggam dan meregangkan jari, Leap Motion Controller juga memiliki gerakan-gerakan khusus yang dapat diamati apabila terjadi dalam suatu frame. Data dari gerakan-gerakan khusus yang disebut dengan gesture ini diterima oleh kelas Gesture. Kelas ini dapat diaktifkan melalui kelas Controller.

Ada empat jenis gesture yang dapat diterima oleh kelas Gesture, yaitu Circle Gesture, Key Tap Gesture, Swipe Gesture, dan Screen Tap Gesture. Circle Gesture adalah gerakan tangan khusus yang berputar di hadapan Leap Motion Controller searah roll axis. Gesture ini memiliki dua jenis parameter yaitu jari-jari minimal dan sudut minimal. Apabila kedua parameter ini terpenuhi maka sistem akan menyatakan bahwa pengguna sedang melakukan Circle Gesture.

Gambar 2.9. Contoh penggunaan Circle Gesture dengan ujung jari

(Leap Motion, 2014)

Swipe Gesture adalah gerakan tangan secara cepat seperti menyapu dengan arah translasi baik itu sumbu x, y, maupun z di hadapan Leap Motion Controller. Gesture ini memiliki jarak minimum dan kecepatan minimum sebagai parameternya. Apabila terjadi gerakan tangan dengan kecepatan minimum sejauh jarak minimum


(20)

tersebut maka sistem akan menyatakan bahwa pengguna sedang melakukan Swipe Gesture.

Gambar 2.10. Contoh penggunaan Swipe Gesture (Leap Motion, 2014)

Screen Tap Gesture dapat dilakukan dengan cara menggerakkan jari ke depan kemudian menariknya lagi dengan cepat, seolah menyentuh layar di udara. Terdapat tiga parameter untuk Screen Tap Gesture yaitu kecepatan minimal ke depan, durasi saat sebelum jadi ditarik, dan jarak minimum. Apabila ketiga parameter ini terpenuhi maka sistem akan menyatakan bahwa pengguna sedang melakukan Screen Tap Gesture.


(21)

Gambar 2.11. Contoh penggunaan Screen Tap Gesture (Leap Motion, 2014)

Key Tap Gesture adalah gerakan jari seperti sedang menekan tombol di udara. Untuk melakukan Key Tap Gesture, jari tidak hanya bergerak ke bawah, tetapi juga harus segara diangkat. Key Tap Gesture memiliki tiga parameter yaitu kecepatan saat turun, durasi jari sebelum diangkat, dan jarak minimum.


(22)

Untuk memudahkan pengguna dalam mempraktikkan berbagai gesture yang disediakan oleh Leap Motion Controller, terdapat konfigurasi khusus untuk gesture. Konfigurasi ini bergantung kepada key string dari masing-masing gesture. Sama seperti kelas Gesture, kelas Config untuk konfigurasi gesture juga merupakan turunan dari kelas Controller. Pada tabel 2.1 dapat dilihat konfigurasi pada masing-masing gesture.

TABEL 2.1. Konfigurasi Key String pada Gesture

Key string Jenis Data Default Value Satuan

Gesture.Circle.MinRadius float 5 mm

Gesture.Circle.MinArc float 1.5 * pi radians

Gesture.KeyTap.MinDownVelocity float 50 mm/s

Gesture.KeyTap.HistorySeconds float 0.1 s

Gesture.KeyTap.MinDistance float 3 mm

Gesture.Swipe.MinLength float 150 mm

Gesture.Swipe.MinVelocity float 1000 mm/s

Gesture.ScreenTap.MinForwardVelocity float 50 mm/s Gesture.ScreenTap.HistorySeconds float 0.1 s

Gesture.ScreenTap.MinDistance float 5 mm

2.2.9. Tool

Tidak hanya tangan kosong, Leap Motion Controller juga dapat menerima data dari objek yang digenggam oleh tangan saat diamati. Data ini diterima oleh kelas Tool. Objek yang digenggam oleh tangan saat diamati oleh Leap Motion Controller tidak akan ditampilkan secara persis dan berdimensi tiga oleh tampilan antarmuka meskipun Leap Motion Controller dapat menangkap citra dengan kamera yang dimilikinya.

Saat ini masih terdapat keterbatasan dalam penggenggaman alat saat menggunakan Leap Motion Controller. Alat yang digunakan harus menyerupai silinder panjang dan kecil seperti pensil contohnya. Untuk menggunakan kelas Tool pada antarmuka pemrograman aplikasi, pengguna harus memastikan apakah Leap Motion


(23)

Kelas Tool dapat menggunakan beberapa properti yang sama dengan kelas Finger. Karena keduanya merupakan objek dari kelas Pointable. Karena itulah terdapat properti isTool dan isFinger untuk membedakan objek dari kelas Pointable mana yang sedang digunakan.

Gambar 2.13. Penggenggaman alat berbentuk V untuk pengukuran dinamis (Guna, et al. 2014)

2.3. Gestur

Gestur merupakan suatu gerakan statis maupun dinamis yang digunakan sebagai sarana komunikasi antara manusia dengan mesin dan begitu juga dengan sesama manusia yang menggunakan bahasa isyarat (Khan, et al. 2012). Gestur statis adalah suatu keadaan diam bagian tubuh atau pose. Sementara gestur dinamis adalah kumpulan dari beberapa gestur statis tersebut dalam suatu rangkaian gerakan.

Beberapa gestur yang sering digunakan adalah sebagai berikut (Anjani, 2013). 1. Incidental Gestures adalah suatu tindakan yang digunakan sebagai pesai kedua selain diakibatkan oleh faktor mekanik tubuh. Seperti menguap bukan hanya berarti mengantuk tetapi juga dapat berarti perasaan jenuh atau bosan.


(24)

3. Mimic Gestures adalah gesture yang menyampaikan sinyal melalui imitasi. Seperti meminta makan atau minum.

4. Schematic Gestures merupakan imitasi yang disingkat. Seperti mengisyarakatkan setan dengan meletakkan tangan di atas kepala dengan jari telunjuk seperti tanduk. 5. Symbolic Gestures adalah gestur yang mewakilkan suasana dan ide. Gestur ini

dipengaruhi oleh kebudayaan.

6. Technical Gestures merupakan gestur yang digunakan oleh kalangan tertentu. Seperti gerakan-gerakan yang digunakan pada saat pesawat mendarat.

7. Coded Gestures adalah bahasa tanda yang berdasarkan sistem resmi seperti bahasa isyarat dengan tangan.


(1)

2.2.8. Gesture

Selain gerakan tangan dan jari seperti menggenggam dan meregangkan jari, Leap Motion Controller juga memiliki gerakan-gerakan khusus yang dapat diamati apabila terjadi dalam suatu frame. Data dari gerakan-gerakan khusus yang disebut dengan gesture ini diterima oleh kelas Gesture. Kelas ini dapat diaktifkan melalui kelas Controller.

Ada empat jenis gesture yang dapat diterima oleh kelas Gesture, yaitu Circle Gesture, Key Tap Gesture, Swipe Gesture, dan Screen Tap Gesture. Circle Gesture adalah gerakan tangan khusus yang berputar di hadapan Leap Motion Controller searah roll axis. Gesture ini memiliki dua jenis parameter yaitu jari-jari minimal dan sudut minimal. Apabila kedua parameter ini terpenuhi maka sistem akan menyatakan bahwa pengguna sedang melakukan Circle Gesture.

Gambar 2.9. Contoh penggunaan Circle Gesture dengan ujung jari (Leap Motion, 2014)

Swipe Gesture adalah gerakan tangan secara cepat seperti menyapu dengan arah translasi baik itu sumbu x, y, maupun z di hadapan Leap Motion Controller. Gesture ini memiliki jarak minimum dan kecepatan minimum sebagai parameternya. Apabila terjadi gerakan tangan dengan kecepatan minimum sejauh jarak minimum


(2)

tersebut maka sistem akan menyatakan bahwa pengguna sedang melakukan Swipe Gesture.

Gambar 2.10. Contoh penggunaan Swipe Gesture (Leap Motion, 2014)

Screen Tap Gesture dapat dilakukan dengan cara menggerakkan jari ke depan kemudian menariknya lagi dengan cepat, seolah menyentuh layar di udara. Terdapat tiga parameter untuk Screen Tap Gesture yaitu kecepatan minimal ke depan, durasi saat sebelum jadi ditarik, dan jarak minimum. Apabila ketiga parameter ini terpenuhi maka sistem akan menyatakan bahwa pengguna sedang melakukan Screen Tap Gesture.


(3)

Gambar 2.11. Contoh penggunaan Screen Tap Gesture (Leap Motion, 2014)

Key Tap Gesture adalah gerakan jari seperti sedang menekan tombol di udara. Untuk melakukan Key Tap Gesture, jari tidak hanya bergerak ke bawah, tetapi juga harus segara diangkat. Key Tap Gesture memiliki tiga parameter yaitu kecepatan saat turun, durasi jari sebelum diangkat, dan jarak minimum.


(4)

Untuk memudahkan pengguna dalam mempraktikkan berbagai gesture yang disediakan oleh Leap Motion Controller, terdapat konfigurasi khusus untuk gesture. Konfigurasi ini bergantung kepada key string dari masing-masing gesture. Sama seperti kelas Gesture, kelas Config untuk konfigurasi gesture juga merupakan turunan dari kelas Controller. Pada tabel 2.1 dapat dilihat konfigurasi pada masing-masing gesture.

TABEL 2.1. Konfigurasi Key String pada Gesture

Key string Jenis Data Default Value Satuan

Gesture.Circle.MinRadius float 5 mm

Gesture.Circle.MinArc float 1.5 * pi radians Gesture.KeyTap.MinDownVelocity float 50 mm/s Gesture.KeyTap.HistorySeconds float 0.1 s

Gesture.KeyTap.MinDistance float 3 mm

Gesture.Swipe.MinLength float 150 mm

Gesture.Swipe.MinVelocity float 1000 mm/s

Gesture.ScreenTap.MinForwardVelocity float 50 mm/s Gesture.ScreenTap.HistorySeconds float 0.1 s

Gesture.ScreenTap.MinDistance float 5 mm

2.2.9. Tool

Tidak hanya tangan kosong, Leap Motion Controller juga dapat menerima data dari objek yang digenggam oleh tangan saat diamati. Data ini diterima oleh kelas Tool. Objek yang digenggam oleh tangan saat diamati oleh Leap Motion Controller tidak akan ditampilkan secara persis dan berdimensi tiga oleh tampilan antarmuka meskipun Leap Motion Controller dapat menangkap citra dengan kamera yang dimilikinya.

Saat ini masih terdapat keterbatasan dalam penggenggaman alat saat menggunakan Leap Motion Controller. Alat yang digunakan harus menyerupai silinder panjang dan kecil seperti pensil contohnya. Untuk menggunakan kelas Tool pada antarmuka pemrograman aplikasi, pengguna harus memastikan apakah Leap Motion Controller diperbolehkan untuk melakukan tool tracking atau tidak.


(5)

Kelas Tool dapat menggunakan beberapa properti yang sama dengan kelas Finger. Karena keduanya merupakan objek dari kelas Pointable. Karena itulah terdapat properti isTool dan isFinger untuk membedakan objek dari kelas Pointable mana yang sedang digunakan.

Gambar 2.13. Penggenggaman alat berbentuk V untuk pengukuran dinamis (Guna, et al. 2014)

2.3. Gestur

Gestur merupakan suatu gerakan statis maupun dinamis yang digunakan sebagai sarana komunikasi antara manusia dengan mesin dan begitu juga dengan sesama manusia yang menggunakan bahasa isyarat (Khan, et al. 2012). Gestur statis adalah suatu keadaan diam bagian tubuh atau pose. Sementara gestur dinamis adalah kumpulan dari beberapa gestur statis tersebut dalam suatu rangkaian gerakan.

Beberapa gestur yang sering digunakan adalah sebagai berikut (Anjani, 2013). 1. Incidental Gestures adalah suatu tindakan yang digunakan sebagai pesai kedua selain diakibatkan oleh faktor mekanik tubuh. Seperti menguap bukan hanya berarti mengantuk tetapi juga dapat berarti perasaan jenuh atau bosan.

2. Expressive Gestures merupakan gestur yang disampaikan secara biologi. Seperti menangis atau marah yang menunjukkan raut wajah yang berbeda.


(6)

3. Mimic Gestures adalah gesture yang menyampaikan sinyal melalui imitasi. Seperti meminta makan atau minum.

4. Schematic Gestures merupakan imitasi yang disingkat. Seperti mengisyarakatkan setan dengan meletakkan tangan di atas kepala dengan jari telunjuk seperti tanduk. 5. Symbolic Gestures adalah gestur yang mewakilkan suasana dan ide. Gestur ini

dipengaruhi oleh kebudayaan.

6. Technical Gestures merupakan gestur yang digunakan oleh kalangan tertentu. Seperti gerakan-gerakan yang digunakan pada saat pesawat mendarat.

7. Coded Gestures adalah bahasa tanda yang berdasarkan sistem resmi seperti bahasa isyarat dengan tangan.