RANCANG BANGUN APLIKASI SIMULASI TERRAFORMING MENGGUNAKAN TEKNOLOGI MARKER-BASED AUGMENTED REALITY BERBASIS ANDROID

Skripsi Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer (S.Kom)

Oleh:

TAQIE FADLILLAH

11150910000044

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2018 M / 1440 H

i

HALAMAN PERSETUJUAN

RANCANG BANGUN APLIKASI SIMULASI TERRAFORMING MENGGUNAKAN TEKNOLOGI MARKER-BASED AUGMENTED REALITY BERBASIS ANDROID

Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer (S.KOM)

Oleh:

Taqie Fadlillah 11150910000044 Menyetujui,

Pembimbing 1 Pembimbing 2

Viktor Amrizal, M.Kom Dr. Imam Marzuki Shofi, MT Nip. 19740624 200710 1 001 Nip. 19720205 200801 1 01

Mengetahui, Ketua Program Studi Teknik Informatika

Dr. Imam Marzuki Shofi, MT Nip. 19720205 200801 1 01

il

PENGESAHAN UJIAN

Skripsi berjudul "Rancang Bangun Aplikasi Simulasi Terraforming Menggunakan Teknologi Marker-Based Augmented Reality Berbasis Andrdid" yang ditulis oleh Taqie Fadlillah, NIM 11150910000044 telah diuji dan dinyatakan lulus dalam sidang Fakultas Sains dan Teknologi,

UIN Syarif Hidayatullah Jakarta pada hari Kamis 4 Juni 2020. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer (S.Kom) pada Program Studi Teknik Informatika.

lakafia,4 luni2020

Tim Penguji Penguji I, Penguji II,

Nip. 197608052009122003 Nip. I 9820s222A1 I 012009

Tim Pembimbing I, Pembimbing II,

Nip. 19740624 200710 I 001 Nip. 19720205 200801 1 0l

Mengetahui, Sains dan Teknologi Ketua Program Studi Teknik Informatika

Nip. 196904042005012005 Nip. 19720205 200801 I 0l iii

PERNYATAAN ORIGINALITAS

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN

Jakarta, 4 Juni 2020

iv

PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI

Sebagai sivitas akademik UIN Syarif Hidayatullah Jakarta, saya yang bertanda tangan di bawah ini: Nama : Taqie Fadlillah NIM : 11150910000044 Program Studi : Teknik Informatika Fakultas : Sains dan Teknologi Jenis Karya : Skripsi

Demi pengembangan ilmu pengetahuan, saua menyetujui untuk memberikan kepada Universitas Islam Negeri Syarif Hidayatullah Jakarta Hak Bebas Royalti Noneksklusif (Non-exclusive Royalty Free Right) atas karya ilmiah saya yang berjudul :

RANCANG BANGUN APLIKASI SIMULASI TERRAFORMING MENGGUNAKAN TEKNOLOGI MARKER-BASED AUGMENTED REALITY BERBASIS ANDROID

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Noneksklusif ini Universitas Islam Negeri Syarif Hidayatullah Jakarta berhakmenyimpan, mengalihmedia/formatkan, mengelola dalam bentuk pangkalan data(database), merawat, dan mempublikasikan tugas akhir saya selama tetapmencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilih hak cipta.

Demikian pernyataan ini saya buat dengan sebenar-benarnya.

Dibuat di : Jakarta Pada Tanggal : 4 Juni 2020

Yang menyatakan

Taqie Fadlillah

v

Penulis : Taqie Fadlillah (11150910000044) Program Studi : Teknik Informatika Judul : Rancang Bangun Aplikasi Simulasi Terraforming Menggunakan Teknologi Marker-Based Augmented Reality Berbasis Android

ABSTRAK Teknologi merupakan ilmu pengetahuan yang selalu berkembang dan banyak dipakai dikehidupan sehari-hari, tidak aneh untuk teknologi berintergerasi dengan berbagai bidang dan industri. Salah satunya adalah bidang disiplin ilmiah dan astronomi, akan tetapi sedikit dari masyarakat yang mengerti tentang astronomi, kegunaan dan potensi didalamnya. Dari ketidaktahuan itu penulis ingin menambahkan ilmu dan minat terhadap bidang studi Astronomi, dengan menggunakan metode rancang bangun Multimedia Development Life Cycle (MDLC) penulis mencoba untuk membuat aplikasi yang mendidik dan interaktif agar pengguna merasa tertarik dan terhibur, penulis juga menggunakan Unity sebagai Software Development Environment (SDE) dan blender sebagai aplikasi untuk membuat obyek 3D. Untuk interaksi antar pengguna dengan aplikasi penulis menggunakan augmented reality sebagai fungsi sistem utama dan tema terraform atau merubah seperti bumi untuk dijadikan simulasi dengan data yang senyata mungkin dengan dunia nyata. Setelah diuji cobakan kepada pengguna SMA, respon mereka dalam kuesioner yang dibuat oleh penulis menghasilkan bahwa tingkat kepuasan dan keberhasilan akan aplikasi yang dibuat penulis cukup tinggi dengan tingkat keberhasilan mencapai nilai 8.3 dari nilai maksimal 10.

Kata Kunci : Augmented Reality, Terraform, Astronomi Daftar Pustaka : 15 Jurnal, 15 Buku, 5 Skripsi Jumlah Halaman : VI BAB

vi

KATA PENGANTAR

Assalamu’alaikum Warrahmatullah Wabarakatuh

Alhamdulillah segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan Rahmat dan Hidayahnya-Nya sehingga penulis dapat menyelesaikan skripsi ini. Tak lupa shalawat serta salam kepada Nabi Muhammad SAW, beserta keluarga, para sahabat, dan para pengikutnya dari awal hingga akhir zaman.

RANCANG BANGUN APLIKASI SIMULASI TERRAFORMING MENGGUNAKAN TEKNOLOGI MARKER-BASED AUGMENTED REALITY BERBASIS ANDROID

Penyusunan skripsi ini adalah salah satu syarat untuk memperoleh gelar Sarjana Komputer (S.Kom) pada program studi Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta. Adapun bahan penulisan skripsi ini adalah berdasarkan hasil penelitian, pengembangan aplikasi, kuesioner dan beberapa sumber literatur.

Selama proses penyusunan skripsi ini, penulis mendapat banyak bimbingan, bantuan, masukan, dukungan, serta motivasi yang sangat bermanfaat dari berbagai pihak. Oleh karena itu melalui kata pengantar ini penulis ingin menyampaikan terima kasih banyak kepada:

1. Dekan Prof. Dr. Lily Suraya Eka Putri, M.Env.Stud selaku dekan Fakultas Sains dan Teknologi 2. Dr. Imam Marzuki Shofi, MT selaku ketua Program Studi Teknik Informatika dan pembimbing II 3. Bapak Viktor Amrizal, M.Kom pembimbing I, kepada pembimbing I dan II yang memberikan masukan, serta saran sehingga skripsi ini dapat diselesaikan dengan baik dan lancar. 4. Orang tua saya yang tercinta. Ayah dan Ibu, Hasanuddin dan Lusy Anna yang memberikan dukungan secara Jasmani dan Rohani, dan selalu vii

menunggu dengan sabar anaknya untuk menyelesaikan skripsinya. Terima kasih banyak. 5. Adik-adik saya Farah dan Fatur yang selalu mengganggu dan membantu saya saat mengerjakan skripsi. 6. Bapak Drs. Widya Sawitar, Dmirza Pahlavi Al Amamu dan Deli Anja selaku staff Planetarium dan Observatorium Jakarta yang telah mengajari saya banyak hal tentang Astronomi dan pengujian aplikasi. 7. Sahabat seperjuangan skripsi penulis Nuthfi Odiansyah Otto, Taufik Hidayat, Muhammad Al Kahfi, Abu Ubaidillah, Alifia Ayu Zahratul Ain, dan teman-teman TI B, terima kasih atas kesediaannya menjadi pengingat dan penyemangat, teman angkatan dan seperjuangan TI UIN 2015 yang tidak bisa disebutkan satu persatu. 8. Augmented Reality Skripsi Project Team yang selalu membantu dalam memberikan solusi dan pencerahan dalam menyelesaikan skripsi ini. 9. Seluruh pihak yang tidak dapat disebutkan satu persatu yang secara langsung maupun tidak langsung yang telah membantu dalam menyelesaikan skripsi ini.

Penulisan skripsi ini masih jauh dari kata sempurna. Untuk itu, sangat diperlukan kritik dan saran yang membangun bagi penulis. Akhir kata, semoga laporan skripsi ini dapat bermanfaat bagi penulis dan orang lain.

Wassalamu’alaikum Warrahmatullah Wabarakatuh.

Jakarta, May 2020

Penulis

Taqie Fadlillah

11150910000044

viii

DAFTAR ISI

HALAMAN PERSETUJUAN ...... i

PENGESAHAN UJIAN ...... ii

PERNYATAAN ORIGINALITAS ...... iii

PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI ...... iv

ABSTRAK ...... v

KATA PENGANTAR ...... vi

DAFTAR ISI ...... viii

DAFTAR GAMBAR ...... xii

DAFTAR TABEL ...... xiv

BAB I PENDAHULUAN ...... 1

1.1 Latar Belakang Masalah ...... 1

1.2 Rumusan Masalah ...... 4

1.3 Batasan Masalah ...... 5

1.4 Tujuan Penelitian ...... 5

1.5 Manfaat Penelitian ...... 5

1.6 Metodologi Penelitian ...... 6

1.6.1 Metode Pengumpulan Data ...... 6

1.6.2 Metode Rancang Bangun Perangkat Lunak ...... 6

1.7 Sistem Penulisan ...... 6

BAB II LANDASAN TEORI ...... 9

2.1 Augmented Reality ...... 9

2.1.1. Marker-Based ...... 10 ix

2.1.2. Marker-Less ...... 10

2.2 Rancang Bangun ...... 11

2.3 Simulasi ...... 11

2.4 Terraforming ...... 12

2.5 Storyboard ...... 13

2.6 Computer Vision ...... 13

2.7 UML (Unified Model Language) ...... 14

2.4.1. Struktur Diagram ...... 14

2.4.2. Behavior Diagram ...... 15

2.4.3. Interaction Diagram ...... 16

2.8 Android ...... 16

2.9 Unity ...... 17

2.9.1 Unity Shader Graph...... 18

2.10 Vuforia ...... 18

2.11 Blender ...... 19

2.12 MDLC (Multimedia Development Life Cycle) ...... 19

2.13 Blackbox Testing ...... 21

2.14 Literatur Sejenis ...... 22

BAB III METODOLOGI PENELITIAN...... 25

3.1. Metode Pengumpulan Data ...... 25

3.1.1. Wawancara ...... 25

3.1.2. Kuesioner ...... 25

3.1.3. Studi Pustaka ...... 26

3.2. Metode Rancang Bangun Sistem...... 26

3.2.1. Concept ...... 26 x

3.2.2. Design ...... 26

3.2.3. Material Collecting...... 27

3.2.4. Assembly ...... 27

3.2.5. Testing ...... 27

3.2.6. Distribution ...... 27

3.3. Kerangka Berpikir ...... 28

BAB IV ANALISIS DAN RANCANG BANGUN SISTEM ...... 29

4.1. Tahap Concept ...... 29

4.1.1. Deskripsi Aplikasi ...... 29

4.1.2. Tujuan Pembuatan Aplikasi ...... 29

4.1.3. Menentukan Pengguna Aplikasi ...... 30

4.1.4. Pengaplikasian Teori ...... 30

4.2. Tahap Design ...... 32

4.1.1. Perancangan Storyboard...... 32

4.1.2. Use Case Diagram ...... 42

4.1.3. Activity Diagram ...... 42

4.1.4. Perancangan Struktur Navigasi ...... 44

4.3. Tahap Material Collecting ...... 45

4.3.1. Bahan Teks ...... 45

4.3.2. Bahan Gambar ...... 46

4.3.3. Bahan Model ...... 47

4.3.4. Bahan Suara ...... 47

4.3.5. Bahan Animasi ...... 47

4.3.6. Bahan Script ...... 48

4.4. Tahap Assembly ...... 48 xi

4.4.1. Pembuatan Scene Menu Utama ...... 49

4.4.2. Implementasi bahan-bahan kedalam scene menu ...... 53

4.4.3. Pembuatan Scene Game ...... 60

4.4.4. Implementasi bahan-bahan kedalam scene game ...... 64

4.4.5. Mengexport Scene menjadi Aplikasi ...... 77

4.5. Tahap Testing ...... 78

4.6. Tahap Distribution ...... 78

BAB V HASIL DAN PEMBAHASAN ...... 79

5.1. Tahap Pengujian Alpha ...... 79

5.1.1. Pengujian Fungsi Tombol ...... 79

5.1.2. Pengujian Tampilan Antarmuka ...... 80

5.1.3. Pengujian Oklusi ...... 82

5.1.4. Pengujian Intensitas Cahaya ...... 83

5.1.5. Pengujian Jarak Terhadap Marker ...... 83

5.2. Tahap Pengujian Beta ...... 84

5.3. Pembahasan Sistem ...... 86

BAB VI PENUTUP ...... 88

6.1. Kesimpulan ...... 88

6.2. Saran ...... 88

DAFTAR LAMPIRAN ...... 94

xii

DAFTAR GAMBAR

Gambar 1-1 Penjualan Smartphone Secara Global ...... 3 Gambar 2-1 Reality-Virtuality (RV) Continuum ...... 9 Gambar 2-2 Prinsip kerja augmented reality ...... 10 Gambar 3-1 Gambar Kerangka Berpikir ...... 28 Gambar 4 -1 Menu Start ...... 34 Gambar 4 -2 Menu Pengaturan ...... 35 Gambar 4 -3 Menu Tentang ...... 36 Gambar 4 -4 Fase Pertama ...... 37 Gambar 4 -5 Fase Kedua ...... 38 Gambar 4 -6 Fase Ketiga...... 39 Gambar 4 -7 Fase Keempat ...... 40 Gambar 4-8 Fase Kelima ...... 41 Gambar 4-9 Use Case Diagram...... 42 Gambar 4 -10 Activity Diagram ...... 43 Gambar 4-11 Struktur Navigasi ...... 44 Gambar 4-12 Gambar Tombol Menu ...... 50 Gambar 4-13 Tombol Manipulasi Variabel ...... 51 Gambar 4-14 Potongan Menu Utama ...... 52 Gambar 4-15 Pintu Menu Utama ...... 52 Gambar 4-16 Monitor Menu Option ...... 53 Gambar 4-17 Bintang Menu About...... 53 Gambar 4-18 Ubah Semua Menjadi Sprite ...... 54 Gambar 4-19 Pembuatan Panel Baru ...... 55 Gambar 4-20 Merubah Gambar Pada Panel...... 55 Gambar 4-21 Copy Paste Gameobject Main Menu ...... 56 Gambar 4-22 Pembuatan dan Pembagian Gameobject ...... 56 Gambar 4-23 Merubah Gambar Pada Button ...... 56 Gambar 4-24 Menu Option ...... 57 Gambar 4-25 Menu About ...... 57 xiii

Gambar 4-26 Penempatan Script Main Menu ...... 58 Gambar 4-27 Penempatan Animator Main Menu ...... 58 Gambar 4-28 Penempatan dan Penggunaan Suara...... 59 Gambar 4-29 Script quitButton ...... 59 Gambar 4-30 Script mainMenu ...... 60 Gambar 4-31 Proses persiapan vuforia ...... 61 Gambar 4-32 Unduh Texture dan Konversi Normal...... 62 Gambar 4-33 Pembuatan Model Bulat ...... 63 Gambar 4-34 Pembuatan Model Cincin ...... 64 Gambar 4-35 Pengaturan LWRP dan Vuforia di Unity ...... 65 Gambar 4-36 Mengatur Image Target dan Object Suara ...... 66 Gambar 4-37 Pembuatan Shader ...... 68 Gambar 4-38 Pembuatan Script ...... 70 Gambar 4-39 Pembuatan Material ...... 70 Gambar 4-40 Pemasangan Object kedalam Scene ...... 72 Gambar 4-41 Pembuatan Canvas dan Object Sederhana ...... 73 Gambar 4-42 Pembuatan Obyek Information ...... 74 Gambar 4-43 Pembuatan Obyek Terraform ...... 77 Gambar 4-44 Pengeksporan ke aplikasi ...... 78

xiv

DAFTAR TABEL

Tabel 2-1 Class Diagram ...... 15 Tabel 4-1 Bahan Teks ...... 45 Tabel 4-2 Spesifikasi Hardware ...... 49 Tabel 5-1 Pengujian Fungsi Tombol ...... 79 Tabel 5-2 Pengujian Tampilan Antarmuka ...... 80 Tabel 5-3 Pengujian Oklusi ...... 82 Tabel 5-4 Pengujian Intensitas Cahaya ...... 83 Tabel 5-5 Pengujian Jarak Terhadap Marker ...... 83 Tabel 5-6 Pertanyaan Kuesioner Keberhasilan Aplikasi ...... 84

BAB I PENDAHULUAN

1. nomor 1.1 Latar Belakang Masalah

Sejak dahulu kala manusia sering menggunakan benda yang berada dilangit sebagai petunjuk untuk memahami konsep penanggalan, menentukan arah perjalanan, menentukan cuaca dan masih banyak kegunaan yang dipelajari dari pengamatan benda-benda langit. Ilmu yang mempelajari tentang pengamatan benda-benda langit dan kejadian-kejadian atau fenomena yang terjadi disekitarnya adalah Astronomi (Biondy & Santosa, 2015). Salah satu manfaat yang dihasilkan dari astronomi adalah pembuatan Charged Coupled Device (CCD), pertama kali digunakan didalam telescope untuk mengamati benda langit, yang kemudian dilepas untuk publik dan sekarang digunakan sebagai kamera webcam, smartphone dan dibanyak peralatan yang menggunakan kamera.

Penggunaan astronomi tidak hanya di negara maju seperti Amerika Serikat dan Skotlandia yang berdampak besar dalam sains angkasa. Indonesia juga memiliki prestasi dalam bidang astronomi yaitu Indonesia merupakan negara ketiga di dunia setelah AS dan Kanada yang menggunakan satelit domestik, yaitu Palapa A1 yang diluncurkan pada tahun 1976. Kemudian disusul dengan peluncuran- paluncuran satelit Palapa generasi berikutnya. Dalam teknologi peroketan Indonesia merupakan negara kedua di Asia yang berhasil meluncurkan roketnya sendiri, yaitu roket Kartika yang diluncurkan oleh LAPAN pada tahun 1964 (Biondy & Santosa, 2015). Indonesia memiliki bidang studi astronomi di Institut Teknologi Bandung (ITB), bahkan ITB merupakan satu-satunya institut yang memiliki studi astronomi di Asia Selatan (Jeremi, 2017).

