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.

Share | 
 

 [ASK] belajar OOP

Topik sebelumnya Topik selanjutnya Go down 
[ASK] belajar OOP Empty2011-11-06, 23:48
Post[ASK] belajar OOP
#1
Roger 
Novice
Novice
Roger

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

[ASK] belajar OOP Vide
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)
[ASK] belajar OOP Empty2011-11-07, 13:59
PostRe: [ASK] belajar OOP
#2
hart 
Senior
Senior
avatar

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

[ASK] belajar OOP Vide
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
[ASK] belajar OOP Empty2011-11-07, 14:19
PostRe: [ASK] belajar OOP
#3
Roger 
Novice
Novice
Roger

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

[ASK] belajar OOP Vide
jadi klo setter kita meng Hard code sebuah variabel seperti contoh diatas??
begitu???

masih agak bulet, belom kotak.
bisa kasi penjelasan yg lebih sederhana??
[ASK] belajar OOP Empty2011-11-07, 14:26
PostRe: [ASK] belajar OOP
#4
hart 
Senior
Senior
avatar

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

[ASK] belajar OOP Vide
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:
[ASK] belajar OOP Empty2011-11-07, 14:30
PostRe: [ASK] belajar OOP
#5
Roger 
Novice
Novice
Roger

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

[ASK] belajar OOP Vide
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?
[ASK] belajar OOP Empty2011-11-07, 15:01
PostRe: [ASK] belajar OOP
#6
hart 
Senior
Senior
avatar

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

[ASK] belajar OOP Vide
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.
[ASK] belajar OOP Empty2011-11-07, 15:22
PostRe: [ASK] belajar OOP
#7
Roger 
Novice
Novice
Roger

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

[ASK] belajar OOP Vide
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:
[ASK] belajar OOP Empty2011-11-07, 15:45
PostRe: [ASK] belajar OOP
#8
bungatepijalan 
Moe Princess
bungatepijalan

Level 5
Posts : 1487
Thanked : 30
Engine : Multi-Engine User
Skill : Intermediate
Type : Developer
Awards:
[ASK] belajar OOP Vide
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
[ASK] belajar OOP Empty2011-11-08, 14:37
PostRe: [ASK] belajar OOP
#9
Roger 
Novice
Novice
Roger

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

[ASK] belajar OOP Vide
Eh bgtu to???
baru tau, maklum masi modular programmer :P

[ASK] belajar OOP Empty
PostRe: [ASK] belajar OOP
Sponsored content 




[ASK] belajar OOP Vide
 

[ASK] belajar OOP

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 

Similar topics

+
Halaman 1 dari 1

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