| [ASK] Apa arti dari perintah ruby ini? | |
|
|
Pengirim | Message |
---|
Ryan-Z Newbie
Posts : 10 Thanked : 0 Engine : RMVX Ace Skill : Beginner Type : Scripter
| Subyek: [ASK] Apa arti dari perintah ruby ini? 2013-08-07, 16:00 | |
| Ane masih awam nih sama ruby gan, tapi udah paham dikit-dikit. Tapi, 1 hal yang ane bingung, contohnya seperti ini:
attr_accessor :effects
Apa maksud dari "attr_accessor" dan disebut apa ":effects" itu? Dan, boleh dikasih contoh penggunaanya? | |
|
| |
wltr3565 Senior
Posts : 870 Thanked : 28 Engine : RMVX Skill : Skilled Type : Scripter
Trophies
Awards:
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-07, 16:34 | |
| attr_accessor itu membuat class yang diberikan perintah tersebut membuat variabel yang bisa diakses dan diubah dari object lain diluar class tersebut, setara dengan memberikan def variabel dan def variabel=(value). :effects harusnya disebut symbol ya. attr_accessor :effects artinya membuat variabel local class tersebut yang bernama effects (bisa diakses berupa @effects dalam class tersebut) dan effects ini bisa diakses dari luar class. Aku sih orang yang boro-boro teori, jadi semoga masih bisa dicerna | |
|
| |
Putra Heart Newbie
Posts : 63 Thanked : 0 Engine : RMVX Skill : Beginner Type : Event Designer
Trophies
Awards: | Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-07, 16:51 | |
| attr_accesssor itu hanya metode. Intinya adalah bahwa "class" bukanlah definisi di Ruby (itu adalah "hanya definisi" dalam bahasa seperti C + + dan Java), tetapi merupakan ekspresi yang mengevaluasi. Ketika metode attr_accessor dipanggil yang pada gilirannya saat memodifikasi "class".Contoh pengguaannya : - Code:
-
class Person attr_accessor :name
def greeting "Hello #{@name}" end end
person = Person.new person.name = "Dennis" person.greeting # => "Hello Dennis" | |
|
| |
Ryan-Z Newbie
Posts : 10 Thanked : 0 Engine : RMVX Ace Skill : Beginner Type : Scripter
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-07, 18:43 | |
| Hmm.... paham, paham.
@wltr: jadi apa symbol ":effect" bisa digunakan di luar class tersebut? Misalnya, "attr_accessor :effect" ada dalam class "animation", lalu si symbol ":effect" ini mau digunakan juga di class "special", bisa kah?
@Putra: Kalau disana gak ada "attr_accessor :name", gak akan bekerja ya? | |
|
| |
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Trophies
Awards:
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-07, 18:57 | |
| attr_accessor itu artinya attribute accessor. artinya attribut yg ada di sebuah class dan bisa diubah-ubah dimanapun. Contohnya ... Player punya attribut yg bisa diubah yaitu HP. Jadi ... - Code:
-
class Player attr_accessor :hp end - Quote :
- @wltr: jadi apa symbol ":effect" bisa digunakan di luar class tersebut? Misalnya, "attr_accessor :effect" ada dalam class "animation", lalu si symbol ":effect" ini mau digunakan juga di class "special", bisa kah?
:effect itu cuman nama aja kok. - Quote :
- @Putra: Kalau disana gak ada "attr_accessor :name", gak akan bekerja ya?
Kalo ngga ada attr_accessor, nanti di line ini - Code:
-
person.name = "Dennis" akan ada error "undefined method .name for Person" | |
|
| |
Putra Heart Newbie
Posts : 63 Thanked : 0 Engine : RMVX Skill : Beginner Type : Event Designer
Trophies
Awards: | Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-07, 19:29 | |
| @Ryan Sudah di jelasin sama kk Theo. Jika ga ada attr_accessor pada line person.name = "Dennis" maka akan terjadi kesalahan, karena untuk memanggil atau memproses person.name itu harus memakai attr_accessor. | |
|
| |
Ryan-Z Newbie
Posts : 10 Thanked : 0 Engine : RMVX Ace Skill : Beginner Type : Scripter
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-09, 09:50 | |
| Semakin paham. Pertanyaan ane blom ke jawab nih kk, :effect itu bisa dipake di class lain gak kk, tanpa didefinisikan dengan attr_accessor lagi?
Ane baru buka Script Editor lagi, trus ane liat ada yang namanya attr_reader. Bedanya sama accessor apa? | |
|
| |
LiTTleDRAgo Senior
Posts : 712 Thanked : 27 Engine : RMXP Skill : Skilled Type : Scripter
Trophies
Awards: | Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-09, 14:30 | |
| attr reader - Spoiler:
- Code:
-
attr_reader :something sama dengan - Code:
-
def something @something end perhatikan baik2, variabelnya hanya bisa dibaca, ga bisa diganti
attr writer - Spoiler:
- Code:
-
attr_writer :something sama dengan - Code:
-
def something=(value) @something = value end kalo yg ini variabelnya cuma bisa diganti / ditulis, ga bisa dibaca kelas lain sama sekali
attr accessor - Spoiler:
- Code:
-
attr_accessor :something sama dengan - Code:
-
attr_reader :something attr_writer :something sama dengan - Code:
-
def something @something end def something=(value) @something = value end yang ini variabelnya bisa dibaca dan ditulis / diganti sesuka hati (full access)
| |
|
| |
Putra Heart Newbie
Posts : 63 Thanked : 0 Engine : RMVX Skill : Beginner Type : Event Designer
Trophies
Awards: | Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-09, 15:14 | |
| Kalau attr_accessor itu sama dengan attr_writer dan attr_reader, begitupun dengan attr_reader jika attr_reader di gabungkan dengan attr_writer itu akan sama dengan attr_accessor. Intinya kedua atrribut reader dan writer sama seperti attribut accesor, attibut accessor mempunyai fungsi yang bisa membaca dan menulis variabel dengan bebas. attibut reader itu hanya bisa membaca tapi tidak bisa menulis dan attribut writer itu hanya bisa menulis tapi tidak bisa membaca, dan kalau attribut accessor itu memiliki fungsi dari keduanya. | |
|
| |
Ryan-Z Newbie
Posts : 10 Thanked : 0 Engine : RMVX Ace Skill : Beginner Type : Scripter
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-10, 12:11 | |
| Owh.... begitu toh. Nah, kalo kata mas littledrago, dengan pake attr_writer, variable itu gak bisa dibaca di kelas lain kecuali tempat attr_writer itu berada. Berarti kalo pake attr_accessor, misalnya attr_accessor :something berada di kelas "something", variable :something itu bisa dipake di kelas lain, misalnya kelas "anything"? | |
|
| |
yeki Novice
Posts : 182 Thanked : 6 Engine : RMVX Ace Skill : Beginner Type : Scripter
Trophies
Awards:
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-10, 15:29 | |
| - Code:
-
class Sesuatu
attr_accessor :something
end dan - Code:
-
class Banget
attr_accessor :something
end sama - sama memiliki variable "@something" dan memiliki nilai yang sama, tapi jika kamu melakukan perintah - Code:
-
Sesuatu.new.something = 100 maka kamu akan merubah variable something pada class Sesuatu. lalu apa yang terjadi dengan class Banget ? - Code:
-
p Banget.new.something => nil yup, apa yang kamu rubah di class Sesuatu tidak akan berlaku apa - apa pada class Banget walaupun nama variable nya sama . | |
|
| |
LiTTleDRAgo Senior
Posts : 712 Thanked : 27 Engine : RMXP Skill : Skilled Type : Scripter
Trophies
Awards: | Subyek: Re: [ASK] Apa arti dari perintah ruby ini? 2013-08-11, 17:31 | |
| - Ryan-Z wrote:
- Owh.... begitu toh.
Nah, kalo kata mas littledrago, dengan pake attr_writer, variable itu gak bisa dibaca di kelas lain kecuali tempat attr_writer itu berada. gw kasi contoh lagi deh attr reader - Spoiler:
- Code:
-
class Game_Temp attr_reader :meong alias initialize_yang_lama initialize def initialize initialize_yang_lama @meong = 0 end end a = $game_temp.meong print a # hasilnya 0 # intinya variable meong bisa dibaca $game_temp.meong = 40 # hasilnya adalah NoMethodError (langsung crash)
attr writer - Spoiler:
- Code:
-
class Game_Temp attr_writer :meong alias initialize_yang_lama initialize def initialize initialize_yang_lama @meong = 0 end end a = $game_temp.meong # langsung terjadi NoMethodError print a # variable a tidak bisa dibaca $game_temp.meong = 40 # tidak ada error, variable meong bisa dirubah
attr accessor - Spoiler:
- Code:
-
class Game_Temp attr_accessor :meong alias initialize_yang_lama initialize def initialize initialize_yang_lama # initialize dari skrip RTP nya enterbrain @meong = 0 end end a = $game_temp.meong print a # hasilnya 0 (tidak ada error) # variable meong bisa dibaca $game_temp.meong = 40 # tidak ada error, variable meong bisa dirubah
$game_temp cuma contoh di RPGMaker, bukan berarti Game_Something bisa jadi $game_something yah btw ngebaca variable di kelas sendiri ga perlu pake attr_writer, cukup @meong = (value) juga udah kena - Ryan-Z wrote:
- Berarti kalo pake attr_accessor, misalnya attr_accessor :something berada di kelas "something", variable :something itu bisa dipake di kelas lain, misalnya kelas "anything"?
cuma bisa dibaca + dirubah aja, bukan berarti bisa dipake buat kelas lain gw coba perjelas penjelasannya kk yeki penjelasannya kk yeki: - Spoiler:
- Code:
-
class Game_Temp attr_accessor :meong end class Game_System attr_accessor :meong end
a = $game_temp.meong b = $game_system.meong print a # nil print b # nil print a == b # true (karena sama-sama nil)
$game_temp.meong = "Is Kucing" print a # nil (tidak berubah, mesti di baca ulang)
a = $game_temp.meong b = $game_system.meong
print a # "Is Kucing" print b # nil print a == b # false (karena emang beda variabel)
$game_system.meong = "Is Kambing"
a = $game_temp.meong b = $game_system.meong
print a # "Is Kucing" print b # "Is Kambing" print a == b # false
saran gw sih kk kalo mau bikin variabel fokus aja ke attr_accessor, kalo bikin variabel yang ga perlu di rubah, baru boleh pake attr_reader attr_writer dilupain juga gpp (jarang yang make, mungkin malah ga ada yang make sama sekali) | |
|
| |
Sponsored content
| Subyek: Re: [ASK] Apa arti dari perintah ruby ini? | |
| |
|
| |
| [ASK] Apa arti dari perintah ruby ini? | |
|