• Tidak ada hasil yang ditemukan

Berdasarkan penelitian ini, saran untuk penelitian selanjutnya adalah pengembangan aplikasi AR metamorfosis, yang dapat dilakukan pada beberapa bagian sebagai berikut:

81

1. Penambahan objek serangga-serangga yang bermetamorfosis.

2. Pengembangan pada desain interface dari aplikasi dengan background image yang lebih menarik. Hal ini disebabkan karena aplikasi hanya menggunakan fungsi pindah panel dalam pembuatan main menunya sehingga tampilan dari background image bersifat monoton.

3. Pengembangan proses animasi menjadi lebih spesifik dimana dapat memperlihatkan proses pergantian kulit dari ulat dan belalang.

82

DAFTAR PUSTAKA

[1] Y. Y. Joefrie dan Y. Anshori, “TEKNOLOGI AUGMENTED REALITY,”

MEKTEK, vol. XIII, no. 3, pp. 194-203, 2011.

[2] nanangri, “Pengertian Metamorfosis Sempurna dan Tidak Sempurna beserta Contoh dan Gambarnya,” Jempolkaki.com, 26 Oktober 2016.

[Online]. Available: http://jempolkaki.com/metamorfosis/. [Diakses 22 Februari 2017].

[3] K. Janutriyuda, M. A. Pratama dan Yoannita, “Simulasi Metamorfosis Kupu-Kupu 3D Berbasis Augmented Reality Sebagai Media-Media Pembelajaran Biologi,” 2013.

[4] M. Billinghurst, “Augmented Reality in Education,” Desember 2002.

[5] E. Ardhianto, W. Hadikurniawati dan E. Winarno, “Augmented Reality Objek 3 Dimensi dengan Perangkat Artoolkit dan Blender,” Teknologi Informasi DINAMIK, vol. XVII, no. 2, pp. 107-117, 2012.

[6] H. Syofyan, “Pertemuan 13 : Metamorfosis,” 13 Oktober 2014. [Online].

Available:

http://psd113.weblog.esaunggul.ac.id/wp-83

content/uploads/sites/4236/2014/10/13.-Pertemuan-13-Metamorfosis.ppt.

[Diakses 06 Juli 2017].

[7] Henry G., Kuswanto dan T. Hartiningsih, dalam IPA Untuk SMP/MTS Kelas VIII, Jakarta, Pusat Perbukuan Departemen Pendidikan Nasional, 2009, pp. 05-06.

[8] N. H. Najah, F. A. Alim Putri, D. N. Yohanes dan F. P. Putri, “Augmented Reality,” UNESA, 04 Mei 2017. [Online]. Available:

http://if.unesa.ac.id/blog/aditya/2017/05/04/augmented-reality/. [Diakses 06 Juli 2017].

[9] Blender, “Blender About,” Blender Foundation, 2017. [Online]. Available:

https://www.blender.org/about/. [Diakses 06 Juli 2017].

[10] R. M. Yusuf dan Aristiawan, “Unity 3D – Game Engine,” HermanClass, 06 Oktober 2013. [Online]. Available:

http://www.hermantolle.com/class/docs/unity-3d-game-engine/. [Diakses 06 Juli 2017].

[11] A. W. Putra, “Vuforia – SDK Canggih Untuk Wujudkan Aplikasi dan Game Dengan Teknologi Augmented Reality,” TeknoJurnal, 30 April 2015. [Online]. Available: https://teknojurnal.com/vuforia/. [Diakses 07 Juli 2017].

[12] Vuforia, “Vuforia Features,” PTC Inc., 2017. [Online]. Available:

https://www.vuforia.com/features.html. [Diakses 07 Juli 2017].

84

[13] A. Zainudin, “Pengenalan Android,” [Online]. Available:

http://zai.lecturer.pens.ac.id/Kuliah/Internet%20Programming/Android/Pen genalan%20Android.pdf. [Diakses 07 Juli 2017].

[14] Google, “The Android History,” Google, 2017. [Online]. Available:

https://www.android.com/history/#/marshmallow. [Diakses 07 Juli 2017].