Akan tetapi menurut (Biondy & Santosa, 2015) minat akan bidang studi astronomi mengalami penurunan yang drastis, walaupun di Indonesia terdapat tiga buah planetarium keberadaan planetarium tersebut dirasa kurang dimanfaatkan. Kurangnya minat masyarakat dibidang antariksa dan astronomi juga menyebabkan

1

2

kemunduran pada penguasaan teknologi antariksa Indonesia. Selain itu kemauan politis serta dukungan pemerintah akan penelitian antariksa bisa dibilang minim.

Untuk melihat seberapa tinggi atau rendahnya minat siswa-siswi SMA terhadap studi astronomi peneliti membuat kuesioner yang dilakukan pada lokasi Banten. Menurut Roscoe dalam (Sugiyono, 2014) “Ukuran sampel yang layak dalam penelitian adalah antara 30 sampai 500.”, dari pernyataan tesebut penulis mendapatkan 45 sampel yang diantaranya 30 sampel merupakan sampel yang sesuai dengan kriteria kuesioner yaitu yang berhak mengisi kuesioner adalah murid SMA.

Dari 30 pelajar, 27 orang menganggap bahwa ilmu astronomi menarik, tetapi lebih dari 15 orang menjawab untuk tidak melanjutkan kuliah dengan studi astronomi dan 10 orang menjawab mungkin. Jawaban yang peneliti dapat sesuai dengan pernyataan staff Planetarium dan Observatorium Jakarta. Bapak Widya Sawitar yang diwawancara oleh peneliti, dimana beliau mengatakan bahwa penunjung yang ingin tahu lebih lanjut dan memahami astronomi cukup banyak akan tetapi yang ingin “menyebur” ke astronomi sedikit.

Untuk dapat membuat aplikasi maka diperlukan pula platform yang sesuai, media yang sedang populer saat ini adalah smartphone, terutama dengan OS android. Dikutip dari Statista.com bahwa penjualan smartphone android mencapai 86% dibandingkan dengan OS lain seperti IOS. OS android banyak digunakan karena banyak fungsi yang tersemat kedalam smartphone dengan OS android, penggunaan yang user friendly dan banyak aplikasi yang terdapat di Playstore dan di internet. 3

Gambar 1-1 Penjualan Smartphone Secara Global

(Sumber : www.statista.com)

Penggunaan android sebagai media penyebarluasan studi astronomi, memerlukan metode dan aplikasi yang menarik dan interaktif, salah satu metode yang dapat digunakan adalah augmented reality. Menurut (Yuen, Yaoyuneyong, & Johnson, 2011) augmented reality memiliki potensi untuk merangsang dan memotivasi siswa untuk mengeplorasi materi dari sudut yang berbeda. Dengan adanya perspektif baru diharapkan murid dapat menyerap ilmu yang terdapat di aplikasi buatan penulis.

Untuk dapat meningkatkan interaksi pengguna dengan aplikasi, penulis menambahkan sebuah tujuan yang dapat diselesaikan didalam aplikasi tersebut, yaitu sebuah simulasi Terraforming. Terraforming sendiri merupakan proses di mana lingkungan yang tidak bersahabat (yaitu planet yang terlalu dingin, terlalu panas, dan/atau memiliki atmosfer yang tidak cocok untuk makhluk hidup) diubah agar sesuai dengan kehidupan manusia (Wiliams, 2016). Alasan mengapa penulis memilih tema terraforming dibandingkan dengan tema lain adalah karena konsep 4

terraforming jarang dipakai sehingga membuat pengguna tertarik untuk menggunakan aplikasinya, kedua adalah karena simulasi terraforming cukup mudah untuk dipahami sehingga pengguna mudah untuk menyerap informasi yang berada dalam aplikasi.

Ada banyak penelitian tentang augmented reality yang sebelumnya dilakukan oleh peneliti lain seperti “Pemanfaatan Augmented Reality Sebagai Media Pembelajaran Pengenalan Buah-Buahan” (2019) Pramono, Setiawan dan Martni yang dilakukan oleh yang menggunakan Marker-Based untuk AR mereka akan tetapi kurang interaktif dan Ng Giap Weng, Oon Yin Bee, Lee Hong Yew, dan Teoh Ee Hsia dengan jurnal berjudul “An Augmented Reality System for Biology Science Education in Malaysia” sebagai media yang mengimplementasikan suatu mata pelajaran kedalamnya akan tetapi tidak banyak yang dapat dilakukan pada aplikasi itu selain menampilkan model dan animasi pembelajaran.

Selain itu ada juga penelitian yang membahas tentang terraforming seperti “How to Terraform Mars: An Analysis of Ecopoiesis and Terraforming Research” (2000) oleh Budzik yang menjelaskan tentang analisis yang dia lakukan terhadap teori-teori terraforming serta metodenya. Dan “Technological Requirements for Terraforming Mars” (1993) jurnal oleh Zubrin dan McKay yang menjelaskan tentang teknologi serta variabel yang dibutuhkan untuk dirubah agar planet kebumian dapat dihuni oleh manusia, dan penulis akan mengintegerasi fungsi didalam penelitian kedalam penelitian ini.

Untuk membuat aplikasi yang interaktif sekaligus menarik dan memiliki potensi untuk menyebarkan awareness terhadap ilmu astronomi dan terraforming, maka penulis membuat penelitian berjudul “Rancang Bangun Aplikasi Simulasi Terraforming Menggunakan Teknologi Marker Based Augmented Reality Berbasis Android”

1.2 Rumusan Masalah Berdasarkan permasalahan diatas maka rumusan masalahnya adalah bagaimana cara mengimplementasi augmented reality dan tema terraforming 5

kedalam aplikasi platform android, sehingga menjadi aplikasi yang interaktif, menarik dan dapat menyebarkan awareness terhadap ilmu astronomi.

1.3 Batasan Masalah  Parameter yang dimasukan dalam Terraforming disini hanya suhu, tekanan atmosfir, air, dan massa biologis atau pepohonan. Selain itu parameter diatas (Gravitasi dan ukuran planet) akan dianggap sama dengan bumi. Dan sumber daya yang dibutuhkan untuk melakukan Terraform dibuat menjadi tidak terhingga atau tidak habis-habis.  Aplikasi, SDK dan library yang digunakan untuk membangun aplikasi Terraforming disini adalah Unity3D, Blender dan Vuforia.  Penulis tidak membahas tentang cara menginstall program SDE, library dan resource seperti Unity3D, Blender dan Vuforia.  Platform yang digunakan untuk penelitian hanya android.  Penulis hanya menggunakan marker-based Augmented Reality untuk penelitian ini.  Metodologi yang digunakan adalah Multimedia Development Life Cycle (MDLC) Luther-Sutopo.

1.4 Tujuan Penelitian Tujuan dari penelitian ini adalah untuk membuat aplikasi berplatform android dengan menggunakan teknologi augmented reality serta tema konsep terraforming untuk menaikan awareness terhadap ilmu astronomi sekaligus mendidik.

1.5 Manfaat Penelitian 1. Bagi Penulis

Penulis adalah dapat menjelajahi bagaimana terraforming dapat terjadi dan mempelajari cara mengimplementasinya kedalam sistem Augmented Reality dan Android.

2. Bagi Universitas 6

Penulis berharap universitas melihat penelitian ini sebagai tolak ukur untuk kompetensi dari penulis, baik dari sisi akademis maupun non-akademis.

3. Bagi Masyarakat Umum

Penulis berharap bahwa informasi yang terdapat dipenelitian ini dapat digunakan sebagaimana semestinya. Yaitu meningkatkan minat murid-murid SMA terhadap studi astronomi dan juga potensinya.

1.6 Metodologi Penelitian Metode yang digunakan oleh penulis dalam melakukan penelitian ini dibagi menjadi dua metode, yaitu metode pengumpulan data dan metode pengembangan sistem perangkat lunak.

1.6.1 Metode Pengumpulan Data

Dalam melakukan analisis terhadap data untuk penelitian tugas akhir ini, penulis menggunakan metode pengumpulan data yaitu:

1. Studi pustaka 2. Studi lapangan dengan observasi 3. Wawancara

1.6.2 Metode Rancang Bangun Perangkat Lunak Penulis menggunakan model rancang bangun aplikasi multimedia yang guguskan oleh luther-sutopo dan direvisi oleh Iwan Binanto. Model ini memiliki enam fase yaitu konsep, perancangan, pengumpulan bahan, pembuatan, pengujian dan distribusi, pada revisi Binanto pada tahap distribusi dapat dilakukan update atau patch untuk memperbaiki aplikasi dengan mengulang tahap dari konsep sampai distribusi lagi.

1.7 Sistem Penulisan Dalam penulisan tugas akhir ini penulis menyusun setiap bab-nya terdiri dari beberapa sub tersendiri. Bab tersebut secara keseluruhan saling berkaitan, diawali denngan bab pendahuluan dan di akhiri dengan bab penutup yang berisi kesimpulan 7

dan saran. Sistematika yang dibuat pada skripsi ini akan dibagi dalam enam bagian, yaitu:

BAB I PENDAHULUAN

Dalam bab ini membahas mengenai latar belakang penulisan, perumusan masalah, batasan masalah, tujuan dan manfaat, metode dan sistematika penulisan yang merupakan gambaran menyeluruh dari penulisan skripsi ini.

BAB II LANDASAN TEORI

Dalam bab ini membahas mengenai berbagai teori yang mendasari analisis permasalahan yang berhubungan dengan pembahasan.

BAB III METODOLOGI PENELITIAN

Bab ini berisi pembahasan atau pemaparan metode yang penulis pakai dalam pencarian data maupun perancangan sistem yang dilakukan pada penelitian.

BAB IV KONSEP, PERANCANGAN, PENGUMPULAN BAHAN, PEMBUATAN, PENGUJIAN DAN DISTRIBUSI

Bab ini membahas mengenai hasil dari analisis, perancangan, implementasi dan pengujian sistem selama penelitian ini berlangsung.

BAB V PENUTUP

Bab ini membahas mengenai hasil dan pembahasan rancangan pembuatan aplikasi terraforming menggunakan teknologi augmented reality berbasis android dan tampilan rancangannya.

BAB VI KESIMPULAN DAN SARAN 8

Pada bab ini kesimpulan dari hasil pembahasan seluruh bab serta saran-saran yang kiranya dapat diperhatikan serta dipertimbangkan untuk pengembangan sistem dimasa mendatang.

BAB II LANDASAN TEORI

2. nomor 2.1 Augmented Reality Banyak peneliti yang menjelaskan tentang arti augmented reality (AR), beberapa mengatakan AR merupakan kasus spesial dari Virtual Reality (VR), dan beberapa berdebat bahwa AR adalah konsep yang lebih umum dan melihat VR sebagai kasus khusus AR (Bimber & Raskar, 2005).

Akan tetapi terdapat beberapa karakteristik yang harus ada didalam AR dan membedakannya terhadap sistem lainnya. Seperti yang diungkapkan dalam survey yang dibuat oleh Ronald Azuma (2001) karakteristik AR yaitu menggabungkan objek nyata dan virtual dalam lingkungan yang nyata, berjalan secara interaktif dan real-time, dan objek nyata dan virtual sejajar (selaras) satu sama lain.

Gambar 2-1 Reality-Virtuality (RV) Continuum

(Sumber : Milgram, Kishino (1994))

Menurut Milgram dan Kishino (1994), dimana sisi sebelah kiri dimewakili lingkungan nyata dan disisi lain lingkungan virtual. Dalam augmented reality, lebih dekat kesisi kiri maka lingkungan bersifat nyata dan benda bersifat maya, sementara augmented virtuality lebh dekat kesisi kanan, lingkungan bersifat maya dan benda bersifat nyata.

Untuk proses kerja augmented reality, pertama aplikasi akan streaming video dari kamera platform aplikasi tersebut, kemudian streaming video dilakukan untuk mencari marker dan mengidentifikasi marker yang sudah ditentukan. Lalu marker

9

10

yang sudah diidentifikasi akan menampilkan benda maya lalu diposisikan secara realtime dilayar, terakhir objek 3D akan di render kedalam frame videonya. Penjelasan terdapat didalam gambar 2.2 dibawah ini.

Gambar 2-2 Prinsip kerja augmented reality

(Sumber : Penulis)

Terdapat dua metode pengimplementasian augmented reality, yaitu:

2.1.1. Marker-Based

Metode Marker-Based seperti namanya, bekerja dengan mendeteksi marker atau tanda. Cara kerja Marker-Based mirip dengan cara kerja augmented reality pada umumnnya, kamera akan menangkap tanda yang terdapat didalam database, lalu objek 3D akan dikalibrasi dan dirender ke layar. Gambar yang paling mudah untuk dideteksi oleh kamera, tetapi gambar berwarna dapat digunakan untuk augmented reality juga.

Vuforia dengan marker menggunakan point-point target yang nantinya akan dibaca untuk proyeksi Augmented Reality, terlebih lagi vuforia menggunakan metode FAST didalam computer vision yang penulis jelaskan pada computer vision dibawah.

2.1.2. Marker-Less

Metode Marker-Less adalah kebalikan dari Marker-Based dimana metode ini tidak memerlukan tanda atau marker untuk berinteraksi dengan lingkungan virtual. Beberapa teknik yang digunakan untuk Marker-Less, yaitu:

a. Motion Tracking 11

Teknik ini digunakan untuk menangkap gerakan, motion tracking digunakan dalam industri perfilman untuk mensimulasi gerakan manusia kedalam animasi secara real-time.

b. GPS Based Tracking

Teknik ini menggunakan bujur dan lintang untuk mendeteksi objek 3D secara realtime. Pengaplikasian dalam video game adalah Pokemon GO, yang menggunakan lokasi sebagai tempat munculnya pokemon serta menggunakan tempat penting sebagai gym.

2.2 Rancang Bangun

Rancang merupakan serangkaian prosedur untuk menerjemahkan hasil analisis dari sebuah sistem ke dalam bahasa pemrograman untuk mendeskripsikan dengan detail bagaimana komponen-komponen sistem diimplementasikan (Pressman, 2010). Sedangkan bangun sistem adalah membangun sistem informasi dan komponen yang didasarkan pada desain spesifik (Whitten & Bentley, 2007).

Dari penjelasan diatas dapat disimpulkan bahwa rancang bangun adalah serangkaian proses yang digunakan untuk menerjemahkan komponen-komponen yang berada didalam sebuah sistem kedalam bahasa pemrograman lalu mengimplementasikan komponen sistem digital tersebut berdasarkan desain rancangan yang sudah diterjemahkan.

2.3 Simulasi

Menurut (Ikhwan, 2017), simulasi itu adalah sebuah model yang berisi seperangkat variabel yang menampilkan ciri utama dari sistem kehidupan yang sebenarnya. Sedangkan menurut (Law & Kelton, 1982), simulasi adalah teknik yang menggunakan komputer untuk meniru atau mengimitasi suatu operasi dari berbagai fasilitas atau proses dari dunia nyata. Dan menurut (Harrell, Ghosh, & Bowden, 2011), simulasi merupakan imitasi dari suatu sistem dinamis menggunakan model komputer dalam rangka untuk melakukan eveluasi dan meningkatkan untuk kerja sistem. 12

Dari pengertian diatas dapat disimpulkan bahwa simulasi adalah model yang berisi variabel tentang aspek dan proses kerja dunia nyata yang disimulasikan dengan menggunakan komputer guna mengevaluasi dan mengingkatkan sistem kerja dunia nyata.

2.4 Terraforming

Terraforming dapat diartikan sebagai membuat planet lain menjadi seperti planet bumi. Ada dua jenis terraform yaitu terraform planetologis tidak merubah apapun pada planet seperti bumi, stabil tanpa campur tangan manusia lebih lanjut, dan habitable terraform menggunakan jalan pintas buatan untuk mengadaptasi planet sehingga menjadi tempat tinggal yang bisa dihuni manusia, tetapi masih membutuhkan pemeliharaan lanjutan (Birch, 1992).

Banyak peneliti yang mengungkapkan teori mereka tentang cara merubah planet lain, terutama planet Mars karena planet mars memiliki medan geologi yang kurang lebih sama seperti padang pasir di Bumi. Dipermisalkan kalau ingin merubah planet mars sehingga bisa ditempati makhluk bumi maka diperlukan perubahan tekanan atmosfirnya hingga cukup untuk menyuplai oksigen untuk bernafas, memanaskan mars cukup untuk manusia berjalan tanpa pakaian khusus dan menyediakan air yang dibutuhkan untuk kehidupan darat dan laut (Fogg, 1993).

Terraforming untuk saat ini hanya terdapat dalam bentuk konsep atau hipotesis, karena seperti yang dikatakan oleh pihak nasa (Steigerwald, 2018) bahwa terraforming tidak dapat dilakukan dengan teknologi manusia sekarang. Akan tetapi sudah banyak penelitian yang dilakukan untuk merubah lingkungan hidup planet kebumian atau yang memiliki inti bebatuan, hal serupa dapat juga dilakukan untuk satelit alami seperti bulan, dan planet kerdil seperti Pluto. Walaupun begitu belum terdapat penelitian untuk men-terraforming planet yang kebanyakan memiliki komposisi gas seperti Hidrogen, Helium dan Metana. Planet Yupiter, Saturnus, Uranus, dan Neptunus adalah planet jovian atau Giant Gas.

Hal yang harus diperhatikan dalam terraforming adalah faktor apakah manusia dapat hidup diplanet selain bumi dengan sedikit atau tidak sama sekali 13

menggunakan bantuan alat seperti alat bantu bernafas atau alat pelindung sinar matahari. Faktor penting dalam terraforming adalah tekanan atmosfir, panas planet, kadar air di planet tersebut, dan jumlah massa biologis planet tersebut.

Penulis menggunakan terraforming sebagai tujuan yang dapat dicapai saat menggunakan aplikasi terraforming yang dibuat oleh penulis, penggunaan tujuan dalam sebuah aktivitas dapat membuat partisipan menjadi lebih interaktif (Lee & Hammer, 2011).

2.5 Storyboard

Menurut Suyanto (2003) Storyboard adalah rangkaian sketsa berbentuk persegi yang bertujuan untuk menggambarkan suatu urutan atau alur elemen pada sebuah aplikasi yang dibuat. Sedangkan menurut Giuseppe (2014) Storyboard adalah urutan sketsa yang dirancang untuk menunjukkan bagaimana sebuah film atau iklan akan dikembangkan.

