Algoritma dan Pemrograman 2. PROSEDUR dan FUNGSI

dokumen-dokumen yang mirip
BAB VIII SUB PROGRAM : Fungsi Tanpa Pengembalian Nilai

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

PROCEDURE DAN FUNCTION

Prosedur merupakan modul program yang mengerjakan instruksi spesifik dan menghasilkan efek netto. Efek netto diketahui dengan membandingkan keadan awa

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

Algoritma Pemrograman

Fungsi 1. Ekohariadi FT Unesa

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

PEMROGRAMAN BERORIENTASI OBJEK

Algoritma Pemrograman

ALGORTIMA DAN PEMROGRAMAN

Algoritma Pemrograman

PROSEDUR DAN FUNGSI (PROCEDURE & FUNCTION)

Prosedur. Nisa ul Hafidhoh

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

Alpro & Strukdat 1 C++ (Sub Program) Dwiny Meidelfi, S.Kom., M.Cs.

Algoritma Pemrograman 2B (Pemrograman C++)

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

ALGORITMA DAN STRUKTUR DATA 1

Dasar Pemrograman TIP FTP UB

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

IT234 ALGORITMA DAN STRUKTUR DATA FUNGSI

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

BAB I TUJUAN DAN LANDASAN TEORI

Algoritma Pemrograman

POKOK BAHASAN - 2 PEMROGRAMAN MODULAR

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

Prosedur. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Algoritma dan Pemrograman. Pertemuan Ke-11 Function

PROCEDURE DAN FUNCTION

MODULAR (FUNGSI)

Kurikulum Qt. Chapter 4 Function. Fungsi

PROCEDURE DAN FUNCTION

Fungsi. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Subprogram (dalam Bahasa C++ + Flowchart)

Dasar Komputer & Pemrograman 2A

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Procedure. Pertemuan 10 Algoritma Pemrograman

PERTEMUAN - 3 PEMROGRAMAN MODULAR

Algoritma dan Struktur Data

PROSEDUR. Jadi, setiap prosedur harus : - Didefinisikan (dibuat spesifikasinya) dan dituliskan kode programnya - Dipanggil, pada saat eksekusi

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

Algoritma & Pemrograman FUNGSI. Pengampu : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Algoritma Pemrograman

Kurikulum Qt. { Basic OOP } Chapter 4. Function

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 3

Fungsi 2 DASAR PEMROGRAMAN

Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN

Modul program di dalam C++ disebut fungsi (function)

Tutorial 08 Pertemuan 12

Mengenal Subroutine pada Pemrograman C Dian Wirdasari

Fungsi : Dasar Fungsi

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

MODUL 5 SUBPROGRAM / FUNGSI

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Praktikum Modul Praktikum ke Judul Materi Tujuan / Sasaran Waktu (lama) Aplikasi yang digunakan

Fungsi 2. Ekohariadi FT Unesa

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

2 ATURAN PENULISAN TEKS ALGORITMA

Algoritma & Pemrograman Lanjut FUNGSI. Pengampu : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

A. TUJUAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur.

Sub Program : Prosedur. Tim Pengajar KU1071 PTI A Semester I 2009/2010

BAB 6 FUNGSI TUJUAN PRAKTIKUM

BAB 6. FUNGSI. Tujuan penggunaan fungsi : 1. Program menjadi terstruktur 2. Dapat mengurangi pengulangan kode program.

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma

PROSEDUR (Lanjutan) Parameter. Mahasiswa dapat memahami penggunaan prosedur dengan parameter. Mahasiswa dapat membuat prosedur dengan parameter.

Algoritma Pemrograman

Algoritma Pemrograman

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

PROSEDUR/SUB RUTIN. Algoritma & Pemrograman. Pengampu : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Sedangkan bentuk umum pendefinisian fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi) { statement statement... }

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Scope Variable. Sebuah variabel di dalam sebuah fungsi memiliki jangkauan tertentu. Skop variabel terdiri dari:

Sesi/Perkuliahan ke: VII

Yudha Dwi P. N. S.Kom. Pertemuan 3 Aturan Penulisan Teks Algoritma

Contoh function 1 : Output : // function example The result is 8 #include <iostream.h>

BAB 2 PERINTAH DASAR BAHASA C. %d = type data varibel

Function. Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi : Passing Parameter by Value & Semester 3

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

Memudahkan dalam pengembangan program Menghemat ukuran program

Konsep Array dalam PBO

Algoritme dan Pemrograman

Prosedur dan Fungsi. Kenapa Prosedur atau Fungsi?

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

Pertemuan Function. Obyektif Praktikum : 1. Mengerti konsep dasar penggunaan Function

SL 1201 Materi tentang Fungsi

Transkripsi:

Algoritma dan Pemrograman 2 PROSEDUR dan FUNGSI Baik prosedur maupun fungsi merupakan suatu modul sub program yang mengerjakan tugas/aktivitas yang spesifik. Perbedaan diantara keduanya adalah sebuah fungsi akan mengembalikan suatu nilai tertentu ke modul/atau fungsi lain/prosedur lain yang memanggilnya. Tujuan utama dari prosedur atau fungsi adalah untuk membuat suatu aplikasi agar dapat dipecah menjadi sebuah bagian yang dapat dikelola dengan lebih mudah. Kerangka aplikasi yang tersusun atas sejumlah fungsi/prosedur

Algoritma dan Pemrograman 3 1. Pendefinisian prosedur - menuliskan nama prosedur - mendeklarasikan nama-nama konstanta, variable dan tipe - menjabarkan rangkaian aksi yang dilakukan Setiap prosedur mempunyai nama yang unik Prosedur terdiri dari: - bagian judul(header), terdiri atas nama prosedur dan deklarasi parameter (jika ada) - bagian deklarasi, untuk mengumumkan nama-nama - bagian algoritma/deskripsi, disebut badan prosedur Parameter adalah nama-nama variabel yang dideklarasikan pada bagian header. Parameter : - aktual (argumen) : parameter yang disertakan pada saat pemanggilan prosedur - formal : parameter yang dideklarasikan pada bagian header prosedur Contoh notasi algoritmik sebuah prosedur: Notasi algoritmik procedure Luas K. Awal : nilai panjang dan lebar diberikan K. Akhir : luas segi empat tercetak panjang : integer lebar : integer HitungLuas : integer HitungLuas panjang * lebar write(hitungluas) Kode bahasa C++ void Luas(void) int panjang, lebar, HitungLuas; cin>>panjang; cin>>lebar; HitungLuas = panjang*lebar; cout<<hitungluas;

Algoritma dan Pemrograman 4 2. Pemanggilan Prosedur Prosedur bukan program yang berdiri sendiri, jadi tidak dapat dieksekusi secara langsung. Prosedur diakses dengan cara memanggil namanya dari program pemanggil. Prosedur bisa memiliki parameter atau tidak. Jika tidak memiliki parameter cukup dengan menuliskan namanya. Ketika sebuah prosedur dipanggil, kendali program secara otomatis pindah ke prosedur tersebut. Seluruh instruksi dalam badan prosedur tersebut akan dilaksanakan. Setelah semua instruksi selesai dilaksanakan, kendali program berpindah secara otomatis kembali ke instruksi sesudah pemanggilan prosedur dalam program pemanggil. Agar nama prosedur dikenal oleh program pemanggil, maka dalam program pemanggil harus dideklarasikan prototipe prosedur tersebut. Contoh pemanggilan prosedur dari contoh sebelumnya: Notasi algoritmik ALGORITMA HitungLuas procedure Luas Luas procedure Luas panjang : integer lebar : integer HitungLuas : integer Read(panjang,lebar) HitungLuas panjang * lebar write(hitungluas) Kode bahasa C++ #include <iostream.h> void Luas(); void main() Luas(); void Luas() int panjang, lebar, HitungLuas; cin>>panjang; cin>>lebar; HitungLuas = panjang*lebar; cout<<hitungluas;

