Friday, January 25, 2013

RGSS : Part 2 - Variable

Definition
Apa itu variable? Kalo kamu masih SMP atau SMA, kamu seharusnya masih ingat tentang pelajaran aljabar. Kalo udah kuliah atau kerja, wajar kalo udah lupa.

Kalo di Aljabar, Variable itu kan huruf yang berfungsi sebagai pengganti nilai dari suatu angka.
Contoh :
3x = 6
x = 6 : 3
x = 2
Nah, kalo di RGSS, mirip-mirip juga. Tapi kalo di RGSS, Variabel tidak hanya berfungsi sebagai pengganti atau subtitusi integer/angka, tapi bisa juga sebuah array, sebuah string atau text, dll. (Saya belum pernah coba sih. Tapi mungkin variable bisa mengandung 1 method atau bahkan 1 class.)

Kalo diibaratkan di dunia nyata, variabel itu mirip sama kayak nama seseorang. Kalo kita panggil Ani, orangnya itu akan nyahut dan balik manggil kita. Variable juga bisa juga dibilang kayak keluarga. Misalnya ada orang nyebut seluruh keluarga Hadi (Sama saja seperti mendeklarasikan variable.) harus ikut. Berarti seluruh orang di keluarga Hadi harus ikut. Bisa kita lihat seluruh keluarga Hadi berfungsi sebagai variable yang membungkus orang-orang di keluarga Hadi.

Aneh kan kalo setiap orang di keluarga Hadi dipanggil namanya? Kalo 1000 orang gimana?

Type
Variable itu bisa dibedakan jenis-jenisnya dilihat dari penamaannya.

A. Local Variable
Variable yang namanya dimulai dengan huruf kecil/lowercase (a-z) atau underscore (_). Local Variable memiliki cakupan atau scope yang paling kecil dari antara variable yang lainnya, yaitu tempat ia didefine.
x = 1
B. Instance Variable
Variable yang namanya dimulai dengan karakter "@". Instance Variable cakupan lebih luas yaitu dalam sebuah object.
class My_Class
  attr_accessor    :boo
  def initialize
    @boo = nil
  end
end
C. Class Variable
Variable yang namanya dimulai dengan karakter "@@". Tidak seperti instance variable, Class Variable di 'shared' atau istilahnya dipakai bersama-sama di antara setiap instance dari sebuah class.  Menurut om LiTTleDRAgo, class variable adalah variable yang bisa di define diluar dari sebuah method.
@@bgm_fadein_thread = nil
D. Global Variable
Variable yang namanya dimulai dengan karakter "$". Di antara variable yang lain, variable inilah yang wilayah cakupannya paling luas, dari mana saja asalkan dalam cakupan program saat runtime.
$variable = 1
E. Constants
Variable yang namanya diawali dengan dengan uppercase atau huruf besar. Constant dapat di re-assigned nilainya, tapi dengan melakukan itu dapat me nyebabkan peringatan. Setiap Class adalah Constants.
class Scene_Main
  class Window_Cool
    def initialize
      super(0,0,300,200)
    end
  end
end
Usage
Untuk memakai/memanggil suatu variable, kita harus mendefine nilai variable itu.
Contoh :
X = 1
@blink = nil
$game_method.x = 1
Variable harus dipakai secara efektif agar tidak menyebabkan gangguan-gangguan yang tidak diinginkan.

Penggunaan global variable yang terutama harus diperhatikan. Memang, sekali kita mendefine global variable, kita bisa memanggilnya dari mana pun. Tapi hal ini sangat mengurangi memori dan proses system RPG Maker. Oleh karena itu, penggunaannya harus diperhatikan dan dilihat dari perlu atau tidaknya.

Naming
Selain itu, dalam penamaan variable, gunakanlah nama-nama yang unik agar menghindari pemakaian nama yang sama oleh script lain. Ini karena nilai variable sangat dinamis dan dapat dengan mudah diubah.

Kalau ada 2 variable dengan nama yang sama, bisa dipastikan antara systemnya error atau gak crash. (Tapi kemungkinan juga, kalau variablenya itu hanya sebatas koordinat, mata uang, dsb. bisa tidak nge-crash tapi nilainya keubah dan memberikan hasil yang beda.)

Berikut tips untuk membuat variable yang unik :

A. Gunakan username kamu di depan namanya.
life_window_x = 10
life_window_y =10
B. Gunakan kata-kata trademarkmu di depan namanya.
cool_window_x = 12
cool_window_y = 100
C. Gunakan singkatan.
lw_x = 0
lw_y = 0

0 comments: