RPGMakerID
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Komunitas RPG Maker Indonesia
 
IndeksIndeks  Latest imagesLatest images  PencarianPencarian  PendaftaranPendaftaran  Login  
Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.

 

 [ASK] belajar OOP

Go down 
3 posters
PengirimMessage
Roger
Novice
Novice
Roger


Level 5
Posts : 191
Thanked : 3
Engine : RMVX
Skill : Very Beginner
Type : Scripter

[ASK] belajar OOP Empty
PostSubyek: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-06, 23:48

para scripter senior RMID bisa minta tolong jelasin fungsi setter atau getter dalam OOP?? :sembah:
sama cara kerjanya jga
saya punya bukunya tapi penjelasannya membingungkan
Tolong dibantu (sekalian contonya di RM script)
Kembali Ke Atas Go down
hart
Senior
Senior
avatar


Level 5
Posts : 805
Thanked : 38
Engine : Other
Skill : Very Beginner
Type : Developer

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 13:59

anda tentu sudah tau setiap object bisa memiliki property nya sendiri kan?

misalnya: object manusia memiliki properti nama, umur, tinggi, berat, dll.

nah, setter itu adalah method atau cara untuk mengakses / mengeset properti tersebut, sementara getter itu untuk mendapatkan nilai property tersebut.

Contoh dalam bahasa C++:
Code:

class Manusia
{
  private:
    std::string nama;
    int umur;
    int tinggi;
    int berat;

  public:
    void set_nama(std::string nama) // ini dia yang dinamakan setter untuk properti nama
    {
      this->nama = nama;
    }
   
    std::string get_nama() // ini dia yang dinamakan getter untuk properti nama
    {
      return this->nama;
    }
    // untuk getter dan setter property yang lain tinggal dibuat aja method yang kira2 sama seperti di atas.
};

kalau dalam bahasa ruby, setter dan getter bisa dibuat otomatis dengan perintah:
attr_accessor :nama_property (ini otomatis getter dan setter)
attr_writer :nama_property (property hanya memiliki setter)
attr_reader :nama_property (property hanya memiliki getter)

atau bisa juga dengan cara:

Code:

class Manusia
  def nama # ini getter
    return @nama
  end
 
  def nama=(value) # ini setter
    @nama = value
  end
end
Kembali Ke Atas Go down
Roger
Novice
Novice
Roger


Level 5
Posts : 191
Thanked : 3
Engine : RMVX
Skill : Very Beginner
Type : Scripter

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 14:19

jadi klo setter kita meng Hard code sebuah variabel seperti contoh diatas??
begitu???

masih agak bulet, belom kotak.
bisa kasi penjelasan yg lebih sederhana??
Kembali Ke Atas Go down
hart
Senior
Senior
avatar


Level 5
Posts : 805
Thanked : 38
Engine : Other
Skill : Very Beginner
Type : Developer

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 14:26

Quote :
jadi klo setter kita meng Hard code sebuah variabel seperti contoh diatas??
begitu???
tidak.

misalnya anda bikin satu variabel bernama a.
untuk mengeset atau mengubah nilai a, anda kan pake a = 10, a = 50, dll bukan?
nah, sementara properti yang private nggak bisa diakses dari luar.

misalnya properti nama dari kelas manusia di atas.
Manusia a = new Manusia();
a.nama = "Badu"; << pasti error, karena 'nama' itu private.

nah, biar kita mengeset nama tersebut, dibuatlah setter.
a.set_nama("Badu"); << ini baru bisa.

begitu juga untuk getter, supaya kita bisa mendapatkan nama.
std::string xyz = a.get_nama();

BTW, anda belajarnya pake bahasa apa? biar nyambung :hammer:
Kembali Ke Atas Go down
Roger
Novice
Novice
Roger


Level 5
Posts : 191
Thanked : 3
Engine : RMVX
Skill : Very Beginner
Type : Scripter

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 14:30

sep hampir ngerti
jadi karena variable yg dideklarasikan private, maka untuk mengubahnya dibuatlah fungsi getter dan setter.
begitu??

Btw aku make bahasa Flash AS3 bahasa makro ( atau apa g tau istilahnya) Adobe Flash.

O ya bedanya getter dan setter apa?
Kembali Ke Atas Go down
hart
Senior
Senior
avatar


Level 5
Posts : 805
Thanked : 38
Engine : Other
Skill : Very Beginner
Type : Developer

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 15:01

Quote :
Btw aku make bahasa Flash AS3 bahasa makro ( atau apa g tau istilahnya) Adobe Flash.
wah saya ga tau :hammer:

Quote :
jadi karena variable yg dideklarasikan private, maka untuk mengubahnya dibuatlah fungsi getter dan setter.
begitu??
TEPAT!!
terus anda pasti tanya, kalau begitu kenapa variabelnya ngga dibuat public aja biar gampang?
Jawabnya, kalau dibuat public, banyak kelemahannya, apa aja? saya kurang tahu :hammer: yang saya tau cuma 1 kelemahannya dan sangat berpengaruh, yaitu kalau dibikin public, kita hanya selalu bisa mengambil nilai mentah dari variabel itu (waduh ga pande jelesinnya, coba cari google aja deh kelemahannya apa, banyak tuh).

Quote :
O ya bedanya getter dan setter apa?
getter untuk mendapatkan nilai variabel/properti, setter untuk menge-set nilai variabel/properti.
Kembali Ke Atas Go down
Roger
Novice
Novice
Roger


Level 5
Posts : 191
Thanked : 3
Engine : RMVX
Skill : Very Beginner
Type : Scripter

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 15:22

summary

Getter : variable suatu class mengakses fungsi getter di class lain. Lalu nilainya dikasi lagi ke class yg mengakses tadi
Setter : meng set variable di kelas lain

klo alasan knp dibuat private itu biar ga ngaco, coba da 2 variable sma di 2 class yg beda, pasti error ntar
( namanya proses encapsulasi)

Quote :

kita hanya selalu bisa mengambil nilai mentah dari variabel itu (waduh ga pande jelesinnya, coba cari google aja deh kelemahannya apa, banyak tuh).
nilai mentah??? paan itu kk?? :shocked:
Kembali Ke Atas Go down
bungatepijalan
Moe Princess
bungatepijalan


Level 5
Posts : 1487
Thanked : 30
Engine : Multi-Engine User
Skill : Intermediate
Type : Developer

Trophies
Awards:
[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-07, 15:45

ijinkan saya berpendapat meski udah ada yang jelasin :swt:

secara agak general, fungsi setter & getter sebenernya merupakan fitur dari bahasa pemrograman dalam lingkup OOP; konsep OOP sendiri ga memperkenalkan setter & getter
tapi, atribut publik bisa langsung dijadikan setter & getter karena bisa diakses dari luar

nah, dalam bahasa ruby, pendefinisian atribut publik dengan attr_reader atau attr_accessor, bedanya nilai attr_reader tidak bisa diubah dari luar sehingga dapat dijadikan getter, sedangkan nilai attr_accessor dapat diakses & diubah dari luar sehingga dapat dijadikan getter & setter

on the other way, method dapat dijadikan getter, dan setter dapat dibuat dengan pendefinisian operator method
tapi IMO, lebih gampang & praktis pake atribut publik deh :swt:

untuk lebih jelas, lihat contoh yg dikasih om hart
dan IMO penjelasan om hart juga udah cukup :swt:

dan sekali lagi, in summary, getters & setters are public attributes
Kembali Ke Atas Go down
http://miyuki-maker.blogspot.co.id/
Roger
Novice
Novice
Roger


Level 5
Posts : 191
Thanked : 3
Engine : RMVX
Skill : Very Beginner
Type : Scripter

[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty2011-11-08, 14:37

Eh bgtu to???
baru tau, maklum masi modular programmer :P

Kembali Ke Atas Go down
Sponsored content





[ASK] belajar OOP Empty
PostSubyek: Re: [ASK] belajar OOP   [ASK] belajar OOP Empty

Kembali Ke Atas Go down
 
[ASK] belajar OOP
Kembali Ke Atas 
Halaman 1 dari 1
 Similar topics
-
» Belajar php yuk
» Keraip Belajar CG...
» Mau Belajar Scripting
» Belajar script
» belajar spriting

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Non-RM :: General Discussion-
Navigasi: