Implementasi Algoritma Gilbert Jhonson Keerthi Pada Simulasi Pembelajaran Fisika Momentum Dan Impuls

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

CHANDRA DARMAWAN 10109155

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2015


(2)

iii

Alhamdulillahirabbil‘alamin, segala puji dan syukur penulis panjatkan kehadirat Allah Subhanallahu Wa Ta’ala, karena dengan izin-Nya penyusunan skripsi ini dapat diselesaikan tepat pada waktunya. Shalawat serta salam semoga senantiasa tercurahkan kepada Nabi Muhammad shallallahu ‘alaihi wasallam.

Laporan skripsi dengan judul “Implementasi Algoritma Gilbert Jhonson Keerthi Pada Simulasi Pembelajaran Fisika Momentum dan Impuls” ini disusun guna memenuhi syarat dalam menyelesaikan ujian akhir program strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Selama menyusun skripsi ini, dengan izin Allah, penulis telah mendapatkan banyak sekali bantuan dari berbagai pihak, baik secara langsung maupun tidak langsung. Penulis ucapkan terima kasih kepada :

1. Keluarga tercinta, terutama kedua orang tua atas doa dan dukungannya yang tidak pernah berhenti baik secara moril maupun materil.

2. Bapak Irfan Maliki, S.T., M.T. selaku dosen pembimbing yang telah dengan sabar membimbing penyusunan skripsi ini.

3. Bapak Alif Finandhita, S.Kom., M.T. selaku dosen penguji saat pelaksanaan seminar dan sidang yang telah memberikan banyak masukan dalam penyusunan skripsi ini.

4. Bapak Erik Wijaya, S.Kom. selaku dosen penguji komprehensif saat pelaksanaan sidang yang telah memberikan masukan dalam penyusunan skripsi ini.

5. Ibu Rani Susanto, S.Kom., M.Kom. selaku dosen wali IF-4 yang telah banyak membantu.

6. Segenap Dosen Program Studi Teknik Informatika yang senantiasa sabar dalam berbagi ilmu pengetahuan dari awal menjadi mahasiswa hingga sekarang.


(3)

iv

8. Seluruh panitia penyelenggara skripsi dan tugas akhir yang telah banyak membantu.

9. Semua pihak yang telah banyak membantu penulis dalam penyusunan skripsi ini yang tidak bisa penulis sebutkan satu persatu.

Penulis menyadari bahwa dalam penulisan skripsi ini masih terdapat banyak kekurangan, oleh karena itu kritik dan saran yang membangun dari semua pihak sangat penulis harapkan. Akhir kata, semoga skripsi ini bermanfaat bagi saya khususnya dan bagi para pembaca pada umumnya. Aamiin.

Wassalaamu'alaikum warahmatullaaahi wa barokaatuhu.

Bandung, 19 Februari 2015


(4)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... x

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xiii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Maksud dan Tujuan ... 3

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 4

1.5.1 Metode Pengumpulan Data ... 4

1.5.2 Metode Pembangunan Perangkat Lunak ... 5

1.6 Sistematika Penulisan ... 6

BAB 2 LANDASAN TEORI ... 9

2.1 Fisika ... 9

2.1.1 Momentum dan Impuls ... 9

2.1.2 Tumbukan ... 10

2.1.3 Tumbukan Pada Dua Dimensi ...14

2.2 Metode Simulasi ... 15

2.3 Algoritma Gilbert Jhonson Keerthi ... 16

2.3.1 Simplex ...17

2.3.2 Convex Hull ...18

2.3.3 Convex ...19


(5)

vi

2.5.1 UML (Unified Modeling Language) ... 25

2.5.2 Diagram UML ... 25

BAB 3 ANALISIS DAN PERANCANGAN ... 29

3.1 Analisis Masalah ... 29

3.2 Analisis Sistem ... 29

3.3 Analisis Masukan ... 31

3.4 Analisis Algoritma Gilbert Jhonson Keerthi ... 31

3.5 Analisis Kebutuhan Non Fungsional ... 41

3.5.1 Analisis Kebutuhan Perangkat Lunak ... 42

3.5.2 Analisis Kebutuhan Perangkat Keras ... 42

3.5.3 Analisis Pengguna ... 42

3.6 Analisis Kebutuhan Fungsional ... 43

3.6.1 Use Case Diagram ... 43

3.6.2 Activity Diagram ... 50

3.6.3 Squence Diagram ... 54

3.6.4 Class Diagram ... 56

3.7 Perancangan Sistem ... 56

3.7.1 Perancangan Struktur Menu ... 57

3.7.2 Perancangan Antar Muka ... 57

3.7.3 Jaringan Semantik ... 60

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 53

4.1 Implementasi ... 61

4.1.1 Implementasi Perangkat Keras ... 61

4.1.2 Implementasi Perangkat Lunak ... 61

4.1.3 Implementasi Aplikasi ... 62

4.1.4 Implementasi Antarmuka ... 62


(6)

vii

4.2.1.3Pengujian Black Box ... 76

4.2.2 Pengujian Beta ... 77

4.2.2.1 Kesimpulan Pengujian Beta ... 78

BAB 5 KESIMPULAN ... 79

5.1 Kesimpulan ... 79

5.2 Saran ... 79


(7)

[1] Giancoli, Douglas C. Fisika Jilid I dan II (Terjemahan). Jakarta : Penerbit Erlangga,2001.

[2] Kanginan, Marthen. FISIKA untuk SMA kelas XI. Jakarta: Erlangga,2006. [3] J. Banks, J. Carson, B. Nelson, D. Nicol. Discrete-Event System Simulation.

Prentice Hall. p. 3. ISBN 0-13-088702-1, 2001.

[4] Zuriyani, Elsy. Penerapan Model Simulasi Pada Diklat Guru Mata Pelajaran IPA MI, http://www.bdkpalembang.kemenag.go.id/penerapan-model-simulasi-pada-diklat-guru-mata-pelajaran-ipa-mi/, 2001. Diakses tanggal 25 Maret 2015.

[5] Achmad Basuki, Nana Ramadijanti ,Labolaturium Computer Vision, Politeknik Elektronika Negri Surabaya(PENS-ITS), 2001.

[6] C. Ericson. The gilbert-jhonson-keethi (gjk) algorithm. SIGGRAPH Presentation, 2004. Sony Computer Enteraiment America

[7] Sokolowski, J.A., Banks, C.M. Principles of Modeling and Simulation. Hoboken, NJ: Wiley. p. 6. ISBN 978-0-470-28943-3, 2009.

[8] Patrick Linderman. The Gilbert-Jhonson-Keethi Algorithm. Algorithms In Media Informatics, 2009. Media Informatics Proseminar

[9] E. G. Gilbert, D. W. Johnson, and S. S. Keerthi. A fast procedure for computing the distance between complex objects in three-dimensional space. In IEEE Journal of Robotics and Automation, volume 4, pages 193–203, April 1988. [10] Andrew, A. M. , Another efficient algorithm for convex hulls in two

dimensions, Information Processing Letters 9 (5): 216–219, doi:10.1016/0020-0190(79)90072-34, 1979.

[11] Richard Fitzpatrick. Collision in 2 Dimension. http://farside.ph.utexas.edu/teaching/301/lectures/node77.html, Diakses tanggal 2 December 2014.

[12] S, Rosa A & Shalahuddin, M. Rekayasa Perangkat Lunak: Terstruktur dan Berorientasi Objek, Informatika, Bandung, 2013.


(8)

[13]Wijaya, Didik 2002, Memahani ActionScript, http://www.master.web.id/mwmag/issue/01/content/tutorial-actionscript-1/tutorial-actionscript-1.html#sub1, diakses 1 Maret 2015.

[14] Adobe Flash Player / Tech specs,

http://www.adobe.com/products/flashplayer/tech-specs.html, diakses 22 April 2015.

[15]Arsyad, Azhar. 2013. Media Pembelajaran. Depok: Raja Grafindo Persada. [16] Sutopo, Ariesto Hadi. Multimedia Interaktif dengan Flash. Yogyakarta: Graha

Ilmu, 2003.

[17] Punaji Setyosari.Metode Penelitian Pendidikan dan Pengembangan. Jakarta : Kencana, 2010.

[18] Kevin Vlack, Susumu Tachi, ” Fast and Accurate Spacio-Temporal

Intersection Detection with the GJK Algorithm” University Tokyo, Graduate

School of Information Science and Technology Departement of Information Physic and Computing 7-3-1 Hongo, Bunkyo-ku, Tokyo, 113-8656, Japan.


(9)

1

Fisika merupakan salah satu pilar utama ilmu pengetahuan dan teknologi yang memberikan pemahaman mengenai fenomena alam serta kemungkinan aplikasinya dalam meningkatkan kesejahteraan hidup umat manusia [1].

Berdasarkan hasil wawancara dengan Drs. Sukandar di SMA pasundan 3 Cimahi selaku guru pengajar mata pelajaran fisika sekaligus wakil kepala sekolah kurikulum menyatakan metode pembelajaran yang berjalan pada saat ini masih secara konvensional yaitu dengan cara menyampaikan materi melalui ceramah dan menuliskan materi pelajaran di papan tulis serta media pembelajaran fisika yang digunakan hanyalah buku paket pelajaran sedangkan kebutuhan peragaan dalam menambah pengetahuan, pemahaman dan ketertarikan siswa dalam mata pelajaran fisika sangatlah tinggi. Diketahui berdasarkan hasil ulangan terakhir pada Bab Momentum dan Impuls sekitar 70% siswa memperoleh nilai total rata-rata dibawah Kriteria Ketuntasan Minimal (KKM) yaitu 60 pada mata pelajaran fisika.

Melihat dari pemasalahan yang ada sehingga perlu untuk menambah fasilitas pendukung pembelajaran mata pelajaran fisika khususnya dalam cabang ilmu momentum dan impuls untuk memperbaiki serta membantu siswa dalam memahami materi pelajaran yang sulit. Materi yang ada pada buku pelajaran dapat lebih mudah dipahami jika disajikan dalam bentuk ilustrasi atau simulasi karena dapat digunakan untuk memperjelas materi yang ada serta berfungsi untuk membantu meningkatkan pemahaman belajar siswa pada mata pelajaran[4].

