Bash Basics Seri #9: Fungsi Di Bash - Kamplongan

Bash Basics Seri #9: Fungsi di Bash

Sebagian besar bahasa pemrograman mendukung konsep fungsi.

Fungsi membantu Kalian menghindari penulisan kode yang sama berulang kali dalam program yang sama. Kalian menulis kode sekali sebagai fungsi dan kemudian menggunakan fungsi ini di mana Kalian memerlukan potongan kode tertentu.

Di bab terakhir seri Bash Basics, Kalian akan belajar tentang penggunaan fungsi dalam skrip bash.

Fungsi di bash

Inilah sintaks umum untuk mendeklarasikan fungsi bash:

function_name() {
  commands
}

Perintah di dalam fungsi hanya akan dijalankan jika Kalian ‘memanggil fungsi’ dalam skrip.

Berikut adalah kode dummy untuk menunjukkan bahwa:

function_name() {
  commands
}

some_other_commands

#FUNCTION CALL
function_name argument;

🚧

Definisi fungsi harus ada sebelum Kalian memanggil fungsi tersebut.

Mari kita lihat ini dengan contoh sederhana:

#!/bin/bash

fun() {
	echo "This is a function"
}

echo "This is a script"
fun

Ketika Kalian menjalankan skrip, Kalian akan melihat output seperti ini:

This is a script
This is a function

Fungsi dipanggil tanpa argumen. Mari kita lihat tentang menangani argumen dengan fungsi di bash.

Meneruskan argumen ke fungsi

Meneruskan argumen ke fungsi sama dengan meneruskan argumen ke skrip bash. Kalian menyebutkan argumen dengan nama fungsi saat Kalian memanggil fungsi tersebut.

function_name argument;

Mari kita lihat ini dengan sebuah contoh:

#!/bin/bash

sum() {
	sum=$(($1+$2))
	echo "The sum of $1 and $2 is: $sum"
}

echo "Let's use the sum function"
sum 1 5

Jika Kalian menjalankan skrip, Kalian akan melihat output berikut:

Let's use the sum function
The sum of 1 and 5 is: 6

Ingatlah bahwa argumen yang diteruskan ke skrip tidak sama dengan argumen yang diteruskan ke fungsi.

Dalam contoh di bawah ini, saya telah bertukar argumen saat memanggil fungsi.

#!/bin/bash

arg() {
	echo "1st argument to function is $1 and 2nd is $2"
}

echo "1st argument to script is $1 and 2nd is $2"
arg $2 $1

Dan saat Kalian menjalankan skrip, Kalian akan melihat pertukarannya:

abhishek@itsfoss:~/bash_scripts$ ./function.sh abhi shek
1st argument to script is abhi and 2nd is shek
1st argument to function is shek and 2nd is abhi

Fungsi rekursif di bash

Sebuah fungsi rekursif memanggil dirinya sendiri. Demikianlah apa yang dimaksud dengan rekursi. Meme ini dapat membantu Kalian memahaminya.

meme rekursi

Sekarang, fungsi rekursif cukup kuat dan dapat membantu Kalian menulis program yang rumit.

Mari kita lihat aksinya dengan skrip sampel yang menghitung faktorial sebuah angka. Jika Kalian tidak ingat, faktorial didefinisikan seperti ini.

factorial of n (n!) = 1 * 2 * 3 * 4 *...  * n

Jadi, faktorial dari 5 adalah 1 * 2 * 3 * 4 * 5 yang dihitung menjadi 120.

Inilah skrip saya untuk menghitung faktorial dari angka yang diberikan menggunakan rekursi.

#!/bin/bash

factorial() {
	
	if [ $1 -gt 1 ]; then
		echo $(( $1 * $(factorial $(( $1 -1 ))) ))
	else
		echo 1
	fi
	
}

echo -n "Factorial of $1 is: "
factorial $1

Perhatikan echo $(( $1 * $(factorial $(( $1 -1 ))) )). Kode memanggil fungsi itu sendiri dengan 1 nilai lebih sedikit. Proses berjalan hingga nilainya sama dengan 1. Jadi jika Kalian menjalankan skrip dengan argumen 5, pada akhirnya akan menghasilkan 5 * 4 * 3 * 2 *1.

abhishek@itsfoss:~/bash_scripts$ ./factorial.sh 5
Factorial of 5 is: 120

Itu bagus. Bagaimana dengan beberapa latihan?

🏋️ Waktu latihan

Berikut adalah beberapa contoh tantangan pembuatan skrip untuk melatih pembelajaran Kalian.

Latihan 1: Tulis skrip bash yang menggunakan fungsi bernama is_even untuk memeriksa apakah angka yang diberikan genap atau tidak.

Latihan 2: Latihan serupa di mana Kalian harus menulis skrip yang memiliki fungsi is_prime dan memeriksa apakah bilangan yang diberikan prima atau tidak. Jika Kalian belum mengetahuinya, bilangan prima hanya habis dibagi 1 dan bilangan itu sendiri.

Latihan 3: Tulis skrip yang menghasilkan deret Fibonacci dari angka yang diberikan. Urutan dimulai dari 1 dan skrip harus menerima angka lebih besar dari 3.

Jadi, jika Kalian melakukannya fibonacci.sh 5seharusnya menghasilkan 1 1 2 3 5.

Dan itu saja, teman-teman! Ini adalah akhir dari Bash Basics Series. Tentu saja, ini hanyalah puncak gunung es; ada lebih banyak bash scripting daripada yang Kalian pelajari di sini.

Tetapi Kalian harus memiliki ide yang bagus tentang bash shell sekarang. Kalian harus dapat memahami sebagian besar skrip bash dan menulis yang sederhana, jika tidak rumit.

Jika Kalian mau menyelam lebih dalam, tidak ada yang lebih baik dari GNU Bash Manual.

Manual GNU Bash – Proyek GNU – Free Software Foundation

🗨 Kami harap Kalian menyukai Seri Bash Basics ini. Kami membuat lebih banyak seri tutorial untuk memberi Kalian pengalaman belajar yang lebih efisien. Harap berikan umpan balik Kalian dan bantu kami membantu orang lain dengan linux.

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: