Membuat Program Pangkat Dengan Iterasi Dan Rekursif

4
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. X a nah kemudian diatas dapat kita lihat untuk menampilkan text menggunakan printf dan meminta input dengan perintah scanf. yang mana

Transcript of Membuat Program Pangkat Dengan Iterasi Dan Rekursif

Page 1: 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.

Page 2: Membuat Program Pangkat Dengan Iterasi Dan Rekursif

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

Page 3: Membuat Program Pangkat Dengan Iterasi Dan Rekursif

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.