## Pengantar

Ini adalah sebuah tutorial mini Ruby yang bisa diselesaikan tidak lebih dari
20 menit. Dengan asumsi Anda sudah menginstal Ruby. (Jika Anda belum menginstal
Ruby pada komputer Anda, [instalasi][installation] terlebih dahulu
sebelum Anda memulai.

## Ruby Interaktif

Ruby datang dengan sebuah program yang akan menampilkan hasil dari *statement*
Ruby apapun saat Anda memasukkannya. Bermain dengan kode Ruby pada sesi interaktif
seperti ini adalah salah satu cara terbaik untuk belajar bahasa pemograman.

Buka IRB (singkatan dari *Interactive Ruby*).

* Jika Anda menggunakan **macOS** buka `Terminal` dan ketik `irb`,
  kemudian tekan *enter*.
* Jika Anda menggunakan **Linux**, buka *shell* dan ketik `irb`,
  kemudian tekan *enter*.
* Jika Anda menggunakan **Windows**, buka `Interactive Ruby` dari
  bagian Ruby pada *Start Menu*.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span></code></pre></figure>

Baik, sekarang irb sudah dibuka. Lalu selanjutnya?

Ketik ini: `"Hello World"`

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span><span class="w"> </span><span class="s2">"Hello World"</span>
<span class="p">=&gt;</span> <span class="s2">"Hello World"</span></code></pre></figure>

## Ruby Mematuhi Anda!

Apa yang baru saja terjadi? Apakah kita baru saja menulis program
tersingkat di dunia berupa “Hello World”? Tidak persis begitu. Baris
kedua hanya sekedar cara IRB memberitahu hasil dari ekspresi terakhir
yang dievaluasi/dijalankan. Jika kita ingin mencetak “Hello World”
kita perlu tambahkan sedikit:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):002:0&gt;</span><span class="w"> </span><span class="nb">puts</span> <span class="s2">"Hello World"</span>
<span class="go">Hello World
</span><span class="p">=&gt;</span> <span class="kp">nil</span></code></pre></figure>

`puts` merupakan perintah dasar untuk mencetak sesuatu pada Ruby.
Kemudian apa artinya `=> nil`? Artinya adalah hasil dari ekspresi.
`puts` selalu mengembalikan nil, yang merupakan
*absolutely-positively-nothing value* pada Ruby.

## Kalkulator Gratis Anda Di Sini

Dengan IRB kita sudah cukup mempunyai kalkulator dasar:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):003:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">+</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">5</span></code></pre></figure>

Tiga tambah dua. Cukup mudah. Bagaimana dengan tiga *kali* dua? Anda
bisa mencoba dengan langsung mengetikkannya, cukup pendek, tetapi Anda
juga bisa mengganti apa saja yang baru saja Anda perintahkan di IRB.
Coba tekan **panah-atas** pada *keyboard* Anda dan lihatlah apakah IRB
memunculkan baris `3+2` lagi. Jika Ya, Anda dapat menggunakan panah-kiri
untuk berpindah ke setelah tanda `+` kemudian gunakan *backspace* untuk
menggantinya dengan tanda `*`.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):004:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">*</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">6</span></code></pre></figure>

Lanjut, mari kita coba tiga kuadrat:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):005:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">**</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span></code></pre></figure>

Di Ruby, `**` merupakan cara Anda mengatakan “pangkat dari”.
Tetapi bagaimana jika Anda ingin melakukannya dengan cara lain dan
mendapatkan akar dari suatu bilangan?

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):006:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">3.0</span></code></pre></figure>

Baik, tunggu dulu, bagaimana yang terakhir itu? Jika Anda menebak, “Kode
tersebut mencari sqrt (akar) dari 9”, berarti Anda benar. Tetapi mari
kita lihat lebih dekat. Pertama, apa itu `Math`?

## Module, Pengelompokan Kode Menurut Topik

`Math` merupakan *built-in* (bawaan) *module* untuk matematika. *Module* memiliki
dua tugas pada Ruby. Pertama, mengelompokkan *method* yang memiliki kemiripan
fungsi ke dalam sebuah nama yang sama. `Math` juga punya *method*, seperti `sin()`
dan `tan()`.

Selanjutnya adalah *dot* (titik). Apa yang *dot* lakukan? Dengan *dot*-lah,
Anda bisa mengidentifikasi *receiver* dari suatu *message*. Nah, kalau
*message* apa? Dalam hal ini, *message* adalah `sqrt(9)`, yang artinya
pemanggilan *method* `sqrt`, kependekan dari “square root” dengan
parameter `9`.

Hasil dari pemanggilan *method* ini adalah nilai `3.0`. Anda bisa perhatikan
nilai bukan cuma `3` (tanpa `.0`). Itu karena akar dari sebuah bilangan sering
bukan berupa bilangan bulat (*integer*), sehingga *method* ini selalu mengembalikan
bilangan desimal (*floating-point number*).

Bagaimana jika kita ingin mengingat hasil dari beberapa operasi
matematika ini? Caranya simpan hasilnya ke sebuah variabel.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):007:0&gt;</span><span class="w"> </span><span class="n">a</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span>
<span class="gp">irb(main):008:0&gt;</span><span class="w"> </span><span class="n">b</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">16</span>
<span class="gp">irb(main):009:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">5.0</span></code></pre></figure>

Sehebat kalkulator, kita sudah pergi dari pesan  `Hello World` yang biasanya
selalu saja kalau ada tutorial untuk pemula berfokus di sana…
[jadi mari kita kembali ke sana](2/).

[installation]: /id/documentation/installation/