Algoritma dan Pemrograman 5 3. Lingkup variabel Lingkup variabel menjelaskan bagaimana sifat suatu variabel didalam suatu prosedur/fungsi. Variabel otomatis/lokal Variabel eksternal/global Variabel statis 3.1. Variabel otomatis/lokal Variabel otomatis bersifat lokal terhadap sebuah prosedur/fungsi. Variabel seperti ini tidak dikenal diluar prosedur/fungsi yang mendeklarasikannya. void prosx(void);//prototipe prosedur int bilx=50; cout<<"sebelum memanggil prosedur"<<endl; cout<<"bilx = "<<bilx<<endl; prosx(); cout<<"setelah memanggil prosedur"<<endl; cout<<"bilx = "<<bilx<<endl; void prosx(void) int bilx=100; cout<<"dalam prosedur"<<endl; cout<<"bilx = "<<bilx<<endl; Hasilnya : Sebelum memanggil prosedur bilx = 50 Dalam prosedur bilx = 100 Setelah memanggil prosedur bilx = 50

Algoritma dan Pemrograman 6 3.2. Variabel eksternal Didefinisikan diluar prosedur/fungsi, sehingga dikenal oleh seluruh prosedur/fungsi. void ubahbilx(void);//prototipe prosedur int bilx; bilx=50; cout<<"sebelum memanggil prosedur"<<endl; cout<<"bilx = "<<bilx<<endl; ubahbilx(); cout<<"setelah memanggil prosedur"<<endl; cout<<"bilx = "<<bilx<<endl; Hasilnya : Sebelum memanggil prosedur bilx = 50 Dalam prosedur bilx = 50 Setelah memanggil prosedur bilx = 100 void ubahbilx(void) cout<<"dalam prosedur"<<endl; cout<<"bilx = "<<bilx<<endl; bilx=100; 3.3. Variabel Statis Sifat : Variabel hanya bisa diakses oleh prosedur/fungsi yang mendeklarasikannya Variabel tidak hilang saat eksekusi prosedur/fungsi berakhir Inisialisasi dalam deklarasi hanya dilakukan sekali selama aplikasi berjalan

Algoritma dan Pemrograman 7 void Pencacah(void);//prototipe prosedur Pencacah(); Pencacah(); Pencacah(); Hasilnya : Prosedur telah dipanggil 1 kali Prosedur telah dipanggil 2 kali Prosedur telah dipanggil 3kali Coba kata static dihilangkan, bagaimana hasilnya? void Pencacah(void) static int jumlah=1; cout<<"prosedur telah dipanggil = "<<jumlah<<" kali"<<endl; jumlah++; 4. Parameter/Argumen Kebanyakan program memerlukan pertukaran informasi antara prosedur dan pemanggilnya. Penggunaan parameter menawarkan mekanisme pertukaran tersebut. Prosedur dengan parameter diakses dengan cara memanggil prosedur tersebut beserta parameternya. Aturan yang harus diperhatikan dalam korespondensi satu-satu antara parameter formal dan parameter aktual adalah: - Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi prosedurnya - Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian - Parameter aktual diekspresikan sesuai dengan jenis parameter formal(penjelasan lihat dibawah)

Algoritma dan Pemrograman 8 Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal: a. parameter masukan (input parameter) b. parameter keluaran (output parameter) c. parameter masukan/keluaran (input/output parameter) 4.1. Parameter masukan Parameter masukan : parameter yang nilainya berlaku sebagai masukan untuk prosedur. Sering disebut juga sebagai parameter nilai(value parameter atau parameter by value Contoh: ALGORITMA HitungLuas a,b : integer procedure Luas(input panjang, lebar : integer) read(a,b) Luas(a,b) void Luas(int a,int b);//prototipe prosedur int panjang=5,lebar=3; Luas(panjang,lebar); procedure Luas(input p,l:integer) luas : integer luas p * l write(luas) void Luas(int p,int l) int luas; luas=p*l; cout<<"luas = "<<luas<<endl;

Algoritma dan Pemrograman 9 Nilai parameter aktual diisikan kedalam parameter formal yang bersesuaian. Perubahan nilai dalam badan prosedur tidak mengubah nilai parameter aktual. Karena yang dipentingkan adalah nilainya, maka nama parameter aktual boleh berbeda dengan nama parameter formal yang bersesuaian. 4.2. Parameter Keluaran Parameter keluaran : parameter yang menampung keluaran yang dihasilkan oleh prosedur yang akan digunakan oleh program pemanggil. Contoh : ALGORITMA HitungLuas a,b,l : integer procedure Luas(input p,l : integer, output luas : integer) read(a,b) Luas(a,b,L) write(l) procedure Luas(input p,l : integer, output luas : integer) tidak ada luas p * l void hitung(int,int, int * ); int panjang,lebar,luas; cout<<"panjang = ";cin>>panjang; cout<<"lebar = ";cin>>lebar;cout<<endl; hitung(panjang,lebar,&luas); cout<<"luas = "<<luas<<endl; void hitung(int A, int B, int *luas) *luas=a*b; Karena nama parameter merupakan suatu lokasi di memori maka bila didalam prosedur, parameter aktual diisi suatu nilai, nilai ini akan tetap berada didalam parameter aktual meskipun prosedur selesai dilaksanakan. Jadi setelah pemanggilan, parameter aktual berisi suatu nilai yang merupakan keluaran dari prosedur tersebut.

Algoritma dan Pemrograman 10 4.3. Parameter Masukan/Keluaran Parameter masukan/keluaran : parameter yang berfungsi sebagai masukan sekaligus keluaran bagi prosedur tersebut. Pada kebanyakan aplikasi kadang informasi harus dikirim dalam dua arah sehingga prosedur harus dapat mengakomodasi baik masukan dari dan keluaran ke blok program pemanggil. Contoh: ALGORITMA SelisihXY X,Y,Z : integer procedure Tukar(input/output A,B : integer) read(x,y) if X Y then Tukar(X,Y) endif Z X - Y write(z) procedure Tukar(input/output A,B : integer) tmp : integer tmp A A B B tmp void Tukar(int *, int *); int X,Y,Z; cout<<"x = ";cin>>x; cout<<"y = ";cin>>y; if(x<y) Tukar(&X,&Y); Z=X-Y; cout<<z<<endl; void Tukar(int *A, int *B) int tmp; tmp=*a; *A=*B; *B=tmp;

Algoritma dan Pemrograman 11 Akibat penggunaan parameter masukan/keluaran, bila parameter aktual diubah nilainya dalam badan prosedur maka sesudah pemanggilan prosedur, nilai parameter aktual di titik pemanggilan juga berubah. 5. Translasi notasi algoritmik Prosedur kedalam notasi bahasa C Aturan dalam translasi : Pendefinisian prosedur ditulis diluar blok program utama, kecuali jika direalisasikan sebagai file include. Prosedur umumnya diletakan setelah blok main(), sedangkan deklarasi prosedur ditulis sebelum blok main() sebagai prototipe. Jika pendefinisian prosedur ditulis sebelum blok main() maka pendeklarasian prototipe tidak diperlukan lagi. Dalam bahasa C tidak dikenal istilah prosedur. Semua modul program adalah fungsi. Prosedur adalah fungsi yang tidak mengembalikan nilai apapun. Karena itu nilai kembali untuk prosedur adalah void (artinya kosong). Bila prosedur tidak memiliki parameter maka tanda kurung ( dan ) tetap ditulis setelah nama prosedur tersebut. Semua parameter dalam bahasa C adalah parameter masukan. Oleh karena itu, semua argumen parameter aktual dilewatkan sebagai by value, artinya nilai parameter aktual disalin ke parameter formal yang bersesuaian. Suatu cara untuk memperoleh efek parameter keluaran maupun efek parameter masukan/keluaran adalah melewatkan pointer kedalam parameter aktual dengan menambahkan karakter & di awal nama parameter aktual yang berjenis parameter masukan atau masukan/keluaran. Sedangkan parameter formal yang berjenis masukan atau masukan/keluaran ditambahkan karakter * didepannya. 6. Fungsi Seperti halnya prosedur, fungsi juga merupakan sub-program yang mempunyai tujuan spesifik.

Algoritma dan Pemrograman 12 Definisi Fungsi Fungsi adalah sub-program yang memberikan/ mengembalikan (return) sebuah nilai dari tipe tertentu. Contoh fungsi : f ( x) 2 x 2 5 x 10 H( x, y) 3 x 2 y 5 Fungsi diakses dengan memanggil namanya Penulisan fungsi: function NamaFungsi(input parameter : tipe) tipe DELARASI ALGORITMA return ekspresi Contoh: ALGORITMA F x,y,hasil : real DESKRIPSI read(x,y) Hasil F(x,y) write(x,y,hasil) Notasi Algoritmik function F(input x,y : real) real H : real H 3*x + 2*y return H Kode bahasa C++ float F(float x,float y); float x,y,hasil; cout<< x = ;cin>>x;cout<< y = ;cin>>y; Hasil=F(x,y); cout<<x<<endl;cout<<y<<endl;cout<<hasil<<endl; float F(float A, float B) float H; H=3*A+2*B; return H;

Algoritma dan Pemrograman 13 Fungsi dapat mengandung parameter formal. Parameter dalam fungsi selalu merupakan parameter masukan. Prototipe fungsi yang disediakan oleh C/C++ biasa diletakan dalam berkas judul (berkas.h). Itulah sebabnya jika akan mengunakan fungsi-fungsi tertentu harus menyertakan #include. Tentukan output dari program berikut void rubah(void); int A=10,B=20; cout<<"nilai Awal A dan B"<<endl; cout<<"a = "<<A<<endl; cout<<"b = "<<B<<endl<<endl; rubah(); cout<<"nilai A dan B setelah "; cout<<"pemanggilan fungsi"<<endl; cout<<"a = "<<A<<endl; cout<<"b = "<<B<<endl<<endl; void rubah(void) int A=100,B=200; cout<<"nilai A dan B dlm fungsi"<<endl; cout<<"a = "<<A<<endl; cout<<"b = "<<B<<endl<<endl; void tukar(int,int); int A,B; cout<<"a = ";cin>>a; cout<<"b = ";cin>>b;cout<<endl; cout<<"sebelum ditukar"<<endl; cout<<"a = "<<A<<endl; cout<<"b = "<<B<<endl<<endl; tukar(a,b); cout<<"setelah ditukar"<<endl; cout<<"a = "<<A<<endl; cout<<"b = "<<B<<endl; void tukar(int A, int B) int C; C=B; B=A; A=C;

Algoritma dan Pemrograman 14 #include<iomanip.h> #define SIZE 10 void cetak(int *A) for(int i=0;i<=size-1;i++) cout<<setw(3)<<a[i]; void jumlah(int *A,int *B) int C[SIZE]; for(int i=0;i<=size-1;i++) C[i]=A[i]+B[i]; cetak(c); int A[SIZE]=2,4,6,3,4,2,5,6,3,2; int B[SIZE]=1,3,5,7,2,2,4,6,3,1; //cetak matrik A cetak(a);cout<<endl; //cetak matrik B cetak(b);cout<<endl; //Jumlahkan matrik jumlah(a,b);cout<<endl; #include<iomanip.h> #define SIZE 10 void cetak(int *A) //atau cetak(int A[]) for(int i=0;i<=size-1;i++) cout<<setw(3)<<a[i]; void cetak_elemen(int el) cout<<"elemen = "<<el; void kali_elemen(int *A,int el,int a)//elemen A[el]*a A[el]*=a; void rubah_array(int A[]) for(int i=0;i<=size-1;i++) A[i]=A[i]+2; int A[SIZE]=2,4,6,3,4,2,5,6,3,2;

Algoritma dan Pemrograman 15 cetak(a);cout<<endl; cetak_elemen(a[2]);cout<<endl; kali_elemen(a,2,10);//elemen A[2]*10 cetak(a);cout<<endl; rubah_array(a); cetak(a);cout<<endl; #define N_Baris 5 #define N_Kolom 2 void cetak(int A[][N_Kolom]); void Rubah_data(int array[][n_kolom]); int data[n_baris][n_kolom]= 23,77, 33,41, 20,21, 20,55, 67,78 ; cetak(data); cout<<endl; Rubah_data(data); cetak(data); cout<<endl; void Rubah_data(int array[][n_kolom]) int i,j; for(i=0;i<n_baris;i++) for(j=0;j<n_kolom;j++) array[i][j]=0; void cetak(int A[][N_Kolom]) int i,j; for(i=0;i<5;i++) for(j=0;j<2;j++) cout<<a[i][j]<<" "; cout<<endl;

Algoritma dan Pemrograman 16 7. Fungsi Rekursif Algoritma rekursif adalah algoritma yang memanggil dirinya sendiri. Oleh karena itu, algoritma rekursif harus dinyatakan dalam prosedur atau fungsi karena hanya prosedur atau fungsi yang dapat dipanggil dalam sebuah program. Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Proses pemanggilan fungsi itu sendiri disebut rekursi. Definisi rekursif disusun oleh dua bagian : 1) Basis : bagian yang berisi kasus yang terdefinisi secara eksplisit. Bagian ini menghentikan rekursif dan memberikan sebuah nilai yang terdefinisi pada fungsi rekursif. 2) Rekurens : bagian yang mendefinisikan obyek dalam terminologi dirinya sendiri Contoh : masalah faktorial. 0! = 1 1! = 1 2! = 1 x 2 3! = 1 x 2 x 3 4! = 1 x 2 x 3 x 4 atau dapat ditulis : 0! = 1 1! = 1 x 0! 2! = 2 x 1! 3! = 3 x 2! Untuk n>0 : n! = 1 X 2 x 3 x.. x (n-1) x n = n x (n-1)! n! = 1, jika n = 0 basis n! = n x (n-1)!, jika n > 0 rekurens function Fak(input n : integer) integer DESKRIPSI if n = 0 then return 1 else return n * Fak(n-1) endif basis rekuren