Dari penjelasan diatas dapat disimpulkan bahwa Storyboard adalah serangkaian sketsa yang dirancang sesuai urutan atau elemen dalam sebuah produk yang akan dikembangkan.

2.6 Computer Vision

Computer vision adalah metode komputer untuk menggambarkan dunia yang kita lihat dalam satu atau lebih gambar dan merekonstruksi sifat-sifatnya, seperti bentuk, pencahayaan, dan distribusi warna. visi komputer sedang digunakan saat ini di berbagai aplikasi dunia nyata, yang meliputi: Optical character recognition (OCR) yang digunakan untuk membaca tulisan tangan pada gambar atau dokumen, Retail yang digunakan dalam pembayaran automatis supermarket, dan Surveillance memantau penyusup, menganalisis lalu lintas jalan raya, dan memantau kolam untuk korban yang tenggelam (Szeliski, 2011)

Features from Accelerated Segment Test (FAST) adalah metode corner detection (deteksi sudut), yang dapat digunakan untuk mengekstrak poin fitur dan 14

kemudian digunakan untuk melacak dan memetakan objek dalam banyak tugas visi komputer (Rosten & Drummond, 2006).

Vuforia bekerjasama dengan menggunakan Qualcomm Augmented Reality (QCAR) yaitu sebuah SDK untuk mengenali dan mentracking image target. QCAR menggunakan FAST sebagai metode untuk image processing mereka.

2.7 UML (Unified Model Language)

Unified Modelling Language (UML) adalah alat untuk memvisualisasikan dan mendokumentasikan hasil analisis dan desain yang berisi sintaks sistem secara visual. UML juga merupakan satu kumpulan konversi pemodelan yang digunakan untuk menentukan sebuah software yang terkait dengan objek. UML menjadi standar untuk visualisasi, merancang dan mendokumentasikan software. Dengan adanya standar ini, komunikasi antar stakeholder software diharapkan menjadi mudah dan lancar (Haviluddin, 2011).

Tujuan dari UML adalah sebagai berikut, yaitu:

a. Menyediakan bagi pengguna (analisis dan desain sistem) suatu bahasa pemodelan visual yang dapat mengembangkan dan melakukan pertukaran model data. b. Mekanisme yang memiliki spesialisasi dalam memperluas konsep inti. c. Memberikan pemahaman tentang bahasa pemodelan. d. Mendukung konsep pembangunan tingkat tinggi seperti kolaborasi, kerangka, pola dan komponen pada suatu sistem.

Menurut (Haviluddin, 2011) Pada UML versi 2 terdapat tiga kategori yang memiliki 13 jenis diagram yaitu :

2.4.1. Struktur Diagram Menggambarkan elemen dari spesifikasi dimulai dengan kelas, obyek, dan hubungan mereka, dan beralih ke dokumen arsitektur logis dari suatu sistem. Struktur diagram dalam UML, yaitu Class Diagram, Object 15

Diagram, Component Diagram, Deployment Diagram, Composite Structure Diagram, dan Package Diagram.

Tabel 2-1 Class Diagram

Nama Paket

Class Terdiri dari Nama Class, Atribut Class dan Metode Class

Generalization

Dependency

Aggregation/Pengumpulan

2.4.2. Behavior Diagram Menggambarkan ciri-ciri behavior/metode/ fungsi dari sebuah sistem atau business process. Behavior diagram dalam UML, yaitu Use Case Diagram, Activity Diagram dan State Machine Diagram

Tabel 2-2 Use Case Diagram

Pengguna Aplikasi

Fungsi Aplikasi

Hubungan Pengguna Dengan Fungsi 16

Tabel 2-3 Activity Diagram

Initial Stage/Tahap pertama

Final Stage/Tahap terakhir

Flow/Aliran

Proses

Option/Pilihan

Transition/Percabangan

2.4.3. Interaction Diagram Bagian dari behavior diagram yang menggambarkan interaksi objek. Interaction diagram dalam UML, yaitu Interaction Overview diagram, Sequence diagram dan Timing diagram

2.8 Android Yuniar Supardi (2011) menjelaskan bahwa Android adalah sistem operasi yang berbasis Linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka.

Alasan mengapa penulis memilih platform android untuk penelitian ini karena android merupakan platform paling banyak digunakan pada saat ini seperti yang dijelaskan pada bab 1 dan karena android memiliki kemudahan saat menggunakan aplikasi yang memerlukan fitur AR seperti accelerometer dan gyroscope. 17

2.9 Unity Rickman Roedavan (2014) menjelaskan bahwa Unity adalah sebuah game engine yang memungkinkan seseorang mau pun tim, untuk membuat sebuah Games 3D dengan mudah dan cepat.

Unity Game Engine merupakan salah satu game engine dengan lisensi source proprietary, namun untuk lisensi pengembangan dibagi menjadi 2 versi, yaitu gratis dan berbayar sesuai perangkat target pengembangan aplikasi. pengguna unity dengan lisensi gratis dapat mempublikasikan aplikasi yang dibuat tanpa harus membayar biaya lisensi atau royalti kepada unity, tetapi jika aplikasi yang dikembangkan menhasilkan uang dari iklan atau pembelian dalam aplikasi mencapai batas tertentu maka developer harus membeli versi berbayar.

Menurut Joseph Hocking (2015) Unity memiliki dua keunggulan utama dibandingkan game engine lainnya yang serupa, yaitu alur kerja visual yang sangat produktif, dan dukungan lintas-platform tingkat tinggi.

Alur kerja visual Unity memiliki desain yang cukup unik, berbeda dari kebanyakan lingkungan game engine lainnya. Dimana alat pengembangan game lainnya sering kali mencampurkan bagian-bagian yang berbeda yang rumit, atau mungkin library pemrograman mengharuskan untuk menyiapkan lingkungan pengembangan terintegrasi (IDE) Anda sendiri, build-chain dan yang lainnya. Alur kerja pengembangan di Unity adalah editor visual yang canggih. Keindahan editor ini adalah memungkinkan game berkualitas profesional dibangun dengan cepat dan efisien.

Kekuatan lain dari toolset Unity adalah dukungan lintas platform yang tinggi. Unity bukan hanya multiplatform dalam hal target penyebaran (Anda dapat menggunakan untuk PC, web, seluler, atau konsol), tetapi juga multiplatform dalam hal alat pengembangan (Anda dapat mengembangkan game di Windows atau Mac OS). Sifat platform-agnostik ini sebagian besar karena Unity dimulai sebagai perangkat lunak hanya Mac dan kemudian diangkut ke Windows. Versi pertama diluncurkan pada tahun 2005, tetapi sekarang Unity naik ke versi utama kelima 18

(dengan banyak pembaruan kecil sering dirilis). Awalnya, Unity hanya mendukung Mac untuk pengembangan dan penyebaran, tetapi dalam beberapa bulan Unity telah diperbarui untuk bekerja di Windows juga. Versi yang berurutan secara bertahap menambahkan lebih banyak platform penyebaran, seperti pemain web lintas- platform pada 2006, iPhone pada 2008, Android pada 2010, dan bahkan konsol game seperti Xbox dan PlayStation. Baru-baru ini mereka menambahkan penerapan ke WebGL, kerangka kerja baru untuk grafik 3D di browser web. Beberapa mesin game mendukung sebanyak mungkin target penyebaran seperti Unity, dan tidak ada yang membuat penggelaran ke berbagai platform menjadi sangat sederhana.

2.9.1 Unity Shader Graph

Shader adalah jenis program komputer yang awalnya digunakan untuk shading atau memanipulasi intensitas cahaya, kegelapan, dan warna yang sesuai untuk memberikan persepsi kedalaman dalam model 3D. Sekarang shader dapat melakukan berbagai fungsi khusus di berbagai bidang dalam kategori efek khusus grafis komputer, atau melakukan post processing video yang tidak terkait dengan shading, atau bahkan melakukan fungsi yang tidak terkait dengan grafik sama sekali (Shehata, 2015).

Unity Shader Graph adalah produk Unity yang memudahkan pengguna untuk membuat shader dengan membuatnya secara visual dan melihat hasilnya secara real-time. Unity Shader Graph menggunakan node base untuk membuat shadernya dibandingkan dengan pemrograman tradisional (Unity, 2019).

2.10 Vuforia Vuforia adalah library Augmented Reality yang didistribusikan oleh Qualcomm® Inc. Library ini gratis untuk digunakan dalam proyek non-komersial atau komersial. Library Vuforia mendukung marker dan natural feature target tracking serta multi-target, yang merupakan kombinasi dari beberapa target. Perpustakaan ini juga dilengkapi fungsi rendering dasar (latar belakang video dan rendering OpenGL® 3D), aljabar linier (transformasi matriks / vektor), dan 19

kemampuan interaksi (tombol virtual). Pustaka yang sebenarnya terdapat di platform iOS dan Android, dan kinerjanya ditingkatkan pada perangkat seluler yang dilengkapi dengan chipset Qualcomm® (Grubert & Grasset, 2013).

2.11 Blender Blender adalah program grafik komputer yang memungkinkan untuk menghasilkan gambar dan animasi berkualitas tinggi menggunakan geometri tiga dimensi. Salah satu hal yang membuat Blender berbeda dan istimewa dibandingkan dengan perangkat lunak 3D lain yang sebanding adalah fakta bahwa Blender gratis dan open source. Karena kelebihannya ini, Blender menjadi program yang ideal untuk perusahaan animasi kecil, seniman 3D lepas, pembuat film independen, dan siswa mulai belajar tentang grafik komputer 3D (Gumster, 2009).

2.12 MDLC (Multimedia Development Life Cycle) Metode rancang bangun sistem Multimedia Development Lyfe Cycle (MDLC) dari luther merupakan tahapan-tahapan rancang bangun sistem multimedia yang tidak perlu dilakukan secara berurutan. Ada 6 tahapan metode rancang bangun MDLC versi luthor, ke enam metode tersebut dapat bertukar posisi namun pada tahapan awal tetap dimulai oleh konsep dan diakhiri dengan tahapan distribusi, sedangkan sisa tahapan yang lain seperti material collecting dan assembly dapat dikerjakan secara pararel.

Berikut tahapan yang terdapat pada metode MDLC, yaitu:

a. Concept

Tahapan ini merupakan tahapan menentukan tujuan dan siapa pengguna dari sistem yang ingin dibuat. Tujuan dan pengguna akhir program berpengaruh pada nuansa multimedia sebagai cerminan dari identitas organisasi yang menginginkan informasi sampai pada pengguna akhir, sehingga perlunya identifikasi masalah dan mengusulkan penyelesaian masalah yang terjadi. Kemampuan pengguna juga termasuk kedalam kriteria pengguna yang perlu dipertimbangkan karena dapat 20

mempengaruhi pembuatan desain. Tahapan ini juga menentukan jenis aplikasi yang dibuat dan spesifikasi umum aplikasi. b. Design

Design atau perancangan merupakan tahapan yang melakukan pembuatan spesifikasi mengenai arsitektur, alur, tampilan, dan kebutuhan material/ bahan untuk sebuah sistem program. Sebelum menyusun aplikasi, pembuat harus menentukan terlebih dahulu alur apa yang akan digunakan dalam aplikasi yang dibuat untuk menentukan tampilan dan kebutuhan material ataupun bahan yang sesuai untuk aplikasi. c. Material Collecting

Pengumpulan material atau bahan adalah tahap dimana pembuat aplikasi mengumpulkan bahan yang sesuai dengan kebutuhan aplikasi. Bahan tersebut dapat berupa sebuah 3D objek, gambar, teks, ataupun audio yang bisa di dapatkan dari internet, buku, ataupun buatan sendiri menggunakan tools tambahan. d. Assembly

Tahapan penggabungan adalah tahapan dimana pembuat aplikasi menggabungkan semua objek atau elemen multimedia menjadi satu kesatuan aplikasi e. Testing

Tahapan pengujian dilakukan setelah menyelesaikan tahapan assembly. Tahapan ini dilakukan dengan cara menjalankan aplikasi untuk melihat apakah ada kesalahan yang tidak di inginkan pada aplikasi. Tahapan pertama pada testing yaitu alpha test yang dimana tahapan tersebut dilakukan oleh pembuat aplikasi sendiri. Setelah lolos dari alpha test maka dilakukan tahapan beta test yang melibatkan pengguna akhir yang telah dipilih maupun di sortir sesuai kebutuhan. 21

f. Distribution

Pada Tahapan ini, aplikasi yang telah dikemas dengan baik akan disebarkan kepada pengguna akhir baik melalu media CD/DVD, download, ataupun media lainnya.

2.13 Blackbox Testing

Blackbox testing merupakan pengujian software dari segi fungsional tanpa melakukan pengujian pada desain dan kode program. Pengujian dilakukan untuk mengetahui fungsi-fungsi input dan output pada sistem sesuai dengan spesifikasi yang dibutuhkan (Pressman, 2010).

Blackbox testing memiliki beberapa tahap pengujian, yaitu:

a. Stress Testing

Pada tahapan ini sistem diuji untuk melihat apakah sistem mampu secara keseluruhan menangani kebutuhan sumber daya yang tidak normal (mencakup kuantitas, frekuensi, maupun volume).

b. Usability Testing

Pengujian dilakukan untuk melihat apakah sistem ini dapat digunakan dengan mudah oleh user, apakah sistem efisien dan efektif dalam membantu user mencapai tujuannya. Tujuan dari pengujian usabilitas adalah membatasi dan menghilangkan kesulitan bagi pengguna.

c. Alpha Testing

Pada tahapan pengujian ini, sistem di uji di lingkungan rancang bangun sistem atau dengan kata lain sistem di uji oleh developer sendiri. Penguji akan mencatat setiap masukan atau tindakan yang dilakukan pada sistem. Pengujian ini bertujuan agar sistem yang dikembangkan terhindar dari cacat atau kegagalan penggunaan.

d. Beta Testing 22

Pengujian dilakukan oleh end user dilingkungan end user itu sendiri untuk memvalidasi kegunaan, fungsi, kompatibilitas, dan uji reliabilitas dari sistem yang dibuat. Kesalahan yang ada pada saat pengujian dilaporkan pada pengembang. Pengujian beta dilakukan setelah pengujian alpha.

2.14 Literatur Sejenis

Literatur sejenis yang digunakan penulis adalah studi literatur hasil dari penelitian atau hasil penulisan karya ilmiah. Penelitian studi literatur terbagi menjadi beberapa topik, dari penggunaan teknologi augmented reality dan karya ilmiah tentang teori-teori yang memungkinkan terjadinya terraforming.

a. Anang Pramono dan Martin Setiawan (2019) dengan karya ilmiah mereka yang berjudul “Pemanfaatan Augmented Reality Sebagai Media Pembelajaran Pengenalan Buah-Buahan”, penelitian mereka bertujuan untuk menggunakan teknologi augmented reality sebagai media untuk membantu pembelajaran siswa jenjang Sekolah Dasar. Selain itu penelitian ini menggunakan marker-based augmented reality agar Usability-nya meningkat. Kelebihan dari penelitian ini adalah pengujian yang dilakukan untuk aplikasi menyeluruh, yaitu pengujian marker, pengujian oklusi, pengujian akurasi dan pengujian usability. Kekurangan penelitian ini adalah Aplikasi perlu dikembangkan lagi dengan penambahan objek 3D buah sehingga menjadi media pengenalan buah – buahan yang lengkap, perlu dilakukan pengembangan pada fitur AR camera sehingga dapat meminimalisir waktu pemrosesan untuk membuka AR camera, tampilan aplikasi perlu dikembangkan agar lebih responsive.

b. Takhta Ananda, Novi Safriadi dan Anggi Sukamto (2015) dengan karya ilmiah mereka yang berjudul “Penerapan Augmented Reality Sebagai Media Pembelajaran Mengenal Planet-Planet Di Tata Surya”, karya ilmiah mereka merupakan yang paling mendekati penelitian penulis. Perbedaan dari penelitian penulis dengan karya ilmiah mereka adalah penggunaan 23

tema terraforming pada penelitian penulis yang berfungsi sebagai tujuan didalam aplikasi tersebut dimana karya ilmiah mereka hanya memberikan penjelasan setiap planet ditata surya dan memberikan kuis. Penulis juga membagi fokus kedua komponen dalam tujuan pembuatan penelitian yaitu untuk membuat aplikasi yang menarik dan ber-impact serta membantu pembelajaran tentang astronomi dan terraforming.

c. Mohammad Irsyad dengan tesis yang dibuatnya berjudul “Aplikasi Augmented Reality Sebagai Media Simulasi Ikatan Kimia Berbasis Android Menggunakan Metode FAST Corner Detection”, tesis ini menggunakan teknik FAST (Feature from Accelerate Segmen Test) yang digunakan untuk mempercepat deteksi tepi pada marker, yang digunakan juga pada SDK Vuforia. d. Robert M. Zubrin dan Christopher P. McKay (Zubrin & McKay, 1993) dengan karya ilmiah mereka yang berjudul “Technological Requirements for Terraforming Mars”, karya ilmiah mereka membahas tentang kebutuhan-kebutuhan untuk mengubah mars menjadi tempat yang dapat dihuni oleh manusia serta metode-metode yang memungkinkan untuk mengubah mars.

Peneliti Judul Augmented Reality Terraforming Astronomi Interaktif Pemanfaatan Augmented Reality Anang Pramono dan Sebagai Media Pembelajaran O X X X Martin Setiawan Pengenalan Buah-Buahan Takhta Ananda, Penerapan Augmented Reality Sebagai Novi Safriadi dan Media Pembelajaran Mengenal Planet- O X O X Anggi Sukamto Planet Di Tata Surya Aplikasi Augmented Reality Sebagai Media Simulasi Ikatan Kimia Berbasis Mohammad Irsyad O X X O Android Menggunakan Metode FAST Corner Detection Robert M. Zubrin Technological Requirements for dan Christopher P. Terraforming Mars X O O X McKay Rancang Bangun Aplikasi Simulasi Terraforming Menggunakan Teknologi Taqie Fadlillah O O O O Marker-Based Augmented Reality Berbasis Android

24

BAB III METODOLOGI PENELITIAN

3. nomor 3.1. Metode Pengumpulan Data

Beberapa metode yang digunakan oleh penulis yaitu studi lapangan yang menggunakan wawancara dan kuesioner, serta studi pustaka.