LAMPIRAN

7 Tabel Hasil Uji Kuesioner dan 20 responden.

Tabel Hasil Uji Kuesioner Pertanyaan 1

Pilihan Jumlah Responden Presentase Responden

Ya 8 40%

Tidak 12 60%

Tabel Hasil Uji Kuesioner Pertanyaan 2

Pilihan Jumlah Responden Persentase Responden

Ya 5 25%

Tidak 10 75%

Tabel Hasil Uji Kuesioner Pertanyaan 3

Pilihan Jumlah Responden Persentase Responden

Ya 19 95%

Tidak 1 5%

Tabel Hasil Uji Kuesioner Pertanyaan 4

Pilihan Jumlah Responden Persentase Responden

Ya 16 80%

Tidak 4 20%

Tabel Hasil Uji Kuesioner Pertanyaan 5

Pilihan Jumlah Responden Persentase Responden

Ya 17 85%

Tidak 3 15%

Tabel Hasil Uji Kuesioner Pertanyaan 6

Pilihan Jumlah Responden Persentase Responden

Ya 19 95%

Tidak 1 5%

Tabel Hasil Uji Kuesioner Pertanyaan 7

Pilihan Jumlah Responden Persentase Responden

Ya 17 85%

Tidak 3 15%

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class ChangeScene : MonoBehaviour {

public void gantiscene(string scenename) {

Application.LoadLevel(scenename);

} }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class QuitOnClick : MonoBehaviour {

public void OnApplicationQuit() {

#if UNITY_EDITOR

UnityEditor.EditorApplication.isPlaying = false;

#else

Application.Quit();

#endif } }

using UnityEngine;

using UnityEngine.UI;

using System.Collections;

[RequireComponent(typeof(AudioSource))]

public class PlayOnClick : MonoBehaviour { public Animator ani;

public AudioClip sound;

AudioSource audioSource;

float m_MySliderValue = 1.0f;

public float startingPitch = 1.0f;

void Start() {

audioSource = GetComponent<AudioSource>();

ani.enabled = false;

}

public void Press() {

if (ani.enabled == false) {

ani.enabled = true;

audioSource.clip = sound;

audioSource.Play();

audioSource.pitch = startingPitch;

}

}

void OnGUI() {

float targetWidth = 800;

float targetHeight = 600;

Vector3 scaleVector = Vector3.one;

scaleVector.x = Screen.width / targetWidth;

scaleVector.y = Screen.height / targetHeight;

GUI.matrix = Matrix4x4.Scale(scaleVector);

GUI.Label(new Rect(0, 25, 40, 60), "Speed");

m_MySliderValue = GUI.HorizontalSlider(new Rect(45, 25, 200, 60), m_MySliderValue, 1.0f, 6.0f);

ani.speed = m_MySliderValue;

startingPitch = m_MySliderValue;

} }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class FPSDisplay : MonoBehaviour {

float deltaTime = 0.0f;

void Update() {

deltaTime += (Time.deltaTime - deltaTime) * 0.1f;

}

void OnGUI() {

float targetWidth = 800;

float targetHeight = 600;

Vector3 scaleVector = Vector3.one;

scaleVector.x = Screen.width / targetWidth;

scaleVector.y = Screen.height / targetHeight;

GUI.matrix = Matrix4x4.Scale(scaleVector);

int w = Screen.width, h = Screen.height;

GUIStyle style = new GUIStyle();

Rect rect = new Rect(0, 0, w, h * 2 / 100);

style.alignment = TextAnchor.UpperLeft;

style.fontSize = h * 2 / 100;

style.normal.textColor = new Color(0.0f, 0.0f, 0.5f, 1.0f);

float msec = deltaTime * 1000.0f;

float fps = 1.0f / deltaTime;

string text = string.Format("{0:0.0} ms ({1:0.} fps)", msec, fps);

GUI.Label(rect, text, style);

} }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class InputTouch : MonoBehaviour { public float initialFingersDistance;

public Vector3 initialScale;

public static Transform ScaleTransform;

void Update() {

int fingersOnScreen = 0;

foreach (Touch touch in Input.touches) {

fingersOnScreen++;

if (fingersOnScreen == 2) {

if (touch.phase == TouchPhase.Began) {

initialFingersDistance =

Vector2.Distance(Input.touches[0].position, Input.touches[1].position);

initialScale = ScaleTransform.localScale;

} else {

float currentFingersDistance =

Vector2.Distance(Input.touches[0].position, Input.touches[1].position);

float scaleFactor = currentFingersDistance / initialFingersDistance;

ScaleTransform.localScale = initialScale * scaleFactor;

} } } } }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class PinchScale : MonoBehaviour { void OnMouseDown()

{

InputTouch.ScaleTransform = this.transform;

} }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class DragObj : MonoBehaviour {

Vector3 dist;

float posX;

float posY;

void OnMouseDown() {

dist = Camera.main.WorldToScreenPoint(transform.position);

posX = Input.mousePosition.x - dist.x;

posY = Input.mousePosition.y - dist.y;

}

void OnMouseDrag() {

Vector3 curPos = new Vector3(Input.mousePosition.x - posX, Input.mousePosition.y - posY, dist.z);

Vector3 worldPos = Camera.main.ScreenToWorldPoint(curPos);

transform.position = worldPos;

} }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class AnimEvent : MonoBehaviour {

public GameObject objek1, objek2, objek3, objek4, objek5, objek6, objek7, objek8, objek9, objek10;

private void Start() {

objek1.SetActive(false);

}

public void HideandAppear(int a) {

if (a == 1) {

objek1.SetActive(true);

objek4.SetActive(false);

objek5.SetActive(false);

objek6.SetActive(false);

objek7.SetActive(false);

objek8.SetActive(false);

objek9.SetActive(false);

objek10.SetActive(false);

}

if (a == 2) {

objek1.SetActive(false);

objek7.SetActive(true);

objek8.SetActive(true);

}

if (a == 3) {

objek3.SetActive(false);

objek4.SetActive(true);

}

if (a == 4) {

objek4.SetActive(false);

objek5.SetActive(true);

objek6.SetActive(true);

objek8.SetActive(false);

objek9.SetActive(true);

objek10.SetActive(true);

} } }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class TouchInfo : MonoBehaviour { void Update () {

RaycastHit hit = new RaycastHit();

for (int i = 0; i < Input.touchCount; ++i) {

if (Input.GetTouch(i).phase.Equals(TouchPhase.Began)) {

Ray ray =

Camera.main.ScreenPointToRay(Input.GetTouch(i).position);

if (Physics.Raycast(ray, out hit)) {

if (hit.collider.gameObject.name == "telurobj") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "Ulat1") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "ulat2") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "Pupa_001") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "Kupukupu") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

} } }

else {

gameObject.GetComponent<DisplayText>().OnMouseExit();

} } } }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class TouchInfo2 : MonoBehaviour { void Update()

{

RaycastHit hit = new RaycastHit();

for (int i = 0; i < Input.touchCount; ++i) {

if (Input.GetTouch(i).phase.Equals(TouchPhase.Began)) {

Ray ray =

Camera.main.ScreenPointToRay(Input.GetTouch(i).position);

if (Physics.Raycast(ray, out hit)) {

if (hit.collider.gameObject.name == "Cylinder") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "belalangE1") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "belalangE3") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

}

if (hit.collider.gameObject.name == "Plane_001") {

hit.collider.gameObject.GetComponent<DisplayText>().OnMouseOver();

} } } else {

gameObject.GetComponent<DisplayText>().OnMouseExit();

} } } }

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class DisplayText : MonoBehaviour { public bool displayinfo;

public GameObject text;

void Update() {

FadeText();

}

public void OnMouseOver() {

displayinfo = true;

}

public void OnMouseExit() {

displayinfo = false;

}

void FadeText() {

if (displayinfo) {

text.gameObject.SetActive(true);

} else {

text.gameObject.SetActive(false);

} } }

Dokumen terkait