Monday, October 12, 2020

Belajar membuat aplikasi Android, kalian perlu mengenal istilah-istilah penting bahasa Java (API, package, class, object, variabel, constructor, dan method)

Kalian sedang bingung karena ingin membuat aplikasi atau game Android tapi tidak punya PC atau Laptop? Sekarang sudah nggak zamannya lagi terus-terusan bingung dan susah. Kita bisa membuat aplikasi atau game di hp dengan aplikasi Android IDE (AIDE) atau Java N-IDE. Akan tetapi karena Java N-IDE benar-benar gratis 99%, kita lebih baik belajar Android dan Java menggunakan aplikasi ini. Nanti jika kalian sudah lumayan lancar Android dan Java, kalian bisa membeli AIDE premium untuk membuat game libgdx atau game Android dengan fitur yang lebih uptodate. Kalian sebenarnya juga bisa membuat game Android sederhana melalui website secara online, atau juga menggunakan aplikasi pembuat game instant tanpa harus belajar coding. Kekurangannya yaitu kalian akan bingung jika aplikasi yang kalian buat punya bugs atau error atau mungkin rawan dibanned karena dianggap spam. Lebih baik kita fokus belajar Android di hp yang bisa dilakukan dimana saja kalian berada, tidak mungkin kemana-mana kalian membawa Laptop yang berat dan besar untuk belajar Android.

Membuat aplikasi Android di hp ataupun di PC dengan Android Studio, kita perlu sedikit banyak belajar Java dasar dan OOP. Hal ini sangat penting karena game atau Aplikasi Android ditulis dengan bahasa pemrograman Java (atau Kotlin). Bahasa Java sudah sangat terkenal selama bertahun-tahun. Kalian juga bisa menggunakan bahasa C# (si: sya:rp) jika ingin bikin game dengan Unity3D Game Engine. Game sederhana yang dibuat dengan Unity setahu saya ukurannya jauh lebih besar jika dibandingkan dengan game Android sederhana dengan bahasa Java. Game simple tapi ukurannya terlalu besar kadang membuat kita malas untuk mendownload apalagi yang punya kuota internet pas-pasan, oleh karena itu saya lebih suka dengan bahasa Java yang membuat ukuran game menjadi kecil dalam hitungan kb atau beberapa mb.

Kalian bisa belajar Java dari nol di internet, baik di website indonesia atau website berbahasa Inggris yang tentu sangat banyak bertebaran. Akan tetapi, kebanyakan atau malah semua website tersebut mengajarkan tutorial Java di PC atau Laptop atau hanya sekedar teori tanpa harus praktek. Teori tanpa praktek tentu membuat kita bingung ketika terjun ke realita di lapangan. Seperti juga belajar Android atau membuat aplikasi Android yang bisa dilakukan di smartphone alias Hape, belajar bahasa pemrograman Java juga bisa kita lakukan di Hp.

Ngomong soal bahasa pemrograman Java, tentu kita pernah mendengar istilah Java API. Biar lebih mudah dipahami, kita anggap saja API itu seperti Kamus Besar Bahasa Indonesia. Di dalam bahasa manusia, misalnya bahasa Indonesia, kita harus tahu tata bahasa dan kosakata. Tata bahasa berisi aturan cara menyusun kata dan tanda baca agar menjadi kalimat yang berguna dan bisa dipahami. Daftar referensi kosakata tersebut disimpan di Kamus. Dalam bahasa pemrograman Java juga ada "Kamus" yang kita sebut sebagai API (Application Programming Interface). API ini berisi "kosakata" atau disebut sebagai "class" yang digunakan untuk membuat "object". Jadi, kalian perlu mempelajari aturan atau tata bahasa Java dan syntaknya untuk merangkai objek menjadi sebuah program atau aplikasi atau game Java yang siap dimainkan. Android juga punya API dan aturan dalam membuat aplikasi. Karena Android memakai bahasa Java, API di Android juga berisi banyak "kosakata" atau class dari Java API.

Sebelum memulai membuat program (aplikasi atau game) Android, kalian perlu mengenal beberapa istilah dalam bahasa pemrograman Java yang tentu dipakai di Android. Sebelumnya saya menyebut istilah "API", "class", dan "object". Bagi yang pernah belajar bahasa pemrograman, istilah-istilah tersebut tentu sudah tidak asing lagi. Kalian yang belum pernah belajar bahasa pemrograman tidak perlu putus asa. Kalian bisa langsung belajar dasar-dasar Android, sambil sedikit-sedikit mempelajari bahasa Java. Memang akan menjadi lebih mudah belajar Android jika kita sudah belajar Java. Di sini saya akan sedikit memberi gambaran tentang istilah-istilah tadi (karena saya juga baru tahu sedikit).

Membuat aplikasi atau game Android itu intinya memahami aturan-aturan atau "tata bahasa" dan mengenal Android API yang berisi class atau "kosakata". Jadi, API adalah sekumpulan komponen (class, interface, dll) yang siap kita rangkai menjadi sebuah aplikasi atau game. Android API bisa berisi ribuan class atau "kosakata", misal class Context, Activity, Intent, Button, dll. Apakah kita perlu mempelajari ribuan class atau kosakata itu untuk membuat aplikasi? Tentu tidak perlu, kita cukup mempelajari yang kita perlukan dulu, baru kemudian mempelajari yang lainnya sesuai keperluan.

Class (terjemahkan: kelas atau klas) adalah bahan untuk membuat objek. Misalnya, class Button (Button.class) digunakan untuk membuat tombol di aplikasi atau game yang kalian buat. Jadi, tombol di aplikasi atau game adalah "objek" yang dibuat dari class "Button". Class Activity digunakan untuk membuat objek Activity yang menampilkan layar di aplikasi atau game kalian. Class WebView digunakan untuk membuat objek webview untuk membuka halaman web jika kita membuat aplikasi untuk membuka website atau membaca file html. Class Context adalah induk dari semua class di Android, yang menurunkan sifat ke ribuan class di bawahnya. Misal kita ingin membuat game Alien Invader, apakah ada class Alien di Android API? Tentu saja tidak ada class Alien, Pesawat, Rumah, Batu, Senapan, dll di Android API. Android API hanya berisi class yang umum digunakan di pemrograman, seperti: Activity, Button, View, SurfaceView, Canvas, Color, WebView, TextView, Animation, Layout, Bluetooth, Image, dan ribuan class lainnya. Jika kita ingin membuat game yang ada objek Alien, Pesawat, Burung, Ular, dll, kita perlu menbuat class tersebut sendiri dengan membuat file Java (Alien.java, Burung.java, Ular.java, dll). Di dalam file java tersebut kita memanggil class-class yang kita perlukan dari Android API, misal class Bitmap untuk memuat gambar Alien yang akan kita gunakan untuk game.

Apa code yang harus kita tulis ketika membuat class sendiri (misal, Alien.java)? Kodenya tentu tergantung simple atau rumitnya game yang kalian buat. Semakin rumit sebuah game, code yang kita tulis semakin banyak (mungkin bisa ratusan baris). Jika gamenya sederhana, kita bisa menulis beberapa puluh baris kode (code ditulis dengan bahasa Java). Secara umum ada beberapa hal yang perlu kita tulis untuk membuat class atau file Java baru (misal: Alien.java). Hal tersebut sebenarnya ada di pelajaran bahasa Java, saya tidak akan menjelaskan panjang lebar di sini. Kita misalkan saja class yang kita buat adalah "Alien.java". Kode yang perlu kita tulis yaitu: package declaration, import declaration, class definition, variable declaration, constructor dan methods declaration (setters and getters). Apa itu maksudnya? Kalian yang pernah belajar bahasa Java pasti tahu.

Contoh isi code di file Alien.java (cuma contoh):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.contoh.alieninvader;

import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap;

public class Alien{
  Bitmap gambarAlien;
  int x;
  int y;