3.1.1. Wawancara Penulis melakukan wawancara secara langsung kepada beberapa staff Planetarium dan Observatorium Jakarta yaitu bapak Widya Sawitar yang mendalami ilmu keantariksaan dan Deli Anja serta Dmirza Pahlavi Al Amamu yang mengetes aplikasi. Penulis melakukan wawancara untuk mengetahui apakah aplikasi buatan penulis sesuai dengan ilmu yang didalami oleh narasumber.

3.1.2. Kuesioner Penulis menyebarkan dua kuesioner, satu dalam bentuk google form yang digunakan untuk mencari tahu minat dan kemampuan siswa siswi SMA dalam program studi astronomi, dan satu lagi dalam bentuk fisik yang digunakan untuk mengetahui tingkat kepuasan dan keberhasilan aplikasi.

Untuk kuesioner pertama, penulis menyebarkan kuesioner dengan syarat pengisian hanya dapat dilakukan oleh siswa siswi yang masih belajar dijenjang SMA dan sederajatnya. Hal ini dilakukan untuk mendapatkan data tentang minat siswa siswi SMA akan program studi astronomi. Untuk peserta yang tidak memenuhi syarat untuk mengisi kuesioner tetap diberikan alternatif untuk mengisi kuesioner yang dapat atau tidak diisi oleh mereka.

Sedangkan untuk kuesioner kedua, penulis menyebarkannya kepada murid SMAN 6 Tangerang Selatan. Penulis menyebarkan kuesioner tepat setelah penulis selesai mengujikan aplikasi kepada murid yang berpartisipasi.

25

26

Penulis mendapatkan 45 responden untuk kuesioner tentang minat dan kemampuan astronomi, akan tetapi data yang valid hanya 30 sampel. dan 30 responden untuk tingkat keberhasilan aplikasi yang merupakan angka yang cukup menurut (Sugiyono, 2014).

3.1.3. Studi Pustaka Pada tahapan pengumpulan data dengan cara studi pustaka, penulis mencari referensi-referensi yang relevan dengan astronomi, terraforming dan augmented reality. Pencarian referensi dilakukan bersumber dengan dari buku yang berjumlah (15) buku, jurnal berjumlah (15) Jurnal, 5 Studi literatur sejenis maupun secara online melalui internet sebanyak (3) sumber. Informasi yang didapatkan digunakan dalam penyusunan landasan teori, metodologi penelitian serta rancang bangun aplikasinya secara langsung.

3.2. Metode Rancang Bangun Sistem

Metode rancang bangun sistem yang digunakan penulis dalam penulisan penelitian ini adalah Multimedia Development Life Cycle atau MDLC (2010). Rancang bangun sistem dibagi menjadi enam bagian, yaitu:

3.2.1. Concept Tahap concept (konsep) adalah tahapan untuk menentukan tujuan dan siapa pengguna program (identifikasi audience). Selain itu dilakukan juga penentuan untuk spesifikasi aplikasi yang didapatkan dari wawancara dengan staff Planetarium dan Observatorium Jakarta yang memiliki pengetahuan tentang astronomi.

3.2.2. Design Pada tahap ini penulis membuatan spesifikasi mengenai arsitektur program, tampilan dan kebutuhan bahan untuk program. Peneliti mengambil tema futuristik dan fiksi ilmiah yang diterapkan pada UI-nya, penulis menggunakan banyak warna abu-abu yang melambangkan netral dan serius, penulis juga memakai banyak teks dan tombol yang menggunakan cahaya luar di sekeliling teks atau simbol ditambah latar belakang gelap tembus 27

pandang untuk menonjolkan cahaya luar dalam teks atau tombol tersebut. Tahap design akan menggunakan beberapa metode meliputi storyboard, Unified Modelling Language (UML) diagram, Use Case Diagram, Activity Diagram, perancangan desain tampilan layar (Screen layouts).

3.2.3. Material Collecting Tahap ini bertujuan untuk mengumpulkan bahan-bahan yang akan digunakan didalam aplikasi. Bahan-bahan yang dibutuhkan adalah gambar yang digunakan sebagai UI dalam aplikasi, 3D objek yang dibuat dari aplikasi Blender, sound effect dan BGM.

3.2.4. Assembly Setelah pengumpulan bahan-bahan yang dibutuhkan, berikutnya bahan-bahan tersebut digunakan dalam pembuatan aplikasi dengan menggunakan aplikasi Unity dan implementasi AR dengan Vuforia. Pertama- tama dengan membuat aplikasi versi alpha yang nantinya akan ditanyakan kepada narasumber tentang kekurangan aplikasi lalu dilanjutkan dengan versi beta yang diujikan kepada publik.

3.2.5. Testing Pada tahap ini penulis menggunakan metode testing blackbox. Pengujian dilakukan untuk menguji komponen yang ada pada sistem seperti input dan output, kesalahan interface, maupun kesalahan informasi yang terdapat pada sistem.

3.2.6. Distribution Distribusi aplikasi akan dilakukan dengan menggunakan penyimpanan online seperti google drive, penyimpanan eksternal seperti flash disk dengan fungsi On The Go (OTG), dan penyebaran media sosial seperti Line dan Whatsapp. 28

3.3. Kerangka Berpikir

Gambar 3-1 Gambar Kerangka Berpikir

29

BAB IV ANALISIS DAN RANCANG BANGUN SISTEM

4. Nomor Dalam pembuatan aplikasi ini, peneliti menggunakan metode rancang bangun MDLC yang memiliki enam tahap, yaitu: Concept, design, material collecting, assembly, testing, dan distribution. Enam tahap ini dibagi menjadi dua bab, tahap concept, design, material collecting berada di bab empat dan tahap assembly, tahap testing dan tahap distribution pada bab lima.

4.1. Tahap Concept

Pada tahap ini, peneliti membuat deskripsi aplikasi berdasarkan penelitian yang pernah dilakukan beserta teori tentang terraforming yang pernah diusung, dan wawancara dengan pihak Planetarium dan Observatorium Jakarta untuk menentukan tujuan dari pembuatan aplikasi serta manfaat yang dihasilkan dari pembuatannya, menentukan tema dan fungsi aplikasi serta validasinya, lalu menentukan pengguna aplikasi dari narasumber serta penerapan pada aplikasi serta media lainnya.

4.1.1. Deskripsi Aplikasi

Aplikasi yang dibuat oleh peneliti berjudul “Terrarc” yang merupakan aplikasi edukasi tentang tata surya dan cara merubah planet yang “ganas” menjadi tempat yang dapat ditinggali oleh manusia dan makhluk hidup lainnya, atau Terraforming. Aplikasi menggunakan platform android dengan teknologi augmented reality yang interaktif agar pengguna tertarik untuk menggunakan aplikasi tersebut sekaligus mendapatkan informasi tentang benda angkasa dan antariksa.

4.1.2. Tujuan Pembuatan Aplikasi

1. Untuk mengedukasi penggunanya tentang tata surya, planet, satelit, dan fenomena perbintangan dengan menggunakan metode yang menyenangkan dan interaktif. 30

2. Meningkatkan minat siswa-siswi tingkatan SMA untuk belajar tentang astronomi dan mengambil mata kuliah astronomi serta masyarakat umum untuk mengetahui pentingnya bidang astronomi.

4.1.3. Menentukan Pengguna Aplikasi

Pengguna aplikasi yang diharapkan siswa-siswi SMA dan sederajat. Akan tetapi aplikasi dapat digunakan oleh siapapun dengan persyaratan individu tersebut dapat memiliki dan menggunakan smartphone android.

4.1.4. Pengaplikasian Teori

1. Terraforming, dipermisalkan jika ingin merubah planet Mars sehingga manusia dapat tinggal disana, maka yang pertama harus dilakukan adalah merubah tekanan atmosfir atau/dan merubah temperatur planet tersebut. Karena tekanan atmosfir Mars lebih sedikit dibandingkan dengan Bumi maka tekanan atmosfirnya harus ditingkatkan, yaitu dengan memproses dan melepaskan mineral yang terdapat jauh dibawah permukaan mars.

Berdasarkan data yang diberikan oleh NASA (Center, 2018), dibawah permukaan Mars terdapat 1.2 % gas dari menggali mineral yang dibutuhkan untuk terraforming Mars, maka dari itu penulis memberikan batasan dimana dalam setahun mineral hanya bisa diproses 1.2 % di Mars atau planet kebumian lainnya dan bahan yang dibutuhkan dianggap tidak terhingga sehingga terraforming dapat dilakukan. Untuk mengurangi tekanan atmosfir penulis menggunakan fasilitas pemrosesan hidrogen yang menggunakan pemrosesan bosch (R. F. Holmes, 1970) dimana hidrogen dan karbon dioksida diproses sehingga menjadi karbon dioksida berkurang. Dimana karbon dioksida merupakan komposisi utama dalam atmosfir pada saat itu.

Setelah tekanan atmosfir terbentuk maka langkah selanjutnya adalah meningkatkan suhu Mars secukupnya agar manusia dapat hidup dan air 31

menjadi menjadi cair, tidak membeku dan menguap. Dengan menggunakan orbital mirror atau kaca orbit, seperti namanya kaca raksasa diorbitkan pada Mars untuk menghangatkan planet tersebut (Fogg, 1992). Dan sebaliknya untuk menurunkan suhu Mars atau planet kebumian lainnya dengan menggunakan solar shade atau naungan matahari, cara kerjanya adalah dengan memblokir sinar matahari untuk menyentuh planet kebumian tersebut.

Setelah planet cukup hangat maka kandungan air yang membeku pada Mars akan meleleh dan keluar kepermukaan, kandungan air yang terdapat pada mars kurang jika dibandingkan dengan bumi, maka kadar air ditambahkan dengan cara mengarahkan asteroid yang berisikan air ke Mars. Dan untuk mengurangi kandungan air di Mars atau planet kebumian lainnya dengan membekukan air berlebih dan meluncurkannya ke luar angkasa.

Selanjutnya jika ketiga kondisi diatas sudah terpenuhi maka dapat menanam tumbuhan yang sudah direkayasa untuk hidup di kondisi Mars pada saat itu untuk dapat menghasilkan oksigen sehingga makhluk yang hidup dapat hidup dan tekanan atmosfir Mars berputar antara oksigen dan karbon dioksida agar efek rumah kaca dapat berkurang. Selain untuk mengurangi karbon dioksida dan menambahkan oksigen fungsi tumbuhan disini juga sebagai biomass atau bahan untuk memproduksi energi.

Untuk pengendali variabel yang menggunakan fasilitas seperti processor dan peluncur es, akan banyak terpengaruh dari banyaknya uang yang digunakan untuk membangun dan menjaga fasilitas tersebut agar tetap bekerja, dan pada batasan masalah sudah dijelaskan bahwa sumber daya akan dibuat menjadi tidak terhingga, maka fasilitas tersebut dapat dibuat sebanyak mungkin yang akan membuat balance dari aplikasi hancur. Maka fasilitas peningkatan ataupun pengurangan variabel akan disamakan dengan peningkatan ataupun pengurangan 32

dengan nilai yang sudah diketahui. Misal untuk meningkatkan tekanan atmosfir menggunakan data dari sumber yang diketahui dengan nilai yang diketahui juga yaitu 1.2 % atmosfir bumi atau 1.200 Pa, karena pengurangan variabel menggunakan hydrogen processor yang merupakan fasilitas maka, pengurangan variabel juga menggunakan nilai 1.200 Pa. Dan begitu pula dengan fasilitas lain yang belum diketahui nilainya.

2. Shader Graph, penulis menggunakan shader graph untuk grafik atmosfir, grafik awan, grafik planet yang dapat di terraform dan tidak, dan grafik cincin dari saturnus. Shader merupakan file yang berbeda dari material, dimana shader tidak dapat diaplikasikan langsung ke model dan harus dibuat menjadi material terlebih dahulu baru dapat diaplikasikan ke model. Selain untuk diterapkan ke material, shader graph juga digunakan untuk membuat variabel untuk memanipulasi properti didalam file shader tersebut. Seperti untuk memanipulasi grafik tipis atau tebalnya atmosfir dan awan, memanipulasi grafik kadar air dalam planet, dan memanipulasi grafik kehijauan planet.

4.2. Tahap Design

Pada tahap ini peneliti membuat desain aplikasi dengan menggunakan storyboard dan tema yang sudah ditentukan di bab sebelumnya untuk merancang bagaimana aplikasi dapat digunakan, begitupula dengan fungsi yang diperlukan serta tampilan dari aplikasi itu sendiri, dan merancang struktur navigasi untuk menavigasikan aplikasi antar scene dan fungsi.

4.1.1. Perancangan Storyboard

Perancangan storyboard bertujuan untuk menggambarkan panduan mendetail mengenai fungsi aplikasi dan tampilan seperti apa aplikasi yang akan dibuat nanti. UI yang terdapat didalam storyboard sudah diapprove oleh staff Planetarium dan Observatorium Jakarta yaitu Dmirza Pahlavi Al 33

Amamu dan Deli Anja serta bapak Widya Sawitar, dan sudah sesuai dengan tema yang diambil oleh peneliti.

Gambar 4 -1 Menu Start

34

35

Gambar 4 -2 Menu Pengaturan

36

Gambar 4 -3 Menu Tentang

37

Gambar 4 -4 Fase Pertama

38

Gambar 4 -5 Fase Kedua

39

Gambar 4 -6 Fase Ketiga

40

Gambar 4 -7 Fase Keempat

41

Gambar 4-8 Fase Kelima

42

4.1.2. Use Case Diagram

Use Case Diagram digunakan untuk mengetahui relasi pengguna dengan sistem dan admin dengan sistem.

Gambar 4-9 Use Case Diagram

4.1.3. Activity Diagram

Activity Diagram digunakan untuk menggambarkan secara kronologis pemakaian aplikasi dari awal sampai akhir. 43

Gambar 4 -10 Activity Diagram

44

4.1.4. Perancangan Struktur Navigasi

Struktur navigasi berguna sebagai gambaran hubungan antar scene, Act, dan fungsi yang terjadi didalam aplikasi.

Peneliti menggunakan struktur navigasi bercabang dan non linear, pengguna dapat menavigasi bolak-balik antara main menu, about, settings dan start menu.

Gambar 4-11 Struktur Navigasi

45

4.3. Tahap Material Collecting

Pada tahap ini peneliti mengumpulkan bahan-bahan yang akan digunakan dalam pembangunan aplikasi berupa file font text, gambar, suara yang sebagian diperoleh dari berbagai sumber dan sebagian dibuat oleh peneliti sendiri. Berikut merupakan bahan-bahan yang digunakan peneliti untuk pembuatan aplikasinya:

4.3.1. Bahan Teks

Tabel 4-1 Bahan Teks

No Nama Teks Nama Font Sumber 1 Teks Play Button OCR A Std https://www.1001fonts.com 2 Teks Option Button OCR A Std https://www.1001fonts.com 3 Teks About Button OCR A Std https://www.1001fonts.com 4 Teks Option OCR A Std https://www.1001fonts.com 5 Teks Volume OCR A Std https://www.1001fonts.com 6 Teks Quality OCR A Std https://www.1001fonts.com Teks Tinggi, Sedang 7 OCR A Std https://www.1001fonts.com dan Rendah 10 Teks Back Button OCR A Std https://www.1001fonts.com 11 Teks About OCR A Std https://www.1001fonts.com 12 Teks Developer OCR A Std https://www.1001fonts.com 13 Teks Next Button OCR A Std https://www.1001fonts.com 14 Teks Prev Button OCR A Std https://www.1001fonts.com 15 Teks Disclaimer OCR A Std https://www.1001fonts.com 16 Teks Terraforming OCR A Std https://www.1001fonts.com 17 Teks Zoom Button OCR A Std https://www.1001fonts.com 18 Teks Informasi Button OCR A Std https://www.1001fonts.com 19 Teks Page 1 & 2 OCR A Std https://www.1001fonts.com 20 Teks Terraform Button OCR A Std https://www.1001fonts.com Teks Tidak Dapat di 21 OCR A Std https://www.1001fonts.com Terraform Teks Informasi Tidak 22 OCR A Std https://www.1001fonts.com Dapat Terraform 23 Teks Atmosfir OCR A Std https://www.1001fonts.com 24 Teks Temperatur OCR A Std https://www.1001fonts.com 25 Teks Air OCR A Std https://www.1001fonts.com 26 Teks Pepohonan OCR A Std https://www.1001fonts.com 46

27 Teks Informasi Planet OCR A Std https://www.1001fonts.com Teks Variabel 28 OCR A Std https://www.1001fonts.com Terraforming Teks Tidak Bisa 29 OCR A Std https://www.1001fonts.com Menambah Variabel

Bahan teks diambil dari internet dan dari dalam aplikasi Unity, teks yang penulis ambil dari internet memiliki bentuk yang cocok untuk tema futuristik yang diambil penulis. Teks yang diambil dari aplikasi Unity digunakan sebagai obyek teks yang nantinya di operasikan lagi menggunakan Script.

4.3.2. Bahan Gambar

Tabel 4-2 Bahan Gambar

No Nama Gambar Jenis Gambar Sumber 1 Tekstur Planet Merkurius .jpg https://www.solarsystemscope.com/textures/ 2 Tekstur Planet Venus .jpg https://www.solarsystemscope.com/textures/ 3 Tekstur Planet Bumi .jpg https://www.solarsystemscope.com/textures/ 4 Tekstur Satelit Bulan .jpg https://www.solarsystemscope.com/textures/ 5 Tekstur Planet Mars .jpg https://www.solarsystemscope.com/textures/ 6 Tekstur Planet Jupiter .jpg https://www.solarsystemscope.com/textures/ 7 Tekstur Planet Saturnus .jpg https://www.solarsystemscope.com/textures/ 8 Tekstur Planet Uranus .jpg https://www.solarsystemscope.com/textures/ 9 Tekstur Planet Neptunus .jpg https://www.solarsystemscope.com/textures/ Tekstur Normal Planet 10 .png Konversi dari tekstur planet terkait Merkurius Tekstur Normal Planet 11 .png Konversi dari tekstur planet terkait Venus Tekstur Normal Planet 12 .png Konversi dari tekstur planet terkait Bumi Tekstur Normal Planet 13 .png Konversi dari tekstur planet terkait Mars 14 Background Main Menu .png Dibuat di Photoshop 15 Background Option Menu .png Dibuat di Photoshop 16 Background About Menu .png Dibuat di Photoshop

Beberapa gambar diambil dari internet, beberapa gambar konversi dari gambar ke Normal, dan ada gambar yang dibuat oleh penulis. Gambar tekstur untuk 47

planet didapatkan dari website yang menggunakan peralatan khusus untuk memfoto planet dengan sebenar-benarnya. Untuk menambahkan detail pada tekstur digunakan Normal yang merupakan gambar yang digunakan untuk membuat bayangan untuk memberikan ilusi ketinggian pada tekstur planet.

