Subprogram Minggu V – VI

Slides:



Advertisements
Presentasi serupa
REKURSIF.
Advertisements

PROCEDURE Temu IX BANGHER.
Fungsi Konsep Pemrograman.
Pemrograman Berorientasi Objek (Project)
Lingkup Variabel Kelas Penyimpanan Rekursi
Teknik Pemrograman Terstruktur
FUNGSI / FUNCTION ALGPROG II
Dasar Komputer & Pemrog 2 A minggu 5. PROCEDURE DAN FUNCTION Procedure dan Function adalah suatu program yang terpisah dalam blok sendiri Dan memiliki.
STRUKTUR DATA (5) Pointer dan Function
ARRAY SATU DIMENSI Minggu VI.
Algoritma dan Pemrograman Modular Programming (Bagian 1)
Algoritma dan Struktur Data
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
REKURSIF.
1 Ruli Manurung & Ade AzuratFasilkom UI - IKI /2008 – Ganjil – Minggu 4 Dasar-dasar Rekursif.
Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF
Pemrograman Terstruktur
INSTRUKSI MASUKAN DAN KELUARAN
Method.
Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)
Prosedur (Procedure).
BAB IV SUB PROGRAM DAN FUNGSI
FUNCTION / FUNGSI.
Review-Dasar Pemrograman Komputer
FUNGSI.
STRUKTUR DATA (5) Pointer dan Function
STRUKTUR PEMILIHAN (KONTROL PROGRAM) Minggu III - 40 menit
PROSEDUR.
Procedure , Function dan Parameter
FUNGSI Teknik Informatika Universitas Muhammadiyah Malang 2011 Pemrogramman Terstruktur.
STRUKTUR DATA Pointer dan Function
Fungsi Fungsi.
Function User Function.
Fungsi Fungsi (Sub Program) :
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
Fungsi, Array dan String
Fungsi dan Prosedur.
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
FUNGSI.
Tujuan Instruksional Mahasiswa memahami konsep fungsi
Algoritma dan Struktur Data
1 Pertemuan Fungsi Matakuliah: T0616 / Algoritma dan Pemrograman Tahun: 2007 Versi: 1/0.
FUNGSI.
FUNGSI.
ALGORITMA PEMROGRAMAN 2A
M6. Prosedure Pada Pascal
Struktur Program TEE 2103 Algoritma dan Pemrograman
Algoritma pemrograman 2a
SUBALGORITMA.
Pointer TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
FUNGSI.
MODULAR (FUNGSI)
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
- PERTEMUAN 7 - METODE/SUB PROGRAM
As’ad Djamalilleil Function (Fungsi) As’ad Djamalilleil
Pemrograman Terstruktur
Algoritma dan Struktur Data 1 pertemuan 10
Algoritma dan Pemrograman
IT234 ALGORITMA DAN STRUKTUR DATA
Gambaran Kuliah Pemrograman Terstruktur
MODULAR (FUNGSI)
FUNGSI II.
Algoritma Rekursif Alpro-2.
PROCEDURE DAN FUNGSI.
Teknik Pemrograman Terstruktur
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Bahasa Pemrograman A M7. Function Pada Pascal.
Transcript presentasi:

Subprogram Minggu V – VI Wahyu Pujiyono yywahyup@yahoo.com Teknik Informatika Universitas Ahmad Dahlan

Motivasi Pada dasarnya, manusia adalah makhluk yang lemah. Contoh : Untuk membangun gedung, tentulah dibangun dari bata satu ke bata yang lain. Dari ruang ke ruang yang lain dst. Metode : Divide & Conquer (dibagi-bagi menjadi bagian yang lebih kecil, lalu selesaikan masalah yang dihadapi)

Gedung bisa diibaratkan sebagai fungsi main() sedangkan bagian yang lebih kecil merupakan fungsi yang menyelesaikan tugas tertentu. Contoh : int main(void) // fungsi utama { float z; z = sqrt(9); // fungsi kepustakaan }

Beberapa fungsi kepustakaan math.h Berisi fungsi matematika dan konstanta ctype.h Fungsi char : tolower, isdigit, … stdlib.h Fungsi utilitas string.h Fungsi char array

Bila kepustakaan tidak menyediakan fungsi yang kita perlukan  buat fungsi sendiri (user defined function) Kapan fungsi diperlukan ? Sesuatu yang dikerjakan beberapa kali dalam program Sesuatu yang akan dikerjakan pada program yang berbeda Sederetan operasi yang kompleks yang membuat arus program sukar diikuti

Cara kerja fungsi

Fungsi sebagai kotak hitam Menyembunyikan detail Dapat menggunakan fungsi tanpa tahu apa yang ada di dalamnya

output = function( input1, input2) argument (input1 dan input2) menyediakan informasi ke program Mengembalikan harga (informasi) kembali ke fungsi yang memanggilnya

Function Fungsi pada dasarnya mengembalikan nilai (return value) Fungsi yang tidak mengembalikan nilai  prosedur (yang dikembalikan void) Adakalanya ada lebih dari satu parameter yang berubah nilainya dalam fungsi

Fungsi yang mengembalikan 1 nilai Pengertiannya sama dengan fungsi dalam matematika Contoh : Fungsi y = f(x)= x + 5. Untuk setiap harga x maka akan mengakibatkan nilai y bertambah dengan 5 x dikatakan sebagai variabel independen (input) y dikatakan sebagai variabel dependen (output)

Fungsi yang tak mengembalikan nilai Misalkan akan dicetak bilangan dari 1 sampai n

Raptor : http://tutorialalgorithm.com judul : Function in raptor

Fungsi yang mengubah nilai parameter Dinamakan pass by reference Fungsi menggunakan variabel asal (tidak menggunakan copy) Argumen harus berupa variabel, tidak boleh konstanta Dapat mengembalikan lebih dari satu nilai

Contoh : Buatlah fungsi untuk menukar nilai dari dua variabel. Analisis : Misalkan kita punya variabel A = 3 dan B = 5 (input) Output : A = 5 dan B = 3

Langkah algoritma

Raptor : http://tutorialalgorithm Raptor : http://tutorialalgorithm.com judul : Sub-program parameters in raptor : swap

Passing Parameter (versi 1) Dari contoh terakhir, terlihat ada pernyataan : tukar (&a,&b); Pernyataan ini dinamakan function call. Tanda & (alamat) dimaksudkan bahwa parameter a dan b nantinya dapat diubah dalam fungsi. Sebagai konsekuensinya dalam badan fungsi menjadi : void tukar (int *a, int *b) Tanda * menandakan variabelnya bertipe pointer

Versi 2 void swap( double & a, double & b) { double temp; temp = a; a = b; b = temp; } Pemanggilan fungsi di atas sama dengan cara call by value (tanpa tanda &)

Jenis parameter Ada 2 jenis parameter yang dideklarasikan dalam subprogram, yaitu : parameter nilai (value parameter) : variabel yang dikirimkan tidak mengalami perubahan sekeluar dari subprogram) parameter variabel (variable parameter) : variabel yang dikirimkan tidak mengalami perubahan sekeluar dari subprogram)

Jenis parameter Bentuk umum fungsi :

Template Adakalanya kita ingin melewatkan berbagai jenis parameter (bisa int,float, dll.) tetapi harusnya fungsi hanya satu saja  gunakan template

Kasus 5.2. Buatlah fungsi yang menentukan nilai terbesar dari 2 bilangan bulat.

Overloading Function Kadang diinginkan beberapa fungsi yang namanya sama namun dengan banyak parameter yang berbeda  overloading function Contoh : Fungsi untuk mencari maksimum dari 2 bilangan dan untuk mencari maksimum dari 3 bilangan.

exp(ln(xy)) = exp(y*ln(x)) Kasus 5.3. Dengan menggunakan fungsi ln dan exp, buatlah fungsi untuk menghasilkan nilai xy Analisis : Dengan menggunakan sifat logaritma : ln(xy) = y*ln(x) exp(ln(xy)) = exp(y*ln(x)) xy = exp(y*ln(x))

