BAB II KAJIAN PUSTAKA
2.1
State of the Art Aplikasi Dalang berbasis Android merupakan sebuah aplikasi yang
berkaitan dengan pemahaman masyarakat Bali terhadap cerita dan pengarangan cerita wayang yang merupakan ciri khas adat Bali. Aplikasi Dalang berbasis Android ini dibuat agar masyarakat Bali khususnya generasi muda dapat melestarikan profesi dalang. Game wayang telah dipaparkan pada jurnal yang berjudul “Rancang Bangun Game Pertempuran Lakon Wayang Sebagai Sarana Pengenalan Tokoh Pewayangan Indonesia” yang disusun oleh Aditya Yoga Prahara dan Taqwa Hariguna. Jurnal tersebut membuat sebuah aplikasi game bertempur lakon wayang yang menggunakan tombol maju mundur dan dapat bertempur layaknya manusia biasa dengan teknik memukul dan menendang. (Aditya, 2013) Game ini dilatarbelakangi akibat masuknya budaya luar yang mengakibatkan masyarakat Indonesia lupa dengan kearifan lokal, nilai-nilai keluhuran pada zaman dahulu. Menurut Aditya yoga prahara masyarakat Indonesia kurang tertarik akan cerita pewayangan Indonesia. Masyarakat Indonesia lebih tertarik akan cerita fantasi yang berasal dari luar negeri dan budaya barat yang masuk ke dalam Indonesia. Akibat dari hal tersebut yaitu mengakibatkan terbuangnya cerita pewayangan dari Indonesia dan akhirnya cerita pewayangan tersebut akan hilang dan dapat di klaim oleh negara lain jika masyarakat belum menyadari bahwa pentingnya untuk melestarikan budaya asli Indonesia. Masyarakat yang masih peduli dengan pentingnya melestarikan budaya asli indonesia telah melakukan berbagai macam cara untuk mengenalkan kembali cerita pewayangan kepada generasi muda Indonesia diantaranya yaitu, dengan tulisan, gambar ataupun animasi. Aditya yoga prahara mengenalkan kembali cerita pewayangan dalam bentuk sebuah game. Game yang dibuat oleh Aditya Yoga Prahara yaitu game pertempuran lakon wayang. Game ini seperti game fighter biasanya. Tetapi, yang membedakannya yaitu karakter yang digunakan yaitu
1
2
karakter pewayangan sehingga secara tidak langsung Aditya Yoga Prahara membantu generasi muda untuk mengenal cerita pewayangan Indonesia. Ensiklopedia wayang telah dipaparkan pada jurnal yang berjudul “Rancang Bangun Aplikasi Ensiklopedia Wayang Berbasis Android” yang disusun oleh Sani Cahyadi Firdaus. Jurnal tersebut membuat sebuah ensiklopedia wayang sebagai media pembelajaran yang menjadi alternatif belajar bagi pelajar dan mahasiswa.(Sani Cahyadi, 2013) Ensiklopedia yang dirancang oleh Sani Cahyani Firdaus berbeda dengan ensiklopedia biasanya. Ensiklopedia yang dirancang ini dapat diakses kapanpun tanpa menggunakan koneksi internet sehingga dapat memudahkan pengguna untuk mengaksesnya. Ensiklopedia ini dibangun pada platform Android yang menjelaskan tentang definisi wayang, asal usul wayang, istilah-istilah yang sering digunakan di dunia wayang, kisah-kisah wayang, dan tokoh-tokoh pewayangan Mahabaratha. Implementasi teknik sabetan telah dipaparkan pada jurnal yang berjudul “Implementasi Teknik Sabetan melalui Kinect (Studi Kasus Pengenalan Gerak Wayang Kulit Tokoh Pandawa)” yang disuun oleh Toto Haryadi. Jurnal tersebut akan mengimplementasikan sensor Kinect dengan menggunakan teknologi motion capture melalui penelitian dan eksperimen.(Toto,2013) Metode yang digunakan dalam penelitian ini yaitu, pengumpulan data, analisa data dan perancangan aplikasi berbasis multimedia (MDLC) dan teori interaksi desain. Data dikumpulkan dengan menggunakan metode deskriptif kualitatif, wawancara, observasi, dokumentasi dan studi literatur. Penelitian ini menghasilkan prototype dari aplikasi interaktif “Dalang Virtual” yang mengimplementasikan variasi teknik gerakan wayang pandawa yang pada umumnya digunakan dalam pertunjukan wayang. Teknologi baru pada pendidikan dan proses mengajar tidak hanya berkontribusi pada proses kognitif tetapi juga untuk tingkat emosional siswa. Dalam sebuah permainan kita melihat pengaruh unur-unsur lain seperti desain, estetika, plot, serta nilai-nilai sikap dan perilaku. Contohnya, permainan puzzle dan
3
permainan daya ingat yang digunakan untuk membangun pembentukan pendidikan untuk anak-anak dan dewasa. Penelitian ini telah berhasil mamasukkan teknologi ke dalam dunia pendidikan dengan menggunakan teknologi yang interaktif dan menarik untuk anak-anak. Maka dari itu Aplikasi Pewayangan yang dibuat mengambil teknologi tersebut agar aplikasi pewayangan ini dapat berhasil seperti media pembelajaran matematika pada penelitian ini. Storytelling wayang kulit ini telah dipaparkan pada jurnal yang berjudul “Innovation in Wayang Kulit Storytelling using Digital Interactive Method” yang disusun oleh Muhammad Colmann Abdullah. Jurnal tersebut membuat sebuah Cerita wayang kulit dengan menggunakan metode digital interaktif. (Muhammad, 2014). Kemajuan teknologi sangat memungkinkan antarmuka pengguna yang interaktif. Penelitian ini akan memberikan wawasan dalam mengenali karakter dalam wayang kulit Kelantan. Wayang kulit Kelantan merupakan sebuah wayang kulit yang berasal dari Malaysia. Wayang kulit Kelantan ini juga dimainkan oleh sebuah dalang yang bernama Tok Dalang. Penelitian ini membuat sebuah dongeng wayang kulit dengan memanfaatkan media digital yang inovatif sehingga anakanak dapat mengenali dan mempelajari wayang kulit Kelantan.
2.2
Sejarah Pewayangan Bali Sejarah pewayangan hingga saat ini belum diketahui penyebab, asal usul,
bentuk dan proses perkembangannya sehingga menjadi seperti pertunjukan wayang saat ini. Banyak hipotesis dari peneliti yang mengatakan bahwa wayang digunakan sebagai sarana dalam pemujaan roh-roh leluhur. Hipotesis tersebut dapat diterima oleh masyarakat dan hipotesis tersebut telah berlaku di banyak daerah yang mengenal wayang. (Ketut Rota, 1977) Beberapa prasasti yang ditemukan di Bali yang menyebutkan keberadaan wayang tidak dapat membantu usaha peneliti untuk mengetahui secara pasti bagaimana wujud /bentuk pertunjukan wayang pada abad- abad sebelumnya, Seperti yang telah disebutkan oleh Drs Ketut Rota pada tahun 1977. Prasasti yang
4
ditemukan peneliti hanya dapat diketahui bahwa pertunjukan wayang pada sekitar abad IX – XI merupakan suatu profesi diantara profesi yang dilakukan oleh masyarakat pada zaman itu. Berikut ini merupakan prasasti – prasasti yang ditemukan oleh beberapa peneliti : 1.
Prasasti Bebetin (Tahun 818 Caka / 896 M) Prasasti bebetin ditemukan oleh Dr. R. Goris yang ditemukan pada tahun
896 Masehi menyatakan bahwa : “. . . pande tambaga, pamukul, pagending, pabujing, papadaha, barbhangci, partapukan, parbwayang, panekan, dihyang api, tikasanna, metani kasiddhan dudukyan hu . . . . .” Prasasti bebetini ini menyatakan beberapa kelompok orang yang menggambarkan profesi tertentu seperti, pande tambaga sebagai pandai tembaga, pamukul sebagai penabuh gambelan, pagending sebagai juru kidung (juru gending), pabunjing sebagai juru tabuh angklung bambu, papadaha sebagai juru tabuh kendang, parbhangai sebagai juru tiup suling, partapukan sebagai para penari topeng, dan parbwayang sebagai orang yang mempertunjukkan wayang (Dalang).
2.
Prasasti Dawan (Tahun 975 Caka / 1053 M) Prasasti Dawan yang berangka tahun 975 Caka atau 1053 Masehi
menyatakan : “. . . yan hana agending ambaran ku 1 amukul sa 3 pawehanya ing satuhan aringgit atali tali banjuran wehanya ku 1 ri satuhan . . . .” Prasasti dawan tersebut memiliki arti setiap juru gending yang memainkan kidungnya dihadapan raja maka akan diberikan upah sebesar 2 kupang, juru kidung yang nglawang diberikan upah 1 kupang, juru tabuh gambelan diberikan 3 kupang, dan perkumpulan wayang diberikan 1 kupang.
3.
Prasasti Blantih (Tahun 980 Caka / 1058 M) Prasasti Blantih yang berangka tahun 980 Caka atau 1058 Masehi
menyatakan :
5
“. . . mang kana yan hana abanwal, atapukan, aringgit, pirus, menmen, I haji maranmak ku 2 pawehanya I riya anuling ku 3, agending ambaran maranmak ku 2 pawehanya I riya ameling ku 1, amukul ku 2 pawehanya i riya . . . . .” Prasasti Blantih ini menyatakan bahwa jika ada pertunjukan lawak, topeng, wayang, badut, (pemain drama) yang bermain dihadapan raja maka akan diberi upah 2 kupang, juru kidung 2 kupang, juru suling 1 kupang, juru tabuh 2 kupang.
Prasasti - prasasti yang telah disebutkan sebelumnya menunjukkan bahwa sekitar tahun 896 Masehi pertunjukkan wayang di Bali telah berkembang dalam keadaan yang sudah teratur. Keahlian seseorang dalam memainkan wayang juga telah menjadi suatu profesi tersendiri. Drs Ketut Rota dapat menduga bahwa sebelum tahun 896 permainan wayang sudah berdiri walaupun dalam wujud yang sederhana. (Ketut Rota, 1978)
2.3
Wayang Wayang merupakan sebuah seni pertunjukkan yang menayangkan
pertunjukan boneka-boneka dua dimensi yang sebagian besar dibuat menggunakan kulit yang ditatah dan diukir. Wayang dipertunjukkan kepada khalayak masyarakat dengan seorang Dalang. Wayang memiliki karakter yang berbeda-beda sesuai dengan bentuk dan ukirannya. Wayang kulit biasanya menggunakan tokoh-tokoh dari cerita Mahabharata, Ramayana, Cupak dan Grantang, dan lain sebagainya.
2.4
Dalang Dalang merupakan orang yang meengatur alur cerita dari sebuah
pertunjukan Wayang. Dalang dikenal juga dengan sebutan pakeliran, pengertian pakeliran yaitu orang yang menyajikan peristiwa-peristiwa atau adegan yang ada di dalam suatu cerita atau lakon. Pertunjukan Wayang Kulit dikendalikan oleh seorang Dalang. Dalang berperan sebagai sutradara, pemeran, sekaligus stage manager di dalam sebuah pertunjukan Wayang. Dalang juga merupakan figure sentral yang menentukan segala sesuatu yang berhubungan dengan jalannya sebuah pertunjukan
6
Wayang, jadi seberapa menarik pertunjukan Wayang tergantung dari seberapa menarik dan unik dari seorang Dalang. (Bambang Murtoyoso,2007) Seni Pedalangan memiliki empat unsur penting yang harus dimiliki dan dikuasai oleh seorang Dalang. Berikut ini merupakan empat unsur penting yang harus dikuasai oleh seorang dalang : 1.
Bahasa Bahasa merupakan unsur yang paling penting yang harus dikuasai oleh
seorang Dalang. Dalang harus memperhatikan tutur kata yang digunakan untuk memainkan sebuah Wayang. Wacana yang diucapkan oleh seorang Dalang disebut dengan basa pedalangan. Bahasa yang digunakan yaitu Bahasa Bali halus sesuai dengan sor singgih bahasanya. Bahasa yang digunakan oleh Dalang menjadi sebuah media komunikasi antara Dalang dengan penonton, sehingga ungkapan Dalang dapat berupa narasi dan dialog dari tokoh-tokoh Wayang. 2.
Suara Suara merupakan sebuah ungkapan yang dilantunkan oleh seorang Dalang.
Ungkapan dapat berupa wacana, vokal Dalang, maupun karawitan. Ungkapan dalam sebuah pertunjukan Wayang tidak hanya sebagai sarana komunikai, melainkan sebuah ungkapan yang mengacu pada wujud, karakter, dan suasana tokoh Wayang. Pengolahan suara sangat menentukan sebuah keberhasilan dari pertunjukan Wayang karena dengan pengolahan suara yang tepat akan memperjelas perbedan wujud karakter dan suasana tiap-tiap tokoh. Suara merupakan unsur yang mutlak harus ada di dalam sebuah pertunjukan Wayang, tanpa adanya suara Dalang tidak dapat mengungkapkan kesan estetik melalui suara wacana dan vocal sesuai dengan dialog dan alur cerita dari pertunjukan Wayang.
3.
Gerak Gerak merupakan sebuah ekspresi gerak dari sebuah Wayang. Tugas
seorang dalang yaitu, untuk menghidupkan tampilan wayang melalui ekspresi gerak. Penampilan gerak Wayang tidak sekedar gerak dari titik a ke titik b, melainkan gerakan yang ekspresif, berkesan hidup dan sesuai dengan karakter wayang yang ditampilkan. Seorang Dalang untuk menggerakkan wayang harus
7
menguasai teknik-teknik dasar dari pedalangan yang meliputi bentuk, volume, intonasi, tempo, dan kesesuaian dengan iringan. Kepiawaian seorang Dalang untuk mengolah gerak melalui penampilan Wayang akan menimbulkan kesan estetik lewat gerakan dari Wayang yang tampak hidup. Gerak merupakan unsur yang harus ada di dalam sebuah pertunjukan wayang, karena tanpa adanya gerak seorang Dalang tidak dapat mengungkapkan keindahan yang ada di dalam sebuah cerita Wayang. 4.
Rupa Rupa merupakan sebuah sarana pengungkapan wujud sebuah Wayang.
Rupa meliputi tampilan bentuk, warna, dan karakter dari sebuah Wayang. Penonton atau khalayak masyarakat megenal karakter dari masing-masing Wayang dengan melihat dari rupa wayang tersebut. Rupa merupakan sebuah unsur yang harus ada di dalam sebuah pertunjukan wayang, karena tanpa adanya rupa, peonton atau khalayak masyarakat tidak dapat membedakan perbedaan karakter Wayang a dengan karakter Wayang b.
2.5
Corona SDK Corona Sdk merupakan sebuah Software Development Kit yang di rancang
oleh walter luh, dimana walter luh merupakan penemu dari Corona Labs Inc. Developer dapat membangun aplikasi mobile berbasis Android, iPhone dan iPad dengan menggunakan Cororna Sdk.
Gambar 2.1 Icon Corona Sdk
8
Pemrograman dengan menggukan Corona Sdk sangat mudah, dikarenakan Corona Sdk telah dirancang dengan sifat easy to learn sehingga developer pemula dapat dengan mudah membuat sebuah aplikasi ber-platform android dan iPhone. Berikut ini merupakan fitur-fitur yang disediakan oleh Corona Sdk : 1.
Corona Sdk dapat membangun sebuah aplikasi berbasis Android, iOS, Kindle, dan NOOK
2.
Corona Sdk bersifat One-Click Builds
3.
Limited Corona Plugins
Corona Sdk juga memiliki beberapa kelebihan dan juga kekurangan. Berikut ini merupakan kelebihan mengembangkan aplikasi mobile menggunakan Corona Sdk: 1.
Corona Sdk dapat mengembangkan aplikasi 10 kali lebih cepat, karena Corona Sdk menggunakan Bahasa lua.
2.
Proses debugging dari aplikasi yang dibuat menggunakan corona secara otomatis dapat terbaca pada platform android dan iOS.
3.
Corona Sdk secara otomatis dapat memilih asset berdasarkan resolusi layar, sehingga pengguna tidak perlu men-setting ulang resolusi layar untuk men-debug aplikasi pada resolusi layar yang kecil.
Corona Sdk juga memiliki beberapa kelemahan yang harus diperhatikan, berikut ini merupakan kekurangan dari Corona Sdk : 1.
Corona Sdk tidak menggunakan GUI dalam proses layouting, sehingga menyulitkan pengguna awam dalam penggunaannya.
2.
Proses debugging pada Corona Sdk belum akurat.
2.6
Lua Lua merupakan sebuah Bahasa pemrograman yang cepat dan ringan. Lua
mengkombinasikan syntax terprosedur yang sederhana dengan konstruksi penjelasan data yang kuat berbasis array asosiatif. Lua berifat dinamis, berjalan dengan menerjemahkan bytecode dan memiliki management memory otomatis. Hal
9
tersebut membuat pemrograman dengan menggunakan lua sangat bagus untuk configurasi, scripting dan prototype yang cepat. (Lua, 2016)
Gambar 2.2 Icon Lua
Lua di design, diimplementasikan dan dipelihara oleh sebuah tim pada PUC Rio, Pontifical Catholic University of Rio de Janeiro di Brazil. Lua saat ini berada pada LabLua, sebuah laboraturium dari Department of Computer Science of PUC-Rio.
2.7
Physics Joints Physics Joint merupakan sebuah teknik yang dapat digunakan untuk
merakit benda-benda fisik yang kompleks dari beberapa badan kaku seperti persendian. Physics joint dapat digunakan untuk menggabungkan anggota badan dari ragdoll, memutar roda kendaraan dari badannya, menciptakan sebuah platform lift bergerak dan lainnya. Kebanyakan Physics joint digunakan untuk menghubungkan dua badan kaku sehingga kedua badan kaku tersebut dapat bergerak berlawanan. Physics joint memiliki beberapa sifat yang berbeda-beda sesuai dengan penggunaannya. Sifat-sifat dari physics joint yaitu, pivot joint, distance joint, piston joint, weld joint, wheel joint, pulley joint, touch joint, rope joint, dan gear joint. 2.7.1
Pivot Joint Pivot joint yang dikenal sebagai revolute joint pada istilah Box2D, pivot
joint menggabungkan dua body pada titik yang berhimpitan, seperti dua papan yang bergabung dengan titik tengah yang berputar, seperti yang terlihat pada Gambar 2.3.
10
Gambar 2.3 Contoh Pivot joint
Argumen pertama adalah body A dan Body B yang akan digabungkan kemudian di deklarasikan, diikuti oleh titik koordinat x dan y sebagai titik anchor yang dinyatakan dalam koordinat ruang. local pivotJoint = physics.newJoint( "pivot", bodyA, bodyB, anchor_x, anchor_y ) Kode Program 2.1 Kode program pivot joint
Kode Program 2.1 merupakan contoh dari pembuatan pivot joint. Body A dan Body B merupakan argument dari badan A dan badan B yang akan digunakan. Anchor x dan Anchor y merupakan peletakan dari titik tengah yang akan diputar.
2.7.2
Distance Joint Distance joint merupakan sebuah joint yang menempelkan dua body pada
jarak yang tetap. Argumen pertama adalah body A dan body B yang akan digabungkan kemudian dideklarasikan, diikuti oleh titik koordinat x dan y sebagai titik anchor yang dinyatakan dalam koordinat ruang. local distanceJoint = physics.newJoint( "distance", bodyA, bodyB, anchorA_x, anchorA_y, anchorB_x, anchorB_y ) Kode Program 2.2 Kode Program Distance joint
Kode Program 2.2 merupakan contoh dari pembuatan distance joint. Body A dan Body B merupakan argument dari badan A dan badan B yang akan digunakan. Anchor x dan Anchor y merupakan peletakan dari titik tengah.
11
Gambar 2.4 Contoh Penggunaan Distance joint
Distance joint dapat dibuat halus, seperti sambungan semi peredam. Banyak faktor yang dapat mempengaruhi kelembutan distant joint, termasuk massa kelekatan tubuh dan kekuatan dari kedua body tersebut. Sehingga untuk mencapai kelembutan tersebut maka perlu berhati-hati untuk menguji nilai yang ditetwapkan untuk mencapai simulasi yang diinginkan, seperti yang terlihat pada Gambar 2.4.
2.7.3
Piston Joint Piston joint yang dikenal sebagai prismatic joint pada istilah box2D, piston
joint menggabungkan dua titik pada satu koordinat gerak, seperti mesin piston atau elevator yang gerakannya dibatasi sepanjang sumbu vertical, seperti yang terlihat pada Gambar 2.5.
Gambar 2.5 Contoh Penggunaan Piston joint
12
Argumen pertama adalah body A dan body B yang akan digabungkan kemudian di deklarasikan, diikuti oleh titik koordinat x dan y sebagai titik anchor yang dinyatakan dalam koordinat ruang. local pistonJoint = physics.newJoint( "piston", bodyA, bodyB, anchor_x, anchor_y, axisX, axisY ) Kode Program 2.3 Kode Program Piston joint
Kode Program 2.3 merupakan contoh dari pembuatan piston joint. Body A dan Body B merupakan argument dari badan A dan badan B yang akan digunakan. Anchor x dan Anchor y merupakan peletakan dari titik tengah. Piston joints memiliki sumbu terbatas dari gerakan linear yang didefinisikan dengan axisX dan axisY. Sumbu pada piston joints bersifat bi-directional dan tidak dianggap sebagai vector arah. Piston joint dapat dikendalikan dengan joint motor. Tidak seperti gerakan rotasi yang terdapat pada pivot joint. Gerakan pada piston joint bersifat linear, contohnya, gerakan piston joint dapat digunakan untuk memindahkan elevator naik dan turun mengikuti sumbunya.
2.7.4
Weld Joint Weld joint menempelkan dua buah body pada sebuah titik anchor yang
spesifik pada sebuah ruang koordinat. Contoh penggunaan weld joint dapat dilihat pada Gambar 2.6.
Gambar 2.6 Contoh Penggunaan Weld joint
13
Argumen pertama adalah body A dan Body B yang akan digabungkan kemudian di deklarasikan, diikuti oleh titik koordinat x dan y sebagai titik anchor yang dinyatakan dalam koordinat ruang. local weldJoint = physics.newJoint( "weld", bodyA, bodyB, anchor_x, anchor_y )
Kode Program 2.4 Kode Program Weld joint
Kode Program 2.4 merupakan contoh dari pembuatan weld joint. Body A dan Body B merupakan argument dari badan A dan badan B yang digunakan. Anchor x dan Anchor y merupakan peletakan dari titik tengah.
2.7.5
Wheel Joint Wheel joint yang biasa dikenal dengan line joint hampir sama dengan
piston joint, kecuali body yang menempel dapat berputar bebas seperti sebuah roda yang dipasang pada sebuah mobil. Gambar 2.7 merupakan contoh penggunaan wheel joint.
Gambar 2.7 Contoh Penggunaan Wheel joint
Argumen pertama adalah body A dan Body B yang akan digabungkan kemudian di deklarasikan, diikuti oleh titik koordinat x dan y sebagai titik anchor yang dinyatakan dalam koordinat ruang, diikuti oleh nilai nilai yang menentukan sumbu gerak linier dari wheel joint tersebut. local wheelJoint = physics.newJoint( "wheel", bodyA, bodyB, anchor_x, anchor_y, axisX, axisY ) Kode Program 2.5 Kode Program Wheel joint
14
Kode Program 2.5 merupakan contoh dari pembuatan wheel joint. Body A dan Body B merupakan argument dari badan A dan badan B yang digunakan. Anchor x dan Anchor y merupakan peletakan dari titik tengah. Piston joints memiliki sumbu terbatas dari gerakan linear yang didefinisikan dengan axisX dan axisY. Sumbu pada piston joints bersifat bi-directional dan tidak dianggap sebagai vector arah.
2.7.6
Pulley Joint Pulley joint menempelkan dua buah body dengan sebuah tali yang tidak
terlihat dengan panjang yang tetap konstan. Jika satu body ditarik atau didorong, body yang lainnya akan mengimbagi sesuai dengan gerakan body yang pertama.
Gambar 2.8 Contoh Penggunaan Pulley joint
Argument pertama adalah body A dan B yang akan digabungkan, diikuti dengan dua koordinat berpasangan yang mewakili titik anchor statis. Empat argument selanjutnya yaitu titik koordinat x dan y, yang diikuti oleh nilai ratio akhir, dimana dapat disesuaikan untuk simulasi block dan pengaturan tackle. Gambar 2.8 merupakan contoh penggunaan pulley joint. local pulleyJoint = physics.newJoint( "pulley", bodyA, bodyB, statA_x, statA_y, statB_x, statB_y, bodyA_x, bodyA_y, bodyB_x, bodyB_y, 1.0 ) Kode Program 2.6 Kode Program Pulley joint
15
Fitur dari pulley joint adalah sebuah ratio property sebagai parameter final di dalam constructor. Ratio ini dapat disesuaikan untuk simulasi block dan pengaturan tackle. Pada sebuah scenario, satu sisi dari tali pulley berpindah lebih cepat dari yang lainnya. Default ratio bernilai 1.0 dimana dengan default ratio dapat mensimulasikan pulley joint yang sederhana. Kode Program 2.6 merupakan kode program untuk membuat pulley joint sederhana.
2.7.7
Touch Joint Touch joint yang sering dikenal sebagai mouse joint menghubungkan
single object pada sebuah on screen target point. Touch joint dapat digunakan untuk memindahkan object pada sebuah target point menggunakan elastic joint teoritis dengan variable yang kuat dan elastis. Argument pertama yaitu body A untuk dihubungkan yang diikuti oleh titik koordinat x dan y pada ruang konten, seperti yang dapat dilihat pada Kode Program 2.7. local touchJoint = physics.newJoint( "touch", body, anchor_x, anchor_y ) Kode Program 2.7 Kode Program Touch joint
Anchor point pada touch joint dapat dianggap titik yang menghubungkan body. Contohnya, untuk menghubungkan sebuah body menggunakan titik tengah, misalkan body.x dan body.y sebagai dua argumen. Untuk memindahkan sebuah object yang disentuh menggunakan nilai event.x dan event.y yang dikembalikan dengan event touch. Anchor point ini umumnya dikonfigurasikan sebagai titik dalam batas-batas body, meskipun anchor point dapat berada di luar batas yang diinginkan. Gambar 2.9 merupakan contoh penggunaan touch joint.
16
Gambar 2.9 Contoh Penggunaan Touch joint
2.7.8
Rope Joint Rope joint menghubungkan dua object dengan sebuah tali non elastis.
Rope joint membatasi jarak maksimum antara dua body bahkan jika terdapat kecepatan lain yang signifikan diatasnya. Seperti yang terlihat pada Gambar 2.10.
Gambar 2.10 Contoh Penggunaan Rope joint
Argument pertama yaitu body A dan B digabungkan, diikuti dengan optional localized offset points dimana dapat digunakan untuk menentukan noncenter anchor point untuk masing-masing ujung tali. Seperti yang terlihat pada Kode Program 2.8. local ropeJoint = physics.newJoint( "rope", bodyA, bodyB, offsetA_x, offsetA_y, offsetB_x, offsetB_y ) Kode Program 2.8 Kode Program Rope joint
17
Ketika mengkonfigurasi sebuah rope joint, nilai offset bersifat optional dan default bernilai 0 kecuali jika nilai offset ditentukan sebaliknya. Tidak seperti joints lainnya, nilai x dan y tidak harus bersifat spesifik.
2.7.9
Gear Joint Gear joint digunakan untuk mensimulasikan sophisticated mechanical
contraptions involving gears. Gear joint dapat menghubungkan dua body atau kelipatannya sesuai urutan. Satu putaran body yang dikendalikan dapat bersifat realistically power seperti mesin asli. Contohnya dapat dilihat pada Gambar 2.11.
Gambar 2.11 Contoh Penggunaan Gear joint
Perbedaan gear joint dari joint yang lainnya yaitu, gear joint dioperasikan langsung oleh dua joint yang berbeda lainnya. local gearJoint = physics.newJoint( "gear", bodyA, bodyB, joint1, joint2, ratio ) Kode Program 2.9 Kode Program Gear joint
Dua joint tersebut harus dibuat terlebih dahulu sebelum mengoperasikan gear joint dan joint yang digunakan harus pivot joint atau piston joint. Salah satu dari pivot joint atau piston joint dapat dihidupkan dengan putaran atau berbenturan dengan pivot joint atau piston joint lainnya yang menempel pada induk gear joint, seperti yang terlihat pada Kode Program 2.9.
18
2.8
Event Listener Event Listener merupakan sebuah event yang dikirim ke dalam fungsi
Event Listener yang mana ditulis pada sebuah fungsi dasar. local function myTouchListener( event ) print( "Touch X location"..event.x ) print( "Touch Y location"..event.y ) end local myButton = display.newRect( 100, 100, 200, 50 ) myButton:addEventListener( "touch", myTouchListener ) Kode Program 2.10 Kode Program Event Listener
Kode Program 2.10 menjelaskan bagaimana sebuah event melalui fungsi myTouchListener mengandung titik x dan y dimana kedua titik tersebut dijadikan sebagai tempat touch event terjadi. Event Listener dapat dibuat menggunakan metode addEventListener(). Event Listener dibuat dengan menggunakan nama string dari jenis event dan nama dari fungsi event listener, Seperti yang terlihat pada Kode Program 2.11. --standard touch listener on an object myButton:addEventListener( "touch", myTouchListener ) --Runtime 'system' event listener Runtime:addEventListener( "system", onSystemEvent ) myButton:removeEventListener( "touch", myTouchListener )
Kode Program 2.11 Kode Program Pembuatan Event
Event Listener dapat dihapus secara otomatis dengan menggunakan fungsi removeEventListener(), Contohnya ketika user ingen menghentikan Event Listener yang berada pada object myButton, seperti yang terlihat pada Kode Program 2.11.
2.8.1
Touch Event Touch event menyediakan tingkatan yang lebih besar dari interaktifitas
layar. Touch event dapat mendeteksi ketika user menyentuh layar pertama kalinya dan ketika user melepaskan sentuhan dari layar. Touch event juga dapat mendeteksi
19
gerakan yang bergerak disekitaran layar dengan menggunakan event.phase, seperti yang terlihat pada Kode Program 2.12. local function myTouchListener( event ) if ( event.phase == "began" ) then --code executed when the button is touched print( "object touched = "..tostring(event.target) ) -'event.target' is the touched object elseif ( event.phase == "moved" ) then --code executed when the touch is moved over the object print( "touch location in content coordinates = "..event.x..","..event.y ) elseif ( event.phase == "ended" ) then --code executed when the touch lifts off the object print( "touch ended on object "..tostring(event.target) ) end return true --prevents touch propagation to underlying objects end local myButton = display.newRect( 100, 100, 200, 50 ) myButton:addEventListener( "touch", myTouchListener ) "touch" listener to the object Kode Program 2.12 Kode Program Touch Event
--add a
Event.phase “began” menunjukkan bahwa sebuah touch memulai menyentuh layar, event.phase “moved” menunjukkan bahwa sebuah touch berpindah posisi pada layar, dan event.phase “ended” menunjukan bahwa sebuah touch terlepas dari layar.
2.8.2
Tap Event Tap event merupakan teknik dasar dari interaksi di dalam layar. Tap event
akan menunjukkan bahwa user telah menyentuh layar dan melepaskannya pada titik perkiraan yang sama. Tap event dianggap berhasil hanya ketika user menyentuh dan melepaskannya pada satu titik yang sama. local function myTapListener( event ) --code executed when the button is tapped print( "object tapped = "..tostring(event.target) ) 'event.target' is the tapped object
--
20
return true end local myButton = display.newRect( 100, 100, 200, 50 ) myButton:addEventListener( "tap", myTapListener ) --add a "tap" listener to the object Kode Program 2.13 Kode Program Tap Event
Kode Program 2.13 merupakan contoh sederhana dari penggunaan tap event. Event.target merupakan acuan untuk object yang telah di tap. Event.name merupakan sebuah nilai string dari “tap”, event.x / event.y merupakan posisi x dan y dari “tap”, event.numTaps merupakan jumlah dari tap yang akan diaplikasikan ke layar. Delay default antara tap awal dan tap selanjutnya adalah 0 detik, tetapi waktu delay dapat diatur dengan fungsi system.setTapDelay().Hal itu dikarenakan tap merupakan sebuah action singular yang melibatkan keduanya termasuk ketika disentuh dan dilepas. local function myTapListener( event ) if ( event.numTaps == 2 ) then print( "object double-tapped = "..tostring(event.target) ) else return true end end local myButton = display.newRect( 100, 100, 200, 50 ) myButton:addEventListener( "tap", myTapListener ) Kode Program 2.14 Kode Program Double Tap Event
Menggunakan event.numTaps, user dapat dengan mudah menentukan apakah sebuah object termasuk double tap dan single tap. Untuk menentukan sebuah tap bernilai double ataupun single dengan mengubah event.numTaps dengan nilai 2, seperti yang terlihat pada Kode Program 2.14.
21
21