April 20, 2017

Programming Lua part 2

Kemarin saya tulis tentang syntax dasar lua sekarang saya akan menulis tentang pembuatan fungsi pada lua, fungsi adalah subsquence yang kita gunakan untuk mengorganisir squence yang kita buat supaya kita bisa menggunakan squence tersebut tanpa menuliskannya berulang jadi kita tinggal memanggil fungsi tersebut kapanpun kita butuh.

Saya akan mencontohkan membuat fungsi untuk melakukan operasi faktorial dan saya akan menggunakan fungsi rekursif sekalian. Apa itu fungsi rekursif? Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri dalam squencenya.

baiklah kita buat file faktorial.lua ketik aja pada terminal nano faktorial.lua

 #!/usr/bin/env lua5.2  
 function faktorial(x)  
   if x == 0 then  
    return 1;  
   else   
    return x * faktorial(x-1)  
   end  
 end  
 io.write("Masukkan Angka : ");  
 a = io.read("*number");  
 print(faktorial(a));  
 output:  
 Masukkan Angka : 2  
 2  

function faktorial(x) disini kita mendefinisikan faktorial sebagai fungsi dengan parameter x jadi untuk menggunakan fungsi faktorial ini kita harus memasukkan parameter agar fungsi ini berjalan sebagaimana mestinya, if else kita gunakan sebagai suatu percabangan dari kondisi yang dimiliki parameter tersebut misalnya si parameter x tadi bernilai 0 apa yang akan dikerjakan komputer jika fungsi itu 0 maka diperlukan percabangan untuk menentukan action tiap kondisi tersebut nah dalam contoh ini action kita mereturn 1 atau kita memberikan hasilnya kepada si pemanggil dengan nilai 1 kenapa 1 bukan 2,3,4 atau yang lainnya? karena kita mendefinisikan faktorial dimana faktorial 0 adalah 1, nah kalo ternyata si x ini bernilai 2 dan itu tidak memenuhi syarat dari si if yang mensyaratkan harus sama dengan 0 maka masuk ke bagian else nah di else kita membuat action me return si dengan hasil dari x dikalikan dengan faktorial dari x - 1 faktorial disini adalah fungsi yang kita buat jadi bisa dikatakan kita menggunakan fungsi faktorial kenapa musti minus satu kenapa tidak plus 1 karena untuk mencegah itu memanggil fungsi tersebut berulang-ulang tampa berkesudahan tapi kalo kita memasukkan parameter dengan x minus 1 maka dia akan berhenti di if x==0 yang mereturn 1 begitu kira-kira penjelasannya hehe, dalam contoh tersebut return yang kita berikan adalah sebagai berikut 2 kali faktorial(1) kemudian menjadi 2 kali 1 kali faktorial(0) yang pada ahirnya menjadi 2 kali 1 kali 1 = 2.

io.write() adalah fungsi yang digunakan untuk menampilkan kedalam monitor tanpa newline berbeda dengan print yang menyertakan newline
a = io.read("*number"); kita membaca inputan keyboard dan hanya mengambil yang angka  saja kemudian dimasukkan kedalam variabel a kalo kita masukkan huruf maka akan terjadi galat karena tidak ada yang diambil dan variabel a bernilai null aka nil dalam lua sehingga fungsi yang kita buat tidak berfungsi atau terjadi galat
print(faktorial(a)); kita mencetak hasil return dari fungsi faktorial yang kita buat dengan parameter a dimana a merupakan hasil dari inputan keyboard

demikian tulisan saya semoga mudah dipahami.

Tidak ada komentar:

mencoba menggunakan zram di raspberry pi

saya beberapa hari yang lalu mencoba mengaktifkan zram untuk membuat cadangan jika ram udah hampir penuh untuk dipindah ke zram, sejauh ini...