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 | 
 

 [Tutorial] Ruby basic syntax

Topik sebelumnya Topik selanjutnya Go down 
Pilih halaman : Previous  1, 2
[Tutorial] Ruby basic syntax - Page 2 Empty2013-02-11, 20:53
Post[Tutorial] Ruby basic syntax
#1
TheoAllen 
♫ RMID Rebel ♫
♫ RMID Rebel ♫
TheoAllen

Kosong
Posts : 4935
Thanked : 63
Awards:




[Tutorial] Ruby basic syntax - Page 2 Vide
First topic message reminder :

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 :lol:


Getting started:

Nah, sekarang w anggap u dah nginstal rubynya dan punya Notepad++
Eit, jangan keburu dlu :v
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
[Tutorial] Ruby basic syntax - Page 2 Cmd
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 :megusta:

Langkah selanjutnya,
- buka notepad++
- Language > ruby (buat highlight syntax)

Nah, persiapan beres. Kalian bisa mulai eksperimen ruby :ca:
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
[Tutorial] Ruby basic syntax - Page 2 001
=> 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 :ca:
------------------------------------------
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
[Tutorial] Ruby basic syntax - Page 2 002
=> 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 :3
Code:
attack = 100
defend = 50
damage = attack - defend
puts "attack = #{attack} \ndefend = #{defend} \nthen damage = #{damage}"
Outputnya ntar kaek gini
[Tutorial] Ruby basic syntax - Page 2 003
=> 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
[Tutorial] Ruby basic syntax - Page 2 004
=> https://dl.dropbox.com/u/41797508/Galeries/SS/Ruby/004.jpg

Things to know:

  • p << ini sbenernya buat nyimpelin "puts" :hammer:
  • Attack += 100 itu sama dengan kaek u bikin
    Code:
    Attack = Attack + 100
    Coba aja replace kalo g percaya :3
  • 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
[Tutorial] Ruby basic syntax - Page 2 005
=> 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 :lol:
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 :3
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? :lol2:

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 :lol:
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
[Tutorial] Ruby basic syntax - Page 2 006
Sequence script yg ngurus attack aja butuh panjang kaek gitu :lol:
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 :megusta:

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

[Tutorial] Ruby basic syntax - Page 2 Empty2013-02-28, 19:09
PostRe: [Tutorial] Ruby basic syntax
TheoAllen 
♫ RMID Rebel ♫
♫ RMID Rebel ♫


Posts : 4935
Awards:




[Tutorial] Ruby basic syntax - Page 2 Vide
emang g ada link donlotnya. Disana mah cara2nya :ming:
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
[Tutorial] Ruby basic syntax - Page 2 Empty2013-02-28, 19:25
PostRe: [Tutorial] Ruby basic syntax
Hierony 
Newbie
Newbie
Hierony

Level 5
Posts : 56
Thanked : 0
Engine : RMVX
Skill : Beginner
Type : Jack of All Trades

[Tutorial] Ruby basic syntax - Page 2 Vide
@ Theo:

Theo, kata linknya FIle not found -_-
[Tutorial] Ruby basic syntax - Page 2 Empty2013-02-28, 19:46
PostRe: [Tutorial] Ruby basic syntax
TheoAllen 
♫ RMID Rebel ♫
♫ RMID Rebel ♫
TheoAllen

Kosong
Posts : 4935
Thanked : 63
Awards:




[Tutorial] Ruby basic syntax - Page 2 Vide
Bercanda lu mah kalo file not found :ngacay2
[Tutorial] Ruby basic syntax - Page 2 Empty2013-02-28, 21:34
PostRe: [Tutorial] Ruby basic syntax
Hierony 
Newbie
Newbie
Hierony

Level 5
Posts : 56
Thanked : 0
Engine : RMVX
Skill : Beginner
Type : Jack of All Trades

[Tutorial] Ruby basic syntax - Page 2 Vide
@ Theo:

Sory gan, ada kok..
neh lagi DL.

Tapi lag banget nih wireless kampus.

Theo?
punya ga buku tuts tentang Ruby?
Kalau ada share donk gan..

[Tutorial] Ruby basic syntax - Page 2 Empty2013-02-28, 21:36
PostRe: [Tutorial] Ruby basic syntax
Shazuu 
Newbie
Newbie
Shazuu

Level 5
Posts : 64
Thanked : 1
Engine : Multi-Engine User
Skill : Intermediate
Type : Event Designer

[Tutorial] Ruby basic syntax - Page 2 Vide
yg di sini alhamdulillah ane udah paham dan ngerti, ane yg belum paham tentang class, method dkk nya huakakakakka, mohon bantuannya mastah theo :P =))
[Tutorial] Ruby basic syntax - Page 2 Empty2013-03-01, 06:41
PostRe: [Tutorial] Ruby basic syntax
TheoAllen 
♫ RMID Rebel ♫
♫ RMID Rebel ♫
TheoAllen

Kosong
Posts : 4935
Thanked : 63
Awards:




[Tutorial] Ruby basic syntax - Page 2 Vide
Hierony wrote:
@ Theo:

Sory gan, ada kok..
neh lagi DL.

Tapi lag banget nih wireless kampus.

Theo?
punya ga buku tuts tentang Ruby?
Kalau ada share donk gan..

Link book of ruby ada di bagian reference di first post. Bahasa inggris. Siap2 kamus :v
Kalo mau yg bahasa indonesia, ini lagi on going ditulis :imean: :kabur:

Shazuu wrote:
yg di sini alhamdulillah ane udah paham dan ngerti, ane yg belum paham tentang class, method dkk nya huakakakakka, mohon bantuannya mastah theo :P =))
Ntar ane bahas method kok :3
Cuman masi belum smpet2 aja apdet orz
Kalo class sih masi agak jauhan :kabur:
[Tutorial] Ruby basic syntax - Page 2 Empty
PostRe: [Tutorial] Ruby basic syntax
Sponsored content 




[Tutorial] Ruby basic syntax - Page 2 Vide
 

[Tutorial] Ruby basic syntax

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 

Similar topics

+
Halaman 2 dari 2Pilih halaman : Previous  1, 2

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Creative Commons :: Tutorials-