a x b = a + a + a + … + a (sebanyak b kali) Kasus 5.4. Buatlah fungsi perkalian 2 bilangan bulat dengan menggunakan operator penjumlahan. Analisis : Misalkan a dikalikan b (input) Proses : a x b = a + a + a + … + a (sebanyak b kali)

Fungsi Rekursif adalah fungsi yang melakukan proses perulangan dengan cara memanggil dirinya sendiri. berbeda dengan versi iteratif yang menggunakan perulangan for, while maupun do while. Fungsi rekursif dapat dipandang sebagai sebuah “operator”.

Ciri fungsi rekursif Kasus penyetop. Dalam kasus ini terdapat nilai konstan (return value) Kasus pemanggilan rekursif. Dalam kasus ini terdapat pemanggilan fungsi itu sendiri, tetapi harus mengarah kepada kasus penyetop.

Ciri perulangan Kapan mulai Kapan berhenti Berapa kali diulang Raptor : http://tutorialalgorithm.com judul : How To : Recursion in the raptor

Kasus 5.5. Buatlah fungsi faktorial secara rekursif untuk mencari n!. Analisis : Kasus penyetop (= nilai awal) n = 0 atau n = 1 yaitu bernilai konstan 1 Kasus rekursif : n * faktorial (n-1)

Fungsi rekursif

Prosedur rekursif

fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) Kasus 5.6. Diberikan deret Fibonacci sebagai berikut : 1, 1, 2, 3, 5, 8, … Buatlah fungsi yang menghitung suku ke-n dari deret Fibonacci dengan menggunakan cara rekursif. Analisis : Suku ke-n dari deret Fibonacci diperoleh dengan rumus : fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) dengan nilai awal untuk n=1 dan n=2 berharga 1.

Iteratif Versus Rekursif Cetaklah suatu kalimat dengan cara iteratif maupun cara rekursif.

Kasus 5.8. Buatlah algoritma iteratif dan rekursif untuk menghitung gcd dari dua bilangan bulat positif. Analisis : Jika n  0 dan m integer non negatif, kita dapat menulis m = q.n + r untuk suatu integer non negatif q dan r dengan 0  r < n.

Contoh : Jika n = 3, m = 16 maka 16 = 5(3) + 1, yaitu q = 5 dan r = 1. Jika n = 10, m = 3 maka 3 = 0(10) + 3, yaitu q = 0 dan r = 3. Untuk mencari nilai gcd dari dua integer. kita bisa menggunakan cara menulis di atas. Misalkan kita mau cari gcd(190,34).

Harga r  0 terakhir dicapai adalah r = 2 Harga r  0 terakhir dicapai adalah r = 2. Inilah hasil dari gcd(190,34).

Versi rekursif gcd gcd didefinisikan sebagai berikut : gcd(c,d) = c, jika d = 0 = gcd(c-d, d), jika d > 0 dan c > d. berlaku hukum komutatif, gcd(c,d) = gcd(d,c).

Macam-macam Metode Rekursi Going Down Recursion (rekursi menurun), yaitu parameter menurun nilainya sampai dicapai kasus berhenti Going Up Recursion (rekursi menaik), yaitu parameter menaik nilainya sampai dicapai kasus berhenti Two Half (rekursi separuh-separuh), rekursi dibagi menjadi 2 bagian, di mana setiap bagian juga merupakan subprogram rekursi.

Contoh kasus Hitunglah nilai dari : 52 + 62 + 72 + 82 + 92 + 102 Pohon rekursinya adalah sebagai berikut :

Going Down Recursion

Going Up Recursion

Two-Half Recursion

Keuntungan menggunakan fungsi Program yang dikerjakan team dalam proyek besar Menyederhanakan tugas-tugas Setiap fungsi adalah unit terpisah Pendekatan pemrograman Top Down Abstraksi prosedural Information hiding Reuseability

Top Down Programming Merancang program dengan memecahnya menjadi bagian yang lebih kecil Mulai dengan perencanaan global kemudian mengisi detailnya pada setiap level sampai lengkap

Abstraksi Merujuk ke aksi dan menghindari detail untuk berkonsentrasi pada substansi Dapat menggunakan hal yang kompleks dengan usaha yang kecil Nama fungsi akan merefleksikan “peri laku”nya