Membuat Program Pangkat Dengan Iterasi Dan Rekursif
-
Upload
syahrul-oodha -
Category
Documents
-
view
187 -
download
3
Transcript of Membuat Program Pangkat Dengan Iterasi Dan Rekursif
membuat program Pangkat dengan iterasi dan rekursif
saya pernah dapat tugas pada matakuliah Struktur data untuk membuat program mencari hasil nilai
pangkat. misalnya 32 = 9.
nah untuk mencari nilai pangkat ada 2 metode yang bisa digunakan.
1. metode iterasi (perulangan)2. Rekursif (fungsi)
berikut contoh program yang ditulis dengan menggunakan C++.
Iterasi
pada iterasi kita menggunakan perulangan untuk mencari hasilnya. perhatikan coding berikut.
#include <stdio.h>#include <conio.h>#include <iostream>using namespace std;int main () {printf("Program Iterasi Perpangkatan \n\n");int x,a,hasil;printf ("masukkan nilai x = "); scanf("%d",&x);printf("masukkan nilai a = "); scanf("%d", &a);for (int i=0; i<a; i++)hasil= x*x;cout<<"hasil pemangkatan "<<x <<"^" <<a <<" = " <<hasil;}
pada coding yang di beri warna merah merupakan iterasi/perulangan yang beefungsi untuk mencari
nailai pemangkatan. dimana x merupakan nilai variabel dan a merupakan pangkatnya. Xa
nah kemudian diatas dapat kita lihat untuk menampilkan text menggunakan printf dan meminta input
dengan perintah scanf. yang mana anda juga bisa menggunakan fungsi cout<< dan cin>>. pada printf
dan scanf (agak ribet) mesti mengunakan code seperti %d setiap ada variabel yang ingin digunakan
contoh scanf("%d",&x);
berikut list code untuk variabel lain float, string dll.
Rekursif
pada iterasi kita menggunakan fungsi yang memanggil dirinya sendiri untuk mencari hasilnya sampai
memenuhi kondisi. perhatikan coding berikut.
#include <stdio.h>#include <conio.h>#include <iostream>using namespace std;int pangkat (int j, int k) { //membuat function/fungsi pangkatint hasil;if (k==0) { hasil=1; }else {hasil =j*pangkat(j,k-1);}return(hasil);} int main(){ //program utamaprintf("Program Iterasi Perpangkatan \n\n");int x,a,hasil;printf ("masukkan nilai x = "); scanf("%d",&x);printf("masukkan nilai a = "); scanf("%d", &a);cout<<"hasil pemangkatan "<<x <<"^" <<a <<" = " <<pangkat(x,a);}
Yang paling penting adalah fungsi pangkat yang diwarnai merah
Fungsi ini digunakan mencari hasil pemangkatan,
penjelasan coding
int hasil; (digunakan untuk menampung hasil dari pemangkatan)
if (k==0) { hasil=1; } jika k =0 maka hasilnya pemangkatannya 1, j0 =1
else {
hasil =j*pangkat(j,k-1); } jika k =bukan 0 misalnya 3 (33) maka hasilnya 3*pangkat(3,2) nah nilai k nya
masih 2 (belum 0) maka akan di lakukan pemanggilan fungsi pangkat sampai nilai k nya 0 (bingung ya -
_-)
jadi nanti bentuk proses pencariannya begini
pangkat(3,3) = 3*pangkat(3,2)= 3*3*pangkat(3,1)= 3*3*3 pangkat(3,0)= 3*3*3*1
(mudah2an gak bingung lagi ^_^)
Dan terakhir return(hasil); untuh menampilkan hasil dari pemangkatan yang di letakkan pada variabel
hasil.