Kamis, 27 Oktober 2011

BAB VI

BAB VI
KESIMPULAN DAN SARAN

Dari uraian pada beberapa bab sebelumnya maka dapat ditarik kesimpulan tentang perencanaan, perancangan dan pembuatan system berbasis framework ruby yang sangat berguna untuk mendeskripsikan hasil dari pembuatan aplikasi yang ada dan untuk perkembangan system selanjutnya.

6.1  Kesimpulan
Kesimpulan yang dapat diambil selama proses pembuatan tugas akhir ini dimulai sejak perancangan, pembuatan sampai pengujian program aplikasi ini adalah sebagai berikut:
  1. Proses pelayanan yang ada pada Leksono Futsal mengenai pembooking bisa dilakukan dengan online.
  2. Data-data pada proses booking dapat tersiman denga baik dalam strore yang ada di dalam database dan admin dapat melihat data-data yang lama dengan mudah melalui action-action yang telah di sediakan.
  3. Dengan selesainya pembuatan system ini maka dapat meningkatkan efisiensensi waktu karena dapat dilakukan dimana saja sengan syarat keberadaan internet.
  4. Dengan adanya website ini maka keberadaan Leksono Futsal dapat lebih bersaing lagi diantara tempat penyewaan lapangan yang lain.

6.2  Saran
Dalam hal ini akan diberikan beberapa saran untuk kelanjutan proses dari keberadaan system, sehingga selanjutnya system yang telah selesai dibuat ini dapat menjadi lebih berkembang lagi menjadilebih baik. Saran-saran dari penulis tersebut antara lain :
  1. Oleh karena website ini belum dapat diakses dengan memanfaatkan teknologi webmobile, ini bisa menjadi space untuk dilakukan pengembangan agar website ini bisa diakses melalui aplikasi webmobile.
  2. Website yang telah dibuat dapat diberikan beberapa kemampuan  tambahan dan tidak hanya pada proses pembookingan, misalnya membuat menu untuk even liga dan perhitungannya.  
Aplikasi dapat dikembangkan dengan memasukkan harga dan perhitungannya di dalam aplikasi. 

BAB V

BAB V
UJI COBA

Uji coba sendiri berfungsi untuk mengetahui keberhasilan dan kekurangan dari aplikasi yang telah dibuat. Uji coba dilakukan untuk memastikan apakah yang dirancang sudah sesuai dengan yang direncanakan dan sesuai dengan kebutuhan pengguna. Uji coba dalam aplikasi booking  ini terdiri dari beberapa beberapa fasilitas melalui halaman-halaman dan menu yang telah dibuat.

5.1 Lingkungan Uji coba
Lingkungan Uji coba aplikasi ini dilakukan dengan apasaja yang digunakan pada implementasi yang dilakukan, lingkungan ujicoba tersebut yaitu antara lain:
·      Pemrograman menggunakan Ruby On Rails versi dengan menggunakan Netbeans IDE  7.0.
·      Web Editor menggunakan NetBeans IDE 7.0 dengan Web Server menggunakan Webrick . Dengan halaman situsnya http://localhost:3000/  Web Browser menggunakan Mozilla Firefox atau Crome.
·      Pada database yang digunakan, penulis menggunakan MySQL yang secara umum banyak digunakan.
·      Operating System menggunakan Microsoft Windows XP Professional Version 2002 Service Pack2, Bios Version 1.70, Processor AMD Turion (tm) 64 X2 Mobile Technology TL-60, MMX, 3DNow (2 CPUs), ~2.0GHz, Memory 894 RAM.

5.2 Proses Uji Coba
Proses uji coba adalah cara kerja atau alur dalam website booking ketika member mengakses website tersebut.

BAB IV

BAB IV
IMPLEMENTASI PERANGKAT LUNAK