Media pembelajaran simulasi merupakan media yang menggabungkan serangkaian gambar, teks dan suarasehingga mampu memvisualisasikan pelajaran dengan lebih baik. Demikian diharapkan proses pembelajaran dapat terasa lebih menarik, pada saat yang bersamaan siswa juga dapat berinteraksi dalam pelajaran tersebut. Sebuah ilustrasi juga dapat digunakan sebagai sarana untuk mendukung agar teks atau narasi yang panjang dapat menjadi lebih menarik sehingga informasi akan lebih mudah dipelajari dan diingat oleh siswa. Agar dapat meningkatkan


(10)

pemahaman belajar siswa pada mata pelajaran fisika khususnya momentum dan impuls maka dapat dilakukan melalui media pembelajaran interaktif yakni berupa Aplikasi Pembelajaran fisika momentum dan impuls Berbasis Desktop.

Simulasi pembelajaran fisika momentum dan impuls merupakan simulasi yang memberikan gambaran suatu kejadian suatu benda yang bergerak pada kelajuan yang konstan dan menggambarkan peristiwa gaya yang berkerja pada benda pada saat benda bertumbukan dalam waktu hanya sesaat[15]. Kelayakan fisik dinamika benda tegar tergantung keakuratan deteksi tumbukan yang mampu menghitung dalam milidetik antara animasi setiap frame ketika menggunakan pemodelan fisik untuk menghadirkan aplikasi virtual reality[18]. Untuk memecahkan masalah tersebut dibutuhkan algoritma yang dapat mendeteksi titik tumbukan pada dua buah benda, terdapat beberapa algoritma yang dapat digunakan untuk memecahkan masalah tersebut seperti algoritma separating axis theorem (SAT) namun Ericson menjelaskan bahwa dibanding algoritma yang lain cara yang efektif untuk menyederhanakan tabrakan antara dua objek yang bergerak adalah algoritma gilbert jhonson kheerthi [6].

Algoritma Gilbert Johnson Keerthi (GJK) merupakan algoritma yang digunakan dengan tujuan utama untuk menentukan jarak terdekat dari titik point antara dua convex shapes (bentuk cembung) [6], tetapi dapat pula digunakan untuk menentukan apakah convex shapes tersebut berpotongan atau tidak. Di dalam simulasi momentum dan impuls, semua objek benda yang di buat pengguna akan memiliki besaran atau parameter momentum yang jika terjadi sebuah impuls akan terjadi perubahan parameter di setiap objeknya. Hal tersebut memerlukan sebuah algoritma yang mendukung perhitungan titik temu convex hull terhadap objek satu dengan objek lainnya saat terjadi tumbukan sehingga menghasilkan impact yang akurat dan algoritma GJK diharapkan mampu menentukan jarak terdekat dari setiap convex hull (titik point) tersebut hingga mencapai titik temu saat terjadi tumbukan.

Berdasarkan latar belakang masalah yang telah dipaparkan, maka perlu menambah fasilitas pendukung pembelajaran mata pelajaran fisika momentum dan impuls dalam bentuk ilustrasi atau simulasi sehingga memudahkan siswa untuk memahami materi serta menerapkan algoritma gilbert jhonson keerthi untuk


(11)

membangun simulasi fisika momentum dan impuls sehingga diharapkan dapat memberikan pemodelan yang lebih realistis dan akurat.

1.2 Identifikasi Masalah

Berdasarkan uraian yang ada di latar belakang masalah, maka identifikasi masalahnya adalah:

1. Bagaimana cara mensimulasikan momentum dan impuls untuk menambah fasilitas pendukung pembelajaran mata pelajaran fisika?

2. Bagaimana memodelkan simulasi fisika momentum dan impuls dengan impact yang sesuai dengan parameter masukan bola?

3. Bagaimana mengimplementasikan algoritma gilbert jhonson keerthi untuk menentukan titik temu convex hull antara dua buah convex shapes?

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah mengimplementasikan algoritma gilbert jhonson keerthi pada simulasi fisika momentum dan impuls.

Adapun tujuan yang akan dicapai dari penelitian ini adalah :

1. Dapat mensimulasikan momentum dan impuls untuk menambah fasilitas pendukung pembelajaran mata pelajaran fisika.

2. Dapat memodelkan simulasi fisika momentum dan impuls dengan impact yang sesuai dengan parameter masukan bola.

3. Dapat mendeteksi tumbukan titik temu convex hull antara dua buah convex shapes pada saat terjadi impuls.

1.4 Batasan Masalah

Berdasarkan latar belakang yang telah diuraikan sebelumnya, maka dibuat batasan masalah agar ruang lingkup penelitian ini jelas. Adapun batasan masalah yang dibuat adalah sebagai berikut :

1. Materi yang akan dibahas dalam pembangunan aplikasi pembelajaran ini adalah materi mata pelajaran fisika momentum dan impuls.

2. Buku acuan yang digunakan adalah buku pelajaran fisika untuk kelas XI sesuai standar KTSP 2006 [2].


(12)

3. Aplikasi yang dibangun berbasis desktop dan dikemas dalam tampilan 2D. 4. Media pembelajaran fisika yang dibangun berbentuk simulasi.

5. Metode analisis perancangan yang digunakan adalah analisis perancangan dan pengembangan perangkat lunak berorientasi obyek, dengan menggunakan pemodelan UML (Unified Modeling Language).

1.5 Metodologi Penelitian

Metode penelitian yang digunakan adalah metode desktiptif. Penelitian deskriptif adalah penelitian yang bertujuan untuk menjelaskan atau mendeskripsikan suatu keadaan, peristiwa, objek apakah orang, atau segala sesuatu yang terkait dengan variabel-variebel yang bisa dijelaskan baik dengan angka-angka maupun kata-kata [17]. Metode-metode yang digunakan dalam pengumpulan data dan pembangunan perangkat lunak adalah sebagai berikut :

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a. Studi Pustaka

Studi pustaka yang dilakukan adalah dengan mempelajari berbagai literatur, jurnal, paper, e-book, yang membahas tentang masalah simulasi pembelajaran, algoritma gilbert jhonson keerthi, Fisika momentum dan impuls, dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

b. Wawancara

Teknik pengumpulan data dengan cara melakukan wawancara atau tanya jawab secaralangsung dengan guru fisika.

c. Observasi

Observasi dalam penelitian ini dilakukan dengan cara mengamati proses dan kegiatan belajar siswa di SMA Pasundan 3 Cimahi.


(13)

1.5.2 Metode Pembangunan Perangkat Lunak

Metode pembangunan yang digunakan dalam pembangunan perangkat lunak ini menggunakan metode pengembangan multimedia seperti pada gambar 1.1 Metode pengembangan multimedia terdiri dari 6 tahapan [15].

Tahapan dari metode pengembangan multimedia adalah sebagai berikut : 1. Concept

Tahap concept adalah tahap untuk menentukan tujuan dan siapa target pengguna program. Selain itu menentukan macam aplikasi seperti presentasi, interaktif dan simulasi. Tujuan dibangunnya aplikasi pembelajaran ini adalah untuk menghasilkan aplikasi pembelajaran yang dapat membantu siswa dalam memahami materi yang sulit dipahami dan meningkatkan hasil belajar siswa pada pelajaran fisika khususnya momentum dan impuls.

2. Design

Pada tahap ini dilakukan penentuan spesifikasi mengenai arsitektur program yang akan dibangun untuk dapat memahami gambaran yang akan terlihat, bagaimana penyusunnya, dan karakteristik lainnya dengan menggambarkan pemodelan fungsionalnya menggunakan UML (Unified Modeling Language) serta kebutuhan material atau bahan untuk membangun aplikasi pembelajaran fisika momentum dan impuls.

3. Material Collecting

Tahap ini adalah tahap dimana pengumpulan bahan yang sesuai dengan kebutuhan dalam pembangunan aplikasi pembelajaran fisika momentum dan impuls, mulai dari pengumpulan buku atau jurnal yang berkaitan dengan aplikasi pembelajaran yang akan dibuat.

4. Assembly

Tahap pembuatan merupakan proses dimana semua objek atau bahan multimedia dibuat. Pembuatan aplikasi didasarkan pada tahap design yang telah dilakukan sebelumnya. Pada tahap ini dilakukan proses coding atau pengkodean, yang merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Tahap penerjemahan data atau pemecahan masalah yang telah dirancang kedalam bahasa pemrograman action script.


(14)

5. Testing

Setelah selesai tahap assembly maka akan dilakukan testing berupa pengujian black box terhadap sistem yang telah dibuat. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki. 6. Distribution

Tahap terakhir dari pembangunan aplikasi pembelajaran fisika momentum dan impuls adalah distribusi, yaitu aplikasi akan didistribusikan kepada siswa untuk digunakan dalam proses pembelajaran fisika momentum dan impuls.

Gambar 1.1 Metode Pengembangan Multimedia [16]

1.6 Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan, sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisikan tentang latar belakang masalah dari penelitian tentang implementasi algoritma gilbert jhonson keerthi untuk objek benda pada simulasi pembelajaran fisika momentum dan impuls, identifikasi masalah, maksud dan tujuan penelitian, batasan masalah, metodologi penelitian dan sistematika penulisan.


(15)

BAB 2 LANDASAN TEORI

Bab ini berisi pembahasan mengenai landasan teori yang berhubungan dengan penulisan penelitian ini, seperti : pengertian fisika, pengertian momentum dan impuls, jenis-jenis momentum, pengertian simulasi, algoritma yang digunakan dalam simulasi, bahasa pemrograman yang dipakai, tools yang digunakan dan teori-teori lain yang menunjang dan ada kaitannya dengan topik penelitian yang diambil.

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA

Bab ini berisi analisis sistem, analisis masalah dari permasalahan yang timbul dari penelitian yang sedang dilakukan, analisis simulasi yang akan dibangun atau dikebangkan, analisis algoritma yang akan diimplementasikan, analisis masukan yang diperlukan algoritma, serta analisis perangkat lunak.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi dari hasil analisis dan perancangan yang dibahas pada BAB 3, serta hasil pengujian sistem yang telah dilakukan.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan yang diperoleh dalam mengimplementasikan algoritma gilbert jhonson keerthi pada simulasi pembelajaran fisika momentum dan impuls dan saran yang diberikan untuk pengembangan perangkat lunak di masa yang akan datang.


(16)

(17)

9

Fisika merupakan salah satu pilar utama ilmu pengetahuan dan teknologi yang memberikan pemahaman mengenai fenomena alam serta kemungkinan aplikasinya dalam meningkatkan kesejahteraan hidup umat manusia [1].

2.1.1 Momentum Dan Impuls A. Pengertian Momentum