  public Alien(Context c, int layarX, int layarY){ gambarAlien=BitmapFactory.decodeResource((c.getResources(), R.drawable.gmbralien); }

  public void update(){ //di sini bisa diisi dengan AI biar aliennya cerdas 
// atau digunakan untuk mengupdate variabel atau posisi alien, dll
   }

  public void setX(int x){ //kode untuk memodifikasi posisi alien di sumbu X
     this.x=x; }
  
  public void setY(int y){ //kode untuk mengubah posisi alien di sumbu Y
     this.y=y; }

  public int getX(){ //mengambil data di variabel x yg berisi posisi alien
     return x; }

  public int getY(){ //mengambil posisi di y yg sudah diupdate
     return y; }

  public Bitmap getBitmap(){ //mengambil gambar Alien untuk ditampilkan ke layar 
     return gambarAlien; }
  }

Seperti yang terlihat di atas, baris code "package com.contoh.alieninvader;" adalah package declaration. Ini adalah code yang menunjukkan "folder" atau tempat penyimpanan file-file Java dan lainnya dari aplikasi kalian. Package juga merupakan tempat menyimpan data aplikasi atau game di memori internal hp atau memori external ketika game diinstal, sehingga nama Package harus unik (berbeda dari nama package developer game lain). Oleh karena itu nama package dianjurkan memakai nama website kalian yang dibalik (karena nama website pasti unik alias tidak sama satu dengan yang lain). Jika tidak punya website, kita bisa menamai package sesuai selera dengan mengikuti aturan. Baris code "package..." tersebut ditulis di bagian paling atas sebuah file Java (tidak boleh dipindah ke tengah atau bawah).

Import declaration adalah baris code yang menunjukkan referensi atau alamat dari class-class yang kita gunakan di dalam file "Alien.java" tersebut. Misalnya kita memakai class Bitmap untuk mengambil gambar Alien, kita harus menulis referensinya dengan memakai kata kunci "import" diikuti alamat dari class Bitmap tersebut di Android API yaitu: "android.graphics.Bitmap;". Biasanya ketika kita menulis nama class (misal, Bitmap) akan muncul popup di Android IDE atau di Java N-IDE yaitu "import android.graphics.Bitmap;". Jika tidak muncul, kita harus menulis sendiri.

Class Definition adalah baris code yang menunjukkan nama class yang kita buat lengkap dengan class induk (jika ada), diikuti tubuh class (enaknya diterjemahkan 'kelas' atau 'klas' menurut kalian?). Tubuh class diapit tanda kurung kurawal (curly braces). Di dalam tubuh class itulah kita menulis code-code Java untuk menjalankan game atau aplikasi. Secara umum code yang ada di dalam tubuh class yaitu: variable declaration (sebut saja variabel), constructor (sebut saja konstruktor), dan method declaration (sebut saja metode).

Variable declaration (variabel) adalah baris code yang kita gunakan untuk menyimpan data game. Data game atau aplikasi yang kita simpan di variabel ada dua jenis yaitu: data referensi atau objek dan data primitif (misal: angka). Di Android API ada ribuan class yang kita gunakan untuk membuat objek. Cara membuat variabel yaitu dengan menyebut nama class (data type) diikuti spasi kemudian nama variabel atau tempat menyimpan objek tersebut. Misal, "Bitmap gambarAlien;" atau "Bitmap gambarPesawat;" atau "int kecepatanPesawat;".

Constructor adalah baris code (mirip metode) yang kita panggil dengan keyword "new" ketika kita akan membuat objek. Class bisa memiliki banyak konstruktor dengan parameter (input) yang berbeda-beda. Ketika membuat objek, kita memilih konstruktor yang sesuai kebutuhan. Dalam bahasa Java, semua class (entah berapa ribu jumlah class) pasti memiliki konstruktor, minimal konstruktor kosong tanpa parameter. Contoh constructor dari class "Alien":
public Alien(Context c, int layarX, int layarY){ tubuh konstruktor } Ketika kita membuat objek Alien dari class Alien tersebut, kita membuat variabel untuk menyimpan objek Alien kemudian memanggil konstruktornya dengan kata kunci "new" diikuti konstruktor tersebut (jika konstruktornya punya parameter harus diisi). Contoh: Alien alienKecil=new Alien(this, 400, 240); Perhatikan code di atas. Alien adalah nama class (bahan untuk membuat objek Alien), alienKecil adalah nama variabel untuk menyimpan referensi objek tersebut, new adalah kata kunci untuk membuat objek, this di sini adalah kata kunci Java untuk mengganti 'c' dari "Context c", angka 400 adalah data integer (int) yang menunjukkan posisi awal alien pada sumbu y di layar hp kalian dan angka 240 adalah data integer (int) yang menunjukkan posisi awal alien pada sumbu x di layar hp kalian. Jika resolusi layar hp kalian 480x800 pixel, berarti posisi aliennya ada di tengah layar. Kalian bisa mengganti posisinya sesuai selera.

Method declaration (kita sebut saja metode) adalah baris code yang berisi metode (function, di bahasa lain) beserta isinya (implementasinya). Di satu file atau class bisa terdapat puluhan metode tergantung keperluan. Metode berfungsi untuk menunjukkan isi variabel, mengubah, memodifikasi atau berbagi isi variabel dengan objek lain sehingga umumnya metode berupa kata kerja atau kata kerja diikuti kata benda atau kata sifat, dll. Istilah "setters" adalah metode yang kita buat untuk mengubah variabel, misal mengubah posisi Alien di layar. Biasanya setters diawali dengan kata kerja "set". Istilah "getters" adalah metode untuk berbagi atau memanggil data yang tersimpan di variable, misal kita memanggil posisi alien pada sumbu xy untuk ditampilkan ke layar. Biasanya getters diawali kata kerja "get". Tetapi, kita bisa menggunakan kata kerja dengan bahasa kita, misal: ubah, ambil. contoh: public void setX(){ x=240; } atau public void ubahPosisiAlienSbX(){ x=240; } public int getX(){ return x; } atau public int ambilPosisiAlienSbX(){ return x; }

Jika kita membuat objek game yang bisa berpikir (misal: orang, alien, hewan, dll), kita bisa menambahkan metode baru yang berisi "otak" atau AI (Artificial Intelligence). Semakin rumit code AI yang kita tulis, semakin pintar objek alien tersebut. Misalnya, alien tersebut bisa mendeteksi kedatangan orang atau alien tersebut bisa menembak player jika player mendekat. Untuk membuat code AI atau "otak" tentu kita perlu berpikir banyak, apalagi untuk membuat objek yang lebih pintar dan canggih seperti di game-game action yang biasa kalian mainkan.

Demikianlah penjelasan singkat tentang beberapa istilah penting yang harus diketahui oleh para pelajar Android, terutama pemula yang belum pernah belajar Java. Tentu saja masih banyak istilah dalam bahasa Java maupun di Android yang tidak saya tulis di sini. Untuk mengetahuinya, kalian perlu terus belajar Android (dianjurkan sambil belajar Java dasar dan fitur OOP: object-oriented programming). Semoga bisa dipahami apa yang saya tulis. Tidak harus paham dalam sekali baca, kadang kita perlu berkali-kali membaca biar paham. Bahkan kadang kita harus belajar tutorial Android sampai selesai baru kemudian kita sedikit memahami pelajaran yang awal.

Setelah ini kalian perlu mengenal komponen-komponen penting dalam membuat aplikasi atau game Android. Semoga saya bisa menulis ringkasannya karena penjelasan di developer.android.com sangat panjang sekali. Pembahasan komponen Android saja bisa sampai puluhan halaman html, yang tiap halaman kadang tidak selesai dibaca setengah jam dan belum tentu kalian paham meskipun kalian kalian jago bahasa Inggris. Belum lagi pembahasan tentang UI, Animation dan Graphics, dll. Jika kalian tidak kenal bahasa pemrograman atau belum pernah memakai Android IDE, Eclipse, atau Android Studio tapi ingin belajar sendiri di developer.android.com, mungkin perlu waktu setahun atau malah pusing dan berhenti belajar. Thanks for reading

No comments:

Post a Comment

Silahkan kalian berkomentar dengan sopan, komentar kalian berguna untuk kemajuan blog ini