Pada bab ini akan membahas tentang implementasi program dari hasil analisis dan perancangan sistem pada bab III, serta bagaimana cara sistem tersebut dijalankan. Perancangan aplikasi website dikembangkan dalam lingkungan pemrograman dengan spesifikasi teknis sebagai berikut ini :
a.       Proses Instalasi, pada proses ini beberapa pengistalan ruby beserta framework compatible, kemudian dilanjutkan pada instalasi kebutuhan database dan disini penulis menggunakan MySQL beserta SQLyog sebagai sarana pengolahan database setelah semua selesai maka yang terakhir dilanjutkan denga proses instalasi NetBeans IDE 7 sebagai debugger dan desain aplikasi website.
b.      Proses pembuatan antar muka layanan booking online, Pada proses ini akan menjelaskan pembuatan antar muka yang nantinya akan digunakan mengolah data pada web browser.
c.       Implementasi aplikasi system jadi, Pada proses ini akan menjelaskan beberapa proses yang menyangkut pengisian data dan pembokingan oleh member melalui browser yang telah ada.

4.1  Lingkungan Implementasi Sistem

Dalam hal ini terdapat beberapa yang digunakan untuk pengujian dan pembuatan system, disini yang berhubungan dengan system yaitu :
a.       Windows XP Profesional Edition dan OS setara sebagai sistem operasi.
b.      Rational Rose 2000 untuk pembuatan desain.
c.       Power designer 15.
d.      Perangakat Ruby On Rails sebagai web development tool.
e.       MYSQL sebagai database.
f.       SQLyong sebagai frontend software untuk pengolahan database.
g.      NetBeans IDE 7.0 sebagai debugger dan desain aplikasi web.

4.2  Implementasi Proses
Yang dimaksudkan disini yaitu proses realisasi dari beberapa gambaran-gambaran atau rancangan alur progam yang telah dibuat sebelumnya (analisa sistem). Sebelum beranjak pada pemrograman system yang musti dibuat adalah membuat project pada ROR (Ruby on Rails) dengan eksekusi perintah seperti pada umumnya yaitu rails [nama_project] misalnya membuat project rails dengan nama Leksono.

rails leksono


Setelah project berhasil dibuat maka proses selanjutnya adalah configurasi database.

rake db:create
rake db:migrate


Database yang telah dibuat sebelumnya diletakkan di server, selanjutnya harus dapat diakses untuk digunakan pada aplikasi. Berikut ini adalah koneksi database pada aplikasi ini, file tersebut diletakkan di dalam file database.yml pada config directory.

# MySQL.  Versions 4.1 and 5.0 are recommended.

  ... ...

# And be sure to use new-style password hashing:

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: leksono_development
  pool: 5
  username: root
  password: 1234
  host: localhost

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run
    "rake".
# Do not set this db to the same as development or production.

test:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: leksono_test
  pool: 5
  username: root
  password: 1234
  host: localhost

production:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: leksono_production
  pool: 5
  username: root
  password: 1234
  host: localhost


Pada script yang ada diatas terdapat 3 penempatan konfigurasi database yaitu development, test dan production. Secara umum konfigurasi yang mencakup keseluruhan. Pada tahap pengembangan ini database yang digunakan adalah development ,sedangkan yang test digunakan ketika proses tes aplikasi dan yang Production ketika proses produksi. Untuk melakukan pengecekan apakah database dapat berjalan atau tidaknya adalah dengan membuka alamat http://localhost:3000/ .

4.3  Implementasi Model View Controller (MVC)
Didalam framework rails ini pada dasarnya menggunakan penerapan metode MVC yang merupakan metode dalam membangun website aplikasi. Adapun cara kerjanya sebagai berikut: halaman interaksi yang merupakan bentuk dari View akan mengirimkan request ke controller sesuai dengan action yang diberikan user. Controller  merespon aksi dari view dengan cara berkomunikasi dengan model. Komunikasi dapat berupa mengakses, mengubah, menambah data yang tersimpan oleh model. Controller  akan memanggil view index dan file yang sesuai, untuk selanjutnya ditampilkan pada user interface sebagai output yang dapat dilihat oleh user. Pada implementasinya MVC dapat dibuat satu persatu atau bisa juga dibuat dengan sekaligus dengan memanfaatkan fasilitas eksekusi scaffold, yaitu ruby script/generate scaffold <table name in singular / name of the controller>, misalnya :

