Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP


Function Menghitung Pangkat Bilangan dengan Pascal


July 26th, 2008 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

Pada artikel ini akan dibahas tentang bagaimana membuat program Pascal untuk menghitung pangkat bilangan.

Seperti yang kita ketahui bahwa dalam Pascal tidak ada suatu function atau perintah tertentu untuk menghitung pangkat bilangan secara langsung. Dengan demikian kita harus membuat function sendiri untuk menghitung pangkat bilangan tersebut.

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, <strong>b : integer</strong>) : 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 = 81

Nah.. 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, <strong>b : real</strong>) : 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, <strong>b : real</strong>) : 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.

OK… mudah-mudahan penjelasan di atas dapat bermanfaat.




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Memformat Bilangan dengan Function number_format()
Mengatur Digit Desimal Bilangan Real di PHP
Tentang Function str_replace()
Mengambil Substring dari Suatu String dengan Function substr()
Penggunaan Function REPLACE() di SQL

Kata kunci:


Ada 13 komentar dalam artikel ini.



  1. maoel says:

    ya elah pake di disabled segal klik kanannya??
    ttep aj gampang banget wt di ambil jga data2 u

    didownload html u
    di ubah deh source code ny
    diapus2 aj code anti klik kananny
    hhe

  2. rosihanari says:

    maaf mas… tujuan utama saya disable klik kanan dan select text nya untuk mengurangi copy paste ke blog lain, tanpa seijin saya dan tanpa mencantumkan blog saya sebagai referensi. Saya telah menemukan beberapa blog yang melakukan copy paste tanpa seijin saya dan tanpa mencantumkan blog saya sebagai referensi.

    Selain itu, tujuan saya untuk melakukan disable klik kanan dan select text supaya pengunjung yang ingin belajar program tidak asal copy paste saja, namun ada usaha untuk mengetik sendiri. Dengan mengetik sendiri, diharapkan pengunjung ada usaha untuk memahami scriptnya.

  3. ecco says:

    tanksssssss

  4. Naldy says:

    trims atas ilmu yg diberikan, sangat jelas bahkan baris demi baris juga dijelaskan.
    Alhamdulilah

  5. Anak Baik says:

    Mas, kalau soal perpangkatan ini, saya punya soal yang output range perpangkatannya sampai 10 ^ 1000. Kalau begitu tipe data apa yang harus saya gunakan? Terimakasih

  6. too says:

    Pak..!!
    perbedaan masing masing sort apa sih??

    boble short?
    selectopn Sort ?
    dan yang tiga lagi apaan sihh

    aq jadi bedainnya??
    apalagi di tanya ke stuktur datanya, uaduhh
    jadi bingung deh pak.

    tolong ya pak!

  7. agus says:

    makasiiihhhhh yyy

  8. azharahmedd says:

    sangat membantu,,,
    thanks…
    mari berbagi ilmu untuk kecerdasan bangsa..heee

  9. ria Dzulfyani says:

    tolong bantu saya untuk soal ini
    program untuk menampilkan tabel perhitungan log dimana isi yang ditampilkan bilangan dari 10 sampai 100 dengan selang 10

  10. R. D. Rusdiati says:

    Terima kasih…

  11. Sae says:

    wahh. . ., sangat bermanfaat nh gan. , izin referensinya yah. . ,
    semoga terus update. . .,



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*