4.3.3. Bahan Model

Tabel 4-3 Bahan Model

No Nama Model Jenis Model Sumber 1 Planet .obj Dibuat di Blender 2 Ring .obj Dibuat di Blender

Model planet adalah model bola, akan tetapi model bola dari blender terlihat lebih bola dibandingkan model dari Unity ketika dipasangkan tekstur planet. 4.3.4. Bahan Suara

Tabel 4-4 Bahan Suara

No Nama Suara Jenis Suara Sumber 1 Button-33a .wav Soundjay.com 2 Button-35 .wav Soundjay.com 3 Dooropen1 .wav Freesound.org 4 Futuristic Background .mp3 Freesound.org 5 Warm Light .mp3 Fesliyanstudio.com

4.3.5. Bahan Animasi

Tabel 4-5 Bahan Animasi

No Nama Animasi Jenis Animasi Sumber 1 PlanetRotation .C# Dibuat di Visual Studio 2 backgroundScrolling .C# Dibuat di Visual Studio 3 mainMenu .C# Dibuat di Visual Studio

Animasi dibuat dengan menggunakan script C# yang merupakan salah satu bahasa pemrograman dalam Unity, PlanetRotation merupakan script yang memanipulasi rotasi obyek pada poros tertentu, backgroundScrolling merupakan script untuk menggeser gambar bintang pada menu pengaturan untuk membuat 48

gambar latar yang bergerak, dan pada script mainMenu ada kode untuk menghilangkan tombol Start, Option, dan About pada menu utama, lalu membuka pintu dan menggelapkan layar.

4.3.6. Bahan Script

Tabel 4-6 Bahan Script

No Nama Script Jenis Script Sumber 1 innitializeScript .C# Dibuat di Visual Studio 2 mainMenu .C# Dibuat di Visual Studio 3 optionSettings .C# Dibuat di Visual Studio 4 PlanetRotation .C# Dibuat di Visual Studio 5 quitButton .C# Dibuat di Visual Studio 6 raycastCameraLaser .C# Dibuat di Visual Studio 7 Terraforming .C# Dibuat di Visual Studio 8 volumeSlider .C# Dibuat di Visual Studio

4.4. Tahap Assembly

Pada tahap ini peneliti akan membuat aplikasi berdasarkan resource atau sumber daya yang disiapkan dari berbagai sumber. Dibawah ini adalah spesifikasi software dan hardware yang digunakan oleh peneliti untuk rancang bangun aplikasi, yaitu:

1. Software yang digunakan:

 Unity, adalah SDE (Software Development Environtment) yang digunakan untuk mengembangkan aplikasi. sumber daya seperti gambar, suara, objek 3D akan dicompile dan dibuat menjadi sebuah paket dengan ekstensi aplikasi android .apk .  Vuforia, adalah library yang digunakan untuk mengimplementasi augmented reality pada SDE Unity.  Blender, yang digunakan dalam pembuatan objek 3D serta mengedit objek 3D. 49

 Photoshop, digunakan dalam pembuatan UI (User Interface) seperti button dan background.  Visual Studio, yang digunakan dalam pembuatan script C# yang bahasa pemrograman dari Unity.

2. Berikut merupakan spesifikasi hardware yang digunakan dalam rancang bangun aplikasi:

Tabel 4-2 Spesifikasi Hardware

Model Lenovo G40-45 AMD A8-6410 2.0GHz 4 Processor CPUs RAM 12GB DDR3 VGA AMD Radeon R5 Graphics Memory 500 MB

Langkah selanjutnya adalah ke tahap pembangunan menggunakan software dan sumber daya yang telah ditentukan. Tahapan pembuatan di bagi menjadi beberapa bagian, yaitu tahapan pembuatan scene menu, implementasi UI dan script kedalam scene menu, tahapan scene game dan implementasi UI dan script terraforming, dan tahapan mencompile aplikasi sampai menjadi apk.

4.4.1. Pembuatan Scene Menu Utama Pada tahap pertama ini peneliti membuat beberapa gambar di photoshop yang akan digunakan pada UI scene menu. Langkah-langkahnya adalah sebagai berikut:

 Buat canvas baru pada photoshop dengan ukuran 400x100 pixel  Kemudian ubah background menjadi warna dengan hex code #505050 dan ubah opacity-nya menjadi 40%  Selanjutnya ubah warna menjadi putih atau #ffffff tulis kata “Start” dengan menggunakan font OCR STD dengan ukuran 18px.  Tambahkan stroke dengan size 3px dan outer glow dengan size 25px dan range 50%. 50

 Export gambar dalam format .png

Gambar 4-12 Gambar Tombol Menu

 Selanjutnya pembuatan UI untuk back dan exit button. Pertama- tama buat canvas ukuran 250x250  Ganti warna menjadi #505050, lalu buat lingkaran dengan luas 225x225 px dan buat opacitynya menjadi 40%  Ganti warna menjadi #ffffff, lalu buat panah dengan luas 180x150 px. kemudian buat tanda “X” dengan font yang telah ditentukan dengan ukuran 60 pt.  Gunakan teknik yang digunakan pada teks menu diatas pada tombol panah dan “X” tersebut

51

Gambar 4-13 Tombol Manipulasi Variabel

 Terakhir pembuatan dan mendapatkan background untuk menu utama, option dan about.  Menu utama menggunakan gambar pintu dengan tema futuristik yang didapat dari Screenshot model 3d yang didapat dari website turbosquid.com dan mengubahnya menjadi format .png. dan background dari menu utama dibuat di photoshop.  Buat canvas baru diphotoshop dengan ukuran 1280x720 px, lalu buat background dengan warna #cccccc dan buat bentuk kotak ditengah canvas dengan warna #000000, terakhir buat garis yang membentang dari ujung kotak ke ujung canvas. Lalu export dalam format .png  Kemudian untuk menu option sembunyikan gambar yang sudah dibuat lalu buat layer baru dan warnai dengan warna #303030, lalu buat persegi dengan luas 1100x618 px dengan warna #000000. 52

 Setelah itu pilih layer background dan buat persegi yang lebih besar sedikit dibanding persegi warna hitam, lalu export.  Untuk background menu about peneliti membuat gambar bintang dengan menggunakan background hitam dan diberi titik putih dengan ukuran yang beragam.

Gambar 4-14 Potongan Menu Utama

Gambar 4-15 Pintu Menu Utama

53

Gambar 4-16 Monitor Menu Option

Gambar 4-17 Bintang Menu About

4.4.2. Implementasi bahan-bahan kedalam scene menu Tahap selanjutnya adalah tahap implementasi UI yang sudah dibuat diphotoshop kedalam Unity dan memasukan script kedalam game objectnya, berikut langkah-langkahnya: 54

 Buat folder baru di unity dengan nama “Images” dan masukan semua gambar yang ada kedalam folder tersebut dan rubah texture type-nya menjadi sprite (2D and UI)  Buat juga folder baru bernama “Sound and Music” lalu masukan semua file suara kedalam folder tersebut.  Buat panel dengan klik kanan pada hirarki unity dan beri nama “DoorPanel”  Lalu buat 3 image beri nama masing-masing “Door1”, “Door2” dan “Hall”. Dan masukan gambar ke komponen source image masing-masing gameobject  Kemudian buat 4 button dan beri nama “StartButton”, “OptionButton”, “AboutButton”, “ExitButton”. Kemudian masukan gambar ke komponen source image masing-masing gameobject  Lalu buat 2 gameobject empty dan beri nama “Main Menu” dan “Button” dan masukan masing-masing gameobject ke namanya masing-masing

Gambar 4-18 Ubah Semua Menjadi Sprite 55

Gambar 4-19 Pembuatan Panel Baru

Gambar 4-20 Merubah Gambar Pada Panel

56

Gambar 4-23 Merubah Gambar Pada Button

Gambar 4-22 Pembuatan dan Pembagian Gameobject

Gambar 4-21 Copy Paste Gameobject Main Menu

57

 Selanjutnya membuat menu option dengan menggunakan background monitor, beberapa text object, tombol untuk mengatur grafik, dan slider untuk mengatur suara.  Terakhir menu about dengan menggunakan dua background bintang yang nantinya dapat bergerak, tombol next dan prev untuk mengganti konten menu about.

Gambar 4-24 Menu Option

Gambar 4-25 Menu About

 Langkah selanjutnya adalah menambahkan script kedalam game object yang telah dibuat. Script mainMenu.C# dimasukan 58

kedalam object canvas dan script quitButton.C# dimasukan kedalam object Exit Button.

Gambar 4-26 Penempatan Script Main Menu

 Kemudian penempatan komponen animator kedalam object, komponen animator ini dimasukan kedalam dua object yaitu Door1 dan Door 2

Gambar 4-27 Penempatan Animator Main Menu

59

 Terakhir adalah memasukan file suara kedalam aplikasi, suara yang diperlukan didalam Scene menu utama adalah “Futuristic Background”, “Button-33a”, “Button-35”, dan “Dooropen1”.  Buat sebuah Game Object kosong dihirarki dan masukan semua suara yang dibuthkan kedalam Game Object tersebut.  Untuk suara “Futuristic Background” diatur sehingga ketika pertama kali aplikasi memasuki Scene menu utama maka suara tersebut akan dimainkan  Untuk suara “Button-33a” dan “Button-35” digunakan ketika tombol ditekan dan suara “Dooropen1” digunakan ketika transisi dari Scene menu utama ke Scene game.

Gambar 4-28 Penempatan dan Penggunaan Suara  Berikut merupakan script yang digunakan oleh penulis

Gambar 4-29 Script quitButton

60

Gambar 4-30 Script mainMenu

4.4.3. Pembuatan Scene Game Dalam pembuatan Scene game, ada beberapa tahap yaitu pembuatan license dan target di vuforia developer portal, mendapatkan texture untuk tata surya dan pembuatan model.

 Langkah pertama dalam pembuatan scene game adalah dengan membuat license dan target di website vuforia agar dapat dipakai di Unity.  Daftar atau masuk kedalam vuforia developer website, lalu klik “get development key” untuk membuat license key agar dapat menggunakan vuforia di Unity. 61

 Setelah selesai dibuat klik nama development key yang sudah dibuat lalu akan muncul paragraf dengan huruf dan angka yang mengacak, itu merupakan license key yang nanti digunakan di Unity.  Pindah ke target manager untuk membuat marker untuk augmented realitynya, add database dengan pilihan devise untuk membuat database baru.  Tekan database yang baru dibuat, lalu tekan add target. Masukan gambar marker, ukuran gambar dan nama target yang akan dibuat.  Vuforia akan menilai seberapa baik gambar yang digunakan sebagai marker, bintang lima bagus dan bintang satu tidak bagus.

Gambar 4-31 Proses persiapan vuforia 62

 Langkah selanjutnya adalah mendapatkan texture yang akan digunakan untuk model planet.  Buka website solarsystemscope.com dan download semua texture planet diwebsite itu kemudian buka website untuk merubah gambar texture menjadi gambar normal yaitu cpetry.github.io/NormalMap-Online/  Kemudian konversi semua gambar planet diwebsite tersebut.

Gambar 4-32 Unduh Texture dan Konversi Normal  Langkah terakhir dalam pembuatan scene game adalah pembuatan model 3D yang digunakan untuk planet dan matahari dengan menggunakan blender.  Hilangkan 3D object yang muncul pertama kali saat pertama kali blender dibuka, lalu tambahkan sebuah uv sphere dan export dengan menggunakan ekstensi .obj .  Selanjutnya adalah membuat ring untuk planet saturnus, tambahkan sebuah lingkaran, lalu Exclude dan Scale 63

lingkaran tersebut untuk mendapatkan lingkaran seperti donat.  Kemudian pindah ke edit mode dan pilih semua permukaan dalam model, lalu unwrap dan reset model.  Ubah editor menjadi UV Editor dan buka gambar cincin saturnus, ubah permukaannya dengan memutarnya 90° lalu kecilkan permukaan menjadi sekecil gambarnya lalu bentangkan permukaan secara horizontal sehingga menutupi gambar.  Terakhir ekspor model dalam ekstensi obj.

Gambar 4-33 Pembuatan Model Bulat

64

Gambar 4-34 Pembuatan Model Cincin

4.4.4. Implementasi bahan-bahan kedalam scene game

Langkah selanjutnya adalah implementasi bahan-bahan yang dibuat pada langkah sebelumnya kedalam scene baru yaitu scene game. Berikut merupakan langkah-langkahnya:

 Langkah pertama adalah menginstall package vuforia dan lightweight RP pada package installer didalam unity, kemudian buat folder baru diunity dan beri nama “resources”.  Buka folder lalu klik kanan pilih create > render > lightweight rendering pipeline > pipeline asset, lalu beri nama LWRP. Kemudian buka build settings, klik player settings pada window sebelah kanan ada tab “XR Settings”, 65

klik tab tersebut dan centang “Vuforia Augmented Reality Supported”.  Masih pada window project settings pindah ke tab “Graphics” pada kolom “Scriptable Render Pipeline Settings” masukan file LWRP yang barusan dibuat.  Kemudian tutup window build settings dan project settings lalu tambahkan Object ARCamera kedalam scene game dan hapus main cameranya. Klik ARCamera, pada inspector pilih “open Vuforia Engine configuration”.  Lalu pada VuforiaConfiguration salin license key yang telah dibuat kedalam kolom “App License Key”.

Gambar 4-35 Pengaturan LWRP dan Vuforia di Unity

66

 Selanjutnya unduh database dari marker yang telah dibuat, pilih unity editor pada development platform.  Kembali ke unity buat sebuah object kosong dalam scene dan tambahkan suara yang dibutuhkan kedalam object kosong tersebut.  Import file yang diunduh sebelumnya dari Assets > Import Package > Costum Package > namaFile.unitypackage  Kemudian buat ImageTarget dalam scene, dan atur di inspector untuk memilih database yang diimport.

Gambar 4-36 Mengatur Image Target dan Object Suara

 Selanjutnya adalah membuat shader untuk planet yang bisa diterraform, planet yang tidak dapat diterraform, cincin saturnus, awan dan atmosfir.  Buatlah folder tersendiri untuk shader, klik kanan difolder Create > Shader > PBR Graph. Lalu buka file tersebut.  Pembuatan shader atmosfer. Tambahkan Fresnel Effect, Remap dan Vector 1. Ubah Vector 1 menjadi property lalu sambungkan ke input Remap, ubah value In Min Max 67

Remap menjadi 101.000 | 0 lalu sambungkan ke AlphaClipThreshold, ubah nilai Fresnel Effect menjadi 3 dan sambungkan ke Emission dan Alpha  Pembuatan shader awan. Tambahkan Texture 2D Asset, Sample Texture 2D, Remap dan Vector 1. Ubah vector 1 menjadi property dan sambung ke remap, ubah nilai remap menjadi 100.000 | 0 lalu sambung ke AlphaClipThreshold, ubah texture 2D Asset menjadi property dan sambung ke input sample texture, sambung Sample Texture 2D ke Albedo dan Alpha.  Pembuatan shader cincin. Tambahkan Texture 2D Asset, Sample Texture 2D dan vector 3. Masukan gambar cincin saturnus kedalam Texture 2D Asset dan sambung ke Sample Texture 2D, sambungkan Sample Texture 2D ke Vector 3 seperti R-X | G-Y | B-Z, sambungkan output Vector 3 ke Albedo.  Pembuatan shader planet yang tidak dapat diterraform. Tambahkan Texture 2D Asset, Sample Texture 2D dan vector 3. Ubah Texture 2D Asset menjadi property dan sambung ke Sample Texture 2D, sambungkan Sample Texture 2D ke Vector 3 seperti R-X | G-Y | B-Z, sambungkan output Vector 3 ke Albedo.  Untuk pembuatan shader planet yang dapat diterraform, ikuti langkah seperti digambar. Kemudian salin menjadi empat buah shader, hapus PlanetGreenery dan WaterIntensity dalam shader yang disalin lalu tambahkan yang baru Vector 1 dan diubah menjadi property agar mendapatkan Reference untuk vector tersebut.  Akan ada delapan shader yang dibutuhkan untuk projek ini. 68

Gambar 4-37 Pembuatan Shader

 Selanjutnya adalah pembuatan script yang berisikan fungsi seperti memperbesar atau kecil planet dan terraform planet.  Script pertama adalah script cackgroundScrolling.cs yang digunakan untuk membuat gambar bintang pada menu about bergerak dari kanan kekiri.  Script kedua adalah script innitializeScript.cs yang digunakan untuk mengganti scene dari scene game ke scene 69

menu jika pengguna menekan tombol “escape” atau di android tombol “Back”.  Script ketiga adalah script mainMenu.cs yang digunakan untuk menjalankan animasi dan berpindah ke scene game ketika tombol start ditekan.  Script keempat adalah script optionSettings.cs yang digunakan untuk mengatur suara dan kualitas dari gambar.  Script kelima adalah script planetRotation.cs yang digunakan untuk memutar planet dan memutarkan planet dimatahari.  Script keenam adalah script scaleSlider.cs yang digunakan untuk merubah ukuran tata surya.  Script ketujuh adalah script quitButton.cs yang digunakan untuk keluar dari aplikasi jika menekan tombol keluar didalam aplikasi dan tombol “Back” diandroid serta suara ketika tombol ditekan.  Script kedelapan adalah script Terraforming.cs yang digunakan untuk mengubah nilai dari variabel shader seperti variabel awan, atmosfir, suhu, kadar air, dan pepohonan.  Script terakhir adalah script raycastCameraLaser.cs yang digunakan untuk mengecek apakah pengguna menekan planet atau matahari, jika iya maka akan melakukan beberapa fungsi seperti menempatkan planet atau matahari didepan kamera dan menentukan apakah object yang dipilih dapat diterraform atau tidak 70

Gambar 4-38 Pembuatan Script

 Langkah selanjutnya adalah pembuatan material, buat folder baru untuk tempat menaruh file material. Lalu klik kanan Create > Material untuk membuat material baru.  Klik material yang dibuat dan klik drop down pada inspector shader, lalu klik Shader Graph > ShaderYangDibuat.  Lakukan untuk material planet, awan dan atmosfir.

Gambar 4-39 Pembuatan Material

