Perhitungan Matematika di Bash
Bash adalah bahasa scripting yang kuat yang dapat digunakan untuk berbagai tugas, termasuk perhitungan matematis. Namun, bekerja dengan angka di Bash bisa menjadi tantangan, terutama ketika berhadapan dengan aritmatika titik-mengambang, bilangan besar, dan perhitungan yang rumit. Job
Bash memiliki beberapa alat bawaan untuk melakukan perhitungan matematis, seperti operator (( )) dan $(( )), perintah expr, dan perintah bc. Setiap alat memiliki kekuatan dan kelemahannya, dan memilih yang tepat dapat membuat perbedaan besar dalam hal kinerja dan akurasi.
Operator `(( ))` dan `$(( ))` adalah alat yang paling umum digunakan untuk melakukan bilangan bulat aritmatika di Bash. Mereka mendukung semua operasi aritmatika dasar, serta operasi dan perbandingan bitwise. Namun, mereka tidak mendukung aritmetika titik-mengambang, dan ketepatannya terbatas pada ukuran tipe bilangan bulat pada sistem Anda. Perintah `expr` adalah alat yang lebih kuat yang mendukung aritmatika floating-point, serta operasi string dan ekspresi reguler. Namun, ini lebih lambat daripada operator (( )) dan $(( )), dan hasilnya harus ditangkap menggunakan substitusi perintah. Perintah `bc adalah alat yang paling serbaguna untuk melakukan perhitungan matematis di Bash. Ini mendukung aritmatika presisi sewenang-wenang, bilangan kompleks, dan fungsi lanjutan, seperti fungsi trigonometri dan logaritmik. Namun, ini membutuhkan proses terpisah untuk diluncurkan, yang dapat memperlambat skrip Anda. Operasi Aritmatika
Bash menyediakan operasi aritmatika dasar seperti penjumlahan, pengurangan, perkalian, dan pembagian. Operasi ini dapat dilakukan dengan menggunakan sintaks ekspansi aritmatika $((ekspresi)). Misalnya, perintah berikut akan menambahkan 3 dan 4:
echo $((3 + 4))1echo $((3 + 4))
Ini akan menghasilkan 7.
Demikian pula, kita dapat melakukan operasi aritmatika lainnya seperti pengurangan, perkalian, dan pembagian:
echo $((6 - 2)) echo $((4 * 5)) echo $((12 / 3))123echo $((6 - 2))echo $((4 * 5))echo $ ((12 / 3))
Ini masing-masing akan menampilkan 4, 20, dan 4.
Variabel dan Operasi Matematika
Kita juga dapat menggunakan variabel dalam perhitungan matematika kita. Sebagai contoh:
a=5 b=2 echo $((a + b))123a=5b=2echo $((a + b))
Ini akan menghasilkan 7.
Kita juga dapat melakukan operasi pada variabel itu sendiri, seperti ini:
a=5 b=2 echo $((a *= b))123a=5b=2echo $((a *= b))
Ini akan menghasilkan 10. Variabel a sekarang memiliki nilai 10 setelah dikalikan dengan b .
Floating-Point Math Operations
Bash tidak mendukung operasi matematika floating-point, tetapi kita dapat menggunakan alat eksternal seperti bc dan awk untuk melakukan perhitungan ini.
`bc` adalah kalkulator baris perintah yang mendukung presisi arbitrer. Kita dapat menggunakannya untuk melakukan perhitungan floating-point seperti ini:
echo "scale=2; 10 / 3" | bc1echo "skala=2; 10/3" | bc
Ini akan menampilkan 3.33.
awk adalah alat pemrosesan teks yang kuat yang juga mendukung operasi matematika. Kita dapat menggunakannya untuk melakukan kalkulasi floating-point seperti ini:
echo "10.5 2.5" | awk `{printf "%.2fn", $1 / $2}`1echo "10.5 2.5" | awk `{printf "%.2fn", $1 / $2}`
Ini akan menampilkan 4.20.
Gunakan Fungsi untuk Menyederhanakan Kalkulasi Kompleks
Saat bekerja dengan kalkulasi kompleks di Bash, seringkali berguna untuk memecahnya menjadi fungsi yang lebih kecil dan lebih mudah dikelola. Fungsi memungkinkan Anda mengenkapsulasi blok kode dan menggunakannya kembali berkali-kali di seluruh skrip Anda, yang dapat membuat kode Anda lebih modular dan lebih mudah dipahami.
Misalnya, katakanlah Anda ingin menghitung luas lingkaran, berdasarkan radiusnya. Anda dapat membuat fungsi yang disebut "menghitung_area" yang menggunakan radius sebagai argumen dan mengembalikan area:
#!/bin/bash PI=3.14159 count_area() { local radius=$1 local area=$(echo "$PI * $ radius * $radius" | bc) echo $area } radius=5 area=$(menghitung_area $radius) echo "Luas lingkaran dengan radius $radius adalah $area"12345678910111213#!/bin/bash PI=3.14159 menghitung_area( ) { local radius=$1 local area=$(echo "$PI * $radius * $radius" | bc) echo $area} radius=5area=$(calculate_area $radius)echo "Luas lingkaran dengan radius $radius is $area"
Skrip ini mendefinisikan fungsi yang disebut count_area yang menggunakan radius sebagai argumen, menghitung luas menggunakan rumus A = πr^2, dan mengembalikan hasilnya. Bagian utama skrip kemudian memanggil fungsi dengan radius 5, menangkap keluaran menggunakan substitusi perintah, dan mencetak hasilnya ke layar.
Menggunakan Pernyataan Bersyarat untuk Penanganan Kesalahan
Saat melakukan perhitungan matematis di Bash, penting untuk menangani kesalahan dengan baik , terutama saat menangani input pengguna atau sumber data eksternal. Salah satu cara melakukannya adalah dengan menggunakan pernyataan bersyarat untuk memeriksa kesalahan dan memberikan umpan balik kepada pengguna.
Misalnya, Anda ingin menghitung faktorial sebuah angka, yang diberikan sebagai input pengguna. Anda dapat membuat skrip yang menggunakan loop untuk menghitung faktorial, dan pernyataan bersyarat untuk memeriksa kesalahan:
#!/bin/bash read -p "Enter a number: " num if ! [[ "$bil" =~ ^[0-9]+$ ]]; lalu gema "Kesalahan: `$num` bukan bilangan bulat yang valid" keluar 1 fi faktorial=1 untuk ((i=1; i
Referensi tecadmin.comArtikel Diperbarui pada: March 13, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani