Dalam pembahasan ini akan dibedakan dua jenis pangkat a^b, yaitu untuk b berupa bilangan bulat non negatif dan a berupa bilangan riil.
Untuk a^b dengan b bilangan bulat non negatif, tentu saja berlaku:
a^b = a x a x … x a
dengan jumlah perkalian a sebanyak b kali.
Apabila untuk kasus pertama ini diimplementasikan dengan program Pascal, maka kasus ini dapat teratasi dengan perulangan. Berikut ini adalah function untuk menghitung pangkat berupa bilangan bulat non negatif dengan Pascal:
function pangkatBulat(a : real, b : integer) : real; var i : integer; temp : real; begin temp := 1; for i := 1 to b do begin temp := temp * a; end; pangkat := temp; end;Jika Anda perhatikan pada function di atas, maka terdapat perintah temp := temp * a; Proses ini dilakukan b kali, dengan nilai awal temp adalah 1. Mengapa demikian? Untuk menjawab ini kita ambil contoh kasus. Sebagai contoh misalkan akan dicari 3^4 (a = 3 dan b = 4). Hasil perpangkatan ini akan diperoleh dari perkalian 3 x 3 x 3 x 3. Berikut ini adalah proses perhitungannya dengan menggunakan algoritma yang diambil dari program di atas:
temp = 1 perulangan pertama (i = 1) temp = temp x a = 1 x 3 = 3 perulangan kedua (i = 2) temp = temp x a = 3 x 3 = 9 perulangan ketiga (i = 3) temp = temp x a = 9 x 3 = 27 perulangan keempat (i = 4) temp = temp x a = 27 x 3 = 81Nah.. dari hasil di atas benar bahwa hasil perhitungan 3^4 = 81. Dengan algoritma ini, bisa diimplementasikan pada sebarang nilai a dan b (a riil dan b bulat non negatif).
Selanjutnya bagaimana dengan b yang berbentuk bilangan riil? misalnya 4^1.5? Hmmm… kalau yang ini gak bisa pakai algoritma sebelumnya karena kesulitan mengimplementasikan ke bentuk perulangan. Lantas bagaimana?
OK… untuk menjawab ini mari kita ingat kembali pelajaran di SMA mengenai konsep Ln atau Log dan juga eksponen. Sekarang kita gunakan konsep Ln ini ke masalah kita. Dalam hal ini kita akan mencari nilai y = a^b. Perhatikan:
y = a^b
<=> Ln y = Ln (a^b)
<=> Ln y = b Ln(a)
<=> e^(Ln y) = e^(b Ln(a))
<=> y = e^(b Ln(a))
Dari langkah di atas, kita sudah dapatkan formulasi baru untuk mencari y = a^b dengan b adalah riil. Dalam Pascal telah tersedia function exp() untuk mencari nilai eksponensial, serta function Ln() untuk mencari nilai logaritma bilangan natural. Sehingga implementasinya ke Pascal adalah:
function pangkatRiil(a : real, b : real) : real; begin pangkatRiil := exp(b * ln(a)); end;Selanjutnya akan kita implementasikan function-function di atas di program Pascal:
Program MencariPangkat; Var x : real; y : integer; z : real; function pangkatBulat(a : real, b : integer) : real; var i : integer; temp : real; begin temp := 1; for i := 1 to b do begin temp := temp * a; end; pangkat := temp; end; function pangkatRiil(a : real, b : real) : real; begin pangkatRiil := exp(b * ln(a)); end; Begin x := 5; y := 3; z := 3.5; Write(’Nilai ‘,x,’ pangkat ‘,y,’ adalah ‘, pangkatBulat(x,y):3:0); Write(’Nilai ‘,x,’ pangkat ‘,z,’ adalah ‘, pangkatRiil(x,z):3:4); End.Terimakasih telah menyimak tulisan ini, semoga bermanfaat
0 Komentar