ruby script/generate scaffold member


4.3.1    Implementasi Model
            Model mewakili data yang diproses oleh suatu aplikasi. Menyediakan suatu link penyimpanan data . Untuk menambahkan pemetaan hubungan antar kelas pada setiap model, misalnya pada model Member ( member.rb ), didalamnya  akan terlihat kode berikut:

class Member < ActiveRecord::Base
   has_many :events

  validates_length_of :login, :within => 3..40
  validates_length_of :password, :within => 5..40
  validates_presence_of:login,:email,:password,
  :password_confirmation, :salt
  validates_uniqueness_of :login, :email
  validates_confirmation_of :password
  validates_format_of :email, :with => /^([^@\s]+)@((?:
        [-a-z0-9]+\.)+[a-z]{2,})$/i, :message => "Invalid email" 
 
  attr_protected :id, :salt
  attr_accessor :password, :password_confirmation
 
   def self.random_string(len)
   #generate a random password consisting of strings and digits
   chars=("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
   newpass = ""
   1.upto(len) { |i| newpass << chars[rand(chars.size-1)] }
   return newpass
    end
    def password=(pass)
   @password=pass
   self.salt = Member.random_string(10) if !self.salt?
   self.hashed_password=Member.encrypt(@password, self.salt)
    end
    def self.encrypt(pass, salt)
   Digest::SHA1.hexdigest(pass+salt)
    end
    def self.authenticate(login, pass)
   u=find(:first, :conditions=>["login = ?", login])
   return nil if u.nil?
return u if Member.encrypt(pass, u.salt)==u.hashed_password
   nil
    end 
    def send_new_password
   new_pass = Member.random_string(10)
   self.password = self.password_confirmation = new_pass
   self.save
   Notifications.deliver_forgot_password(self.email,
   self.login, new_pass)
 end 
    end


Dari code diatas, maka dapat dijelaskan bahwa, terdapat beberapa pengecekan kecocokan (validasi) yang tampak yaitu jumlah dan baris yang data diisikan,  tinggkat uniquity. Selain itu yang tampak pada code tersebut direlasikan dengan event (hal_many pada member dan belong_to pada models event) yang dalam hal ini adalah untuk proses booking, enskripsi password, dan newpassword.

4.3.2 Implementasi View
            View merupakan representasi visual dari user interface atau tampilan dari suatu aplikasi. Untuk implementasi view akan dipanggil sesuai dengan action dari controllernya.
Untuk membuat tampilan lebih menarik agar lebuh terlihat menjadi website yang user friendly pengunjung kepada  perlu dilakukan penambahan beberapa code pada setiap moduls yang terdapat pada member seperti yang diperintahkan. Sedikit memberikan gambaran, dapat dilihat pada contoh code berikut ini.

<h3><%= @page_title = "Daftar" %></h3>

<% form_tag :action=> "signup" do %>
<%= error_messages_for 'member' %><br/>
<%  content_tag :label do-%>Nama Lengkap<br/>
<%= text_field "member", "mem_nama" %><br/><% end %>
<% content_tag :label do -%>Telp<br/>
<%= text_field "member", "mem_telp" %><br/><% end %>

  <label>alamat</label><br/>

<%= text_field "member", "mem_alamat" %><br/>
<label>Username</label><br/>
<%= text_field "member", "login", :size => 20 %><br/>
<label>Password</label><br/>
<%= password_field "member", "password", :size => 20 %><br/>
<label>Password Confirmation</label><br/>
<%=password_field"member","password_confirmation",:size=>20%><br/>
<label>Email</label><br/>
<%= text_field "member", "email",  :size => 20 %><br/><br/>
<%= submit_tag "Daftar" %>
<% end %>


Code yang ditampilkan sebagai contoh view tersebut adalah contoh dari View Member Sign Up (signup.html.rb)

4.3.3    Pembuatan Controller
            Controller berfungsi sebagai control flow logic, yaitu sebagai pengatur keputusan mengenai view mana yang harus dipanggil untuk menampilkan data tertentu dalam action view, berperan sebagai perantara dari aplikasi dan mengambil tiap request. Lalu memanggil model  yang cocok untuk meng-update atau mengambil data. Setelah itu memilih view yang cocok untuk menampilkan data. Berikut ini potongan program controller pada member_controller:
class MemberController < ApplicationController
layout 'publik'
  def index
    @berita = Berita.find(:all, :order => 'updated_at DESC')
    #redirect_to_stored
  end
  def signup
    @member = Member.new(params[:member])
    if request.post?
    if @member.save
       flash[:message] = "Pendaftaran berhasil"
       redirect_to :action => "welcome"
      else
        flash[:warning] = "Signup Gagal"
      end
    end
  end
  def login
    if request.post?
    if session[:member] =      
    Member.authenticate(params[:member][:login],params[:member]
[:password])
      flash[:message]  = "Terima kasih telah login"
      redirect_to :controller => "events"
      else
        flash[:warning] = "Login unsuccessful"
      end
    end
  end
  def logout
    session[:member] = nil
    flash[:message] = 'Logged out'
Dan sebagai lanjutan dari code member_controller pada halaman sebelumnya adalah sebagai berikut :

    redirect_to :controller => 'member', :action => 'index'
  end
def forgot_password
    if request.post?
      u= Member.find_by_email(params[:member][:email])
      if u and u.send_new_password
       flash[:message] = "A new password has been sent by email."
        redirect_to :action=>'login'
      else
        flash[:warning]  = "Couldn't send password"
      end
    end
  end
  def change_password
      @member=session[:member]
      if request.post?
      @member.update_attributes(:password=>params[:member]
[:password], :password_confirmation => params[:member]
[:password_confirmation])
      if @member.save
        flash[:message]="Password Changed"
      end
    end
  end



4.4  Implementasi Aplikasi Desain Antar Muka
            Pada sub bab implementasi desain antarmuka ini menjelaskan beberapa form yang terlihat dalam aplikasi tersebut yang dapat menampilkan beberapa aplikasi form, didalam user interface yaitu:

4.4.1 Form Tampilan Halaman Utama
            Seperti yang telah digambarkan dan dijelaskan pada bab III mengenai rancangan user interface maka implementasinya

BAB III

BAB III
ANALISIS DAN PERANCANGAN SISTEM

Untuk membuat aplikasi pada Proyek Tugas Akhir ini, terlebih dahulu dilakukan analisis sistem, kemudian analisis kebutuhan, perancangan sistem dan yang terakhir adalah perancangan antarmuka. Analisis sistem berguna untuk mengetahui data apa saja yang dibutuhkan dalam proses implemetasi nantinya. Analisis kebutuhan berguna untuk melakukan identifikasi user dan menentukan variabel kebutuhan untuk input ataupun output user. Perancangan sistem berguna untuk mengintegrasikan semua proses-proses yang terjadi, kemudian dilakukan perancangan database. Perancangan antarmuka, digunakan sebagai jembatan antara pengguna dengan sistem aplikasi yang dibuat, sehingga pengguna dapat mengoperasikan aplikasi yang dibuat.


3.1              Analisis Sistem
Membangun website yang dimaksud dalam perancangan tugas akhir ini adalah dengan memberikan fasilitas kepada instansi terkait dan pelanggan dalam bidang penyewaan lapangan futsal yang sebagian besar dari pelanggan adalah orang-orang yang mulai mengenal teknologi. Dalam hal ini penulis mencoba untuk merancang sebuah aplikasi dengan menggunakan Ruby On Rails atau disebut juga dengan Framework Rails saja, dengan tidak mengabaikan kebutuhan oleh user itu sendiri.
Aplikasi berbasis website ini dibuat sedemikian rupa agar dapat memudahkan setiap pengunjung yang telah menjadi member untuk melakukan booking secara online tanpa harus datang ke instansi penyewaan tersebut.
3.2              Analisis Kebutuhan
Adapun pendukung dalam perancangan dan pembangunan website interaktif  ini adalah hasil analisis terhadap kebutuhan-kebutuhan user. Analisis yang dimaksud tersebut adalah sebagai berikut :

3.2.1        Identifikasi User
Sistem sangat membutuhkan user sebagai pelaku sistem, adapun identifikasi yang dilakukan terhadap user utama pada aplikasi, yaitu :
a.       Member
Berhak melakukan login terhadap sistem karena sudah terdaftar dengan aturan-aturan yang menjadikan customers biasa tersebut menjadi member, sehingga dapat melakukan booking secara online.
b.      Admin
Disini adalah orang yang telah menjadi petugas untuk mengatur website dan mempunyai hak akses sepenuhnya terhadap website aplikasi.  
c.       Guest
Pengunjung website aplikasi yang memiliki ruang akses yang sangat terbatas, yaitu hanya dapat melihat beberapa konten saja yang tersedia tanpa bisa melakukan booking lapangan.

3.2.2        Variabel Kebutuhan Input dan Output User
Selain sistem membutuhkan user sebagai pelaku, sistem juga membutuhkan inputan yang nantinya akan diproses oleh sistem dan sistem akan meresponnya berupa output yang sesuai dengan permintaan user. Adapun variabel input dan output tersebut, adalah :
a.       Member
1)      Input          :
-       User id dan password sebagai member (login).
-       Add booking lapangan.
2)      Output       :
-    Informasi jadwal lapangan
-    Data hasil booking (konfirmasi hasil booking)
-    View berita
b.      Admin
1)      Input          :
- Menginputkan user_id dan password (Login).
- Memasukkan berita-berita.
- Manipulasi data booking.
- Input Data Lapangan
2)      Output       :
- Informasi detail profil user (admin, member).
- Keseluruhan data termasuk jadwal.
- Data history member.
- Informasi data booking.
- Data berita.
c.       Guest
1)      Input : -
2)      Output :
-    View berita

