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.
|
|
| [Tutorial] Ruby basic syntax | |
| |
2013-02-11, 20:53 | [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| Disini w mau bahas soal basic2 pemrograman ruby. Karena gw yakin, yg ga ngerti script dari dasar dan mau coba-coba ngoprek RGSS di dalem RPG Maker pasti bakalan bingung.
Langsungan aja.
Requirement:
- Instal ruby. Caranya ada disini ~> http://ruby.about.com/od/beginningruby/ss/Installing-A-Ruby-Development-Environment-On-Windows.htm
- Ngerti cmd / console (bagi yg g ngerti ane ntar terangin deh)
- Notepad++
- Siap mental
- Ada lappie / kompie
- Willpower
Getting started: Nah, sekarang w anggap u dah nginstal rubynya dan punya Notepad++ Eit, jangan keburu dlu Ini sekedar saran sih. bikin folder > namain "Ruby" > taruh di tempat yang paling enak dijangkau. Kalo saran gw sih - Code:
-
C:\Ruby Itu ntar folder buat nyimpen file2 eksperimen ruby.
Sekarang, kalian buka cmdnya. Lewat run > cmd (WinXP) ato search program > cmd (Win7)
Langkah berikutnya, persiapin kaek gini
https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/cmd.jpg Command "cd.." buat keluar dari directory / folder. dan Command "cd<spasi>namafolder" buat masuk subdirectory / folder Jangan diclose cmd-nya
Langkah selanjutnya, - buka notepad++ - Language > ruby (buat highlight syntax)
Nah, persiapan beres. Kalian bisa mulai eksperimen ruby
Chapter one: Basic operations ------------------------------------------ 1.Simple Syntax Tulis di notepad++ kaek gini - Code:
-
puts 'hello' simpen pake nama terserah. kalo bisa sih dikasi nomer. mau dinomorin 001.rb jg boleh. Ntar bakal keluar kaek gini
=> https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/001.jpg Well, simple enough.
Things to know:- Tulisan yang berada dalem quote atau double quote itu disebut sebagai String
- keyword "puts" itu syntax buat ngeprint nilai / value
Let us advance to the next step
------------------------------------------ 2.Getting and putting input Sekarang kita nyoba masukan nama dari input user. Kaek gini nih - Code:
-
print('enter name ') name = gets() puts("Hello #{name}") Ntar bakal keluar kaek gini
=> https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/002.jpg
Things to know:
- Disini kan gw pake print ama puts. Bedanya, kalo print setelah dieksekusi, ngga ganti baris. Kalo puts, stelah dieksekusi, ganti baris
- kata "name" adalah yang disebut namanya variable. variable "name" itu ntar bisa dipake nyimpen suatu nilai (bisa berupa angka atau huruf). Di kasus contoh ini, variable "name" nyimpen masukan huruf dari user (angka jg bisa).
- Double quote ama single quote itu beda. Single quote lebih ke ngeprint apa adanya, sedangkan double quote ngeprint nilai dari variable "name" dalam contoh itu. Coba aja puts bawah ndiri diganti
- Code:
-
puts 'Hello #{name}' - Gets, buat nerima masukan dari user.
- Sbenernya () itu optional. Kalopun diilangin, ntar jalannya bakalan ttep sama. Cuman ntar di kasus laen, kurung kaek gt berguna buat meminimalisir keambiguan script
- Nama variable di Ruby itu case sensitif. Variable dengan nama "myVar" dengan "myvar" sudah merupakan hal yang berbeda banget.
- Line terakhir. #{nama_variable} itu semacem command buat ngeprint nilai dari variable dalam {}. command2 laen juga ada. macem \n buat ganti baris. dan \t buat tab
Sebenernya #{} bukan cuman buat ngeprint nilai variable. tapi jg bisa digunain langsung kaek gini - Code:
-
puts "1+2+3 = #{1+2+3}" ------------------------------------------ 3.Numbers Sekarang ayok kita belajar berhitung - Code:
-
attack = 100 defend = 50 damage = attack - defend puts "attack = #{attack} \ndefend = #{defend} \nthen damage = #{damage}" Outputnya ntar kaek gini
=> https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/003.jpg
Things to know:
- Dalam scripting, sequence / urutan itu penting. kodenya g akan jalan kalo semisal u bikin kaek gini
- Code:
-
damage = attack - defend attack = 100 defend = 50 Karena dalam baris pertama, program ga ngerti apa itu "attack" dan "defend"
- Beberapa basic operasi itung2ngan di ruby
- (=) buat ngeset nilai
- (+) Buat nambah nilai
- (-) Buat ngurangin nilai
- (*) Buat mengali nilai
- (/) Buat ngebagi nilai
- (%) Buat ngambil sisa bagi. Cnth : 20%3 ~> 2 (sisa bagi)
Sekarang coba bikin kode baru kaek gini - Code:
-
attack = 100 p attack attack += 100 p attack attack -= 150 p attack Outputnya ntar kaek gini
=> https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/004.jpg
Things to know:
- p << ini sbenernya buat nyimpelin "puts"
- Attack += 100 itu sama dengan kaek u bikin
- Code:
-
Attack = Attack + 100 Coba aja replace kalo g percaya
- Attack = Attack + 100 itu semisal nilai "Attack" awalnya 100, operasinya yg berjalan ntar kaek gini
- Code:
-
<Nilai attack yg baru> = <Nilai attack lama> + 100 - Beberapa list operasi yang dapat dipake
- (+=) Penambahan
- (-=) Pengurangan
- (*=) Perkalian
- (/=) Pembagian
- (%=) Sisa bagi
Kode berikutnya - Code:
-
damage = 100 damage = damage.to_f p damage damage = damage.to_s p damage damage = damage.to_i p damage Outputnya ntar kaek gini
=> https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/005.jpg
Things to know:
- (.to_f) itu convert bilangan ke tipe "float" dimana "float" itu macem pecahan gt
- (.to_s) buat convert ke tipe string / text
- (.to_i) buat convert ke tipe integer / bilangan bulat
------------------------------------------ 4.Control flow : Conditional Branch Di RPG Maker, kalian pasti udah tau conditional branch. If <Kondisi benar> then <kondisi kalo benar> else <kalo salah>. Di Ruby juga ada beginian. Langsung aja, coba kode kaek gini - Code:
-
attack = 100 defend = 50 if attack > defend p "damage delivered" else p "damage nullified" end Males aplod screenshot. Kalian tau kalo attack > defend nilainya bener. Maka script ntar akan ngeprint "damage delivered". kalo ngga, berarti "damage nullified"
Nilai kebenaran attack > defend bisa disimpen dalam variable lain. Coba dibikin kodenya kaek gini. Ntar outputnya juga sama aja - Code:
-
attack = 100 defend = 50 switch = attack > defend if switch p "damage delivered" else p "damage nullified" end Cara lain buat bikin kondisi bercabang, coba kaek gini - Code:
-
attack = 100 defend = 50 switch = attack > defend
switch ? puts("damage delivered") : puts("damage nullified") Yang ini strukturnya agak sesuatu well, formatnya gini - Code:
-
<kondisi> ? <kalo benar> : <kalo salah> Ato juga cuman dibikin satu line. - Code:
-
p "damage delivered" if switch # Formatnya | <lakukan sesuatu> if <kondisi disini benar> Yang kaek gini biasanya ditemui di script2 RGSS yang saling keterkaitan. Kyak add-on script gitu. Misalnya - Code:
-
<command here> if <script anu diimport> Kalo keyword "if" itu buat eksekusi kondisi yang dinyatakan benar, sekarang kebalikannya yaitu "unless" - Code:
-
attack = 100 defend = 150 switch = attack > defend
unless switch p "damage nullified" else p "damage delivered" end ato - Code:
-
p "damage nullified" unless switch Kita jg bisa mbalik nilai kebenaran dari variable "Switch" dengan nambahin ( ! ) tepat didepan nama variable. Kaek gini - Code:
-
attack = 100 defend = 150 switch = attack > defend
if !switch p "damage nullified" else p "damage delivered" end Things to know:- ( > ) Pembanding lebih besar dari
- (< ) Pembanding lebih kecil dari
- ( >= ) Pembanding lebih besar atau sama dengan
- (<= ) Pembanding lebih kecil atau sama dengan
- ( == ) Pembanding sama dengan. Inget, bukan pake ( = ) karena symbol itu buat ngeset nilai
- ( != ) Pembanding tidak sama dengan
------------------------------------------ 5.Control flow : Advanced Conditional Branch Sekarang kita bikin input dari user - Code:
-
print "input attack = " attack = gets.to_i print "input defend = " defend = gets.to_i
if attack > defend p "damage delivered" elsif attack == defend p "damage nullified" else p "damage absorbed" end things to know :
- gets.to_i itu buat convert input dari user ke bentuk integer. Karena fungsi gets sbenernya mbaca string. Jadi sbelum bisa dioperasikan ke bentuk anga, kudu diubah dlu.
- elsif itu sbenernya bikin kondisi baru setelah else pertama.
Kode berikutnya. Masi sama kek atasnya. Cuman beda dikit - Code:
-
print "input attack = " attack = gets.to_i print "input defend = " defend = gets.to_i
if attack > defend && attack > 0 && defend > 0 p "damage delivered" elsif attack == defend && attack > 0 defend > 0 p "damage nullified" elsif attack < defend && attack > 0 && defend > 0 p "damage absorbed" else p "parameter must above 0" end Things to know :
- (&&) itu artinya AND. Dimana AND itu jika dua kondisi yg menghubungkannya benar, maka nilainya benar. Buat testing di notepad, u bisa bikin kode simple kaek gini
- Code:
-
p (10 > 1 && 10 < 1) trus liat apa keluarannya
- ( || ) yang ini artinya OR. Dimana OR itu jika salah satu kondisi benar, maka semuanya benar. Coba kode diatas ganti gini
- Code:
-
p (10 > 1 || 10 < 1)
Sekarang kita coba macem pilihan - Code:
-
print "input number (1-4) = " choice = gets.to_i
case choice when 1 p "lu Maho" when 2 p "lu homo" when 3 p "lu jelek" when 4 p "lu ganteng" else p "g ada di pilihan coy :v" end Things to know :
- case itu ibaratnya kasus.
- when adalah kemungkinan-kemungkinan kasus
- else ibaratnya rencana terakhir kalo semua kondisi g masuk
Sekarang kita coba bikin sequence attack dan perhitungannya. Awas, persiapan mental. Yang disibi banyak banget kondisi2 yang perlu ditulis. Jadi siap2 mental ya?
Sebelumnya, gw kasi satu fungsi di ruby dulu. Coba kode ini - Code:
-
p rand * 10 rand itu fungsi ngegenerate bilangan random dari limit mendekati 0 ampe limit mendekati 1. kalo u mau bikin angka random dari 0 ampe 10, u kudu bikin rand * 11
Langsung ke codenya aja - Code:
-
hit_chance = rand * 11 eva_chance = rand * 11 cri_chance = rand * 11
damage = 0 print "input attack = " attack = gets.to_i print "input defend = " defend = gets.to_i
hit_rate = hit_chance < 7 eva_rate = eva_chance < 3 cri_rate = cri_chance < 1
success = hit_rate && !eva_rate if success damage = attack - defend if cri_rate damage * 3 p "critical! damage = #{damage}" else p "damage = #{damage}" end elsif !hit_rate p "attack missed" elsif eva_rate p "enemy evaded" end Output
Sequence script yg ngurus attack aja butuh panjang kaek gitu Well, things to know:- Wa disana pake bilangan random buat nentuin kemungkinan miss, evade, dan critical
- Variable "success" nilainya bener kalo attack masuk (hit_rate == true) dan musuh g evade (eva_rate == false)
- Kalo sukses, kita itung lagi. Critical ngga? Kalo critical berarti damagenya dikali 3. Kalo ngga ya biasa aja deh
- Kalo ngga sukses, masuk ke else if. Kalo serangan ga masuk, cetak miss
- Kalo masuk tapi musuh evade, berarti cetak evade
Udah ah, segini dulu. Cape bro nulisnya. Ntaran deh gw lanjut
Reference: => http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby
Terakhir diubah oleh TheoAllen tanggal 2013-02-26, 19:55, total 8 kali diubah |
| | | 2013-02-11, 21:08 | Re: [Tutorial] Ruby basic syntax |
---|
SaltLover Newbie
Posts : 47 Thanked : 0 Engine : RMVX Skill : Very Beginner Type : Artist
| wah keren , tutorial ini sangat membantu sekali. ditunggu tuts berikutnya jad semacami print = print dan puts = println dijava gt ya
Terakhir diubah oleh HolyLover tanggal 2013-02-12, 06:16, total 1 kali diubah |
| | | 2013-02-11, 21:38 | Re: [Tutorial] Ruby basic syntax |
---|
richter_h Salto Master Hancip RMID
Posts : 1705 Thanked : 30 Engine : Other Skill : Skilled Type : Developer
Awards:
| once step to know Ruby nce post come forth, Ruby programmers |
| | | 2013-02-12, 10:33 | Re: [Tutorial] Ruby basic syntax |
---|
Radis3D Sang Iblis
Posts : 755 Thanked : 3 Engine : RMVX Ace Skill : Very Beginner Type : Writer
Awards:
| - HolyLover wrote:
- wah keren , tutorial ini sangat membantu sekali.
ditunggu tuts berikutnya
jad semacami print = print dan puts = println dijava gt ya yups semacam itu lah... (pernah blajar java 1 tahun, skrg blank) untuk TS.. lanjutkan, ntar nyimak lagi... |
| | | 2013-02-25, 06:30 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| Update dikit soal number Ama conditional branch |
| | | 2013-02-25, 08:18 | Re: [Tutorial] Ruby basic syntax |
---|
Kuru Senior
Posts : 985 Thanked : 9 Engine : RMVX Skill : Beginner Type : Writer
Awards:
| Wah akhirnya ada yang posting tutorial seperti ini Bikin kelanjutannya Theo (siapa tahu entar aku bisa berubah kelas jadi Scripter Bookmark dulu. Terus kalo ada kelanjutannya dibagian paling bawah dibikin juga alamat kelanjutannya->sebelum&sesudah |
| | | 2013-02-25, 09:06 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| - Spoiler:
jangan lupa fitur thanked maksudnya kelanjutannya itu gimana? dikasi tau yg update terbaru apa gitu? |
| | | 2013-02-25, 11:14 | Re: [Tutorial] Ruby basic syntax |
---|
aganiz Novice
Posts : 120 Thanked : 1 Engine : Multi-Engine User Skill : Intermediate Type : Event Designer
| thanks, di bookmark dulu sapa tau beranjak kearah scripting |
| | | 2013-02-25, 20:25 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| Update dikit soal conditional branch |
| | | 2013-02-25, 20:59 | Re: [Tutorial] Ruby basic syntax |
---|
richter_h Salto Master Hancip RMID
Posts : 1705 Thanked : 30 Engine : Other Skill : Skilled Type : Developer
Awards:
| coba juga nested conditional branch dan lanjutkan sampe loop, pointer dan tentunya Object class anyway, |
| | | 2013-02-26, 07:48 | Re: [Tutorial] Ruby basic syntax |
---|
Hierony Newbie
Posts : 56 Thanked : 0 Engine : RMVX Skill : Beginner Type : Jack of All Trades
| @Theo: kayaknya keren neh gan.. enak dipelajari neh.. hehhehe |
| | | 2013-02-26, 12:29 | Re: [Tutorial] Ruby basic syntax |
---|
Hierony Newbie
Posts : 56 Thanked : 0 Engine : RMVX Skill : Beginner Type : Jack of All Trades
| @ Theo: Gan, sebenarnya programming Ruby ini untuk apa-apa aja kegunaannya.. Trus kelebihan dibanding Programming C apa gan? |
| | | 2013-02-26, 12:37 | Re: [Tutorial] Ruby basic syntax |
---|
richter_h Salto Master Hancip RMID
Posts : 1705 Thanked : 30 Engine : Other Skill : Skilled Type : Developer
Awards:
| - Hierony wrote:
- @ Theo:
Gan, sebenarnya programming Ruby ini untuk apa-apa aja kegunaannya..
Trus kelebihan dibanding Programming C apa gan? buat apa aja bisa kalo Ruby mah, cuman Ruby lebih dipake buat di web lantaran ada framework Rails (dan kalo pernah denger Ruby on Rails, ini yang ane maksud) kalo kelebihan sih di ane sipatnya personal, lantaran: 1. walo sama2 pemrograman tingkat tinggi, Ruby lebih simple dalam penulisan kode2nya (beda sama C yang mesti nulis beberapa sintaks sama rule yang lumayan ribet) 2. error handling lebih dapet dimengerti (IMO) 3. ngga kayak di C yang mesti bikin constructor sama destructor, di Ruby bisa bikin object lumayan luwes, dan ngga perlu bikin destructor lantaran ada Garbage Collector (GC) 4. penulisan code2nya bisa dibilang lebih indah, lebih bersih ketimbang bahasa2 lain 5. Ruby sama kek C soal fleksibilitas, bisa multiplatform 6. karena Object-Oriented, fitur2 OO bisa diimplementasikan, dan lebih gampang ketimbang Object C sekian dari ane yang 2 taun nyoba2 Ruby |
| | | 2013-02-26, 19:59 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| Sundul lagi biar tetep diatas Sekarang nambahin ke contoh penggunaan conditional branch kalo buat perhitungan serangan |
| | | 2013-02-27, 15:30 | Re: [Tutorial] Ruby basic syntax |
---|
Creature33 Newbie
Posts : 8 Thanked : 0 Engine : RMVX Skill : Beginner Type : Mapper
| kalo wat transfer player ke suatu tempat, jika kondisi tercapai gima script-nya gan.? thx |
| | | 2013-02-27, 15:42 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| via event |
| | | 2013-02-27, 15:49 | Re: [Tutorial] Ruby basic syntax |
---|
Creature33 Newbie
Posts : 8 Thanked : 0 Engine : RMVX Skill : Beginner Type : Mapper
| klo lwat event kyknya dah lumayan bs., ne kn lg bljar bkin script gan., hehe.., |
| | | 2013-02-27, 15:58 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| Materi yg sebanyak ini mah masi jauh banget buat understanding RGSS Tapi bakal terus tak apdet kok kalo sempat |
| | | 2013-02-27, 16:18 | Re: [Tutorial] Ruby basic syntax |
---|
richter_h Salto Master Hancip RMID
Posts : 1705 Thanked : 30 Engine : Other Skill : Skilled Type : Developer
Awards:
| kalo transfer player ke map lain, methodnya mayan ribet loh (ini ane liatnya dari sisi skrip, bukan dari sisi tools/RPG Maker) well, kalo belajar bikin skrip, mending belajar tahap2annya, dan TS-nya udah ngasi yang pas |
| | | 2013-02-27, 16:48 | Re: [Tutorial] Ruby basic syntax |
---|
Hierony Newbie
Posts : 56 Thanked : 0 Engine : RMVX Skill : Beginner Type : Jack of All Trades
| @ Richter: Jadi Dari ruby kita bisa bikin script gan? |
| | | 2013-02-27, 17:02 | Re: [Tutorial] Ruby basic syntax |
---|
richter_h Salto Master Hancip RMID
Posts : 1705 Thanked : 30 Engine : Other Skill : Skilled Type : Developer
Awards:
| | | | 2013-02-27, 22:49 | Re: [Tutorial] Ruby basic syntax |
---|
yeki Novice
Posts : 182 Thanked : 6 Engine : RMVX Ace Skill : Beginner Type : Scripter
Awards:
| denger - denger mo bikin tuts REGEXP jg Dengan begini semakin banyak orang yang bisa mengerti RUBY dan setuju bahwa ruby itu mudah |
| | | 2013-02-28, 17:36 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| | | | 2013-02-28, 18:22 | Re: [Tutorial] Ruby basic syntax |
---|
Hierony Newbie
Posts : 56 Thanked : 0 Engine : RMVX Skill : Beginner Type : Jack of All Trades
| @ Richter: Wat? No RPG Maker? mcmcmmcmc.. gan ada mau gua tnya neh, ruby itu diinstall dlu kan? tapi link yang dikasih Theo ane liat ane, ga ada tnda-tanda link buat download installer rubynya.. |
| | | 2013-02-28, 19:09 | Re: [Tutorial] Ruby basic syntax |
---|
TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Awards:
| emang g ada link donlotnya. Disana mah cara2nya kesini aja kalo mo instal ruby http://ruby.about.com/gi/o.htm?zi=1/XJ&zTi=1&sdn=ruby&cdn=compute&tm=9&f=00&su=p284.13.342.ip_p504.6.342.ip_&tt=29&bt=0&bts=1&zu=http%3A//rubyinstaller.org/
Terakhir diubah oleh TheoAllen tanggal 2013-02-28, 19:45, total 1 kali diubah |
| | | | Re: [Tutorial] Ruby basic syntax |
---|
Sponsored content
| | | | | [Tutorial] Ruby basic syntax | |
|
Similar topics | |
|
Similar topics | |
| |
Halaman 1 dari 2 | Pilih halaman : 1, 2 | |
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
Latest 10 Topics | [Web Novel] Gloria Infidelis 2016-11-17, 21:27 by LightNightKnight
[Announcement] Forum baru untuk RMID 2016-08-25, 16:39 by TheoAllen
Where I'm Wrong ? 2016-07-24, 16:10 by ReydVires
flakeheartnet's Resources part III 2016-07-08, 14:30 by flakeheartnet
Keira's Art Warehouse 2016-06-28, 19:27 by KeiraBlaze
Theo Core Time System + Bingung 2016-06-27, 16:24 by Lockin
Error Script, Maybe ? 2016-06-27, 16:20 by Lockin
Nusaimoe @ RMID Lounge 2016-06-21, 05:02 by Jihad Bagas
Call Random Battle 2016-06-15, 17:04 by Lockin
Flakeheartnet Resources Part II [come back gift] 2016-06-07, 15:51 by flakeheartnet
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|
|
|