71

 Selanjutnya pemasangan object 3D ke Scene, pertama masukan object yang dibuat diblender kedalam folder tersendiri.  Lalu buat object kosong kedalam image target dan masukan object planet kedalam object kosong tersebut, ubah posisi dan ukuran dari object tersebut, dan ubah pula material dari planet atau bintang tersebut.  Kemudian untuk planet buatlah object kosong lagi beri nama [planet] Pivot dan masukan script Planet Rotation kedalam object tersebut.  Barulah dimasukan object Planet, perlakukan seperti sebelumnya tetapi buat planet jupiter lebih kecil dari matahari, dan ukuran planet lain berpacu kepada ukuran jupiter.  Buatlah UI > Image dengan gambar Orbital Path dan atur posisi, rotasi dan ukuran dari planet masing-masing.  Untuk planet yang dapat diterraform akan dimasukan object lagi dengan material awan dan atmosfir dengan ukuran lebih besar sedikit dibandingkan dengan ukuran planet itu sendiri.  Khusus untuk Saturnus diberikan object Ring dengan material ring yang sudah dibuat sebelumnya, dan planet bumi diberikan Bulan. 72

Gambar 4-40 Pemasangan Object kedalam Scene

 Langkah selanjutnya adalah pembuatan UI untuk scene, buatlah canvas baru dan tambahkan empat button, dua object kosong, dan satu slider kedalam canvas tersebut. Dua button dijadikan button untuk kembali, dua button lainnya dijadikan untuk memperbesar ukuran object tata surya.  Pada BackButtonMainMenu berikan event ketika ditekan untuk menjalankan fungsi backToMainMenu dan suara button-33a.  Pada BackButtonGeneral berikan event ketika ditekan untuk menjalankan fungsi backButton, mematikan object Information dan Terraform, menyalakan ZoomButton1 dan BackButtonMainMenu, dan suara button-33a.  Pada ZoomButton1 berikan event ketika ditekan untuk mematikan script raycastCameraLaser, mematikan object ZoomButton1, menyalakan object ZoomButton2 dan Slider, dan suara button-35.  Pada ZoomButton2 berikan event ketika ditekan untuk menyalakan script raycastCameraLaser, mematikan object 73

ZoomButton2, menyalakan object ZoomButton1 dan Slider, dan suara button-33a.  Pada Slider berikan event ketika ditekan untuk mengubah ukuran object tata surya dengan fungsi scaleObject.

Gambar 4-41 Pembuatan Canvas dan Object Sederhana

 Langkah selanjutnya adalah pembuatan dan mengisi object Information, buat tombol informationButton dan object informationDescription  Pada InformationButton berikan event ketika ditekan untuk menyalakan script clickInformation, mematikan object BackButtonGeneral dan InformationButton, menyalakan object InformationDescription, dan suara button-35. 74

 Buat object image TextBackground dan masukan dua tombol dengan nama Page1 dan Page 2, pada Page1 berikan event ketika ditekan untuk menyalakan script Page1 dan Page2 menjalankan script Page2, menyalakan suara button- 35 untuk kedua tombol tersebut.  Kemudian buat object kosong dengan nama TextBackground dan isi dengan object tulisan deskripsi untuk planet dan bintang yang terdapat didalam scene, dibuat dua buah object untuk masing-masing planet atau bintang.  Lalu buat tombol dengan nama BackButtonInformation, dan berikan event ketika ditekan untuk menjalankan fungsi clickBackInformation dan clickBackDescription, mematikan obyek InformationDescription, menyalakan obyek InformationButton dan BackButtonGeneral, dan menyalakan suara button-33a.

Gambar 4-42 Pembuatan Obyek Information

 Langkah selanjutnya adalah pembuatan dan mengisi obyek Terraform, buat tombol dengan nama TerraformButton dan obyek kosong dengan nama TerraformSpace. 75

 Pada TerraformButton berikan event ketika ditekan untuk menjalankan fungsi clickTerraform, mematikan obyek BackButtonGeneral dan Zoombutton1, menyalakan obyek BackButtonTerraform, dan menjalankan suara button-35.  Pada obyek TerraformSpace tambahkan tombol BackButtonTerraform dan dua obyek kosong dengan nama DapatDiTerraform dan TidakDapatDiTerraform.  Pada tombol BackButtonTerraform berikan event ketika ditekan untuk menjalankan fungsi clickBackTerraform, mematikan obyek BackButtonTerraform, menyalakan obyek BackButtonGeneral dan ZoomButton1, dan menjalankan suara Button-33a.  Buat dua obyek kosong dengan nama DapatDiTerraform dan TidakDapatDiTerraform, tambahkan lima obyek kosong didalam obyek DapatDiTerraform dengan nama Atmosfir, Temperature, , Biomass dan Panel Information. Tambahkan juga satu tombol dengan nama InformationButtonTerraform.  Pada empat obyek didalam obyek DapatDiTerraform berikan tiga tombol dimasing-masing obyek dengan nama Dec[obyek], Inc[obyek], dan StopProgress.  Pada Dec[obyek] berikan event ketika ditekan untuk menjalankan fungsi Dec[obyek], mematikan tombol Dec[obyek] dan Inc[obyek], menyalakan tombol StopProgress, dan jalankan suara button-35.  Pada Inc[obyek] berikan event ketika ditekan untuk menjalankan fungsi Inc[obyek], mematikan tombol Dec[obyek] dan Inc[obyek], menyalakan tombol StopProgress, dan jalankan suara button-35.  Pada StopProgress berikan event ketika ditekan untuk menjalankan fungsi StopProgress, mematikan tombol 76

StopProgress, menyalakan tombol Dec[obyek] dan Inc[obyek], dan jalankan suara button-33a.  Pada tombol InformationButtonTerraform berikan event ketika ditekan untuk menjalankan fungsi InformationCenter, menyalakan obyek Panel Information, dan menjalankan suara button-35.  Pada obyek Panel Information tambahkan dua obyek teks dan satu obyek tombol dengan nama Unable Water, Unable Biomass dan Close Button.  Lalu pada obyek TidakDapatDiTerraform tambahkan dua obyek tombol dan satu obyek gambar dengan nama InformationButtonBefore, InformationButtonAfter, dan TextBackground.  Pada InformationButtonBefore berikan event ketika ditekan untuk mematikan InformationButtonBefore, menyalakan InformationButtonAfter dan TextBackground, dan menjalankan suara button-35.  Pada InformationButtonAfter berikan event ketika ditekan untuk mematikan InformationButtonAfter dan TextBackground, menyalakan InformationButtonBefore, dan menjalankan suara button-33-a.  Pada obyek gambar TextBackground tambahkan obyek teks yang berisikan keterangan kenapa planet tidak dapat diterraform. 77

Gambar 4-43 Pembuatan Obyek Terraform

4.4.5. Mengexport Scene menjadi Aplikasi Dalam pengeksporan scene menjadi sebuah aplikasi, dibutuhkan beberapa langkah yaitu perpindahan dari platform windows ke platform android dan pengaturan proyek.

 Pertama buka build setting yang terdapat pada tab file, lalu pilih add open scenes. Pastikan bahwa scene menu berada pada layer nol, dan scene game berada pada layer satu.  Pilih android lalu tekan switch platform untuk merubah ekspor aplikasi menjadi .apk.  kemudian buka player settings dan atur nama perusahaan, nama produk dan versi produk.  Setelah itu buka tab resolution and presentation dan ubah orientasinya menjadi landscape right agar aplikasi selalu terbuka dalam orientasi landscape.  Tutup player settings dan tekan build untuk membangun aplikasi, agar pengeksporan berhasil disarankan untuk menghubungkan komputer dengan internet. 78

Gambar 4-44 Pengeksporan ke aplikasi

4.5. Tahap Testing

Pada tahap ini peneliti menggunakan dua tahap untuk pengujian aplikasinya yaitu alpha dan beta, seperti yang sudah dijelaskan pada bab dua pengujian alpha dilakukan oleh penulis untuk menguji antarmuka, fungsi, input dan output dari aplikasi, begitupula dari segi augmented reality nya dengan menguji respon ketika menggunakan intensitas cahaya dan jarak yang berbeda.

dan pengujian beta yang dilakukan untuk menguji fungsi dan kualitas aplikasi secara keseluruhan kepada banyak pengguna untuk mendapatkan respon terhadap aplikasi yang dibuat. Pada tahap ini penulis melakukan uji coba aplikasi kepada siswa SMA Negeri 6 Tangerang Selatan.

4.6. Tahap Distribution

Pada tahap terakhir ini panulis mengunggah aplikasi kedalam google drive dan ke grup kelas pada media sosial seperti whatsapp atau line agar akses aplikasi mudah jika memiliki internet, penulis juga memasukan aplikasi kedalam dua buah flashdisk dengan input type-b dan type-c untuk smartphone yang tidak memiliki akses internet. 79

BAB V HASIL DAN PEMBAHASAN

5.1. Tahap Pengujian Alpha

Pada pengujian Alpha, penulis menguji aspek-aspek dalam aplikasi seperti pengujian fungsi tombol, pengujian tampilan antarmuka, pengujian oklusi, dan pengujian intensitas cahaya dan jarak kamera terhadap marker.

5.1.1. Pengujian Fungsi Tombol

Tabel 5-1 Pengujian Fungsi Tombol

Nama Keterangan Fungsi PlayButton Berfungsi, masuk ke scene Game OptionButton Berfungsi, masuk ke menu pengaturan AboutButton Berfungsi, masuk ke menu tentang ExitButton Berfungsi, keluar dari aplikasi QualityHighButton Berfungsi, merubah grafik menjadi tinggi QualityMediumButton Berfungsi, merubah grafik menjadi sedang QualityLowButton Berfungsi, merubah grafik menjadi rendah BackButton Berfungsi, kembali ke menu sebelumnya NextButton 1 / 2 Berfungsi, mengganti keterangan berikutnya PreviousButton 1 / 2 Berfungsi, mengganti keterangan sebelumnya BackButtonMainMenu Berfungsi, kembali ke scene Menu BackButtonGeneral Berfungsi, kembali ke menu sebelumnya InformationButton Berfungsi, masuk ke menu Informasi TerraformButton Berfungsi, masuk ke menu Terraform Page 1 / 2 Berfungsi, merubah teks informasi ZoomButton 1 / 2 Berfungsi, mengadakan dan tiadakan slider untuk memperbesar kecilkan tata surya Dec[variable] Berfungsi, untuk mengurangi [variable] diplanet Berfungsi, untuk menambahkan [variable] Inc[variable] diplanet StopProgress Berfungsi, untuk menghentikan bertambah atau berkurangnya [variable] diplanet InformationButtonTerraform Berfungsi, menampilkan data [variable] diplanet InformationButtonBefore Berfungsi, menampilkan informasi kenapa planet tidak dapat diterraform 80

5.1.2. Pengujian Tampilan Antarmuka

Tabel 5-2 Pengujian Tampilan Antarmuka

Gambar Keterangan

Tampil, halaman menu utama

Tampil, halaman menu pengaturan

Tampil, halaman menu tentang dan gambar belakang bergulir kesamping

Tampil, halaman menu tentang disclaimer

Tampil, halaman menu tentang terraform

81

Tampil, animasi halaman menu utama berganti scene game

Tampil, tombol kembali dan zoom

Tampil, tombol informasi dan terraform

Tampil, halaman keterangan planet

Tampil, halaman terraform ketika planet tidak dapat diterraform

Tampil, slider ketika tombol zoom ditekan

82

Tampil, halaman terraform ketika planet dapat diterraform

Tampil, keterangan aksi tidak dapat dilakukan ketika persyaratan tidak terpenuhi

Tampil, perubahan planet ketika variabel dirubah

5.1.3. Pengujian Oklusi

Tabel 5-3 Pengujian Oklusi

Gambar Keterangan

Tertutup 30%, tetap terdeteksi

Tertutup 60%, tetap terdeteksi tetapi respon obyek melambat

83

Tertutup 80%, tidak terdeteksi

5.1.4. Pengujian Intensitas Cahaya

Tabel 5-4 Pengujian Intensitas Cahaya

Kekuatan Gambar Keterangan Cahaya

30 lux Tetap terdeteksi

100 lux Tetap terdeteksi

5.1.5. Pengujian Jarak Terhadap Marker

Tabel 5-5 Pengujian Jarak Terhadap Marker

Gambar Jarak Keterangan

25 cm Tetap terdeteksi

84

50 cm Tetap terdeteksi

100 cm Tidak terdeteksi

5.2. Tahap Pengujian Beta Setelah dilakukan pengujian alpha, pada langkah selanjutnya penulis melaksanakan pengujian beta dengan mengujikan aplikasi kepada end user spesifik, dalam hal ini penulis menjadikan murid SMA 6 Tangerang Selatan sebagai end usernya. Untuk mendapatkan respon tentang bagaimana aplikasi yang dibuat penulis dapat berdampak kepada mereka.

Penulis diberikan satu kelas, dimana dalam satu kelas itu terdapat tiga puluh murid dengan murid yang sudah diberikan pengalaman dasar tentang tata surya. Penulis menyebarkan aplikasi kepada murid-murid lalu setelah mencoba aplikasinya akan diberikan kuesioner tingkat keberhasilan aplikasi Terrarc.

Tabel 5-6 Pertanyaan Kuesioner Keberhasilan Aplikasi

Nomor pertanyaan Jawaban Nilai Apakah konsep terraforming pada Kurang Menarik 1 1 aplikasi terrarc menarik menurut anda? Menarik 3 Apakah aplikasi terrarc terdapat Tidak Ada 1 2 informasi yang mendidik seputar astronomi? Ada 2 Apakah tombol, navigasi dan fungsi Kurang Baik 1 3 dalam aplikasi terrarc bekerja Cukup Baik 2 dengan baik? Baik 3 85

Apakah augmented reality dalam Kurang Baik 1 4 aplikasi terrarc bekerja dengan Cukup Baik 2 baik? Baik 3 Apakah terraforming didalam Kurang Baik 1 5 aplikasi terrarc berjalan dengan Cukup Baik 2 baik? Baik 3 Apakah dengan menggunakan Tidak Bertambah 1 6 aplikasi terrarc pengetahuan akan astronomi anda bertambah? Bertambah 3 Apakah dengan menggunakan Tidak Bertambah 1 aplikasi terrarc rasa ingin tahu akan 7 ilmu pengetahuan astronomi anda Bertambah 3 bertambah? dari angka 1-10, nilai berapakah yang menunjukan tingkat kepuasan 8 1 - 10 terhadap aplikasi terrarc? (1 = buruk | 10 = baik)

Berdasarkan jumlah total responden dan jumlah akhir jawaban responden maka untuk menghitung tingkat keberhasilan digunakan rumus berikut:

퐽푢푚푙푎ℎ 퐽푎푤푎푏푎푛 푅푒푠푝표푛푑푒푛 푁𝑖푙푎𝑖 푇표푡푎푙 = = 10 퐽푢푚푙푎ℎ 푇표푡푎푙 푅푒푠푝표푛푑푒푛 × 3

Dilihat dari rumus diatas dimana jumlah jawaban responden tertinggi adalah sembilan ratus dan jumlah total responden tiga puluh, untuk mendapat jumlah yang lebih mudah dinilai jumlah total responden dikali tiga agar hasil akhir mendapatkan nilai sepuluh. Dimana nilai akhir akan dinilai 1 – 5 adalah buruk, 5 – 7 adalah cukup baik, 7 – 8 adalah baik, dan 8 – 10 adalah sangat baik.  Pada pertanyaan pertama kebanyakan murid tertarik dengan konsep terraforming, dan informasi seputar astronomi juga terdapat diaplikasi.  Kebanyakan dari murid merasa fungsi antarmuka, augmented reality dan fungsi terraforming didalam aplikasi bekerja dengan cukup baik.  Banyak dari murid merasa bahwa aplikasi Terrarc berhasil menambah wawasan serta minat terhadap astronomi.  Aplikasi terrarc mendapatkan nilai akhir keberhasilan dengan jumlah 8.3 yaitu sangat baik.

86

5.3. Pembahasan Sistem

Berdasarkan perumusan masalah yang telah ditentukan, maka penulis akan menjelaskan hubungan antara rumusan masalah dan hasil pengujian yang nantinya akan menghasilkan kesimpulan.

“Bagaimana menerapkan aplikasi terraforming dengan menggunakan teknologi AR berbasis android dan manfaatnya bagi siswa-siswi SMP, SMA sederajat serta masyarakat umum?”

Pada tahapan perancangan aplikasi terrarc, penulis menggunakan metode rancang bangun sistem Multimedia Development Life Cycle (MDLC) yang terdiri dari 6 fase yaitu concept, design, material collecting, assembly, testing, distribution. Tahap pertama adalah tahap konsep yang dilakukan dengan analisis kebutuhan sistem yang didapat penulis dengan metode kuesioner dan wawancara dengan pihak Planetarium dan Observatorium Jakarta.

Setelah analisis kebutuhan sistem penulis melakukan tahapan kedua yaitu tahap design dimana peracangan sistem dibagi menjadi 3 tahapan, yaitu perancangan storyboard, pembuatan Use case dan activity diagram, dan perancangan struktur navigasi.

Perancangan storyboard berisi rancangan tiap scene (tampilan) pada sistem yang berisi prototype UI dan fungsi-fungsi tombol yang ada pada scene tersebut. Lalu pembuatan Use case dan activity diagram yang digunakan untuk penjelasan lebih lanjut tentang bagaimana aplikasi berinteraksi dengan pengguna dan pembuat serta bagaimana aplikasi berjalan. Selanjutnya perancangan sturktur navigasi yang dimana menjelaskan alur kerja tiap scene yang ada pada sistem.

Pada tahapan ketiga yaitu material collecting, penulis mengumpulan dan membuat beberapa bahan untuk nantinya akan dimasukkan kedalam sistem sebagai bahan-bahan sistem tersebut. Material collecting terdiri dari pengumpulan teks dan 87

informasi, gambar 2D, audio, dan objek 3D. Untuk pengumpulan teks penulis mendapatkan font dari internet dan informasi dari studi kasus.

Untuk material gambar texture dan background penulis dapatkan dari media internet dan gambar untuk antarmuka seperti tombol dan slider penulis buat sendiri. Begitupula dengan material suara, penulis juga mendapatkannya dari internet. Material objek 3D penulis membuatnya sendiri dengan software Blender dengan dua buah obyek yaitu obyek planet dan obyek ring.

Pada tahapan ke empat yaitu assembly, penulis membuat dan menggabungkan aplikasi dengan semua bahan-bahan yang sebelumnya sudah dibuat dan dikumpulkan penulis menggunakan software Unity. Tahapan ini dibagi menjadi beberapa tahapan lagi, yaitu tahapan pembuatan scene menu utama, implementasi bahan ke scene menu utama, pembuatan scene game, implementasi bahan-bahan ke scene game, dan terakhir tahapan export scene menjadi aplikasi.

Tahapan ke lima yaitu tahapan pengujian yang dimana penulis melakukan dua pengujian yaitu alpha test dan beta test. Alpha test penulis lakukan untuk mengetahui kualitas fungsi aplikasi dengan beragam situasi yang penulis tentukan. Dan Beta test dilakukan penulis untuk mengetahui tanggapan end user terhadap keberhasilan dan kepuasan pengguna aplikasi.

Tahapan terakhir yaitu distribution yaitu dimana penulis memberikan aplikasi dengan cara mengunggah ke media sosial, penyimpanan internet dan penyimpanan eksternal kepada murid SMA 6 Tangerang Selatan.

88

BAB VI PENUTUP 6.1. Kesimpulan

Berdasarkan penelitian yang telah dilakukan, dapat diambil kesimpulan sebagai berikut:

1) Aplikasi Terrarc dapat menambahkan ilmu Astronomi dan minat pengguna untuk mendalami ilmu Astronomi dengan cara yang menarik dan interaktif. 2) Sistem augmented reality yang disematkan dalam aplikasi meningkatkan interaksi antar pengguna dengan aplikasi serta mengetahui tentang sistem augmented reality. 3) Walaupun pada saat ini terraforming tidak dapat dilakukan karena terbatasnya bahan sumber daya alam dan kemajuan teknologi, namun potensi terraforming untuk memajukan umat manusia sangat besar begitupula dengan manfaatnya. 4) Penggunaan shader graph Unity membuat proses permodelan menjadi lebih efisien dibandingkan shader biasa karena penggunaan node base dalam pengoperasiannya.

6.2. Saran

Aplikasi Terrarc masih terdapat kekurangan dalam sistemnya, hal ini juga disadari oleh responden kuesioner keberhasilan aplikasi Terrarc. Oleh karena itu penulis memasukan saran untuk pengembangan aplikasi ini dengan menambahkan fungsi yaitu:

1) Menambahkan fitur quiz untuk mengetahui lebih tepat peningkatan pengguna sebelum dan sesudah menggunakan aplikasi. 2) Penambahan fungsi tombol yang lebih responsive dan reliable. 3) Menambahkan informasi tentang planet yang dipilih. 89

4) Membuat augmented reality menjadi lebih stabil walaupun dengan extended tracking. 5) Menambahkan fungsi terraform menjadi lebih interaktif dengan menambahkan minigames disetiap fasenya.

90

DAFTAR PUSTAKA

Ananda, T. A., Safriadi, N., & Sukamto, A. S. (2015). Penerapan Augmented Reality Sebagai Media Pembelajaran Mengenal Planet-Planet Di Tata Surya. Jurnal Sistem dan Teknologi Informasi (JUSTIN) Vol. 1, 1-6.

Arikunto, S. (2006). Prosedur Penelitian Suatu Pendekatan Praktik. Jakarta: PT Rineka Cipta.

Azuma, R., Baillot, Y., Behringer, R., Feiner, S., Julier, S., & MacIntyre, B. (2001). Recent Advances in Augmented Reality. IEEE Computer Graphics and Applications, 34-35.

Bimber, O., & Raskar, R. (2005). Spatial Augmented Reality. A K Peters, 2-3.

Binanto, I. (2010). Multimedia Dasar - Dasar Teori dan Pengembangannya. Yogyakarta: Andi.

Biondy, Y., & Santosa, I. (2015). Musium Antariksa Indonesia. Jurnal Tingkat Sarjana Bidang Senirupa Dan Design, 1-6.

Birch, P. (1992). Terraforming Venus Quickly. Journal of The British Interplanetary Society, Vol 45, 157-167.

Budzik, J. M. (2000). HOW TO TERRAFORM MARS: AN ANALYSIS OF ECOPOIESIS AND TERRAFORMING RESEARCH. Human Biology, 1- 17.

Center, N. G. (2018, July 30). NASA Science Mission Directorate. Retrieved from NASA Science Mission Directorate Website: https://mars.nasa.gov/resources/21974/terraforming-the-martian- atmosphere/ 91

Cristiano, G. (2014, November 4). Giuseppe Cristiano Storyboard Artist. Retrieved from ISSUU: https://issuu.com/giuseppecristiano/docs/storybooklet_small

Fogg, M. J. (1992). A SYNERGIC APPROACH TO TERRAFORMING MARS. Journal of The British Interplanetary Society, 305-330.

Fogg, M. J. (1993). Terraforming: A Review For Environmentalists. Probability Research Group, 7-17.

Grubert, J., & Grasset, R. (2013). Augmented Reality for Android Application Development. Birmingham: Packt Publishing Ltd.

Gumster, J. v. (2009). Blender For Dummies. Indiana: Wiley Publishing, Inc.

Harrell, C., Ghosh, B., & Bowden, R. (2011). Simulation Using Promodel. New York: McGraw-Hill Inc.

Haviluddin. (2011). Memahami Penggunaan UML (Unified Modelling Language). Jurnal Informatika Mulawarman, 1-15.

Hocking, J. (2015). Unity in Action. New York: Manning Publications Co.

Ikhwan, A. (2017). Metode Simulasi Pembelajaran dalam Perspektif Islam. ISTAWA: Jurnal Pendidikan Islam, 1-34.

Jeremi, A. W. (2017, April 8). Institut Teknologi Bandung. Retrieved from Institut Teknologi Bandung Website: https://www.itb.ac.id/news/read/5479/home/mengenal-seluk-beluk- program-studi-astronomi-itb

KEMENDIKBUD. (2017). Statistik Sekolah Menengah Atas. Jakarta: PDSPK Kemdikbud.

Law, A. M., & Kelton, w. D. (1982). Simulation Modeling and Analysis. New York: McGraw-Hill. Inc. 92

Lee, J., & Hammer, J. (2011). Gamification in Education: What, How, Why Bother? Academic Exchange Quarterly, 1-5.

Milgram, P., & Kishino, F. (1994). A Taxonomy Of Mixed Reality Visual Displays. IEICE Transactions on Information Systems, 1-15.

Pramono, A., & Setiawan, M. D. (2019). Pemanfaatan Augmented Reality Sebagai Media Pembelajaran Pengenalan Buah-Buahan. INTENSIF, 54- 68.

Pressman, R. S. (2010). Software Engineering : A PRACTITIONER’S APPROACH. New York: McGraw-Hill.

R. F. Holmes, E. E. (1970). A DIOXIDE REDUCTION UNIT USING BOSCH REACTION AND EXPENDABLE CATALYST CARTRIDGES. San Diego: CONVAIR DIVISION OF GENERAL DYNAMICS CORPORATION.

Roedavan, R. (2014). UNITY Tutorial Game Engine. Bandung: Informatika Bandung.

Rosten, E., & Drummond, T. (2006). Machine learning for high-speed corner detection. Department of Engineering, Cambridge University, UK, 1-14.

Shehata, O. (2015, April 15). Envato Pty Ltd. Retrieved from Envato Pty Ltd Website: https://gamedevelopment.tutsplus.com/tutorials/a-beginners- guide-to-coding-graphics-shaders--cms-23313

Steigerwald, B. (2018, July 30). National Aeronautics and Space Administration. Retrieved from National Aeronautics and Space Administration Website: https://www.nasa.gov/press-release/goddard/2018/mars-terraforming

Sugiyono. (2014). Metode Penelitian Kuantitatif, Kualitatif dan R&D. Bandung: Alfabeta.

Supardi, Y. (2011). Semua Bisa Menjadi Programmer Android. Jakarta: Alex Media Komputindo. 93

Suyanto, M. (2003). Multimedia Alat Untuk Meningkatkan Keunggulan Bersaing. Yogyakarta: ANDI OFFSET.

Szeliski, R. (2011). Computer Vision : Algorithms and Applications. New York: Springer-Verlag London Limited .

Unity, T. (2019, Oktober 4). Unity Technologies. Retrieved from Unity Technologies Website: https://unity.com/shader-graph

Whitten, J. L., & Bentley, L. D. (2007). SYSTEMS ANALYSIS AND DESIGN METHODS. New York: McGraw-Hill/Irwin.

Wiliams, M. (2016, Februari 23). Universe Today. Retrieved from Universe Today: https://www.universetoday.com/127311/guide-to-terraforming/

Yuen, S. C.-Y., Yaoyuneyong, G., & Johnson, E. (2011). Augmented Reality: An Overview and Five Directions for AR in Education. Journal of Educational Technology Development and Exchange ( JETDE), 119-140.

Zubrin, R. M., & McKay, C. P. (1993). Technological Requirements for Terraforming Mars. American Institute of Aeronautics and Astronautics, 1-13.

94

DAFTAR LAMPIRAN backgroundScrolling.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class backgroundScrolling : MonoBehaviour { float scrollSpeed = -128f; Vector2 startPos;

// Start is called before the first frame update void Start() { startPos = transform.position; }

// Update is called once per frame void Update() { float newPos = Mathf.Repeat(Time.time * scrollSpeed, 1280); transform.position = startPos + Vector2.right * newPos; } }

Terraforming.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Terraforming : MonoBehaviour { public raycastCameraLaser raycast;

public Material[] materialPlanet; public Material[] materialAtmosphere; public Material[] materialCloud;

public GameObject[] informationVar; 95

public Text informationText; private float[] valueAtmos = new float[5]; private float[] valueTempe = new float[5]; private float[] valueWater = new float[5]; private float[] valueBiomass = new float[5]; private float[] valueAtmosFirst = new float[5]; private float[] valueTempeFirst = new float[5]; private float[] valueWaterFirst = new float[5]; private float[] valueBiomassFirst = new float[5]; private float[] increasedPerSec = new float[5]; private float[] decreasedPerSec = new float[5]; private bool[] enableTrue = new bool[9]; private bool[] canVariable = new bool[5]; private bool informationTrue;

// Start is called before the first frame update void Start() { valueAtmos[0] = 0f; valueAtmos[1] = 930000f; valueAtmos[2] = 0f;//101.000 Pa valueAtmos[3] = 0f;

valueTempe[0] = 467000f; valueTempe[1] = 254000f; 96

valueTempe[2] = 0f;//15.000 mC valueTempe[3] = -63000f;

valueWater[0] = 0f; valueWater[1] = 0f; valueWater[2] = 0f;//650.000 cm valueWater[3] = 0f;

valueBiomass[0] = 0f; valueBiomass[1] = 0f; valueBiomass[2] = 0f;//550.000 mt valueBiomass[3] = 0f;

increasedPerSec[0] = 1200f;//karena penambangan mineral hanya menambah 1.2 persen dari total bumi increasedPerSec[1] = 5000f;//menggunakan cermin orbit hanya menambah 5°C dari jurnal increasedPerSec[2] = 75000f;//didapatkan dari cara menabrakan asteroid ke planet increasedPerSec[3] = 18250f;//satu pohon = satu ton biomass, dalam waktu 10 tahun bisa tumbuh sempurna, 5000 pohon perhari = 182500 pertahun

//decreasedPerSec[0] = 1200f; hidrogen processor //decreasedPerSec[1] = 5000f; solar shade decreasedPerSec[2] = 75000f;// ice launcher decreasedPerSec[3] = 18250f;// none gak dikurangi

for (int i = 0; i < 5; i++) { valueAtmosFirst[i] = valueAtmos[i]; valueTempeFirst[i] = valueTempe[i]; 97

valueWaterFirst[i] = valueWater[i]; valueBiomassFirst[i] = valueBiomass[i]; } }

// Update is called once per frame void Update() { if (enableTrue[0] == true) { codeIncAtmos(); }

if (enableTrue[1] == true) { codeDecAtmos(); }

if (enableTrue[2] == true) { codeIncTempe(); }

if (enableTrue[3] == true) { codeDecTempe(); }

if (enableTrue[4] == true) { codeIncWater(); 98

} if (enableTrue[5] == true) { codeDecWater(); } if (enableTrue[6] == true) { codeIncPlanet(); } if (enableTrue[7] == true) { codeDecPlanet(); } if (informationTrue == true) { codeInformationCenter(); } if (raycast.check == false) { for (int i = 0; i < 5; i++) { valueAtmos[i] = valueAtmosFirst[i]; valueTempe[i] = valueTempeFirst[i]; valueWater[i] = valueWaterFirst[i]; valueBiomass[i] = valueBiomassFirst[i]; } 99

} } public void incAtmos() { if (raycast.check == true) { enableTrue[0] = true; } } public void decAtmos() { if (raycast.check == true) { enableTrue[1] = true; } } public void stopProgAtmos() { enableTrue[0] = false; enableTrue[1] = false; } public void incTempe() { if (raycast.check == true) { enableTrue[2] = true; } 100

} public void decTempe() { if (raycast.check == true) { enableTrue[3] = true; } } public void stopProgTempe() { enableTrue[2] = false; enableTrue[3] = false; } public void incWater() { if (raycast.check == true) { enableTrue[4] = true; } } public void decWater() { if (raycast.check == true) { enableTrue[5] = true; } } 101

public void stopProgWater() { enableTrue[4] = false; enableTrue[5] = false; } public void incPlanet() { if (raycast.check == true) { enableTrue[6] = true; } } public void decPlanet() { if (raycast.check == true) { enableTrue[7] = true; } } public void stopProgPlanet() { enableTrue[6] = false; enableTrue[7] = false; } public void informationCenter() { 102

informationTrue = true; } public void codeInformationCenter() { if (raycast.plaTrue[1] == true) { informationText.text = "Atmosfir = " + valueAtmos[0] + " Pa" + "\nTemperatur = " + valueTempe[0] + "° mC" + "\nAir = " + valueWater[0] + " cm" + "\nPepohonan " + valueBiomass[0] + " mT"; }

else if (raycast.plaTrue[2] == true) { informationText.text = "Atmosfir = " + valueAtmos[1] + " Pa" + "\nTemperatur = " + valueTempe[1] + "° mC" + "\nAir = " + valueWater[1] + " cm" + "\nPepohonan " + valueBiomass[1] + " mT"; }

else if (raycast.plaTrue[3] == true) { informationText.text = "Atmosfir = " + valueAtmos[2] + " Pa" + "\nTemperatur = " + valueTempe[2] + "° mC" + "\nAir = " + valueWater[2] + " cm" + "\nPepohonan " + valueBiomass[2] + " mT"; }

else if (raycast.plaTrue[4] == true) { 103

informationText.text = "Atmosfir = " + valueAtmos[3] + " Pa" + "\nTemperatur = " + valueTempe[3] + "° mC" + "\nAir = " + valueWater[3] + " cm" + "\nPepohonan " + valueBiomass[3] + " mT"; } }

void codeIncAtmos() { if (raycast.plaTrue[1] == true) { materialAtmosphere[0].SetFloat("Vector1_CFDFC03C", valueAtmos[0]); valueAtmos[0] += increasedPerSec[0] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialAtmosphere[1].SetFloat("Vector1_CFDFC03C", valueAtmos[1]); valueAtmos[1] += increasedPerSec[0] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialAtmosphere[2].SetFloat("Vector1_CFDFC03C", valueAtmos[2]); valueAtmos[2] += increasedPerSec[0] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) 104

{ materialAtmosphere[3].SetFloat("Vector1_CFDFC03C", valueAtmos[3]); valueAtmos[3] += increasedPerSec[0] * Time.deltaTime; } }

void codeDecAtmos() { if (raycast.plaTrue[1] == true) { materialAtmosphere[0].SetFloat("Vector1_CFDFC03C", valueAtmos[0]); valueAtmos[0] -= increasedPerSec[0] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialAtmosphere[1].SetFloat("Vector1_CFDFC03C", valueAtmos[1]); valueAtmos[1] -= increasedPerSec[0] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialAtmosphere[2].SetFloat("Vector1_CFDFC03C", valueAtmos[2]); valueAtmos[2] -= increasedPerSec[0] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) 105

{ materialAtmosphere[3].SetFloat("Vector1_CFDFC03C", valueAtmos[3]); valueAtmos[3] -= increasedPerSec[0] * Time.deltaTime; } }

void codeIncTempe() { if (raycast.plaTrue[1] == true) { materialCloud[0].SetFloat("Vector1_148F9475", valueTempe[0]); valueTempe[0] += increasedPerSec[1] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialCloud[1].SetFloat("Vector1_148F9475", valueTempe[1]); valueTempe[1] += increasedPerSec[1] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialCloud[2].SetFloat("Vector1_148F9475", valueTempe[2]); valueTempe[2] += increasedPerSec[1] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) { materialCloud[3].SetFloat("Vector1_148F9475", valueTempe[3]); valueTempe[3] += increasedPerSec[1] * Time.deltaTime; 106

} } void codeDecTempe() { if (raycast.plaTrue[1] == true) { materialCloud[0].SetFloat("Vector1_148F9475", valueTempe[0]); valueTempe[0] -= increasedPerSec[1] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialCloud[1].SetFloat("Vector1_148F9475", valueTempe[1]); valueTempe[1] -= increasedPerSec[1] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialCloud[2].SetFloat("Vector1_148F9475", valueTempe[2]); valueTempe[2] -= increasedPerSec[1] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) { materialCloud[3].SetFloat("Vector1_148F9475", valueTempe[3]); valueTempe[3] -= increasedPerSec[1] * Time.deltaTime; } } void codeIncWater() 107