Momentum didefinisikan sebagai ukuran kesukaran untuk memberhentikan suatu benda ,momentum diperoleh dari hasil kali besaran skalar massa dengan besaran vector kecepatan [2]. Secara matematis dapat dituliskan sebagai berikut :

� = �. � (Persamaan 1)

Keterangan

 p = momentum(kg.m/s)

 m = massa(kg)

 v =kecepatan(m/s) B. Pengertian Impuls

Impuls adalah peristiwa gaya yang bekerja pada benda dalam waktu hanya sesaat. Atau Impuls adalah peristiwa bekerjanya gaya dalam selang waktu yang sangat singkat [2]. Contoh dari kejadian impuls adalah: peristiwa seperti bola ditendang, bola tenis dipukul karena pada saat tendangan dan pukulan, gaya yang bekerja sangat singkat.

� = . Δt (Persamaan 2)

Keterangan

 I = impuls

 F =gaya(N)


(18)

C. Hubungan Impuls dan Momentum

Impuls yang dikerjakan pada suatu benda sama dengan perubahan momentum yang dialami benda itu, yaitu beda antara momentum akhir dengan momentum awal [2].

I = p2 –p1 = Δp

F. Δt = Δp

F = Δp / Δt (Persamaan 3)

Artinya, gaya (F) yang diberikan pada suatu benda sama dengan perubahan

momentum (Δp) benda per satuan waktu Δt.

2.1.2 Tumbukan

Tumbukan adalah pertemuan dua benda yang relatif bergerak. Pada setiap jenis tumbukan berlaku hukum kekekalan momentum tetapi tidak selalu berlaku hukum kekekalan energi mekanik. Sebab disini sebagian energi mungkin diubah menjadi panas akibat tumbukan atau terjadi perubahan bentuk. Tumbukan terdapat perbedaan jenis berdasarkan nilai koefisien elastisitasnya (koefisien restitusi = e). Koefisien elastisitas (e) dari dua buah benda yang bertumbukan didefinisikan sebagai harga negatif dari perbandingan antara beda kecepatan kedua benda yang bertumbukan sesaat sesudah tumbukan dan sesaat sebelum tumbukan. Secara matematis ditulis :

� =−∆�∆�′ =− � ′−� ′� −� (Persamaan 4)

Nilai koefisien elastisitas (e) terbatas, yaitu 0 < e < 1 2.1.2.1. Tumbukan Lenting Sempurna

Seorang pemain biliar memukul bola biru secara perlahan tanpa memberi efek putaran menuju bola merah yang diam. Bola biru kemudian menumbuk bola merah. Sesaat sesudah tumbukan bola putih menjadi diam dan bola merah bergerak dengan kecepatan yang hampir sama dengan kecepatan datangnya bola biru.


(19)

Peristiwa tumbukan antara bola biru (1) dan bola merah (2) dapat dilukiskan pada diagram Gambar 2.1.

Gambar 2.1 Tumbukan antara bola biru dan biru

Asalkan gaya luar yang bekerja pada sistem diabaikan, maka kekekalan momentum berlaku pada tumbukan ini. Karena bola merah (bola 2) diam sebelum tumbukan dan bola biru (bola 1) diam sesudah tumbukan, sedangkan massa kedua bola sama, maka kecepatan bola 2 sesudah tumbukan pastilah sama dengan kecepatan bola 1 sebelum tumbukan, yaitu v. Dalam kasus tumbukan ini seakan-akan momentum bola 1 dialihkan seluruhnya ke momentum bola 2. Bagaimana energi kinetiknya? Energi kinetik sebelum tumbukan yaitu energi kinetik bola 1, �� , ternyata juga sama dengan energi kinetik sesudah tumbukan, yaitu energi kinetik bola 2, �� . Jadi, dalam kasus tumbukan ini seakan-akan energi kinetik bola 1 juga dialihkan seluruhnya ke energi kinetik bola 2.

Dalam peristiwa tumbukan dua bola biliar seperti ditunjukkan pada Gambar 1, selain momentum sistem tetap, energi kinetik sistem juga tetap. Jenis tumbukan dimana berlaku kekekalan momentum dan kekekalan energi kinetik, kita sebut tumbukan lenting sempurna.

Perhatikan dua benda bermassa m1 dan m2 yang sedang bergerak saling

mendekat dengan kecepatan v1 dan v2 sepanjang suatu garis lurus, seperti

ditunjukkan pada Gambar 2.2.


(20)

Keduanya bertumbukan lenting sempurna dan kecepatan masing-masing sesudah tumbukan adalah v1’ dan v2’. Pada tumbukan lenting sempurna berlaku

hukum kekekalan momentum dan hukum kekekalan energi kinetik.

� + � = �′ + �

� � + � � = � � ′ + � � ′ (Persamaan 5) dan

� + � = � ′ + � ′

� � + � � = � � ′ + � � ′ (Persamaan 6)

Dari kedua persamaan tersebut, dapat diketahui hubungan antara v1, v2, v1’,

dan v2’ adalah sebagai berikut:

� � − � ′ = � � ′ − �

Dan

� � − � ′ = � � ′ − � (Persamaan 7)

Dengan mengingat rumus aljabar − = + − , persamaan (3) dapat ditulis menjadi:

� � − � ′ � + � ′ = � � ′ − � � ′ + � ′ (Persamaan 8) Jika persamaan (4) dibagi persamaan (3), diperoleh

� + � ′ = � ′ + �

Atau

� − � = − � ′ − � ′ (Persamaan 9) Pada persamaan (5) ini, � − � menyatakan kecepatan relatif dua benda sebelum tumbukan, sedangkan � ′ − � ′ menyatakan kecepatan relatif dua benda setelah tumbukan. Jadi, untuk tumbukan lenting sempurna sepusat (seluruh gerakannya terletak pada satu garis lurus), kelajuan relatif kedua benda setelah tumbukan sama dengan kelajuan relative sebelum tumbukan, tidak terpengaruh massa benda yang bertumbukan.


(21)

2.1.2.2. Tumbukan Lenting Sebagian

Pada umumnya dua buah benda yang bertumbukan, sebagian besar mengalami tumbukan lenting sebagian. Sebagai contoh, bola tenis atau bola kasti yang dilepas dari ketinggian h1 di atas lantai akan terpental setinggi h2, dimana

h2 selalu lebih kecil dari h1.

Pada pembahasan tumbukan lenting sempurna, pada persamaan 5 diperoleh

∆�′= −∆�e

atau

−∆�′

∆� =

Rasio −∆�′

∆� inilah yang didefinisikan sebagai koefisien restitusi.

Koefisien restitusi (diberi lambang e) adalah negatif perbandingan antara kecepatan relatif sesaat sesudah tumbukan dengan kecepatan relatif sesaat sebelum tumbukan.

� =−∆�∆� =′ − � ′ − � ′� − �

Nilai koefisien restitusi adalah terbatas, yaitu antara nol dan satu (0 ≤ e ≤ 1).

Untuk tumbukan lenting sempurna:

� =−∆�∆� =

Untuk tumbukan tak lenting sama sekali:

� =−∆�∆� =′ − � ′ − � ′� − � =

sebab � ′ = � ′

Seperti telah disebutkan bahwa sebagian besar tumbukan adalah tumbukan lenting sebagian, yaitu tumbukan yang berada di antara dua keadaan ekstrem tumbukan lenting sempurna dan tumbukan tak lenting sama sekali. Jelaslah bahwa pada tumbukan lenting sebagian, koefisien restitusi adalah 0 < e < 1, misalnya e = , e = , dan e = 0,6.


(22)

2.1.2.3 Tumbukan Tidak Lenting Sama Sekali

Segumpal plastisin dilemparkan dalam arah mendatar menuju ke sebuah bola bilyar yang diam di atas lantai licin. Plastisin tersebut menumbuk sentral bola dan sesaat setelah tumbukan, plastisin menempel pada bola bilyar dan keduanya kemudian bergerak bersama dengan kecepatan sama. Ini adalah contoh tumbukan tidak lenting sama sekali. Jadi, untuk tumbukan tidak lenting sama sekali, sesaat setelah tumbukan kedua benda bersatu dan bergerak bersama dengan kecepatan yang sama. Contoh lain dari tumbukan tidak lenting sama sekali adalah pada ayunan balistik di mana peluru tertanam dalam sebuah balok, dan keduanya kemudian mengalami suatu gerak ayunan.

Karena pada tumbukan tak lenting sama sekali kedua benda bersatu sesudah tumbukan, maka berlaku hubungan kecepatan sesudah tumbukan yaitu:

� ′ = � ′ = �′ (Persamaan 10)

Persamaan (6) dimasukkan dalam persamaan hukum kekekalan momentum:

� � + � � = � � ′ + � � ′

sehingga persamaannya menjadi:

� � + � � = � + � �′ (Persamaan 11) Apabila benda bermassa m1 mula-mula bergerak dengan kecepatan v1 dan

benda bermassa m2 mula-mula diam, maka persamaannya menjadi:

� � + � . = � + � �′ (Persamaan 12) atau

�′ =� + � �

Jadi, dengan mengetahui massa dan kecepatan mula-mula, dapat dihitung kecepatan benda setelah tumbukan.

2.1.3 Tumbukan Pada Dua Dimensi

Kekekalan momentum dan energi juga bisa diterapkan pada tumbukan dua atau tiga dimensi, dan sifat vektor momentum sangat penting. Satu tipe umum dari tumbukan yang tidak berhadapan adalah di mana sebuah partikel yang bergerak (disebut proyektil) menabrak partikel kedua yang diam (partikel "target"). Ini


(23)

merupakan situasi umum pada permainan seperti bilyar, dan untuk eksperimen pada fisika atom dan nuklir (proyektil, dari pancaran radioaktif atau akselerator energi-tinggi, menabrak inti target yang stasioner).

Gambar 2.3 Tumbukan 2D

Dari kekekalan momentum , untuk komponen gerak dalam arah x :

cos

cos

2 2

1 1 1

1

v

i

m

v

f

m

v

f

m

(Persamaan 13)

untuk komponen gerak dalam komponen y :

sin

sin

0

m

1

v

1f

m

2

v

2f (Persamaan 14) Bila dianggap tumbukannya lenting :

� � ² + � � ² = � �’ ² + � � ’² (Persamaan 15)

Bila keadaan awal diketahui, masih ada 4 besaran yang tidak diketahui, tetapi persaamannya hanya 3, oleh karena itu salah satu besaran keadaan akhir harus diberikan [11].