3.3              Perancangan Sistem
Di dalam rancang bangun website interaktif ini, dibuat dengan beberapa perancangan yang bermaksud untuk menjelaskan dan menggambarkan sistem secara umum dan menyeluruh, sistem perancangan tersebut diantaranya adalah Use case, activity diagram, Conceptual Data Model (CDM), Physical Data Model (PDM) serta design interface.

3.3.1        Use Case Diagram
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor.
Use case merepresentasikan operasi-operasi yang dilakukan oleh actor. Use case digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case. Dalam system ini use case dibagi menjadi dua bagian, yaitu use case untuk admin dan use case untuk pengunjung. 

a.      Use Case Diagram Booking Online Admin
Use case diagram yang digunakan pada website booking untuk admin pada ”Leksono Futsal”

BAB II

TINJAUAN PUSTAKA

Dalam hal ini akan dijelaskan beberapa teori yang kemudian akan menjadi acuan dalam pembuatan web aplikasi sehingga aplikasi dapat dijalankan dengan baik. Disini penulis akan mencoba menggunakan beberapa teori diantara beberapa teori yang ada, adalah ruby yaitu bahasa pemrograman yang dipakai dalam pembuatan web aplikasi pada “Leksono Futsal” dan yang lain diantaranya adalah diagram-diagram analisis basis data yang dipakai pada tahap analisis sistem yang akan dibuat, rails yang tak lain adalah framework yang dibangun dalam bahasa pemrograman ruby atau yang disebut dengan framework ruby on rails, serta beberapa pendukung lain yang saling berkaitan antara satu dengan yang lain.

