BAB II LANDASAN TEORI 2.1 Tinjauan Penelitian Berikut tinjuan penelitian yang digunakan unutk membantu pembuatan laporan tugas akhir ini. Judul
: DEVELOPMENT OF FIRST PERSON SHOOTING GAME PATRIOTISM WITH UNITY 3D 3.2 GAME ENGINE
Dibuat
: Tahun 2012
Jurusan
: Information Engineering,Bina Nusantara University,Jakarta
Oleh
: Feriawan, Erick Martin Susanto
Latar belakang
: Mengakui bahwa keterbatasan sumber daya manusia dan juga keterbatasan teknologi yang dipakai saat ini menjadi salah satu kendala yang harus dihadapi, sehingga semakin banyak orang yang kesulitan untuk mengembangkan sebuah game. Berangkat dari hal tersebut, kami berinisiatif untuk membuat sebuah game
yang
diharapkan
dapat
membuktikan bahwa game-game indie berskala nasional di Indonesia tidaklah seburuk itu, walau dibatasi oleh banyak kendala, hal tersebut tidaklah menyurutkan
niat kami
untuk mengembangkan sebuah game dengan kualitas yang baik. Masalah
:Beberapa kendala seperti penyesuaian antara cerita dan setting game serta penyesuaian desain dan ide yang digunakan.
Tujuan
: Untuk
melakukan
perancangan
dan
pengimplementasian tema cerita fiktif Indonesia pada tahun 1965 ke dalam game agar dapat memberikan hiburan kepada pengguna. Metodelogi
: Menggunakan metode analisis (penyebaran kuisioner, studi pustaka, dan survey terhadap beberapa game sejenis yang telah ada. )dan perancangan (perancangan sistem yang berguna dalam penentuan navigasi)
7 http://digilib.mercubuana.ac.id/
Kesimpulan
: Pengguna dapat memperoleh simulasi fiktif mengenai peperangan yang mengambil setting berkaitan dengan Indonesia dan memperoleh timbal balik yang bermanfaat.
2.2
Landasan Teori
2.2.1 Android (Kirsner, 2007)Android adalah sistem operasi berbasis Linux yang dirancang untuk perangkat seluler layar sentuh seperti telepon pintar dan komputer tablet. Android awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial dari Google, yang kemudian membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance, konsorsium dari perusahaan-perusahaan perangkat keras, perangkat lunak, dan telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler. Ponsel Android pertama mulai dijual pada bulan Oktober 2008. 1. Antarmuka Antarmuka pengguna pada Android didasarkan pada manipulasi langsung menggunakan masukan sentuh yang serupa dengan tindakan di dunia nyata, misalnya menggesek (swiping), mengetuk (tapping), dan mencubit (pinching), untuk memanipulasi obyek di layar. Ketika dihidupkan, perangkat Android akan memuat pada layar depan (homescreen), yakni navigasi utama dan pusat informasi pada perangkat, serupa dengan desktop pada komputer pribadi. Layar depan bisa terdiri dari beberapa halaman, pengguna dapat menggeser bolak balik antara satu halaman ke halaman lainnya, yang memungkinkan pengguna Android untuk mengatur tampilan perangkat sesuai dengan selera. Beberapa aplikasi pihak ketiga yang tersedia di Google Play dan di toko aplikasi lainnya secara ekstensif mampu mengatur kembali tema layar depan Android, dan bahkan bisa meniru tampilan sistem operasi lain, misalnya Windows Phone. Di bagian atas layar terdapat status bar, yang menampilkan informasi tentang perangkat dan konektivitasnya. Status bar ini bisa ditarik ke bawah untuk membuka layar notifikasi yang menampilkan informasi penting atau pembaruan aplikasi, misalnya SMS masuk, dengan cara tidak mengganggu kegiatan pengguna pada perangkat. Notifikasi ini akan tetap ada sampai pengguna melihatnya, atau dihapus dan di nonaktifkan oleh pengguna.
8 http://digilib.mercubuana.ac.id/
2. Aplikasi Android memungkinkan penggunanya untuk memasang aplikasi pihak ketiga, baik yang diperoleh dari toko aplikasi seperti Google Play, Amazon Appstore, ataupun dengan mengunduh dan memasang berkas APK dari situs pihak ketiga. Di Google Play, pengguna bisa menjelajah, mengunduh, dan memperbarui aplikasi yang diterbitkan oleh Google dan pengembang pihak ketiga, sesuai dengan persyaratan kompatibilitas Google. Google Play akan menyaring daftar aplikasi yang tersedia berdasarkan kompatibilitasnya dengan perangkat pengguna, dan pengembang dapat membatasi aplikasi ciptaan mereka bagi operator atau negara tertentu untuk alasan bisnis. Aplikasi Android dikembangkan dalam bahasa pemrograman Java dengan menggunakan kit pengembangan perangkat lunak Android (SDK). SDK ini terdiri dari seperangkat perkakas pengembangan, termasuk debugger, perpustakaan perangkat lunak, emulator handset, dokumentasi, kode sampel, dan tutorial. Didukung secara resmi oleh lingkungan pengembangan terpadu (IDE) Eclipse, yang menggunakan plugin Android Development Tools (ADT). Perkakas pengembangan lain yang tersedia di antaranya adalah Native Development Kit untuk aplikasi atau ekstensi dalam C atau C++, Google App Inventor, Unity, lingkungan visual untuk pemrogram pemula, dan berbagai kerangka kerja aplikasi web seluler lintas platform. 3. Pengelolaan Memori Karena perangkat Android umumnya bertenaga baterai, Android dirancang untuk mengelola memori (RAM) guna menjaga konsumsi daya minimal, berbeda dengan sistem operasi desktop yang bisa terhubung pada sumber daya listrik tak terbatas. Ketika sebuah aplikasi Android tidak lagi digunakan, sistem secara otomatis akan menangguhkannya (suspend) dalam memori secara teknis aplikasi tersebut masih terbuka, namun dengan ditangguhkan, aplikasi tidak akan mengkonsumsi sumber daya (misalnya daya baterai atau daya pemrosesan), dan akan diam di latar belakang hingga aplikasi tersebut digunakan kembali. Cara ini memiliki manfaat ganda, tidak hanya meningkatkan respon perangkat Android karena aplikasi tidak perlu ditutup dan dibuka kembali dari awal setiap saat, tetapi juga memastikan bahwa aplikasi yang berjalan di latar belakang tidak menghabiskan daya
9 http://digilib.mercubuana.ac.id/
secara sia-sia. Android mengelola aplikasi yang tersimpan di memori secara otomatis: ketika memori lemah, sistem akan menonaktifkan aplikasi dan proses yang tidak aktif untuk sementara waktu, aplikasi akan dinonaktifkan dalam urutan terbalik, dimulai dari yang terakhir digunakan. Pengelolaan memori pada Android yang tidak terlihat telah menyebabkan munculnya beberapa aplikasi task killer pihak ketiga yang populer di Google Play. 4. Keamanan dan Privasi Aplikasi Android berjalan di sandbox, sebuah area terisolasi yang tidak memiliki akses pada sistem, kecuali izin akses yang secara eksplisit diberikan oleh pengguna ketika memasang aplikasi. Sebelum memasang aplikasi, Play Store akan menampilkan semua izin yang diperlukan. Setelah meninjau izin tersebut, pengguna dapat memilih untuk menerima atau menolaknya, dan bisa memasang aplikasi hanya jika mereka menerimanya Sistem sandbox dan perizinan pada Android bisa mengurangi dampak kerentanan terhadap bug pada aplikasi, namun ketidaktahuan pengembang dan terbatasnya dokumentasi telah menghasilkan aplikasi yang secara rutin meminta izin yang tidak perlu, sehingga mengurangi efektivitasnya Google menegaskan bahwa keberadaan perangkat perusak berbahaya pada Android sebenarnya sangat jarang dan survei yang dilakukan oleh FSecure menunjukkan bahwa hanya 0,5% dari perangkat perusak Android yang berasal dari Google Play. Google baru-baru ini menggunakan pemindai perangkat perusak Google Bouncer untuk mengawasi dan memindai aplikasi di Google Play.Tindakan ini bertujuan untuk menandai aplikasi yang mencurigakan dan memperingatkan pengguna atas potensi masalah pada aplikasi sebelum mereka mengunduhnya. 5. Versi Android Versi Android diawali dengan dirilisnya Android beta pada bulan November 2007. Versi komersial pertama, Android 1.0, dirilis pada September 2008. Android dikembangkan secara berkelanjutan oleh Google dan Open Handset Alliance (OHA), yang telah merilis sejumlah pembaruan sistem operasi ini sejak dirilisnya versi awal.Sejak April 2009. Masingmasing versi dirilis sesuai urutan alfabet, yaitu sebagai berikut:
10 http://digilib.mercubuana.ac.id/
Tabel 2.1 Versi Android Tanggal Rilis 23 September 2008 09 Februari 2009 30 April 2009 15 September 2009 26 Oktober 2009 03 Desember 2009 12 Januari 2010 20 Mei 2010 18 Januari 2011 22 Januari 2011 21 November 2011 06 Desember 2010 01 Desember 2010 01 Januari 2011 09 Februari 2011 28 April 2011 25 Juli 2011 02 September 2011 21 September 2011 22 Februari 2011 10 Mei 2011 15 Juli 2011 19 Oktober 2011 16 Desember 2011 09 Juli 2012 13 November 2012 24 Juli 2013 31 Oktober 2013 November 12, 2014 March 9, 2015
Versi Android 1.0 (API level 1) Android 1.1 (API level 2) Android 1.5 Cupcake (API level 3) Android 1.6 Donut (API level 4) Android 2.0 Eclair (API level 5) Android 2.0.1 Eclair (API level 6) Android 2.1 Eclair (API level 7) Android 2.2 (API level 8) Android 2.2.1 Froyo (API level 8) Android 2.2.2 Froyo (API level 8) Android 2.2.3 Froyo (API level 8) Android 2.3 Gingerbread (API level 9) Android 2.3.1 Gingerbread (API level 9) Android 2.3.2 Gingerbread (API level 9) Android 2.3.3 Gingerbread (API level 10) Android 2.3.4 Gingerbread (API level 10) Android 2.3.5 Gingerbread (API level 10) Android 2.3.6 Gingerbread (API level 10) Android 2.3.7 Gingerbread (API level 10) Android 3.0 Honeycomb (API level 11) Android 3.1 Honeycomb (API level 12) Android 3.2 Honeycomb (API level 13) Android 4.0 Ice Cream Sandwich (API level 14) Android 4.0.3 Ice Cream Sandwich (API level 15) Android 4.1 Jelly Bean (API level 16) Android 4.2 Jelly Bean (API level 17) Android 4.3 Jelly Bean (API level 18) Android 4.4 KitKat (API level 19) Android 5.0 Lollipop (API level 21) Android 5.1 Lollipop (API level 22)
2.2.2 Google Play (Ingraham, 2014) Google Play merupakan layanan dari Google yang sebelumnya adalah Android Market, dengan layanan ini pengguna bisa mendownload berbagai aplikasi untuk Android, Aplikasi Musik, Games, Buku, dan Video. Google Play dapat diakses dari perangkat Android versi 2.1 ke atas. Pada Google Play kita dapat mencari aplikasi berdasarkan klasifikasi, ataupun langsung menggunakan fasilitas search. Bila kita mengklik sebuah aplikasi, akan
11 http://digilib.mercubuana.ac.id/
muncul deskripsi tentang deskripsi tersebut, rating yang diberikan para penggunanya, dan review atau komentar dari para penggunanya.Bila kita mengklik install, maka aplikasi akan segera diunduh dan proses unduhan akan berlangsung sebagai background process, sehingga pengguna dapat kembali berselancar di Google Play. Aplikasi yang telah diunduh dari Google Play akan tampil dalam menu downloads. Pengguna dapat menghapus aplikasi dari menu ini. Format aplikasi yang digunakan oleh ponsel Android adalah Android Package Files (APK). Aplikasi yang diunduh dari Google Play tidak secara otomatis terinstal manakala telah selesai diunduh. Diperlukan layanan file manager untuk menginstal aplikasi-aplikasi tersebut. Pada Android versi 2.1 kebawah, aplikasi akan terinstal di memori internal perangkat. Namun, pada Android versi 2.2, aplikasi dapat diinstal di memori eksternal, sehingga memori internal perangkat dapat lebih leluasa. 2.2.2.1 Google Play Game (Ingraham, 2014)Google Play Games adalah aplikasi pelengkap dimana pengguna berkompetisi langsung dengan teman serta mengakses leaderboard. Google Play Games bisa melihat game-game apa yang sedang dimainkan orang lain sehingga bias diketahui game apa saja yang sedang trend saat ini.Terdapat pula kolom Find Games yang memberikan saran pada pengguna tentang game yang yang mungkin akan mereka sukai. Google memberikan akses yang cukup luas agar Google Play Games agar konsumen dengan mudah mengaksesnya. Layanan ini bisa dijalankan bahkan oleh device Android Froyo sekalipun serta device apapun yang berjalan di Android seperti Nvidia Shield dan Google TV. Di Google Play Game pengguna dapat menyelesaikan tantangan, memperoleh penghargaan dan poin pengalaman, serta melacak semua hal tersebut dari aplikasi Play Game. 1. Achievements atau Pencapaian Saat bermain game, pengguna dapat memperoleh pencapaian yang menandai prestasi. Semakin banyak bermain, semakin banyak peluang Anda untuk memperoleh pencapaian. Pencapaian juga dapat membantu Anda untuk memperoleh poin pengalaman (XP) di profil Play Game. 2. Quests atau Misi
12 http://digilib.mercubuana.ac.id/
Pada beberapa game, Pengguna dapat memainkan tantangan dengan waktu tertentu untuk menyelesaikannya. Itu disebut sebagai "misi". Beberapa contoh misi: Mengumpulkan emas hingga jumlah tertentu di akhir pekan Memperoleh skor yang tinggi setelah melenyapkan tentara zombie Menemukan 10 kata dengan menggunakan huruf yang ada di game menemukan kata 3. Experience points (XP) atau Poin Pengalaman Saat mendapatkan pencapaian dalam game, pengguna akan memperoleh poin pengalaman (XP) dan level di profil Play Game. Saat bermain game, pengguna akan melihat pemberitahuan bila sudah memperoleh XP atau poin yang cukup untuk menaikkan level profil Play Game. Ketika level naik, akan terlihat bayangan pemberitahuan di perangkat seluler di dekat bagian atas layar, dan di menu Kotak Masuk Play Game. Pengguna dapat melihat XP dan pencapaian individu di game yang dimainkan melalui Play Game di laman profil Play Game. 2.2.3 Pengertian Game (Nilwan, 1998)Game berasal dari bahasa inggris yang memiliki arti "permainan". Permainan dalam hal ini merujuk kepada pengertian "kelincahan intelektual" (intellectual playability). Game juga bisa di artikan sebagai arena keputusan dari aksi pemainnya karena ada target-target yang ingin di capai, kelincahan intelektual pada tingkat tertentu juga merupakan ukuran sejauh mana game itu menarik untuk di mainkan secara maksimal. Bermain game adalah suatu proses "fine tuning" (penyamaan frekuensi) dari logika berfikir manusia dengan logika berfikir aplikasi komputer. Pada saat bersamaan, game juga secara nyata mempertajam daya analisis penggunanya untuk mengelola informasi dan mengambil keputusan yangtepat. Game atau permainan adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga ada yang menang dan ada yang kalah, biasanya dalam konteks tidak serius dengan tujuan refreshing. Pengertian game komputer menurut Agustinus Nilwan dalam bukunya “Pemrograman Animasi dan Game Profesional” , game merupakan permainan komputer yang yang dibuat dengan teknik dan
13 http://digilib.mercubuana.ac.id/
metode animasi. Jika ingin mendalami penggunaan animasi haruslah memahami teknik dan metode animasi, sebab keduanya saling berkaitan. Berdasarkan representasi visualnya, game dapat dibedakan menjadi 2 jenis, yaitu game 2 dimensi (2D) dan 3 dimensi (3D). 1. Game 2D adalah game, yang secara matematis, hanya melibatkan 2 elemen koordinat kartesius, yaitu x dan y, sehingga konsep kamera pada game 2D hanya menentukan gambar mana pada game yang dapat dilihat oleh pemain yaitu : Static View, dimana semua objek berada pada satu bidang dan gerakan karakter utama hanya terbatas pada bidang itu saja. Side Scrolling View, dimana objek-objek dan gambar latar akan terus bergerak ke kanan dan ke kiri sesuai dengan kecepatan gerakan karakter yang dimainkan. 2. Game 3D adalah game yang selain melibatkan elemen x dan y, juga melibatkan elemen z pada perhitungannya, sehingga konsep kamera pada game 3D benar-benar menyerupai konsep kamera pada kehidupan nyata, yaitu selain digeser (seperti pada game 2D), juga dapat diputar dengan sumbu tertentu. Game bertipe ini menggunakan 2 macam tipe pemodelan: 3D object/model ini merupakan model/ object 3 dimensi yang nantinya akan anda jadikan sebagai karakter utama, bangunan, object-object seperti senjata,musuh, permukaan tanah ,pohon, bukit, dan sebagainya. 2D graphic gambar 2D juga berperan dalam membuat game bertipe 3D fungsi gambar 2D antara lain: -
Sebagai texture untuk object.
-
Sebagai latar belakang.
-
Sebagai
meteran
untuk
nyawa,
gambar
untuk
speedometer
dansebagainya. . Single player dalam game merupakan permainan di mana masukan hanya dari satupemainsepanjang sesi permainan . Single player biasanya mengacu pada sebuah permainan yang hanya bisa dimainkan oleh satu orang , sementara mode single player biasanya mengacu pada modus permainan tertentu yang dirancang untuk dimainkan oleh pemain tunggal meskipun permainan juga berisi mode yang dapat dimainkan oleh beberapa pemain secara bersamaan.
14 http://digilib.mercubuana.ac.id/
(Caillois, 2005) Berdasarkan genre atau Jenis dalam games, terdiri dari: 1. Adventure games, mengutamakan masalah eksplorasi dan pemecahan tekateki. Namun terkadang meliputi masalah konseptual, dan tantangan fisik namun sangat jarang. 2. Action games, biasanya meliputi tantangan fisik, teka-teki, balapan, dan beberapa konflik lainnya. Dapat juga meliputi masalah ekonomi sederhana, seperti mengumpulkan benda-benda. 3. Arcade game, dilihat dari permainanya yang biasanya tanpa ujung dan semata-mata untuk mengejar nilai. Unsur cerita tidak terlalu di perhatikan. Game ini lebih bertujuan hanya untuk menghibur di waktu senggang dan gameplaynya sangat sederhana. 4. Real Time Strategy (RTS) adalah game yang melibatkan masalah strategi, taktik, dan logika. 5. Role Playing Games (RPG), kebanyakan game jenis ini melibatkan masalah taktik, logika, dan eksplorasi atau penjelajahan dan juga kadang meliputi teka-teki dan masalah ekonomi karena pada game ini biasanya melibatkan pengumpulan barang-barang rampasan dan menjualnya untuk mendapatkan senjata yang lebih baik. 6. Simulation game, meliputi permainan olahraga dan simulasi masalah kendaraan termasuk kendaraan militer. Games ini kebanyakan melibatkan masalah fisik dan taktik, tetapi tidak masalah eksplorasi, ekonomi dan konseptual. 7. Puzzle games, ditujukan untuk memecahkan suatu masalah tertentu. Hampir semua semua tantangan disini menyangkut masalah logika yang biasanya dibatasi oleh waktu. 8. Slide scrolling games, pada jenis game ini karakter dapat bergerak ke samping diikuti dengan gerakan background. Contoh game tipe seperti ini adalah Super Mario, Metal Slug, dan sebagainya. 2.2.4 Pengertian Client Server (Mulyanto, 2009)Client server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak yaitu pihak client dan pihak server. Dalam model client server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen client dan komponen server. Komponen client
15 http://digilib.mercubuana.ac.id/
juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen klien tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server akan menerima request dari client, dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada client. Client pun menerima informasi pemrosesan data yang dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna.
Gambar 2.1 Model Client Server Server database berisi mesin database, termasuk tabel, prosedur tersimpan, dan trigger (yang juga berisi aturan bisnis). Dalam sistem client server, sebagian besar logika bisnis biasanya diterapkan dalam database. Menurut Agus Mulyanto (2009 : 41) mendefinisikan client-server sebagai arsitektur yang paling banyak digunakan saat ini. Dimana client dapat melakukan proses sendiri, ketika client meminta data, server akan mengirimkan data sesuai yang diminta, kemudian proses akan dilakukan di client. Aplikasi-aplikasi
berbasis
clientserver
memiliki
kekurangan
pada
skalabilitas. Skalabilitas adalah seberapa besar aplikasi bisa menangani suatu kebutuhan yang meningkat. Misalnya, 50 user yang mengakses aplikasi tersebut. Walaupun model clientserver lebih terukur, masih banyak pemrosesan yang terjadi
16 http://digilib.mercubuana.ac.id/
pada server. Dalam model clientserver semakin banyak client yang menggunakan suatu aplikasi, semakin banyak beban pada server. Koneksi database harus dijaga untuk masing-masing client. Koneksi menghabiskan sumber daya server yang berharga dan masing-masing client diterjemahkan ke dalam satu atau beberapa koneksi. 2.2.5 Unity
(Unity, 2010)Unity adalah salah satu game engine yang banyak digunakan. Dengan software ini, membuat game sendiri dapat dilakukan dengan lebih mudah. Unity mensuport pembuatan game dalam berbagai platform, misal Unity Web, Windows, Mac, Android, iOS, XBox, Playstation 3 dan Wii. Pada Unity terdapat beberapa hal penting untuk membuat atau membangun suatu karya, diantaranya yaitu: a.
Project Project merupakan kumpulan dari komponen komponen yang dikemas menjadi satu dalam sebuah software agar bisa di build menjadi sebuah aplikasi. Pada Unity,
project
berisi
identitas
aplikasi yang meliputi nama project, platform building. Kemudian package apa saja yang akan digunakan, satu atau beberapa scene aplikasi, asset, dan lain – lain. b.
Scene Scene dapat disebut juga dengan layar atau tempat untuk membuat layar aplikasi. Scene dapat dianalogikan sebagai level permainan, meskipun tidak selamanya scene
adalah
level
permainan.
Misal, level1 anda letakkan pada scene1, level2 pada scene2, dan seterusnya. Namun scene tidak selamanya berupa level, bisa jadi lebih dari satu level anda letakkan dalam satu scene. Game menu biasanya juga diletakkan pada satu scene tersendiri. Suatu scene dapat berisi beberapa Game Object. Antara satu scene dengan scene lainnya bisa memiliki Game Object yang berbeda. c.
Asset dan Package Asset dan Package adalah mirip, suatu asset dapat terdiri dari beberapa package. Asset atau package adalah sekumpulan object 17 http://digilib.mercubuana.ac.id/
yang disimpan. Object dapat berupa Game Object, terrain, dan lain sebagainya.. Dengan adanya asset/package anda tidak perlu susahsusah membuat
object
lagi
jika
anda
telah
membuatnya
sebelumnya. Anda dapat mengimport lama anda. Untuk memudah dalam pemrogramman, Unity menyediakan editor pengkodean pengembangan
yaitu
Monodevelop.
terpadu
(IDE)
Menedevelop
yang
disediakan
merupakan oleh
unity.
lingkungan IDE
ini
mengkombinasikan operasi teks editor yang sudah ada dengan penambahan fitur untuk debugging dan tugas-tugas manajemen proyek. Dalam pembuatan file apk pada Unity, dibutuhkan sebuah informasi player setting yaitu melingkupi informasi aplikasi, gambar atau logo, publishing setting yang didalamnya terdapat keystore yang merupakan identitas key yang digunakan untuk menjaga keunikan aplikasi pada play store. Segala aktivitas dalam pembuatan file apk terdapat pada menu Build di Unity. File apk akan tergenerate secara otomatis jika syarat diatas sudah dipenuh. 2.2.6 Bahasa Pemrograman C# (Hejlsberg, 2011)C# (C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. Menurut standar ECMA334 C# Language Specification, nama C# terdiri atas sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang menandakan angka # (U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik (U+266F), dan tanda pagar # (U+0023) tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar. Standar European Computer Manufacturer Association (ECMA) mendaftarkan beberapa tujuan desain dari bahasa pemrograman C#, sebagai berikut: Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
18 http://digilib.mercubuana.ac.id/
Bahasa
pemrograman
C#
ditujukan
untuk
digunakan
dalam
mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi. Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++. Dukungan untuk internasionalisasi (multi-language) juga sangat penting. C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem klien-server (hosted system) maupun sistem embedded (embedded system), mulai dari perangkat lunak yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi. Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat dengan menggunakan bahasa pemrograman C dan bahasa rakitan. Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat, pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan Variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan pengumpulan sampah (garbage collection) secara otomatis. C# kadang-kadang dapat disebutkan sebagai bahasa pemrograman yang paling mencerminkan dasar dari Common Language Runtime (CLR) dimana semua program-program .NET berjalan, dan bahasa ini sangat bergantung pada kerangka tersebut sebab ia secara spesifik didisain untuk mengambil manfaat dari fitur-fitur yang tersedia pada CLR. Kompiler bahasa pemrograman C# akan menerjemahkan kode-kode C# kita menjadi MSIL (Microsoft Intemediate Language) yang sama seperti saat menulis kode menggunakan Visual Basic.Net, Visual C++.Net, dan sebagainya, sebelum kemudian menerjemahkannya kembali menjadi berkas-berkas berekstensi .exe atau .dll . Multifile Assembly dalam hal ini merupakan proses kompilasi beberapa berkas .NET yang masing-masing disebut sebagai module yang juga berisi berkas assembly manifest yang didalamnya terdapat instruksi-instruksi CIL (Common Intermediate Language) dan aneka Metadata terkait. Kode bahasa C# tidak secara langsung diterjemahkan kedalam bahasa mesin. Kompiler bahasa
19 http://digilib.mercubuana.ac.id/
pemrograman C# mengkonversi kode C# menjadi berkas MSIL yang dinamakan asembly. Berkas MSIL dapat dibuat menggunakan semua bahasa pemrograman yang dikembangkan diatas CLR. Berkas MSIL hadir dalam bentuk berkas berekstensi .exe serta .dll, tetapi berjalan langsung diatas sistem operasi Windows, mereka dieksekusi oleh CRL. CLR mengkompilasi program MSIL ke kode mesin saat diperlukan. Proses ini dinamakan kompilasi JIT (Just In Time). Kode mesin inilah yang kemudian dieksekusi secara langsung oleh komputer. Dengan membuat kode yang bersifat netral terhadap perangkat keras komputer hingga saat terakhir, maka keamanan akan meningkat. Dalam hal ini proses ini secara umum tersembunyi dari pandangan pengguna. Dengan kata lain, program yang ditulis menggunakan bahasa C# dikompilasi, dieksekusi, serta didistribusikan dengan cara yang sama seperti program yang ditulis menggunakan bahasa pemrograman lainnya. Sepanjang framework .NET terinstalasi di komputer yang bersangkutan, program C# akan berjalan dengan baik seperti aplikasi yang lain. Hal ini mirip dengan JRE (Java Runtime Environment) yang memungkinkan program bahasa Java berjalan di sembarang komputer. 2.2.7 XAMPP (Riyanto, 2011) XAMPP merupakan paket PHP dan MySQL berbasis opensource yang digunakan sebagai tool pembantu pengembangan aplikasi berbasis PHP. XAMPP mengkombinasikan beberapa paket perangkat lunak berbeda ke dalam satu paket.XAMPP ini merupakan projectnon-profit yang dikembangkan oleh ApacheFriends yang didirikan oleh Kai ‘Oswalad’ Seidler dan Kay Vogelgesang pada tahun 2002. File XAMPP bisa didapatkan secara gratis di situs http://apachefriends.org.
20 http://digilib.mercubuana.ac.id/
Gambar 2.2 Control Panel XAMPP Dalam pengerjaan tugas akhir ini, penulis menggunakan XAMPP versi 3.1.0.Software XAMPP versi ini terdiri atas : 1. Apache Apache menggunakannya,
bersifat
opensource,
mengambil
dan
artinya bahkan
setiap
orang
boleh
mengubah
kode
programnya.Tugas utama apache adalah menghasilkan halaman web yang benar kepada client, berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. 2. PhpMyAdmin Banyak sekali perangkat lunak yang dapat dimanfaatkan untuk mengelola basis data dalam MySQL, salah satunya adalah phpMyAdmin. Dengan phpMyAdmin, kita dapat membuat database, table, mengisi data,view dan komponen basis data lainnya dengan mudah tanpa harus menghafal perintahnya. 3. MySQL MySQL dikembangkan oleh sebuah perusahaan Swedia bernama MySQL AB yang pada saat itu bernama TcX Data Konsult AB sekitar tahun 1994-1995.Awalnya TcX membuat MySQL dengan tujuan mengembangkan aplikasi web untuk client.Namun saat ini MySQL diakuisisi oleh OracleCorp.
21 http://digilib.mercubuana.ac.id/
MySQL adalah salah satu jenis databaseserver yang sangat terkenal dan banyak digunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber dan pengelolaan datanya. MySQL menggunakan SQL sebagai bahasa dasar untuk mengakses database-nya sehingga mudah untuk digunakan, kinerja query cepat dan mencukupi untuk kebutuhan database perusahaan-perusahaan skala menengah-kecil. MySQL bersifat opensource dan free pada berbagai platform (kecuali pada Windows, yang bersifat shareware). MySQL didistribusikan dengan lisensi opensource GPL (GeneralPublicLicense) mulai versi 3.23, pada bulan Juni 2000. MySQL merupakan database yang pertama kali didukung oleh bahasa pemrograman script untuk internet (PHP dan Perl).MySQL lebih sering digunakan untuk membangun aplikasi berbasis web. 2.2.8 Basis Data (Fathansyah, 2012)Basis data terdiri atas 2 kata, yaitu Basis dan Data.Basis
dapat
diartikan
sebagai
markas
atau
gudang,
tempat
bersarang/berkumpul.Sedangkan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan sebagainya. Dalam pengertian satu kesatuan istilah, basis data (Database) dapat didefinisikan dalam beberapa sudut pandang berikut : 1. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 2. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. 3. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 2.2.8.1 Sistem Basis Data (Fathansyah, 2012)Sistem adalah sebuah tatanan yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersamasama bertujuan untuk memenuhi suatu proses tertentu. Sistem Basis Data
22 http://digilib.mercubuana.ac.id/
merupakan sistem yang terdiri atas kumpulan tabel data yang saling berhubungan dan sekumpulan program (yang biasa disebut DBMS/Data Base Management Sistem) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi table-tabel data tersebut. Basis Data memiliki 2 bahasa yang dipilah dalam dua bentuk, yaitu : 1. Data Definition Language (DDL) Struktur basis data yang menggambarkan skema basis data secara keseluruhan
dan
didesain
dengan
bahasa
khusus
yang
disebut
DataDefinitionLanguage (DDL).Dengan bahasa ini dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel, dan sebagainya. 2. Data Manipulation Language (DML) Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa : a. Penambahan data baru ke suatu basis data b. Penghapusan data dari suatu basis data c. Pengubahan data dari suatu basis data Pada level fisik, kita harus mendefinisikan algoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi, yang dipentingkan bukan hanya efisiensi akses, tetapi juga efesiensi
interaksi
manusia
(pemakai)
dengan
system
(kemudahan
permintaan akses) Data Manipuation Language (DML) merupakan bahasa yang bertuuan memudahkan pemakaian untuk mengakses data sebagaimana direpresentasikan oleh model dara. Ada dua jenis DML, yaitu : a. Procedural, yang mensyaratkan agar pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya. b. Nonprocedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya. 2.2.9 Unified Modeling Language (Pressman, 2010)UnifiedModellingLanguage (UML) adalah sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak.Dengan menggunakan UML kita
23 http://digilib.mercubuana.ac.id/
dapat membuat model untuk semua jenis aplikasi perangkat lunak dimana aplikasi tersebut dapat berjalan pada perangkat keras, sistem operasi dan jaringan apapun, serta ditulis daam bahasa pemrograman apapun. UML mendefinisikan notasi dan syntax/semantic. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram perangkat lunak sedangkan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. UML dimulai secara resmi pada bulan Oktober 1994, Booch, Rumbaugh dan Jacobson merupakan tiga tokoh yang metodeloginya paling banyak dipakai, mempelopori organisasi yang bertujuan untuk menyatukan metodelogi-metodelogi berorientasi objek.Organisasi tersebut dinamakan OMG (Object Modeling Group).Pada tahun 1995 OMG merealisasikan draf pertama dari UML versi 0.8 dan terus melakukan perkembangan hingga UML menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek. Gambaran dari UML dapat dijabarkan sebagai berikut : 1. UML sebagai Bahasa Pemodelan Memiliki pembendaharaan kata dan cara untuk mempresentasikan secara fokus pada konseptual dan fisik dari suatu sistem. 2. UML sebagai bahasa untuk menggambarkan sistem UML menggambarkan model yang dapat dimengerti dan dipresentasikan ke dalam model tekstual bahasa pemrograman. 3. UML sebagai bahasa untuk menspesifikasikan sistem UML menunjukkan semau spesifikasi keputusan analisis, desain dan implementasi yang penting yang harus dibuat pada saat pengembangan dan penyebaran dari sistem software intensif 4. UML sebagai bahasa membangun system Model UML dapat dikoneksikan secara langsung pada bahasa pemrograman visual. 5. UML sebagai bahasa untuk pendokumentasian system UML menunjukan dokumentasi dari arsitektur sistem dan detail dari semuanya. UML hanya memberikan bahasa untuk memperlihatkan permintaan dan untuk tes. Penggunaan UML bertujuan untuk memodelkan suatu sistem (bukan hanya perangkat lunak) yang menggunakan konsep berorientasi objek serta
24 http://digilib.mercubuana.ac.id/
menciptakan suatu bahasa pemodelan yang dapat digunakan baik oleh manusia maupun mesin. UML dapat mendefinisikan diagram-diagram sebagai berikut : 1. Use Case Diagram 2. Class Diagram 3. Statechart Diagram 4. Activity Diagram 5. Sequence Diagram 6. Collaboration Diagram 7. Componen Diagram 8. Deployment Diagram Diagram-diagram tersebut untuk selanjutnya akan digunakan penulis sebagai pemodelan aplikasi pada tugas akhir ini. Diagram yang akanpenulis gunakan yakni Use Case Diagram,Activity Diagramdan Sequence Diagram. 2.2.9.1 Use Case Diagram (Pressman, 2010)Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang ditekankan adalah “apa” yang diperbuat sistem dan bukan “bagaimana”. Sebuah usecase merepresentasikan sebuah interaksi antara actor dengan sistem. Contohnya login ke sistem, membuat sebuah daftar belanja dan sebagainya. Dengan memanfaatkan pemodelan UseCaseDiagram, kita dapat menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan client dan merancang testcase untuk semua feature yang ada pada sistem. Komponen pembentuk use case diagramadalah : 1. Sebuah/seorang aktor adalah entitas manusia/mesin yang berinteraksi dengan syistem untuk melakukan pekerjaan-pekerjaaan tertentu. 2. UseCase adalah dialog antara actor dengan sistem yang akan menggambarkan fungsi yang diberikan oleh sistem. 3. UseCaseRelationship adalah suatu hubungan, baik itu antara actor dan usecase atau usecase dan usecase. 4. Association/Directed Association, yaitu hubungan statis antar elemen. Umumnya menggambarkan elemen yang memiliki atribut berupa elemen lain. 5. Generalization/Pewarisan, merupakan hubungan hirarki antar elemen. Elemen dapat diturunkan dari elemen lain dan mewarisi semua atribut dan
25 http://digilib.mercubuana.ac.id/
metode elemen asalnya dan menambahkan fungsionalitas baru, sehingga disebut anak dari elemen yang diwarisinya.
Gambar 2.3 Notasi Use Case Diagram 2.2.9.2 Class Diagram (Pressman, 2010)Class Diagram merupakan salah satu diagram utama dari Unified Modelling Language (UML) untuk menggambarkan kelas atau blueprint objek pada sebuah sistem. Pada kelas diagram juga digambarkan bagaimana inetraksi hubungan antar kelas dalam sebuah konstruksi piranti perangkat lunak seperti hubungan asosiasi, agregasi, komposisi dan inheritance. Kelas (Class) adalah sebuah spesifikasi yang jika diinisialisasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Kelas menggambarkan keadaan (atribut/property) suatu sistem sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut. Kelas memiliki tiga area pokok, yakni nama (stereotype), atribut dan metode atau operasi. Atribut dan metode dapat memiliki salah satu sifat berikut ini: 1. Private, tidak dapat dipanggul dari luar kelas yang bersangkutan.
26 http://digilib.mercubuana.ac.id/
2. Protected, hanya dapat dipanggil oleh kelas yang bersangkutan dan anakanak yang mewarisinya. 3. Public, dapat dipanggil oleh siapa saja. Kelas dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metode. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class.
Gambar 2.4 Class Diagram 2.2.9.3 Activity Diagram (Pressman, 2010)Activity Diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir decision
berawal,
yang
mungkin
terjadi
dan
bagaimana
mereka
berakhir.Activitydiagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activitydiagram tidak menggambarkan sifat internal dari sebuah sistem dan interaksi antara beberapa subsistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.
Activitydiagram
berupa
flowchart
yang
digunakan
untuk
memperlihatkan aliran kerja dari sistem. Notasi yang digunakan dalam activitydiagram adalah sebagai berikut : 1. Activity Notasi yang menggambarkan pelaksanaan dari beberapa proses dalam aliran pekerjaan. 2. Transition Notasi yang digunakan untuk memperlihatkan jalan aliran control dari activity ke activity. 3. Decision Notasi yang menandakan kontrol cabang aliran berdasarkan decision point
27 http://digilib.mercubuana.ac.id/
4. Synchronization bars Aliran kerja notasi ini menandakan bahwa beberapa aktivitas dapat diselesaikan secara bersamaan (paralel).
Gambar 2.5 Notasi Activity Diagram 2.2.9.4 Sequence Diagram (Pressman, 2010)Sequence Diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Diagram sequence digunakan untuk menggambarkan arus pekerjaan, pesan yang disampaikan bagaimana elemen-elemen di dalamnya bekerja sama dari waktu ke waktu untuk mencapai suatu hasil. Sequence Diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas
28 http://digilib.mercubuana.ac.id/
tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing urutan elemen diatur di dalam suatu urutan horizontal dengan pesan yang disampaikan dibelakang dan di depan diantara elemenelemen. Seorang elemen aktor yang digunakan untuk menghadirkan pemakai yang memulai alur peristiwa/kejadian. Elemen-elemen yang ditiru, seperti boundary, control dan entity, digunakan untuk menggambarkan layar, pengontrol, dan materi database, secara berturut-turut. Masing-masing elemen dihubungkan dengan garis-garis batang disebut lifeline vertikal, di mana jika unsur itu berpotensi mengambil bagian dalam interaksi itu. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, messageakan dipetakan menjadi operasi/metode dari sebuah class. Activationbar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Dalam sequence diagram terdapat 3 relasi, yaitu : 1. Create Relasi ini digunakan untuk melakukan inisialisasi suatu objek. 2. Synchronous Relasi ini digunakan untuk memanggil operasi atau method yang dimiliki oleh suatu objek.Synchronous mengharuskan kita menyelasikan 1 proses baru kemudian memanggil proses berikutnya. 3. Aysnchronous Relasi ini digunakan untuk memanggil operasi atau model yang dimiliki oleh suatu objek.Asynchronous memberikan kita fasilitas untuk menjalankan proses lain ketika proses sebelumnya belum selesai. Berikut notasi yang digunakan dalam membuat diagram sequence :
29 http://digilib.mercubuana.ac.id/
Gambar 2.6 Notasi Sequence Diagram
30 http://digilib.mercubuana.ac.id/