Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehYayu Gustiani Telah diubah "9 tahun yang lalu
1
Rahmat D. R. Dako, ST, M.Eng
2
Modul void main (void) Modul fungsi = function Keuntungan penggunaan Fungsi atau modul : Program menjadi lebih mudah dimengerti Pengaruh antar bagian menjadi lebih kecil (lebih independen) Dapat dipakai kembali Lebih efisien dan ukuran program menjadi lebih kecil Lebih konsisten
3
: printf, scanf, gets, strlen Contoh fungsi : printf, scanf, gets, strlen program 1 Contoh program 1 M! N! Dari contoh terdapat pengulangan penulisan program : perhitungan nilai faktorial M! dan N!. jumlahnya sangat banyak Bagaimana jika proses seperti ini jumlahnya sangat banyak ? sekali saja ? Bagaimana jika dibuat sekali saja ? program 2 Bandingkan dengan program 2
4
fungsimesin karakteristik Anggaplah fungsi mesin karakteristik Karakteristik mesin Karakteristik mesin : Input : NO Output NO ; lampu clrscr ( ) 1. Input : NO and Output : NO ; lampu clrscr ( ) Input : NO Output YES ; Fax rand ( ) 2. Input : NO and Output : YES ; Fax rand ( ) Input : YES Output NO ; mesin tari gotoxy (20, 10) 3. Input : YES and Output : NO ; mesin tari gotoxy (20, 10) Input : YES Output YES ; mesin kopi strlen (tempat_lahir) 4. Input : YES and Output : YES ; mesin kopi strlen (tempat_lahir) 5. Input : YES Output “NO” ; telp kartu strrev (peringatan) 5. Input : YES and Output : “NO” ; telp kartu strrev (peringatan) 6. Input : YES Output “YES” ; mesin penjual tiket dengan kartu scanf (“%d”, &angka) 6. Input : YES and Output : “YES” ; mesin penjual tiket dengan kartu scanf (“%d”, &angka)
5
Pemanggilan dua Pemanggilan fungsi dibedakan menjadi dua macam : WITHOUT Pemanggilan fungsi yang WITHOUT output WITH Pemanggilan fungsi yang WITH output
6
Bentuknya sederhana Harus dipanggil dalam satu baris perintah Tidak adanya variabel yang ditempatkan didepan fungsi. Contoh : Clrscr (); nilai Exit(nilai); Abort() input parameter Dapat juga memiliki input parameter
7
Banyak alternatif pemanggilan Banyak alternatif pemanggilan fungsi, karena output dari fungsi : Boleh diabaikan (pemanggilannya fungsi without output) Boleh dipakai langsung dalam perintah-perintah lain. Boleh ditampung lebih dahulu dalam sebuah variabel.
8
Contoh Output fungsi diabaikan ▪ fflush (stdin) Boleh dipakai langsung dalam perintah-perintah lain. ▪ If (fflush(stdin) == -1)… ▪ dst.. Boleh ditampung lebih dahulu dalam sebuah variabel. ▪ x =fflush (stdin);
9
Header – fungsi {Tubuh-fungsi} Komponen pembentuk header-fungsi Tipe_outputNama_fungsiparameter Tipe_output Nama_fungsi (parameter)
10
Menunjukkan apakah fungsi memiliki keluaran atau tidak Bila tidak ada output void Bila ada output tipe data dari output Bagaimana bila lupa menuliskan tipe output ? Tipe outputnya int (integer)
11
Beberapa petunjuk pembuatan nama fungsi : Beri nama fungsi semirip mungkin dengan tugas yang akan diselesaikan oleh fungsi tersebut Nama fungsi sebaiknya cukup pendek, tapi jangan disingkat atau berupa singkatan yang tidak jelas. Penamaan harus konsisten
12
Merupakan tempat masukan atau input ke sebuah fungsi Sebuah fungsi dapat berisi beberapa parameter. Parameter tidak harus sama Setiap parameter tersusun atas dua komponen : tipe_variabel dan nama_variabel Contoh penulisan fungsi Unsigned long faktorial (int angka)
13
Isi dari suatu variabel (passing by value) Nama dari suatu variabel (passing by reference). Alamat dari suatu variabel (passing by pointer)
14
Isi atau nilai dari variabel yang ada pada parameter aktual akan dicopykan ke parameter formal Contoh : Unsigned long faktorial (int x) parameter formal Unsigned long faktorial_m faktorial (m) parameter aktual
15
NamaIsiAlamatKeterangan m5100Lokasi memori untuk fungsi (main) Faktorial_m?102 x?500Lokasi memori untuk fungsi faktorial NamaIsiAlamatKeterangan m5100Lokasi memori untuk fungsi (main) Faktorial_m?102 x5500Lokasi memori untuk fungsi faktorial
16
Mengirimkan nama dari variabel yang ada pada parameter aktual ke parameter formal variabel memiliki lokasi di memori sama, tapi memiliki dua nama. Satu nama di parameter aktual dan satu nama di parameter formal. Penggunaan metode ini untuk semua tipe data kecuali string dan array Contoh : Void tukar (int &angka_1, int &angka_2) parameter formal tukar (bil_1, bil_2) parameter aktual
17
NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 NamaIsiAlamatKeterangan bil_1/angka_110100Lokasi memori untuk fungsi (main) Bil_2/angka_190102
18
Pointer/penunjuk akan menunjuk pada lokasi memori tempat parameter aktual berada. Parameter aktual harus mengirimkan alamat posisinya di memori ke parameter formal, sehingga posisinya dapat diketahui
19
Variabel (p. aktual) rumah dengan alamat tertentu. dapat di isi Variabel (p. formal) kartu nama berisi alamat rumah tersebut tidak dapat di isi Dengan kartu nama, dapat diketahui alamat rumah tersebut dan melakukan sesuatu di rumah tersebut (mis, mengisi barang ke dalam rumah) Untuk mengisi rumah, harus pergi menuju alamat rumah, baru bisa mengisi
20
Variabel (p. formal) diberi tanda * = pointer didepan variabel Variabel (p. aktual) diberi tanda & didepan variabel untuk menyatakan alamat Contoh : Void tukar (int *ptr_angka_1, int *ptr_angka_2) tukar (&bil_1, &bil_2)
21
NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1?500Lokasi memori untuk fungsi tukar Ptr_angka_2?502 bantu?504 NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu?504
22
Void tukar (int *ptr_angka_1, int *ptr_angka_2) { Int bantu; bantu = *ptr_angka_1; *ptr_angka_1 = *ptr_angka_2; *ptr_angka_2 = bantu; }
23
NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu10504 NamaIsiAlamatKeterangan bil_190100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu10504
24
NamaIsiAlamatKeterangan bil_190100Lokasi memori untuk fungsi (main) Bil_210102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu10504
25
Bila lupa meletakkan tanda * di depan variabel Void tukar (int *ptr_angka_1, int *ptr_angka_2) { Int bantu; bantu = *ptr_angka_1; ptr_angka_1 = *ptr_angka_2; *ptr_angka_2 = bantu; } Kira-kira apa yang terjadi ?
26
NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1?500Lokasi memori untuk fungsi tukar Ptr_angka_2?502 bantu?504 NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu?504
27
NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu10504 NamaIsiAlamatKeterangan bil_110100Lokasi memori untuk fungsi (main) Bil_290102 Ptr_angka_190 500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu10504
28
Catatan, bila lupa menaruh & akan menyebabkan yang diambil adalah isi dari variabel pada parameter aktual (90 dan 10), bukan nilai variabel yang ditunjukkan oleh alamat pada variabel pointer. NamaIsiAlamatKeterangan bil_190100Lokasi memori untuk fungsi (main) Bil_210102 Ptr_angka_190500Lokasi memori untuk fungsi tukar Ptr_angka_210502 bantu10504
29
Catatan, bila lupa menaruh * akan menyebabkan yang diambil adalah isi dari variabel pointer (100), bukan nilai variabel yang ditunjukkan oleh alamat pada variabel pointer. NamaIsiAlamatKeterangan bil_190100Lokasi memori untuk fungsi (main) Bil_210102 Ptr_angka_1100500Lokasi memori untuk fungsi tukar Ptr_angka_2102502 bantu10504
30
Digunakan untuk mengubah nilai variabel di parameter aktual Tetapi, sangat sensitif terhadap kesalahan, yang dapat mengakibatkan komputer hang. Kelebihannya, adalah kemampuan melakukan pengiriman data string atau array yang tidak dimiliki oleh dua metode sebelumnya.
31
ukuran kecil passing by value Jika ingin mengirimkan data yang memiliki ukuran kecil digunakan metode passing by value ukuran besar passing by reference Jika ingin mengirimkan data yang memiliki ukuran besar digunakan metode passing by reference tidak berlaku string dan array Metode passing by value dan passing by reference tidak berlaku untuk pengiriman data dengan tipe string dan array passing by pointer string dan array Metode passing by pointer direkomendasikan untuk tipe data string dan array
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.