2.2. Metode Simulasi

Simulasi adalah tiruan dari operasi proses dunia nyata atau sistem dari waktu ke waktu [3]. Simulasi digunakan dalam banyak konteks, seperti simulasi teknologi untuk optimasi kinerja, rekayasa keselamatan, pengujian, pelatihan, pendidikan, dan video game. Seringkali, percobaan komputer digunakan untuk mempelajari model simulasi. Simulasi juga digunakan dengan pemodelan ilmiah sistem alam atau sistem manusia untuk mendapatkan informasi tentang fungsi


(24)

mereka. Simulasi dapat digunakan untuk menunjukkan efek nyata akhirnya kondisi dan tindakan alternatif. Simulasi juga digunakan ketika sistem nyata tidak dapat bergerak, karena tidak dapat diakses, atau mungkin berbahaya atau tidak dapat diterima untuk terlibat, atau sedang dirancang tetapi belum dibangun, atau mungkin hanya tidak ada [7].

2.3. Algoritma Gilbert Jhonson Keerthi

Algoritma adalah urutan langkah-langkah logis pada penyelesaian masalah yang disusun secara sistematis. Masalah dapat berupa apa saja, dengan catatan untuk setiap masalah ada syarat kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Konsep algoritma sering kali disetarakan dengan sebuah resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan digunakan, urutan pengerjaan, dan bagaimana hasil dari urutan pengerjaan tersebut. Apabila bahan yang digunakan tidak tertera (tidak tersedia), maka resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat diperoleh

Algoritma yang berbeda, dapat diterapkan pada suatu masalah dengan syarat yang sama. Tingkat kerumitan dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Umumnya, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.

Algoritma Gilbert Johnson Keerthi (GJK) merupakan algoritma yang ditujukan untuk menentukan jarak terdekat antara dua convex shapes (bentuk cembung) [6], tetapi dapat pula digunakan untuk menentukan apakah convex shapes tersebut berpotongan atau tidak. GJK hanya dapat digunakan pada convex shapes, Tidak seperti banyak algoritma jarak lainnya, GJK tidak memerlukan data geometri yang disimpan dalam format tertentu, melainkan hanya mengandalkan support function untuk membangun sebuah simplex. Pada dasarnya GJK secara iteratif


(25)

mencari convex hull (titik point) terdekat dengan bagian origin namun pada kasus pencarian jarak terdekat antara dua convex shapes maka GJK sangat bergantung pada sebuah konsep yang disebut minkowski sum [8].

Berikut algoritma GJK secara keseluruhan :

1. Simplex Initialze ke himpunan kosong (simplex -1D, secara teknis). 2. Gunakan arah awal untuk menemukan support point dari minkowski. 3. Menambahkan support point untuk simplex.

4. Mencari titik terdekat dari simplex ke origin

5. Jika titik terdekat adalah origin, maka minkowski berisi origin dan dua objek bertabrakan. (Akhir GJK).

6. Jika tidak, mengurangi simplex ke dimensi terendah yang masih mengandung titik terdekat dengan membuang simpul.

7. Gunakan arah dari titik terdekat ke origin untuk menemukan support point baru.

8. Jika support point baru tidak lebih dari sepanjang arah pencarian dari titik terdekat, dua benda tidak bertabrakan. (Akhir GJK).

9. Menambahkan support point untuk simplex sebagai titik baru. Ulangi ke langkah 4 [6].

2.3.1. Simplex

Untuk mendekati jarak yang sebenarnya suatu benda, GJK iteratif memilih sebuah simpleks (lihat Gambar II.10) dalam objek dan menghitung jarak ke simpleks ini. Sebuah simpleks adalah polytope dari n + 1 simpul dalam ruang n-dimensi. Untuk GJK, dua kasus yang paling menarik secara alami dua dimensi dan tiga dimensi ruang. Oleh karena itu, algoritma ini menggunakan 2-simpleks masing-masing segitiga untuk ruang dua dimensi dan 3-simpleks masing tetrahedron tiga dimensi ruang [9].


(26)

Gambar 2.4 Simplex 2.3.2. Convex Hull

Dalam matematika, convex hull atau amplop cembung set X dari titik pada bidang Euclidean atau ruang Euclidean adalah himpunan cembung terkecil yang berisi X. Misalnya, ketika X adalah subset dibatasi bidang, convex hull dapat divisualisasikan sebagai bentuk dibentuk oleh karet gelang membentang sekitar X [10]. GJK bekerja dengan benda-benda cembung saja dan mendekati jarak objek yang sebenarnya dengan jarak komputasi untuk simplices dalam object. Terlebih, mungkin perlu untuk menggunakan convex hull dari simplex saat perhitungan, jika tidak bentuk cembung sendiri [9].

Gambar 2.5 Convex Hull dalam analogi karet gelang

0-simplex

1-simplex

2-simplex

3-simplex


(27)

2.3.3. Convex

Sebuah shapes dianggap convex jika, untuk setiap garis yang ditarik melalui shapes, garis yang melintasinya hanya dua kali. Jika garis dapat ditarik melalui bentuk dan menyeberang lebih dari dua kali maka shapes tersebut bukanlah convex (atau cekung). Contoh :

Gambar 2.6 Convex

Gambar 2.7 Non - Convex

Shape pertama dianggap convex karena tidak ada garis yang dapat ditarik melalui bentuk di mana ia akan menyeberanginya lebih dari dua kali. Bentuk kedua tidak convex karena ada garis yang melintasi lebih dari dua kali.

2.3.4. Minkowski Different

Algoritma GJK sangat bergantung pada konsep yang disebut Minkowski Sum. Konseptual Minkowski Sum sangat mudah dimengerti. Apabila kita memiliki


(28)

dua buah shapes, Minkowski Sum dari shape tersebut adalah semua poin di shape 1 ditambahkan ke semua poin di shape 2:

C = A + B = {a + b | a∈A, b∈B} (Persamaan 16) Dengan kata lain, setiap titik B ditambahkan ke setiap titik A dan Hasil operasi membentuk objek baru C. Karena hasilnya adalah satu set juga, mungkin duplikat poin berkembang dari penambahan adalah mengeliminasi terkontaminasi. Dengan demikian, kardinalitas C selalu lebih kecil atau sama dengan jumlah yang dari kardinalitas A dan B [9]. Untuk mengetahui apakah kedua convex shapes tersebut bertumbukan atau berpotongan maka operator diubah menjadi dikurangi yang bernama Minkowski Different :

C = A - B = {a - b | a∈A, b∈B} (Persamaan 17) Minkowski Different adalah kunci untuk ide algoritma mengurangi masalah kedekatan dua benda pada satu jarak object. Dua convex shapes A dan B adalah sama dengan jarak mereka. Jika dua convex shape tersebut bertumbukan / berpotongan maka Minkowski different akan berisi asal (origin).


(29)

Dari contoh gambar diatas dua convex shapes berada dalam kondisi berpotongan maka ketika dilakukan Minkowski Different maka akan menghasilkan shapes pada Gambar II.9

Gambar 2.9 Minkowski Different

Perhatikan bahwa shapes yang dihasilkan mengandung asal (0,0). Hal ini karena shapes yang berpotongan.

2.3.5 Support Function

Support function diciptakan untuk membangun simplex. Suport Function seharusnya mengembalikan poin kedalam Minkowski Different yang dihasilkan dua shapes. Telah diketahui bahwa kita dapat mengambil poin dari shape 1 dan titik dari shape 2 dan mengurangi mereka untuk mendapatkan poin dalam Perbedaan Minkowski.

Dapat dipastikan bahwa kita tidak mendapatkan poin yang sama setiap pemanggilan support function jika kita membuat fungsi dukungan tergantung pada arah. Dengan kata lain, jika kita mengembalikan support function pada titik terjauh dalam beberapa arah, kita bisa memilih arah yang berbeda kemudian untuk mendapatkan sudut pandang yang berbeda. Memilih titik terjauh dalam arah memiliki makna karena ia menciptakan simpleks yang mengandung luas maksimum sehingga meningkatkan kemungkinan bahwa algoritma selesai dengan cepat. Selain itu, kita dapat menggunakan fakta bahwa semua poin kembali dengan


(30)

cara ini berada di tepi minkowski different dan oleh karena itu jika kita tidak dapat menambahkan poin sebelumnya asal sepanjang beberapa arah kita tahu bahwa minkowski different tidak mengandung asal. Hal ini meningkatkan kemungkinan algoritma selesai dengan cepat dalam kasus-kasus non-convex.

2.4. Adobe Flash CS5

Flash merupakan program atau software yang ditujukan untuk membuat animasi, desain, web, aplikasi, game, dan sebagaianya. Flash lebih dikenal khalayak ramai sebagai software pembuat animasi. Seiring perkembangan zaman yang semakin maju dan pesat dalam bidang teknologi khususnya dalam bidang teknologi informasi, flash sampai sekarang telah mencapai versi 11 atau lebih dikenal dengan Adobe Flash CS5 Profesional yang dirilis oleh perusahaan software ternama di Amerika Serikat, yaitu Adobe System Incorporated.

Flash CS5 yang sekarang banyak dikenal dengan kemampuan yang andal dalam membuat animasi-animasi, tetapi tidak jarang yang mengenal sisi lain dari kelebihan Flash ini. Salah satunya adalah mempunyai bahasa pemrograman yang sangat ampuh dalam segala hal, yaitu Action Script yang sekarang sudah dirilis samapai ke versi 3.0 yang dimiliki oleh Flash CS3,CS4, dan CS5.

Adobe Flash CS5 menawarkan beberapa pembaruan yang komplet dengan penawaran penggunaan lebih menyenangkan. Fasilitas seperti 3D Effect atau transformations yang sangat menarik dapat digunakan untuk membuat efek-efek animasi 3 dimensi yang menarik. Berbagai fasilitas dan fitur terbaru telah disediakan untuk kemudahan dalam pengolahan para penggunanya. Adobe Flash CS5 merupakan penyempurnaan dari versi sebelumnya (CS4)[14].

2.4.1. Pengenalan Tool dalam Adobe Flash CS5

Beberapa komponen kerja program Adobe Flash CS5 telah ditampilkan sebagai tampilan standart. Masih banyak lagi komponen yang masih tersembunyi sehingga memerlupan perintah tertentu untuk menampilkannya. Berikut ini adalah beberapa komponen kerja dari Adobe Flash CS5[14]:


(31)