2.1    Bahasa Pemrograman Ruby
Ruby merupakan bahasa yang seimbang. Pencipta Ruby, Yukihiro “Matz” Matsumoto, menggabungkan bagian-bagian dari bahasa-bahasa favorit beliau (Perl, Smalltalk, Eiffel, Ada dan Lisp) untuk membentuk bahasa baru yang seimbang antara pemrograman fungsional dengan pemrograman imperatif. Matz sering menyebutkan bahwa beliau sedang “mencoba membuat Ruby natural, bukan sederhana,” dengan cara membuatnya mirip dengan kehidupan nyata.Sejak Ruby pertama kali dirilis ke publik pada tahun 1995, banyak programmer profesional dari seluruh dunia serius ikut mengembangkan Ruby. Pada tahun 2006, Ruby diterima oleh banyak orang. Dengan komunitas pengguna Ruby yang aktif di banyak kota-kota di seluruh dunia dan konferensi-konferensi beserta pertemuan Ruby terkait, terdapat beberapa fungsi yang yang dapet dijalankan pada bahasa pemrograman ini.

2.1.1.      Variable
Layaknya bahasa pemrograman yang lain di dalam ruby juga terdapat beberapa variabel perbedaannya bahasa pemrograman lain seperti C dan Java, di dalam Ruby kita dapat langsung mendefinisikan sebuah variable tanpa menentukan tipenya. Anda dapat mencobanya langsung melalui irb2.