{ if (canVariable[0] == false || canVariable[1] == false) { for (int i = 0; i < 5; i++) { if (valueAtmos[i] >= 10000f && valueAtmos[i] <= 200000f) { canVariable[0] = true; }

if (valueTempe[i] >= 14000f && valueTempe[i] <= 100000f) { canVariable[1] = true; } }

if (canVariable[0] == false || canVariable[1] == false) {

informationVar[0].SetActive(true); informationVar[1].SetActive(true); informationVar[3].SetActive(false); stopProgWater(); } }

else if (canVariable[0] == true && canVariable[1] == true) { if (raycast.plaTrue[1] == true) { materialPlanet[0].SetFloat("Vector1_8E60E102", valueWater[0]); 108

valueWater[0] += increasedPerSec[2] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialPlanet[1].SetFloat("Vector1_4837C07", valueWater[1]); valueWater[1] += increasedPerSec[2] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialPlanet[2].SetFloat("Vector1_304D1B9D", valueWater[2]); valueWater[2] += increasedPerSec[2] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) { materialPlanet[3].SetFloat("Vector1_17D04B9D", valueWater[3]); valueWater[3] += increasedPerSec[2] * Time.deltaTime; } } } void codeDecWater() { if (canVariable[0] == false || canVariable[1] == false) { for (int i = 0; i < 5; i++) { if (valueAtmos[i] >= 10000f && valueAtmos[i] <= 200000f) { 109

canVariable[0] = true; }

if (valueTempe[i] >= 14000f && valueTempe[i] <= 100000f) { canVariable[1] = true; } }

if (canVariable[0] == false || canVariable[1] == false) {

informationVar[0].SetActive(true); informationVar[1].SetActive(true); informationVar[3].SetActive(false); stopProgWater(); } } else if (canVariable[0] == true && canVariable[1] == true) { if (raycast.plaTrue[1] == true) { materialPlanet[0].SetFloat("Vector1_8E60E102", valueWater[0]); valueWater[0] -= increasedPerSec[2] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialPlanet[1].SetFloat("Vector1_4837C07", valueWater[1]); valueWater[1] -= increasedPerSec[2] * Time.deltaTime; 110

}

else if (raycast.plaTrue[3] == true) { materialPlanet[2].SetFloat("Vector1_304D1B9D", valueWater[2]); valueWater[2] -= increasedPerSec[2] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) { materialPlanet[3].SetFloat("Vector1_17D04B9D", valueWater[3]); valueWater[3] -= increasedPerSec[2] * Time.deltaTime; } } } void codeIncPlanet() { if (canVariable[2] == false) { for (int i = 0; i < 5; i++) { if (valueWater[i] >= 300000f && valueWater[i] <= 900000f) { canVariable[2] = true; Debug.Log("test"); } }

if (canVariable[2] == false) { 111

informationVar[0].SetActive(true); informationVar[2].SetActive(true); informationVar[3].SetActive(false); stopProgPlanet(); } }

else if (canVariable[2] == true) { if (raycast.plaTrue[1] == true) { materialPlanet[0].SetFloat("Vector1_EA60CDEF", valueBiomass[0]); valueBiomass[0] += increasedPerSec[3] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialPlanet[1].SetFloat("Vector1_DB8E59AA", valueBiomass[1]); valueBiomass[1] += increasedPerSec[3] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialPlanet[2].SetFloat("Vector1_57F27D6D", valueBiomass[2]); valueBiomass[2] += increasedPerSec[3] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) { 112

materialPlanet[3].SetFloat("Vector1_33E2A00E", valueBiomass[3]); valueBiomass[3] += increasedPerSec[3] * Time.deltaTime; } } } void codeDecPlanet() { if (canVariable[2] == false) { for (int i = 0; i < 5; i++) { if (valueWater[i] >= 300000f && valueWater[i] <= 900000f) { canVariable[2] = true; } }

if (canVariable[2] == false) { informationVar[0].SetActive(true); informationVar[2].SetActive(true); informationVar[3].SetActive(false); stopProgPlanet(); } }

else if (canVariable[2] == true) { if (raycast.plaTrue[1] == true) { 113

materialPlanet[0].SetFloat("Vector1_EA60CDEF", valueBiomass[0]); valueBiomass[0] -= increasedPerSec[3] * Time.deltaTime; }

else if (raycast.plaTrue[2] == true) { materialPlanet[1].SetFloat("Vector1_DB8E59AA", valueBiomass[1]); valueBiomass[1] -= increasedPerSec[3] * Time.deltaTime; }

else if (raycast.plaTrue[3] == true) { materialPlanet[2].SetFloat("Vector1_57F27D6D", valueBiomass[2]); valueBiomass[2] -= increasedPerSec[3] * Time.deltaTime; }

else if (raycast.plaTrue[4] == true) { materialPlanet[3].SetFloat("Vector1_33E2A00E", valueBiomass[3]); valueBiomass[3] -= increasedPerSec[3] * Time.deltaTime; } } } }

scaleSlider.cs using System.Collections; using System.Collections.Generic; using UnityEngine;

114

public class scaleSlider : MonoBehaviour { public GameObject scaleableObject;

public void scaleObject(float scaleValue) { scaleableObject.transform.localScale = new Vector3(scaleValue, scaleValue, scaleValue); } }

raycastCameraLaser.cs using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class raycastCameraLaser : MonoBehaviour {

public Camera playerCamera;

private GameObject terraformButtonClick; private GameObject terraformButtonClickHide;

public GameObject[] objectTerraform; public GameObject[] textTerraform; public GameObject[] behaviorButton;

public Transform cameraFollow;

public RaycastHit hit; public Ray ray;

private float distance = 0.5f; 115

private Vector3[] originalState = new Vector3[9]; private Vector3[] originalSState = new Vector3[9]; private Vector3 originalStateCam; private bool[] justPla = new bool[9]; public bool[] plaTrue = new bool[9]; private bool ifClickInformationTrue; private bool pageOneTrue; private bool pageTwoTrue; private bool oneTime; private bool ifClickTrue = true; public bool scaleCheck; public bool check = false;

void Start() { for (int i = 0; i <= 8; i++) { originalState[i] = objectTerraform[i].transform.position; originalSState[i] = objectTerraform[i].transform.localScale; }

originalStateCam = cameraFollow.transform.position;

behaviorButton[0].SetActive(false); 116

behaviorButton[1].SetActive(false);

terraformButtonClick = behaviorButton[1].transform.Find("TerraformSpace").gameObject; terraformButtonClickHide = behaviorButton[1].transform.Find("TerraformButton").gameObject; }

// Update is called once per frame void LateUpdate() { ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit, 100.0f)) { check = true;

ifClickTrue = false;

behaviorButton[4].SetActive(true); behaviorButton[6].SetActive(false);

if (hit.transform.gameObject == objectTerraform[0]) { plaTrue[0] = true; justPla[0] = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; 117

} } else if (hit.transform.gameObject == objectTerraform[1]) { plaTrue[1] = true; justPla[1] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[2]) { plaTrue[2] = true; justPla[2] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[3]) { plaTrue[3] = true; justPla[3] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) 118

{ objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[4]) { plaTrue[4] = true; justPla[4] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[5]) { plaTrue[5] = true; justPla[5] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[6]) { plaTrue[6] = true; justPla[6] = true; 119

scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[7]) { plaTrue[7] = true; justPla[7] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else if (hit.transform.gameObject == objectTerraform[8]) { plaTrue[8] = true; justPla[8] = true; scaleCheck = true; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = false; } } else { 120

Debug.Log("nothing"); } } }

else if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Escape)) { check = false;

behaviorButton[4].SetActive(false); behaviorButton[6].SetActive(true);

if (plaTrue[0] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[0] = false; }

else if (plaTrue[1] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[1] = false; }

121

else if (plaTrue[2] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[2] = false; } else if (plaTrue[3] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[3] = false; } else if (plaTrue[4] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[4] = false; } else if (plaTrue[5] == true) { for (int i = 0; i <= 8; i++) { 122

objectTerraform[i].GetComponent().enabled = true; } plaTrue[5] = false; } else if (plaTrue[6] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[6] = false; } else if (plaTrue[7] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[7] = false; } else if (plaTrue[8] == true) { for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } plaTrue[8] = false; } 123

oneTime = true; }

if (check == true) { checkTrue(); }

else if (check == false && oneTime == true) { checkFalse(); }

}

public void pageOne() { if (pageTwoTrue == true) { for (int i = 9; i <= 17; i++) { textTerraform[i].SetActive(false); } pageTwoTrue = false; }

for (int i = 0; i <= 8; i++) { 124

if (justPla[i] == true) { textTerraform[i].SetActive(true); } pageOneTrue = true; } } public void pageTwo() { if (pageOneTrue == true) { for (int i = 0; i <= 8; i++) { textTerraform[i].SetActive(false); } pageOneTrue = false; }

for (int i = 9; i <= 17; i++) { if (justPla[i-9] == true) { textTerraform[i].SetActive(true); } pageTwoTrue = true; } } public void clickBackDescription() { 125

for (int i = 0; i < 17; i++) { textTerraform[i].SetActive(false); } } public void clickTerraform() { ifClickTrue = true; } public void clickBackTerraform() { ifClickTrue = false; } public void clickInformation() { ifClickInformationTrue = true; } public void clickBackInformation() { ifClickInformationTrue = false; } private void checkTrue() {

if (ifClickTrue == true) { 126

behaviorButton[0].SetActive(false); terraformButtonClick.SetActive(true); terraformButtonClickHide.SetActive(false); } else if (ifClickTrue == false) { behaviorButton[0].SetActive(true); behaviorButton[3].SetActive(false);

if (ifClickInformationTrue == true) { behaviorButton[1].SetActive(false); }

else if (ifClickInformationTrue == false) { behaviorButton[1].SetActive(true); }

terraformButtonClick.SetActive(false); terraformButtonClickHide.SetActive(true); }

if (plaTrue[0] == true) { if (ifClickTrue == true) { behaviorButton[3].SetActive(true); terraformButtonClick.SetActive(true); 127

} objectTerraform[0].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[1] == true) { if (ifClickTrue == true) { behaviorButton[2].SetActive(true); } if (scaleCheck == true) { objectTerraform[1].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } objectTerraform[1].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[2] == true) { if (ifClickTrue == true) { behaviorButton[2].SetActive(true); } if (scaleCheck == true) { 128

objectTerraform[2].transform.localScale = objectTerraform[2].transform.localScale + new Vector3(0.4741f, 0.4741f, 0.4741f); scaleCheck = false; } objectTerraform[2].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[3] == true) { if (ifClickTrue == true) { behaviorButton[2].SetActive(true); } if (scaleCheck == true) { objectTerraform[3].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } objectTerraform[3].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[4] == true) { if (ifClickTrue == true) { 129

behaviorButton[2].SetActive(true); } if (scaleCheck == true) { objectTerraform[4].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } objectTerraform[4].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[5] == true) { if (ifClickTrue == true) { behaviorButton[3].SetActive(true); terraformButtonClick.SetActive(true); } if (scaleCheck == true) { objectTerraform[5].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } objectTerraform[5].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

130

else if (plaTrue[6] == true) { if (ifClickTrue == true) { behaviorButton[3].SetActive(true); terraformButtonClick.SetActive(true); } if (scaleCheck == true) { objectTerraform[6].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } objectTerraform[6].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[7] == true) { if (ifClickTrue == true) { behaviorButton[3].SetActive(true); terraformButtonClick.SetActive(true); } if (scaleCheck == true) { objectTerraform[7].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } 131

objectTerraform[7].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; }

else if (plaTrue[8] == true) { if (ifClickTrue == true) { behaviorButton[3].SetActive(true); terraformButtonClick.SetActive(true); } if (scaleCheck == true) { objectTerraform[8].transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); scaleCheck = false; } objectTerraform[8].transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance; transform.position = cameraFollow.position; } }

private void checkFalse() {

if (justPla[0] == true) { objectTerraform[0].transform.position = originalState[0]; objectTerraform[0].transform.localScale = originalSState[0]; 132

justPla[0] = false; } else if (justPla[1] == true) { objectTerraform[1].transform.position = originalState[1]; objectTerraform[1].transform.localScale = originalSState[1]; justPla[1] = false; } else if (justPla[2] == true) { objectTerraform[2].transform.position = originalState[2]; objectTerraform[2].transform.localScale = originalSState[2]; justPla[2] = false; } else if (justPla[3] == true) { objectTerraform[3].transform.position = originalState[3]; objectTerraform[3].transform.localScale = originalSState[3]; justPla[3] = false; } else if (justPla[4] == true) { objectTerraform[4].transform.position = originalState[4]; objectTerraform[4].transform.localScale = originalSState[4]; justPla[4] = false; }

133

else if (justPla[5] == true) { objectTerraform[5].transform.position = originalState[5]; objectTerraform[5].transform.localScale = originalSState[5]; justPla[5] = false; }

else if (justPla[6] == true) { objectTerraform[6].transform.position = originalState[6]; objectTerraform[6].transform.localScale = originalSState[6]; justPla[6] = false; }

else if (justPla[7] == true) { objectTerraform[7].transform.position = originalState[7]; objectTerraform[7].transform.localScale = originalSState[7]; justPla[7] = false; }

else if (justPla[8] == true) { objectTerraform[8].transform.position = originalState[8]; objectTerraform[8].transform.localScale = originalSState[8]; justPla[8] = false; }

transform.position = originalStateCam; oneTime = false; } 134

public void backButton() { check = false;

if (plaTrue[0] == true) { plaTrue[0] = false;

for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } }

if (plaTrue[1] == true) { plaTrue[1] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } }

if (plaTrue[2] == true) { plaTrue[2] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; 135

} } if (plaTrue[3] == true) { plaTrue[3] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } } if (plaTrue[4] == true) { plaTrue[4] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } } if (plaTrue[5] == true) { plaTrue[5] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } } if (plaTrue[6] == true) 136

{ plaTrue[6] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } }

if (plaTrue[7] == true) { plaTrue[7] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } }

if (plaTrue[8] == true) { plaTrue[8] = false; for (int i = 0; i <= 8; i++) { objectTerraform[i].GetComponent().enabled = true; } }

oneTime = true; } }

137

quitButton.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class quitButton : MonoBehaviour {

public AudioSource audioQuit; public AudioClip clipQuit;

void Start() { audioQuit.clip = clipQuit; }

// Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.Escape)) { audioQuit.Play(); Application.Quit(); } }

public void exitGames() { audioQuit.Play(); Application.Quit(); } }

PlanetRotation.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlanetRotation : MonoBehaviour { public float speed = 10f;

// Update is called once per frame void Update() { transform.Rotate(Vector3.up, speed * Time.deltaTime); }

}

optionSettings.cs using System.Collections; using System.Collections.Generic; 138

using UnityEngine; using UnityEngine.Audio; using UnityEngine.UI; public class optionSettings : MonoBehaviour { public AudioMixer audioMixer;

public void SetVolume(float volume) { audioMixer.SetFloat("volume", volume); }

public void SetLowQuality() { QualitySettings.SetQualityLevel(1); }

public void SetMediumQuality() { QualitySettings.SetQualityLevel(2); }

public void SetHighQuality() { QualitySettings.SetQualityLevel(3); }

}

mainMenu.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class mainMenu : MonoBehaviour {

public Animator[] animators; public GameObject[] setActive;

public void playGames () { setActive[0].SetActive(false); setActive[1].SetActive(true); animators[0].SetBool("Door1Open", true); animators[1].SetBool("Door2Open", true); StartCoroutine(animWait()); }

IEnumerator animWait() { yield return new WaitForSeconds(1); animators[2].SetBool("fadeTrue", true); yield return new WaitForSeconds(1); 139

SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1); }

public void backToMainMenu() { SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex - 1); }

}

innitializeScript.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class innitializeScript : MonoBehaviour {

public raycastCameraLaser pressCheck;

// Update is called once per frame void Update() { if (pressCheck.check == false) { if (Input.GetKeyDown(KeyCode.Escape)) {

SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex - 1); } }

} }

140

Grafik Jawaban Responden kuesioner keberhasilan aplikasi 141

Kuesioner ini dibuat untuk mengetahui minat dan kemampuan seputar astronomi dan perbintangan bagi pengisi kuesioner Sasaran : Siswa-siswi SMP, SMA Dan Sederajat

Assalamualaikum wr.wb.

Perkenalkan nama saya Taqie Fadlillah mahasiswa semester akhir di Universitas Islam Negeri Prodi Teknik Informatika. Saya sedang melakukan penelitian tentang pembangunan aplikasi simulasi terraforming, sebagai salah satu syarat memperoleh sarjana komputer. Kuesioner ini ditujukan pada SMP, SMA dan Sederajat. Silahkan mengisi kuesioner ini dengan jawaban yang menurut anda benar. Data diri yang diisi dalam kuesioner ini akan dijaga KERAHASIAANNYA dan hanya akan digunakan untuk kepentingan penelitian saja.

Oleh karena itu saya meminta partisipasinya untuk melengkapi penelitian yang saya lakukan ini. Atas perhatiannya, terima kasih Wassalamualaikum wr. wb.

1. Nama : 2. Pendidikan saat ini : 3. Email :

142

Harap bagi responden untuk tidak mencari jawaban dari internet atau googling. Terima kasih atas perhatiannya

1. Apakah anda pernah belajar tentang tata surya atau astronomi? o Iya o Tidak 2. Bagaimana tanggapan anda tentang mata pelajaran tersebut? o Menarik o Tidak Menarik 3. Apakah anda pernah bercita-cita untuk menjadi astronot? o Iya o Tidak 4. Jika iya apakah anda masih berusaha untuk mencapai cita-cita anda? o Masih o Tidak o Tidak pernah 5. Apakah anda ingin melanjutkan pendidikan anda ke jenjang yang lebih tinggi untuk mempelajari Astronomi lebih lanjut?

o Iya o Tidak o Mungkin Ada berapakah planet di tata surya kita? o 9 o 8 o 10 6. Apakah nama Galaksi tempat kita berada?

7. Bagaimanakah fenomena gerhana matahari terjadi?

8. Apa yang anda ketahui tentang terraforming?

143

9. Berapa lamakah rotasi Bumi? o 32 Jam o 28 Jam o 24 Jam 10. Berapa lamakah revolusi atau orbit Bumi? o 363 Hari o 365 Hari o 367 Hari 11. Berapa lamakah rotasi Mars? o 24 Jam o 26 Jam o 28 Jam 12. Berapa lamakah revolusi atau orbit Saturnus? o 30 Tahun o 28 Tahun o 32 Tahun

1. Apakah pertanyaan diatas sulit? o Setuju o Kurang Setuju o Tidak Setuju o Sangat Tidak Setuju 2. Menurut anda apakah penggunaan media yang interaktif seperti video game membuat belajar menjadi efektif? o Setuju o Kurang Setuju o Tidak Setuju o Sangat Tidak Setuju 3. Apakah video game yang memiliki tujuan atau misi membuat anda semangat untuk menyelesaikan tujuan atau misi tersebut? o Setuju o Kurang Setuju o Tidak Setuju o Sangat Tidak Setuju 4. Apakah anda setuju jika dibuatkan aplikasi video game interaktif untuk belajar tentang astronomi dan keantariksaan? o Setuju o Kurang Setuju o Tidak Setuju 144

o Sangat Tidak Setuju 1. Menurut anda apakah penggunaan media yang interaktif seperti video game membuat belajar menjadi efektif? o Setuju o Kurang Setuju o Tidak Setuju o Sangat Tidak Setuju 2. Apakah video game yang memiliki tujuan atau misi membuat anda semangat untuk menyelesaikan tujuan atau misi tersebut? o Setuju o Kurang Setuju o Tidak Setuju o Sangat Tidak Setuju 3. Apakah anda setuju jika dibuatkan aplikasi video game interaktif untuk belajar tentang astronomi dan keantariksaan? o Setuju o Kurang Setuju o Tidak Setuju o Sangat Tidak Setuju