1. Toolbox. 2. Timeline

Timeline berguna untuk menentukan durasi animasi, jumlah layer, frame, menempatkan script dan beberapa keperluan animasi lainnya. Semua bentuk animasi yang Anda buat akan diatur dan ditempatkan pada layer dalam timeline.

3. Output.

4. Compiler errors. 5. Motion Editor

Motion editor berguna untuk melakukan control animasi yang telah dibuat seperti: mengatur motion, transformasi, pewarnaan, filter dan parameter animasi lainnya.

6. Stage

Stage adalah lembar kerja yang digunakan untuk membuat atau mendesain objek yang akan dianimasikan. Objek yang dibuat dalam lembar kerja dapat berupa objek vector, movie clip, text, button dan lain-lain. 7. Properties, library.

8. Color, swatches. 9. Align, info, transform.

2.5. Pemrograman Berorientasi Objek

Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya. Metodologi berorientasi objek merupakan suatu cara bagaimana sistem perangkatl unak berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi objek meliputi rangkaian aktivias analisis berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek, dan pengujian berorientasi objek.


(32)

Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi lama banyak menimbulkan masalah seperti adanya kesulitan pada saat mentransformasi hasil dari suatu tahap pengembangan ke tahap berikutnya, misalnya pada metode pendekatan terstruktur, jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu. Aplikasi yang dikembangkan pada saat ini sangat beragam (aplikasi bisnis, real-time, utility, dan sebagainya) dengan platform yang berbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut [12].

Keuntungan menggunakan metodologi berorientasi objek adalah sebagai berikut [12]:

1. Meningkatkan produktivitas

Karena kelas dan objek yang ditemukan dalam suatu masalah masih dapat dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut (reusable).

2. Kecepatan pengembangan

Karena sistem yang dibangun dengan baik dan benar pada saat analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.

3. Kemudahan pemeliharaan

Karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang mungkin sering berubah-ubah. 4. Adanya konsistensi

Karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodean.

5. Meningkatkan kualitas perangkat lunak

Karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengembangannya, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.


(33)

2.5.1 UML (Unified Modeling Language)

UML adalah bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek. UML diperlukan karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung [12].

2.5.2 Diagram UML

Pada UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3 kategori [12]. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar 2.10

Behavior Diagrams

Composite structure diagrams

UML 2.3 Diagram

Structure Diagrams Intraction Diagrams Class diagram Object diagram Component diagram Package diagram Deployment diagram Use case diagram Activity diagram State machine diagram Sequence diagram Communication diagram Interaction overview diagram Timing diagram


(34)

Berikut ini adalah penjelasan singkat dari pembagian kategori tersebut:

a. Structure diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.

b. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.

c. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem.

Penjelasan tentang masing-masing diagram adalah sebagai berikut: 1. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

2. Object Diagram

Diagram objek menggambarkan struktur sistem dari segi penamaan objek dan jalannya objek dalam sistem. Diagram objek juga berfungsi untuk mendefinisikan contoh nilai atau isi dari atribut tiap kelas.

3. Component Diagram

Diagram komponen atau component diagram dibuat untuk menunjukan organisasi dan ketergantungan diantara kumpulan komponen dalam sebuah sistem. Diagram komponen fokus pada komponen sistem yang dibutuhkan dan ada di dalam sistem

4. Composite Structure Diagram

Diagram ini dapat digunakan untuk menggambarkan struktur dari bagian-bagian yang saling terhubung maupun mendeskripsikan struktur pada saat berjalan (runtime) dari instance yang saling terhubung.

5. Package Diagram

Package diagram menyediakan cara mengumpulkan elemen-elemen yang saling terkait dalam diagram UML. Hampir semua diagram dalam UML dapat dikelompokkan menggunakan package diagram.


(35)

6. Deployment Diagram

Deployment diagram menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi.

7. Use Case Diagram

Use case diagram merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat.

8. Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak.

9. State Machine Diagram

State machine diagram atau state chart diagram digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem atau objek.

10. Sequence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek.

11. Communication Diagram

Diagram komunikasi menggambarkan interaksi antar objek/bagian dalam bentuk urutan pengiriman pesan. Diagram komunikasi merepresentasikan informasi yang diperoleh dari diagram kelas, diagram sekuen, dan diagram use case untuk mendeskripsikan gabungan antara struktur statis dan tingkah laku dinamis dari suatu sistem.

12. Timing Diagram

Timing diagram merupakan diagram yang fokus pada penggambaran terkait batasan waktu. Timing diagram digunakan untuk menggambarkan tingkah laku sistem dalam periode waktu tertentu.


(36)

13. Interaction Overview Diagram

Interaction overview diagram berfungsi untuk menggambarkan sekumpulan urutan aktivitas. Interaction overview diagram adalah bentuk aktivitas diagram yang setiap titik merepresentasikan diagram interaksi.


(37)

29

Analisis masalah pada pembangunan aplikasi pembelajaran fisika momentum dan impuls yaitu sebagai berikut :

1. Bagaimana cara mensimulasikan momentum dan impuls untuk menambah fasilitas pendukung pembelajaran mata pelajaran fisika?

2. Bagaimana memodelkan simulasi fisika momentum dan impuls dengan impact yang sesuai dengan parameter masukan bola?

3. Bagaimana mengimplementasikan algoritma gilbert jhonson keerthi untuk menentukan titik temu convex hull antara dua buah convex shapes?

3.2. Analisis Sistem

Aplikasi yang dibangun ini adalah simulasi pembelajaran berbasis desktop untuk simulasi pembelajaran fisika momentum dan impulse.

Dalam simulasi ini,bola akan dilemparkan oleh catapult yang mana bola tersebut akan mengarah pada papan yang akan menjadi batasannya, untuk mendeteksi jarak antara bola dan papan serta adanya tumbukan diantara keduanya maka algoritma GJK akan mengatasi hal tesebut, berikut adalah flow chart algoritma GJK yang dapat dilihat pada gambar.


(38)

mulai

Deklarasi simplex dan

arah awal

Menambahkan support point untuk

simplex

Cari titik terdekat dari vertex ke

origin

Titik terdekat adalah origin?

Kedua objek bertumbukan

Kedua objek tidak bertumbukan

Selesai

Support point lebih dari sepanjang arah

pencarian?

Mengurangi simplex dan membuang simpul

Menentukan arah untuk menemukan support

point baru

Ya Ya

Tidak

Tidak


(39)

Simulasi yang akan dibangun ini merupakan salah satu dari aplikasi yang menggambarkan fisika momentum dan impuls yang terjadi pada catapult yang pada zaman dahulu sering digunakan sebagai alat perang.

3.3 Analisis Masukan

Pada bagian ini menjelaskan dua jenis data masukan yang diperlukan aplikasi untuk memproses algoritma gilbert jhonson keerthi yaitu Convex Shapes. 3.4 Analisis Algoritma Gilbert Jhonson Keerthi

Maksud sebenarnya dari algoritma GJK adalah untuk menentukan jarak terdekat antara dua buah convex shapes, namun GJK juga dapat digunakan untuk mengembalikan informasi tumbukan antara dua buah convex shapes.[6] Tidak seperti banyak algoritma jarak lainnya, GJK tidak memerlukan data geometri yang disimpan dalam format tertentu, melainkan hanya mengandalkan fungsi dukungan (Support function) secara iterasi untuk menghasilkan simplisit terdekat dengan jawaban yang benar menggunakan minkowski different dari dua convex shapes. Didalam hal ini algoritma GJK digunakan untuk mengembalikan informasi tumbukan antara dua buah objek benda 2D yang kemudian akan berlanjut pada berjalannya hukum momentum dan impuls. Berikut adalah penjelasan dari algoritma GKJ.

Misalkan dalam simulasi momentum dan impulse terdapat 2 buah convex shapes yaitu A sebagai peluru dan B sebagai tembok atau penghalang.


(40)

Gambar 3.2 Convex Shape A dan Convex Shape B

GJK menggunakan konstruksi matematika tertentu yang disebut minkowski different. Minkowski different dari dua buah convex shape membentuk convex shape baru. Convex Shape baru didefinisikan sebagai menambahkan setiap Convex Hull A ke setiap convex hull di B.

Hal pertama yang dilakukan adalah mendeteksi apakah kedua objek dalam kondisi bertumbukan atau tidak,dengan menggunakan kosep minkowski different yaitu diambil titik terluar sebagai perhitungan. Konsep minkowski different dapat dihitung dengan menggunakan perhitungan sebagai berikut:

C = A – B = {a – b|a∈A, b∈B} Ket : C = Convex Shape C

A = Convex Shape Peluru B = Convex Shape Tembok a = Convex Hull A


(41)

Tabel 3.1 Hasil perhitungan minkowski different Convex Hull A Convex Hull B Convex Hull C (C= A –

B)

(-3,1)

(4,2) (-7,-1)

(6,2) (-9,-1)

(6,6) (-9,-5)

(4,6) (-7,-5)

(-2,2)

(4,2) (-6,0)

(6,2) (-8,0)

(6,6) (-8,-4)

(4,6) (-6,-4)

(-3,3)

(4,2) (-7,1)

(6,2) (-9,1)

(6,6) (-9,-3)

(4,6) (-7,-3)

(-4,2)

(4,2) (-8,0)

(6,2) (-10,0)

(6,6) (-10,-4)

4,6) (-8,-4)

Dengan memasukan titik–titik tersebut kedalam koordinat dan menyambungkan titik-titik terluar satu sama yang lainnya sehingga membentuk suatu convex shapes yang baru.


(42)

Gambar 3.3 Convex Shape C berada diluar origin

Terlihat bahwa posisi convex shapes yang diciptakan dengan menggunakan konsep minkowski different tersebut berada diluar origin (0,0) sehingga dapat dikatakan bahwa kedua convex shapes A dan B tidak dalam kondisi bertumbukan, sekarang akan diambil contoh kedua ketika posisi peluru berubah mendekati tembok lalu dilakukan kembali konsep minkowski different.


(43)

Berikut adalah perhitungan minkowski different pada saat convex shape A dan B bertumbukan.

Tabel 3.2 Hasil perhitungan minkowski different Convex Hull

A

Convex Hull B

Convex Hull C (C= A – B)

(3,4)

(4,2) (-1,2)

(6,2) (-3,2)

(6,6) (-3,-2)

(4,6) (-1,-2)

(2,5)

(4,2) (-2,3)

(6,2) (-4,3)

(6,6) (-4,-1)

(4,6) (-2,-1)

(3,6)

(4,2) (-1,4)

(6,2) (-3,4)

(6,6) (-3,0)

(4,6) (-1,0)

(4,5)

(4,2) (0,3)

(6,2) (-2,3)

(6,6) (-2,-1)


(44)

Gambar 3. 5 Convex Shape C berada didalam origin

Terlihat bahwa posisi convex shapes yang diciptakan dengan menggunakan konsep minkowski different tersebut berada didalam origin (0,0) atau bersentuhan dengan origin sehingga dapat dikatakan bahwa kedua convex shapes A dan B berada dalam kondisi bertumbukan.

Dengan ini telah mendapatkan titik yang di tepi bentuk Minkowski Different segala arah. Selanjutnyamenggunakan algoritma GJK dengan menggunakan support function secara iteratif, adapun urutan konsep algoritma GJK dapat dihitung dengan menggunakan perhitungan sebagai berikut:

d = …

p1 = support(A,B, d) p2 = support(A,B, -d) AB = p2 – p1

AO = ORIGIN – p1 d = (AB x AO) x AB

(AB x AO) x AB = AO(AB.dot(AB)) – AB(AB.dot(AO)) p3 = support(A,B, d)


(45)

Keterangan :

d = arah vektor minkowski different p1 = titik point pertama

p2 = titik point kedua p3 = titik point ketiga

A = titik point convex shape A B = titik point convex shape B ORIGIN = titik point (0 , 0)

Perhitungan simplex dilakukan secara iteratif sehingga simplex semakin dekat dengan mengandung origin. Kemudian perlu memeriksa kondisi iterasi apakah simplex mengandung origin? Berikut perhitungan algoritma GJK dengan menggunakan kerangka pada gambar 3.3 dengan arah vektor awal (1 , 0).

d = (1,0)

p1 = support(A , B , d ) = (4 , 5) – (4 , 6) = (0 , -1)

Terlihat dengan inisialisasi arah vector awal (1,0) didapatkan titik point awal (0,-1) . Kemudian dimulai pengulangan :

Iterasi pertama

p2 = support(A , B , -d) = (2 , 5) – (6, 2) = (-4 , 3)

AB = (-4 , 3) – (0 , -1) = (-4 , 4) AO = (0 , 0) – (-4 , 3) = (4 , -3)

AB.dot(AB) = (xAB . xAB) + (yAB . yAB) = (-4 . -4) + (4 . 4)


(46)

AB.dot(AO) = (xAB . xAO) + (yAB . yAO) = (-4 . 4) + (4 . -3)

= -16 + (-12) = -28 (AB x AO) x AB = AO(32) – AB(-28) = (128 – 96) – (112 , -112) = (16 , 16)

= (1 , 1) d = (1 , 1)

Gambar 3.6 Iterasi pertama

Gambar 3.6 menunjukkan simpleks yang dihasilkan setelah iterasi pertama. Simpleks ditunjukan dengan garis berwarna merah, simpleks dengan arah berikutnya berwarna biru menunjuk tegak lurus terhadap garis ke arah origin. Iterasi kedua

p3 = support(A , B , d) = (3 , 6) – (4 , 2) = (-1 , 4) AB = (-1 , 4) – (0 , -1) = (-1 , 5) AO = (0, 0) – (-1 , 4) = (1 , -4)

AB.dot(AB) = (xAB . xAB) + (yAB . yAB) = (-1 . -1) + (5 . 5)


(47)

= 1 + 25 = 26

AB.dot(AO) = (xAB . xAO) + (yAB . yAO) = (-1. 1) + (5 . -4)

= -1 + (-20) = -21

(AB x AO) x AB = AO(26) – AB(-21) = (26 , -104) - (21, -105) = (5 , 1) = (1 , 0.2)

Gambar 3.7a Iterasi kedua

Gambar 3.7a menunjukkan simpleks yang dihasilkan setelah iterasi kedua belum melewati origin namun masih belum bisa menyimpulkan bahwa convex shapes A dan convex shapes B tidak bertumbukan atau berpotongan.


(48)

Gambar 3.7b Iterasi kedua dan arah vektor

Pada iterasi kedua dihapus titik (-4, 3) karena semua yang dibutuhkan adalah 3 poin setiap saat menambahkan titik baru pada awal setiap iterasi.

Iterasi ketiga d = (1 , 0.2)

p4 = support(A ,B , d) = (4 , 5) – (4 , 2) = (0 , 3)


(49)

Gambar 3.8 menunjukkan simpleks yang dihasilkan setelah iterasi ketiga telah melewati origin sehingga dapat disimpulkan bahwa bahwa convex shapes A dan convex shapes B bertumbukan atau berpotongan.

Pada saat diketahui convex shapes A dan convex shapes B bertumbukan, kedua objek akan mengalami impuls yang mengubah besaran momentum di kedua benda

Gambar 3.9 Momentum dan Impuls

Gambar 3.9 menunjukan convex shapes A (bola) bertumbukan dan memberikan sebuah nilai besaran momentum kepada convex shapes B (tembok) sehingga kedua benda mengalami besaran impuls yang menghasilkan perubahan nilai besaran momentum dikedua buah benda.

3.5 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional merupakan analisis untuk menentukan spesifikasi kebutuhan sistem.Spesifikasi kebutuhan sistem meliputi analisis perangkat keras atau hardware, analisis perangkat lunak atau software, dan analisis pengguna.


(50)

3.5.1 Analisis Kebutuhan Perangkat Lunak

Analisis perangkat lunak digunakan untuk mengetahui spesifikasi perangkat lunak yang digunakan untuk menjalankan simulasi fisika momentum dan impuls, spesifikasi perangkat lunak yang digunakan untuk menjalankan simulasi ini adalah sebagai berikut :

1. Sistem Operasi Windows 7 (32 bit dan 64 bit) 1. Adobe Flash CS 4

Sedangkan perangkat lunak yang dibutuhkan untuk memainkan simulasi ini adalah adobe flash player, dengan spesifikasi sebagai berikut [14] :

2. Windows 7 (32 bit dan 64 bit)

3. Mozilla Firefox 17 atau yang lebih baru. 3.5.2 Analisis Kebutuhan Perangkat Keras

Analisis perangkat keras digunakan untuk mengetahui spesifikasi perangkat keras yang digunakan untuk menjalankan simulasi fisika momentum dan impuls perangkat keras yang digunakan untuk menjalankan simulasi ini adalah :

1. Processor @ 1.83GHz (2 CPUs) 2. Memory (RAM) 1536MB 3. Display Memory 256 MB

4. Display Mode1280 x 800 (32 bit) (60Hz) 5. Input DeviceMouse dan Keyboard

Sedangkan untuk spesifikasi perangkat keras yang dibutuhkan untuk dapat menjalankan simulasi ini adalah sebagai berikut [14] :

1. Procesor2.33GHz atauprosesor x86-kompatibel lebih cepat.

2. 512MB RAM (1GB RAM direkomendasikan untuk netbook); 128MB memori grafis

3.5.3 Analisis Pengguna

Analisis pengguna digunakan untuk mengetahui spesifikasi pengguna agar dapat menjalankan program ini.Spesifikasi minimal bagi pengguna dapat dilihat pada tabel 3.3.


(51)

Tabel 3.3 Spesifikasi Pengguna Karakteristik Fisik Pengguna

Umur 14 tahun keatas

Gender Laki-laki dan Perempuan

Disabilities Tidak buta dan tidak mempunyai cacat fisik seperti cacat tangan

Pengetahuan dan Pengalaman Pengguna

Computer literacy Dapat menggunakan dan mengoperasikan computer

Education 14 tahun keatas

3.6 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional merupakan analisis untuk menggambarkan sistem yang akan dibangun. Analisis kebutuhan fungsional dimodelkan dengan menggunakan UML, tahap-tahap pemodelannya antara lain adalah use case diagram, use case scenario, activity diagram, class diagram dan sequence diagram. 3.6.1 Use Case Diagram

Use case diagram merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat . Berikut adalah use case diagram Program Pembelajaran Fisika Momentum dan Impulse dapat dilihat pada gambar 3.10.


(52)

Gambar 3.10 Use Case Diagram

Use case terdiri dari tiga bagian yaitu definisi Actor, definisi use case, dan skenario use case.

3.6.1.1 Definisi Actor

Definisi aktor berfungsi untuk menjelaskan aktor yang terdapat pada use case diagram. Deskripsi pendefinisian aktor Sistem Pembelajaran Fisika Momentum dan Impulse dapat dilihat pada tabel 3.4

Tabel 3.4 Definisi aktor pada Program Pembelajaran Fisika Momentum dan Impulse

No Aktor Deskripsi

1 User Orang yang menjalankan simulasi

System

user

mulai simulasi

menggerakan catapult

menampilkan petunjuk

menampilkan tentang

input nilai besaran benda

kesalahan input <<include>>


(53)

3.6.1.2 Definisi Use Case

Definisi use case berfungsi untuk menjelaskan proses yang terdapat pada use case diagram. Deskripsi pendefinisian use case pada Program Pembelajaran Fisika Momentum dan Impulse dapat dilihat pada tabel 3.5

Tabel 3.5 Definisi use case pada Program Pembelajaran Fisika Momentum dan Impulse

No Use Case Deskripsi

1 Mulai simulasi Proses untuk memulai simulasi pembelajaran fisika momentum dan impulse

2 Menampilkan petunjuk Proses untuk menampilkan cara menggunakan simulasi pembelajaran fisika momentum dan impulse

3 Menampilkan tentang Menampilkan info simulasi dan profil

4 Memasukan nilai besaran benda User menginputkan nilai besaran kepada dua buah objek benda yaitu peluru dan tembok 5 Menjalankan catapult User menggerakan catapult untuk menentukan

jarak benda yang akan diluncurkan terhadap dinding

3.6.1.3 Skenario Use Case

Use case Scenario mendeskripsikan urutan langkah-langkah dalam proses bisnis baik yang dilakukan aktor terhadap sistem maupun yang dilakukan oleh sistem terhadap aktor. Berdasarkan use case diagram, maka use case scenario untuk prototype Program Pembelajaran Fisika Momentum dan Impulse terdiri dari mulai simulasi, petunjuk , tentang , input nilai besaran benda, menggerakan catapult. Berikut adalah use case scenario Program Pembelajaran Fisika Momentum dan Impulse :

1. Use Case Scenario Mulai simulasi

Use case scenario ini menjelaskan interaksi antara aktor dengan use case mulai simulasi yang dijelaskan pada table 3.6


(54)

Tabel 3.6 Use Case Scenario Mulai Simulasi Identifikasi

Nama Mulai simulasi Tujuan Memulai simulasi

Deskripsi Proses untuk memulai simulasi

Aktor User

Skenario Utama

Kondisi awal User berada di layar simulasi

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Memilih menu simulasi

b. Menampilkan jendela simulasi c. Mengklik tombol mulai

d. Mengeksekusi simulasi, catapult dijalankan dan melontar peluru sesuai dengan masukan nilai parameter e. Peluru yang dilontarkan akan menghitung kondisi secara iterasi apakah peluru dalam keadaan bertumbukan dengan tembok atau tidak dengan aturan GJK dan pendekatan minkowski different dengan cara menghitung posisi simplex berada pada origin atau tidak f. Jika kondisi terpenuhi simplex berada dalam origin maka diketahui peluru telah bertumbukan dengan tembok


(55)

g. Menghitung perubahan momentum pada peluru dan tembok sesuai dengan arah benda dan parameter masukan h. Menampilkan kondisi peluru dan tembok saat terjadi momentum dan impuls

i. Jika kondisi tidak terpenuhi simplex tidak berada dalam origin maka peluru tidak bertumbukan dengan tembok dan mengulang iterasi

Kondisi Akhir Terjadi perubahan besaran momentum diantara peluru dan tembok

2. Use Case Scenario Input Nilai Besaran Benda

Use case scenario ini menjelaskan interaksi antara aktor pengguna dengan use case menginputkan nilai besaran benda yang dijelaskan pada table 3.7

Tabel 3.7 Use Case Scenario input nilai besaran benda Identifikasi

Nama Input nilai besaran benda Tujuan Input nilai besaran benda

Deskripsi Proses untuk menginputkan nilai besaran benda

Aktor User

Skenario Utama

Kondisi awal User berada di layar simulasi

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Input parameter nilai besaran benda peluru dan tembok


(56)

c. Memproses nilai besaran inputan d. Jika input dengan nilai masukan

benar maka Memproses dan menampilkan peluru dan tembok sesuai dengan nilai besaran yang telah diinputkan

e. Jika klik tombol input dengan nilai masukan salah satu nilai besaran benda tidak sesuai atau tidak benar

f. memproses dan menampilkan pesan kesalahan

Kondisi Akhir Menampilkan peluru dan tembok jika benar

3. Use Case Scenario Menggerakan Catapult

Use case scenario ini menjelaskan interaksi antara aktor pengguna dengan use case menggerakan catapult yang dijelaskan pada tabel 3.8

Tabel 3.8 Use Case Scenario Menggerakan catapult Identifikasi

Nama Menggerakan catapult Tujuan Menggerakan catapult

Deskripsi Proses untuk menggerakan catapult

Aktor User

Skenario Utama

Kondisi awal User telah mengimputkan nilai besaran benda

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Mengatur posisi catapult dengan menekan tombol


(57)

arah panah kanan atau kiri dari keyboard

b. Jarak antara catapult dengan dengan tembok akan akan lebih jauh atau lebih dekat

Kondisi Akhir Posisi catapult berubah 4. Use Case Scenario Tentang

Use case scenario ini menjelaskan interaksi antara aktor pengguna dengan use case tentang yang dijelaskan pada Tabel 3.9

Tabel 3.9 Use Case Scenario Tentang Identifikasi

Nama Tentang

Tujuan Menampilkan info aplikasi Deskripsi Proses info aplikasi

Aktor Pengguna Skenario Utama

Kondisi awal Pengguna berada di layar utama

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Memilih menu tentang

b. Menampilkan info aplikasi Kondisi Akhir Menampilkan informasi aplikasi

5. Use Case Scenario Petunjuk

Use case scenario ini menjelaskan interaksi antara aktor pengguna dengan use case petunjuk yang dijelaskan pada tabel 3.10

Tabel 3.10 Use Case Scenario Petunjuk Identifikasi

Nama Petunjuk


(58)

Deskripsi Proses info petunjuk Aktor Pengguna

Skenario Utama

Kondisi awal Pengguna berada di layar utama

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Memilih menu petunjuk

b. Menampilkan info petunjuk Kondisi Akhir Menampilkan informasi petunjuk

3.6.2. Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan work flow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Berikut adalah activity diagram dari prototype Program Pembelajaran Fisika Momentum dan Impulse :

1. Activity Diagram Mulai simulasi

Pada proses ini sistem akan memulai menampilkan interface simulasi Pembelajaran Fisika Momentum dan Impulse . Activity diagram mulai dapat dilihat pada gambar 3.10


(59)

Gambar 3.11 Activity Diagram mulai simulasi

2. Activity Diagram menggerakan catapult

Pada proses ini user akan menggerakan catapult. Activity diagram menggerakan catapult dapat dilihat pada gambar 3.11

USER SYSTEM

Memilih menu simulasi Menampilkan jendela simulasi

Klik tombol mulai Eksekusi simulasi

Menghitung simplex sebagai kondisi

Ya Tidak

Menghitung perubahan momentum

Menampilkan kondisi perubahan momentum Kondisi terpenuhi ?


(60)

Gambar 3.12 Activity Diagram menggerakan catapult

3. Activity Diagram Input Nilai Besaran Benda

Pada proses ini user akan menentukan massa peluru. Activity diagram input nilai besaran benda dapat dilihat pada gambar 3.12

User Sistem

Mengatur posisi catapult Catapult Bergerak sesuai inputan

User Sistem

Input parameter masukan benda

Memproses nilai inputan Klik tombol input

Menampilkan pesan kesalahan Menampilkan peluru dan tembok

tidak ya


(61)

Gambar 3.13 Activity Diagram Input nilai besaran benda

4. Activity Diagram tentang

Pada proses ini sistem akan menampilkan interface tentang. Activity diagram tentang dapat dilihat pada gambar 3.14

Gambar 3.14 Activity Diagram tentang 5. Activity Diagram Petunjuk

Pada proses ini sistem akan menampilkan interface petunjuk. Activity diagram petunjuk dapat dilihat pada gambar 3.15

User Sistem


(62)

Gambar 3.15 Activity Diagram Petunjuk 3.6.3. Squence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Berikut adalah sequence diagram dari simulasi fisika momentum dan impuls :

1. Sequence Diagram Mulai simulasi

main menu simulasi

1: main()

1.1: menu(main)

2: tampilMenu()

3: Klik_Mulai(mouseEvent)

3.1: simulasi()

4: tampilSimulasi()

user

5: user klik mulai simulasi

5.1: Update(event) 5.2: tampil simulasi fisika

Gambar 3.16 Sequence Diagram Mulai Simulai

User Sistem


(63)

2. Sequence Diagram Tentang

main menu tentang

1: main()

1.1: menu(main)

2: tampilMenu()

3: user klik menu tentang

3.1: tentang()

4: tampilTentang()

user

Gambar 3.17 Sequence Diagram Tentang

3. Sequence Diagram Petunjuk

main menu petunjuk

1: main()

1.1: menu(main)

2: tampilMenu()

3: user klik menu petunjuk

3.1: petunjuk()

4: tampilPetunjuk() user


(64)

3.6.4. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Berikut adalah class diagram dari simulasi fisika momentum dan impuls :

Gambar 3.19 Class Diagram simulasi fisika momentum & impuls 3.7Perancangan Sistem

Perancangan sistem merupakan kegiatan untuk merancang aplikasi yang akan di bangun, tahapannya dimulai dari perancangan struktur menu, perancangan antarmuka, perancangan pesan dan jaringan semantik dari program simulasi fisika momentum dan impulse.


(65)

3.7.1 Perancangan Stuktur Menu

Perancangan struktur menu pada program simulasi fisika momentum dan impulse adalah sebagai berikut:

Gambar 3.20 Struktur Menu 3.7.2 Perancangan Antar Muka

Perancangan antar muka bertujuan untuk memberikan gambaran tentang aplikasi yang akan dibangun, sehingga akan mempermudah dalam mengimplementasikan aplikasi serta akan memudahkan pembuatan aplikasi.

1. Perancangan Antar muka Main Menu

Gambar 3.21 Antar Muka Main Menu Main Menu

Mulai Petunjuk Tentang

T01

Mulai

Petunjuk 1

Tentang 2

3

Keterangan: Ukuran 800x600

Keterangan: 1. Tombol Mulai 2. Tombol Petunjuk 3. Tombol Tentang Navigasi:

1. Klik 1 Untuk Menuju T02

2. Klik 2 Untuk Menuju T03

3. Klik 3 Untuk Menuju T04


(66)

2. Perancangan Antarmuka Mulai

3.8.3 Jaringan Semantik

Gambar 3.22 Antar Muka Mulai Gambar 3.22 Antar Muka Mulai

Kg

1

4 Kembali

T02

Keteranan : Ukuran 800x600

Keterangan:

1. Bola

2. Catapult

3. Papan

4. input massa bola

5. input massa bola

6. input koefisien restitusi bola 7. input koefisien

restitusi bola 8. klik 8 input

9. klik 9 mulai simulasi

10.klik 10 menuju T01

3

1

4 5

6 7

2

8

9 10


(67)

3. Perancangan Antarmuka Petunjuk

Gambar 3.23 Antar Muka Petunjuk

4. Perancangan Antarmuka Tentang

Gambar 3.24 Antar Muka Tentang

T03

Keterangan: Ukuran 800x600

Keterangan:

1. Tombol Kembali Navigasi:

1. Klik 1 Untuk Menuju T01

1

T04

Keterangan: Ukuran 800x600

Keterangan:

2. Tombol Kembali Navigasi:

2. Klik 1 Untuk Menuju T01


(68)

3.7.3 Jaringan Semantik

Untuk mengetahui keterhubungan dari setiap tampilan yang dibuat dapat menggunakan jaringan semantik. Berikut adalah jaringan semantik pada simulasi pembelajaran fisika momentum dan impuls.

Gambar 3.25 Jaringan Semantik

T01

T04


(69)

61 BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Implementasi merupakan tahap penciptaan perangkat lunak dan juga tahap kelanjutan dari perancangan aplikasi. Selanjutnya dilakukan uji kelayakan terhadap aplikasi yang telah dibangun sehingga dapat memberikan masukan demi berkembangnya aplikasi yang telah dibangun. Tahap ini merupakan tahap dimana aplikasi siap untuk dioperasikan, tahap ini terdiri dari penjelasan mengenai lingkungan implementasi, baik itu lingkungan perangkat keras, lingkungan perangkat lunak, serta implementasi aplikasi.

4.1.1 Implementasi Perangkat Keras

Perangkat keras yang digunakan untuk menjalankan simulasi pembelajaran fisika momentum dan impuls dapat dilihat pada tabel 4.1.

Tabel 4.1 Tabel Spefisikasi Perangkat Keras

No Perangkat Keras Keterangan

1 Processor Kecepatan @ 1.83GHz (2 CPUs)

2 Memory (RAM) 1536MB

3 Display Memory 256 MB

4 Display Mode 1280 x 800 (32 bit) (60Hz)

5 Keyboard Standard

6 Mouse Standard

4.1.2 Implementasi Perangkat Lunak

Adapun spesifikasi perangkat lunak yang digunakan untuk menjalankan simulasi pembelajaran fisika momentum dan impuls dapat dilihat pada tabel 4.2.

Tabel 4.2 Tabel Spefisikasi Perangkat Lunak

No Perangkat Lunak Spesifikasi

1 Sistem Operasi Windows 7 2 Tools Compiler Adobe Flash CS4


(70)

4.1.3 Implementasi Aplikasi

Aplikasi simulasi pembelajaran fisika momentum dan impuls merupakan sebuah simulasi yang bertjuan menggambarkan kondisi yang terjadi diantara dua buah benda saat terjadi momentum dan impuls sebagai sarana pembelajaran bagi siswa yang merupakan implementasi dari algoritma gilbert jhonson keerthi. simulasi pembelajaran fisika momentum dan impuls ini dapat dijalankan pada sistem operasi windows.

4.1.4 Implementasi Antarmuka

Antarmuka merupakan sarana interakasi antara pengguna dengan sistem operasi. Berikut ini merupakan antarmuka yang ada pada simulasi pembelajaran fisika momentum dan impuls :

1. Antarmuka Menu Utama

Antarmuka menu utama merupakan tampilan awal ketika aplikasi dijalankan. Tampilan antarmuka menu utama dapat dilihat pada gambar 4.1.


(71)

2. Antarmuka Mulai Simulasi

Antarmuka mulai simulasi merupakan antarmuka untuk menampilkan simulasi dari algoritma gilbert jhonson keerthi. Tampilan antarmuka mulai permainan dapat dilihat pada gambar 4.2.

Gambar 4.2 Antarmuka Mulai Simulasi 3. Antarmuka Tentang

Antarmuka Tentang merupakan tampilan tentang pembuat program. Tampilan antarmuka tentang dapat dilihat pada gambar 4.3.


(72)

4. Antarmuka Petunjuk

Antarmuka Petunjuk merupakan tampilan yang bertujuan memberikan penjelasan dasar menggunakan simulasi Tampilan antarmuka petunjuk dapat dilihat pada gambar 4.4.

Gambar 4.4 Antarmuka Petunjuk 4.2 Pengujian

Pengujian bertujuan untuk menemukan kekurangan atau kesalahan pada perangkat lunak, serta untuk mengetahui perangkat lunak yang dibuat sudah memenuhi kriteria yang sesuai dengan perancangan perangkat lunak tersebut. Adapun pengujian yang akan dilakukan adalah pengujian alpha.

4.2.1 Pengujian Alpha

Pengujian alpha merupakan pengujian fungsional yang digunakan untuk menguji sistem. pengujian alpha hanya untuk sirkulasi internal dan masalah (error) atau ketidak lengkapan yang terdapat dalam aplikasi. Proses pengujian terhadap aplikasi akan menggunakan pengujian black box dan pengujian white box.


(73)

4.2.1.1Skenario Pengujian

Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada simulasi pembelajaran fisika momentum dan impuls. Adapun skenario pengujian yang ada pada simulasi pembelajaran fisika momentum dan impuls dapat dilihat pada tabel 4.3.

Tabel 4.3 Tabel Skenario Pengujian

No Kelas Uji Butir Uji Jenis Pengujian

1 Algoritma Gilbert Jhonson Keerthi

Uji algoritma tumbukan dua convex shape

White box

2 Menu Utama Memilih Mulai Simulasi Black box

Memilih Petunjuk Black box

Memilih Tentang Black box

3 Mulai Simulasi Ketika mimilih tombol mulai Black box Tombol input variable nilai benda Black box Tombol mulai simulasi Black box

Tombol ulang Black box

Tombol kembali Black box

4 Petunjuk Ketika memilih tombol petunjuk Black box

Tombol kembali Black box

5 Tentang Ketika memilih tombol tentang Black box

Tombol kembali Black box

4.2.1.2Pengujian White Box

Pengujian white box merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan metode dalam mendapatkan test case. Adapun metode yang digunakan dalam pengujian white box ini adalah metode basis path. Metode basis path mengijinkan pendesain kasus uji untuk mendapatkan perkiraan lojik yang kompleks dari desain metode dan menggunakan perkiraan ini untuk mendefinisikan aliran eksekusi.

Tabel 4.4 Pseudocode Algoritma Gilbert Jhonson Keerthi No Pseudocode

1 while (iter < k_maxIters) {

2 saveCount = simplex.m_count;

3 for (i = 0; i < saveCount; i++){

4 saveA[i] = vertices[i].indexA;

5 saveB[i] = vertices[i].indexB;

6 }


(74)

8 case 1:

9 break;

10 case 2:

11 simplex.Solve2();

12 break;

13 case 3:

14 simplex.Solve3();

15 break;

16 default:

17 b2Settings.b2Assert(false);

18 }

19 if (simplex.m_count == 3){

20 break;

21 }

22 p = simplex.GetClosestPoint();

23 distanceSqr2 = p.LengthSquared();

24 if (distanceSqr2 > distanceSqr1){

25 break;

26 }

27 distanceSqr1 = distanceSqr2;

28 var d:b2Vec2 = simplex.GetSearchDirection();

29 if (d.LengthSquared() < Number.MIN_VALUE * Number.MIN_VALUE){

30 break;

31 }

32 var vertex:b2SimplexVertex = vertices[simplex.m_count];

33 vertex.indexA = proxyA.GetSupport(b2Math.MulTMV(transformA.R,

d.GetNegative()));

34 vertex.wA = b2Math.MulX(transformA, proxyA.GetVertex(vertex.indexA));

35 vertex.indexB = proxyB.GetSupport(b2Math.MulTMV(transformB.R, d));

36 vertex.wB = b2Math.MulX(transformB, proxyB.GetVertex(vertex.indexB));

37 vertex.w = b2Math.SubtractVV(vertex.wB, vertex.wA);

38 ++iter;

39 ++b2_gjkIters;

40 var duplicate:Boolean = false;

41 for (i = 0; i < saveCount; i++){

42 if (vertex.indexA == saveA[i] && vertex.indexB == saveB[i]){

43 duplicate = true;

44 break;

45 }

46 }

47 if (duplicate){

48 break;

49 }

50 ++simplex.m_count;


(75)

a. Flow Graph

Berdasarkan pseudocode diatas maka flow graph dari algoritma gilbert jhonson keethi dapat dilihat pada gambar 4.5.

1 2 3 4,5 6

9

7

8

11,12 10

14,15 13

17 16

18

21 19

20 22,23

26 24

25 27,28

31 30

29 32,33,..,40 41

45 42

43,44 46

49 47

48 50

51

Gambar 4.5 Flow Graph algoritma GJK


(76)

1 2 3 4 5 8 6 7 10 9 12 11 14 13 15 18 16 17 19 22 20 21 23 26 25 24 27 28 31 29 30 32 35 33 34 36 37

Gambar 4.6 Penyederhanaan Flow Graph algoritma GJK

Keterangan :

= Nodes (N) = Edges (E)

Berdasarkan gambar 4.6 maka dapat dihitung cyclomatic complexity sebagai berikut :

a. Cylomatic Complexity V(G) V(G) = E – N + 2

V(G) = 47 – 37 + 2 V(G) = 12

Keterangan :

E = Jumlah edge pada grafik alir N = Jumlah node pada grafik alir


(1)

79

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan dari hasil penelitian, analisis perancangan sistem dan implementasi serta pengujian yang dilakukan, maka diperoleh kesimpulan sebagai berikut :

1. Simulasi pembelajaran yang dibangun sebagai fasilitas pendukung pembelajaran berpengaruh kepada siswa dalam memahami pelajaran. 2. Penerapan algoritma GJK terhadap simulasi fisika momentum dan impuls

menghasilkan impact yang sesuai dengan parameter masukan bola. 3. Implementasi algoritma gilbert jhonson keerthi pada simulasi

pembelajaran fisika momentum dan impuls dapat mendeteksi titik temu convex hull pada dua convex shapes saat terjadi tumbukan.

5.2 Saran

Penelitian ini masih banyak kekurangan dan masih jauh dari sempurna, oleh karena itu diharapkan kedepannya penelitian dari algoritma gilbert jhonson keerthi dapat dikembangkan lagi. Adapun saran yang dapat diberikan dalam penelitian ini adalah sebagai berikut:

1. Diharapkan algoritma-algoritma collision detection lainnya dapat diteliti dan diimplementasikan untuk mensimulasikan fisika momentum dan impuls yang lebih akurat dan realistik.

2. Simulasi yang dibangun dapat lebih disempurnakan dengan penambahan studi kasus, tidak hanya pada fisika momentum dan impuls sehingga menambah fasilitas pendukung pembelajaran lainnya.


(2)

(3)

BIODATA PENULIS

1. Data Pribadi

Nama : Chandra Darmawan

Tempat, Tanggal Lahir : Bandung, 15 Februari 1991 Jenis Kelamin : Laki-laki

Agama : Islam

Kewarganegaraan : Indonesia

Alamat Lengkap : Jl. Kebon Kopi. Gg. H.Nursalim RT 06/ RW 05 NO 278 Kel. Cibeureum Kec. Cimahi Selatan Kota Cimahi 40535

Telepon : 085624649746

Email : chandra.souvenir@gmail.com 2. Riwayat Pendidikan

1995 – 2001 : SDN Cibeureum 2001 – 2004 : SMP Negeri 7 Cimahi 2004 – 2007 : SMA Pasundan 3 Cimahi

2009 – 2015 : Program Strata Satu (1) Program Studi Teknik Informatika Universitas Komputer Indonesia Bandung


(4)

(5)

(6)