$irb> a = 2
$irb> b = 2
$irb> a + b
$=> 4


Selain pada contoh diatas, bisa juga membuat tipe data string secara langsung seperti contoh script dibawah ini.

$irb> a = “hehe”
$irb> a.length
$=> 4

$irb> a.reverse
$=> “eheh”

$irb> a
$=> “hehe”


Di dalam Ruby kita mengenal istilah symbol. Symbol ini akan sering sekali ditemukan di dalam Ruby On Rails. Sering digunakan sebagai semacam konstanta pengganti string.

$irb> a = :test
$irb> a != :test
$=> false

$irb> a == :test
$=> true

Symbol ini bisa dibilang lebih hemat memori dibandingkan dengan String. Di dalam Ruby kita akan sering menemukan symbol dalam sebuah pemanggilan method. Selain itu kita juga akan sering menggunakan symbol sebagai sebuah key dalam hash. Kedua hal ini sering membuat bingung orang-orang yang pertama kali mempelajari Ruby.

2.1.2.      Array dan Hash
Di dalam Ruby bisa dikatakan bahwa array sangat terkait dengan simbol [] sedangkan hash dengan {}. Hal itu disebabkan karena memang itulah salah satu cara untuk menginisialisasi array dan hash.

$irb> a = []
$=> []
$irb> a = Array.new
$=> []

$irb> a = [47, 77, 17]
$=> [47, 77, 17]

$irb> a << 107
$=> [47, 77, 17, 107]

$irb> a.length
$=> 4

$irb> a.sort
$=> [17, 47, 77, 107]

Pada contoh diatas terlihat bahwa bisa juga melakukan inisialisasi array dengan memanggil method new( ). Selanjutnya dapat ditambahkan elemen pada array dengan menggunakan operator <<.
Berbeda dengan array, pada hash memiliki pasangan key dan value. Dalam Ruby hash ini seringkali dipakai sebagai parameter dalam pemanggilan sebuah method.


$irb> a = {}
$=> {}
$irb> a = Hash.new
$=> {}

$irb> a = {:keren => “abis”}
$=> {:keren => “abis”}
$irb> a[:manthab] = “jaya”
$=> “jaya”

$irb> a[:keren]
$=> “abis”
$irb> a[:manthab]
$=> “jaya”

Pada contoh sebelumnya terlihat bahwa kita digunakan symbol sebagai key. Namun, bisa juga dengan melakukan hal yang sebaliknya sebagimana yang terlihat pada contoh berikut ini.

$irb> a[“keren”] = :jaya
$=> :jaya
$irb> a
$=> {:keren=>"abis", "keren"=>:jaya, :manthab=>"jaya"}


Sama seperti array  method length( ) dapat juga dipakai untuk melihat jumlah data yang  ada di dalam hash.

$irb> a.length
$=> 3


2.1.3.      Control Structure
Sampai sini sebenarnya masih bisa menggunakan irb. Contoh penerapanya adalah dengan membuat sebuah file Ruby bernama coba1.rb.