Algoritma dan Pemrograman 17 Proses pemanggilan rekursif Nilai yg dikembalikan dari tiap-tiap pemanggilan rekursif Tugas : 1. Tulislah kode program C++ untuk menghitung faktorial 2. Tulislah program untuk menghitung nilai rata-rata dari sekumpulan data bilangan bulat yang dibaca berulangulang dari papan ketik (algoritma dan program C++). 3. Tulislah kode program C++ untuk mengalikan dua buah matrik. Perkalian dilakukan dalam suatu prosedur yang memiliki parameter masukan dan keluaran. Parameter masukan berupa dua matrik yang diperkalikan, sedangkan parameter keluaran berupa matrik hasil perkalian. 4.Tulislah program C++ untuk menghitung deret Fibonacci. 5. Tulislah algoritma dan program C++ untuk menentukan nilai terbesar dan terkecil dari 3 integer

Algoritma dan Pemrograman 18 Fungsi pustaka math.h Fingsi Penjelasan Contoh sqrt(x) Akar dua dari x sqrt(900.0) = 30.0 exp(x) x Fungsi eksponensial e exp(1.0) = 2.718282 log(x) Logaritma natural dari x (basis e) log(2.718282) = 1 log10(x) Logaritma dari x (basis 10) log10(100.0) = 2.0 fabs(x) Nilai absolut dari x fabs(-5.0) = 5.0 ceil(x) floor(x) Membulatkan x ke integer terkecil tidak kurang dari x Membulatkan x ke integer terbesar tidak lebih besar dari x ceil(9.2) = 10.0 ceil(-9.8) = -9.0 floor(9.2) = 9.0 floor(-9.8) = -10.0 pow(x,y) y x pow(9,0.5) = 3.0 fmod(x,y) Sisa pembagian dari x/y, floating point fmod(13.657,2.33) = 1.992 sin(x) Sinus dari x ( x dalam radian) sin(0.0) = 0.0 cos(x) Cosinus dari x ( x dalam radian) cos(0.0) = 1.0 tan(x) Tangen dari x ( x dalam radian) tan(0.0) = 0.0