a = ARGV[0].to_i
if a > 7
puts "#{a} lebih besar dari 7"
elsif a < 7
puts "#{a} lebih kecil dari 7"
else
puts "#{a} sama dengan 7"
end
Bisa dilihat bahwa Ruby mengenali elsif bukan else if. Pada kode diatas dapat dilakukan substitusi nilai a di dalam tanda kutip dengan cara “#{a}”.
$ruby coba1.rb 8
$8 lebih besar dari 7

Setiap programer akan sering menggunakan looping di dalam aplikasinya. Salah satu caranya adalah dengan menggunakan for. Dapat diterapkan dengan  cara membuat file baru coba2.rb yang di dalamnya berisi dengan code seperti berikut:

for i in 1..10 do
puts "#{i}"
end


Ketika dijalankan, program ini akan mencetak angka 1 sampai dengan 10 ke layar. Selain for ada juga yang menggunakan while untuk melakukan looping. Berikut ini adalah contoh penggunaannya dalam file coba3.rb dengan hasil yang kurang lebih sama dengan coba2.rb.

i = 1
while i <= 10
puts i
i = i + 1
end


2.1.4.             Method
Sebuah method dideklarasikan dengan menggunakan keyword def dan diakhiri dengan end. Sebagai contoh dibuat file baru coba4.rb.

def coba_method(name)
puts "coba #{name}"
end
a = "Jaya!"
coba_method(a)
coba_method("Dunks!")

Ketika dieksekusi, program diatas akan mengahasilkan output kurang lebih sebagai berikut:
coba Jaya!
coba Dunks!

Untuk me-return sebuah nilai, kita hanya perlu menuliskan nilai (atau variable) tersebut di dalam method.

def kali_dua(nilai_awal)
kali_dua = nilai_awal * 2
kali_dua
end
kali_dua = kali_dua(4)
puts "kali dua #{kali_dua}"


Hasil eksekusi dari program ini adalah:

kali dua 8


Sebenarnya bisa juga dibuat keyword return untuk me-return sebuah nilai dari method.

2.1.5.             Classes
Deklarasi sebuah kelas dimulai dengan class dan diakhiri dengan end. Sebagai contoh adalah dengan membuat sebuah kelas Mahasiswa pada file mahasiswa.rb.

class Mahasiswa
def initialize(nama, npm)
@nama = nama
@npm = npm
end
def cetak_info
puts "Nama: #{@nama}"
puts "NPM: #{@npm}"
end
end

Instance variable dari sebuah kelas dideklarasikan dengan ‘@’ yang akan membuatnya bisa diakses oleh semua instance method yang ada di kelas tersebut. Namun instance variable tersebut tidak akan bisa diakses dari luar kelas. Untuk bisa melakukan itu maka perlu membuat accessor method. Tambahkan kedua method ini pada kelas Mahasiswa yang telah dibuat.

def nama=(nama_baru)
@nama = nama_baru
end
def nama
@nama
End

Dapat diuji dengan  method ini dengan melakukan pemanggilan method seperti dibawah ini.

mhs = Mahasiswa.new("Si Bocung","1203000439")
mhs.cetak_info
mhs.nama = "Si Bocah"
# mengubah nama menjadi Si Bocah

mhs.cetak_info
nama = mhs.nama
# method ini akan mereturn Si Bocah sebagai nama

puts nama


Namun untuk mendefinisikan method setter dan getter bagi setiap variable adalah pekerjaan yang melelahkan. Oleh karena itu Ruby menyediakan method attr_accessor() untuk memudahkan kita. Selain penjelasan-penjelasan yang ada diatas,  maka terdapat banyak hal lain mengenai class ini yang tidak mungkin dijabarkan seluruhnya pada bab yang ada di dalam laporan ini. Untuk lebih memudahkan programer dalam menggunakan bahasa pemrograman ruby ini, maka diperlukan suatu framework untuk pembangunan suatu aplikasi yang utuh sehingga dalam proses pembuatan tugas akhir ini menggunakan framework yang berkonfigurasi dengan bahasa pemrograman ruby, dalam hal ini digunakan framework ruby on rails atau lebih disingkat rails saja (http://ilmukomputer.com/2006/08/24/pengenalan-ruby-on-rails/,(On-line)).