FUNGSI & PROSEDUR Overview Deskripsi Tujuan Instruksional ...

14 downloads 202214 Views 196KB Size Report
Deklarasi Fungsi & Prosedur. • Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++. • Yang Harus diperhatikan dalam penulisan Fungsi &. Prosedur.
FUNGSI & PROSEDUR Pertemuan ke-12 -13 Dosen Pembina: Danang Junaedi

• • • • • • • •

Deskripsi Tujuan Instruksional Referensi Review Lingkup Variabel Definisi Fungsi & Prosedur Deklarasi Fungsi & Prosedur Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Yang Harus diperhatikan dalam penulisan Fungsi & Prosedur • Jenis Parameter • Passing Parameter • Studi Kasus • Perbandingan Fungsi & Prosedur • Pedoman Penulisan Fungsi & Prosedur • Kelebihan Fungsi & Prosedur • Tugas Rumah

Overview Jurusan Teknik Informatika

III - 1

Universitas Widyatama

Materi ini mempelajari : • Fungsi dalam Algoritma dan Bahasa C/C++ • Prosedur dalam Algoritma dan Bahasa C/C++

Deskripsi Jurusan Teknik Informatika

III - 2

Universitas Widyatama

Mahasiswa diharapkan dapat : • Menjelaskan pengertian dan manfaat fungsi dan prosedur , serta cara penulisannya dalam program • Menjelaskan lingkup variabel serta passing parameter • Menjelaskan penggunaan fungsi dan prosedur dalam algoritma dan Bahasa C/C++ • Menggunakan fungsi dan prosedur dalam Bahasa algoritma dan C/C++ • Menjelaskan perbandingan fungsi dan prosedur • Menjelaskan perbandingan aplikasi yang menggunakan fungsi/ prosedur dan tidak menggunakan fungsi/ prosedur

Tujuan Instruksional III - 3

Universitas Widyatama

1. Hartono, Jogiyanto, “Konsep Dasar Pemorgraman Bahasa C”. Andi, Yogyakarta, 2000 2. Hartanto, Budi, “Memahami Logika Pembuatan Program C Secara Mudah”, Andi, Yogyakarta, 2004 3. Yatini B., Indra; Nasution, Erliansyah, “Algoritma & Struktur Data dengan C++”, Graha Ilmu,Yogyakarta, 2005 4. Deitel, “C How To Program 4thEdition”,PearsonPrentice Hill, 2004 5. Solichin, Achmad, “Pemrograman Bahasa C dengan Turbo C”, IlmuKomputer.com,2003 6. Rilgivia, Hevi, “Algoritma I – Fungsi”, Teknik Informatika – Universitas Widytama, 2009

Jurusan Teknik Informatika

III - 4

Universitas Widyatama

• Variabel Lokal/Otomatis – Dikenali/ hanya dapat digunakan di satu blok fungsi tempat variabel dideklarasikan – Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses eksekusi terhadap fungsi berakhir. – Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random). – Dideklarasikan dengan menambahkan kata “auto” (opsional).

• Variabel Global/Eksternal – Dikenali/dapat digunakan di seluruh blok program sehingga dapat diakses oleh semua fungsi. – Jika tidak diberi nilai awal secara otomatis berisi nilai nol. – Dideklarasikan dengan menambahkan kata “extern” (opsional).

Review Lingkup Variabel 5

Referensi Jurusan Teknik Informatika

Jurusan Teknik Informatika

III - 5

Universitas Widyatama

Jurusan Teknik Informatika

III - 6

Universitas Widyatama





Variabel Statis – Variabel yang menempati ruang memori komputer secara permanen, sehingga Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir. – Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi tempat – variabel dideklarasikan. – Jika bersifat eksternal (global), maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada program yang sama. – Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil – pertama kali. – Jika tidak diberi nilai awal secara otomatis berisi nilai nol. – Dideklarasikan dengan menambahkan kata “static”. Cara pendeklarasian : static tipe_data nama_variabel; Variabel Register – Variabel biasa yang berada di memori komputer dan disimpan di register CPU – Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char. – Digunakan untuk mengendalikan proses perulangan (looping). – Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang lebih tinggi dibandingkan variabel biasa. – Dideklarasikan dengan menambahkan kata “register”. Cara pendeklarasian : register tipe_data nama_variabel

int A,B; register double Memory; main() { float Y,X; static long int F = 1; { int D; Variabel Lokal } }

III - 7

Universitas Widyatama

• Dalam menyelesaikan suatu masalah, sering kita melakukan penyelesaian dengan cara : a. Membagi masalah tersebut terlebih dahulu menjadi sub - sub masalah. b. Menyelesaian sub - sub masalah tersebut (modul - modul) c. Menggabungkan penyelesaian sub - sub masalah tersebut

Jurusan Teknik Informatika

III - 9

Universitas Widyatama

1. Fungsi dalam Algoritma – Deklarasi Fungsi : Function nama_fungsi (parameter masukan) : tipe hasil – Pemanggilan Fungsi : disertakan pada statement, contoh : • OUTPUT(nama_fungsi(parameter masukan)) • hasil  hasil + nama_fungsi(parameter masukan) 2. Prosedur dalam Algoritma – Deklarasi Prosedur: • Procedure nama_prosedur (parameter masukan, parameter hasil) – Pemanggilan Prosedur, contoh : – nama_prosedur(parameter masukan,parameter hasil) – OUTPUT (parameter_hasil) • Parameter masukan : berupa parameter formal (boleh kosong) apabila tidak ada data yang diterima oleh fungsi atau prosedur.

Penggunaan Fungsi dan Prosedur Jurusan Teknik Informatika

III - 11

Universitas Widyatama

Variabel Statis

III - 8

Universitas Widyatama

• Fungsi adalah modul program yang mengembalikan/mengirimkan sebuah nilai, sedangkan Prosedur adalah modul program yang berisi rangkaian aksi dan menghasilkan efek netto yang terdefinisi • Sub program yang dapat dipanggil dari fungsi lain dan dapat mengembalikan suatu nilai ke fungsi yang memanggilnya 3 • Bagian dari program yang digunakan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya 1 • Sebuah Prgogram yang bertujuan untuk mengerjakan tugas tertentu 2

Konsep Fungsi dan Prosedur Jurusan Teknik Informatika

Variabel Lokal

Variabel Register

Review Lingkup Variabel

Review Lingkup Variabel 5 Jurusan Teknik Informatika

Variabel Global

Definisi Fungsi & Prosedur Jurusan Teknik Informatika

III - 10

Universitas Widyatama

• Deklarasi Fungsi dalam Bahasa C/C++ Tipe Output Fungsi Nama Fungsi

(Parameter Input)

• Deklarasi Prosedur dalam Bahasa C/C++ void

Nama Prosedur

(Parameter Input , Parameter Output)

Catatan : • Terdapat dua nilai yang berhubungan dengan fungsi & prosedur : – Argumen : merupakan nilai/informasi yang akan dikirimkan ke fungsi/prosedur untuk diproses – Parameter : merupakan nilai/informasi yang diterima oleh fungsi tersebut (parameter input) atau merupakan nilai yang dikirimkan oleh fungsi/prosedur ke program yang memanggilnya

• •

Fungsi : maksimum hanya bisa menghasilkan /mengembalikan satu nilai ke program yang memanggilnya Prosedur : bisa menghasilkan/ mengembalikan lebih dari satu nilai ke program yang memanggilnya

Deklarasi Fungsi & Prosedur Jurusan Teknik Informatika

III - 12

Universitas Widyatama

• Penulisan fungsi/prosedur setelah fungsi main

• Penulisan fungsi/prosedur sebelum fungsi main

tipe_fungsi nama_fungsi(parameter input);//prototype fungsi void nama_prosedur(parameter input,parameter output); int main() { Badan fungsi main } …………… tipe_fungsi nama_fungsi(parameter input) { Badan Fungsi } void nama_prosedur(parameter input,parameter output) { Badan Prosedur }

tipe_fungsi nama_fungsi(parameter input) { Badan Fungsi } void nama_prosedur(parameter input,parameter output) { Badan Prosedur } int main() { Badan fungsi main }

Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika

III - 13

Universitas Widyatama

Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika

• Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer. • Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian penentu tipe fungsi. • Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void  Procedure • Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return. • Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.

III - 15

Universitas Widyatama

• Nilai dari parameter aktual akan disalin ke parameter formal. • Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya. • Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi. • Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya. • Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil. • Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja.

Passing Parameter (Passing Parameter by Value) 5 Jurusan Teknik Informatika

III - 17

Universitas Widyatama

Universitas Widyatama

• Parameter Formal float Tambah (float X, float Y) { return (X+Y); }

• Parameter Aktual main() { ……………… ……………… C = Tambah (A,B); ……………… }

Yang harus diperhatikan dalam penggunaan Fungsi & Prosedur 5 Jurusan Teknik Informatika

III - 14

Parameter Formal Variabel /Parameter yang ada pada suatu fungsi

Variabel /Parameter yang akan dikirim ke suatu fungsi Parameter Aktual

Jenis-Jenis Parameter Jurusan Teknik Informatika

III - 16

Universitas Widyatama

• Ex : – Cara Penulisan di parameter formal Double Fak(int X); – Cara Penulisan di parameter aktual A = 5; Hasil = Fak(A); Isi memori sebelum fungsi dijalankan Nama Variabel

Isi

Alamat

A

5

100

Hasil

?

102

X

?

500

Keterangan

Isi memori sebelum fungsi dijalankan Nama Variabel

Isi

Alamat

Lokasi memori untuk fungsi main

A

5

100

Hasil

?

102

Lokasi memori untuk fungsi Fak

X

5

500

Lokasi memori untuk fungsi main

:

: :

Keterangan

:

Lokasi memori untuk fungsi Fak

Passing Parameter (Passing Parameter by Value) 2 Jurusan Teknik Informatika

III - 18

Universitas Widyatama

• Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi. • Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya. • Fungsi yang menerima kiriman alamat ini akan menggunakan alamat yang sama untuk mendapatkan nilai datanya. • Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi. • Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya. • Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.

• Yang dikirimkan ke fungsi adalah nama dari suatu variabel • Ex : – Cara Penulisan di parameter formal void Tukar (int &Bil1, int &Bil2); – Cara Penulisan di parameter aktual A = 5; B = 1; Tukar (A,B); Isi memori sebelum fungsi dijalankan Nama Variabel

Isi

Alamat

A

5

100

B

1

102

Jurusan Teknik Informatika

III - 19

500

• Yang dikirimkan ke fungsi adalah alamat dari suatu variabel • Ex : – Cara Penulisan di parameter formal void Tukar (int *Bil1, int *Bil2); – Cara Penulisan di parameter aktual A = 5; B = 1; Tukar (&A,&B); Nama Variabel

Isi

Alamat

A

5

100

B

1

102

Bil1

?

500

Bil2

?

501

bantu

?

502

:

Keterangan

Isi memori setelah fungsi dipanggil Nama Variabel

Isi

Alamat

Lokasi memori untuk fungsi main

A

5

100

B

1

102

Lokasi memori untuk fungsi Tukar

Bil1

100

500

Bil2

102

501

?

502

:

bantu

Keterangan Lokasi memori untuk fungsi main Lokasi memori untuk fungsi Tukar

:

Passing Parameter (Passing Parameter by Pointer) 2 Jurusan Teknik Informatika

III - 21

Isi

Alamat

Lokasi memori untuk fungsi main

A/Bil1

5

100

B/Bil2

1

102

Lokasi memori untuk fungsi Tukar

bantu

Keterangan Lokasi memori untuk fungsi main

: 500 :

Lokasi memori untuk fungsi Tukar

Passing Parameter (Passing Parameter by Reference) 2

Universitas Widyatama

Isi memori sebelum fungsi dijalankan

Isi memori setelah fungsi dipanggil Nama Variabel

: bantu

:

Passing Parameter (Passing Parameter by Reference) 5

Keterangan

Universitas Widyatama

• Fungsi harus independen • Satu fungsi hanya mengerjakan satu tugas saja • Gunakan semaksimal mungkin fasilitas input dan output yang disediakan oleh fungsi

Jurusan Teknik Informatika

III - 20

Universitas Widyatama

a. Fungsi hanya memberikan satu hasil, sedangkan sebuah prosedur dapat memberikan lebih dari satu hasil b. Nama fungsi sekaligus digunakan untuk sebagai pemanggil dan mengubah pada suatu ungkapan, sedangkan prosedur hanya digunakan sebagai pemanggil saja c. Dalam fungsi tidak mengenal parameter pengubah, hanya parameter nilai. Sedangkan pada prosedur dapat mengenal keduanya. d. Semua parameter diperlakukan sebagai masukan pada fungsi dan keluaran terdapat pada nama fungsi e. Fungsi memiliki tipe data (tergantung output yang akan dihaslkan oleh fungsi tersebut), sedangkan prosedur tidak memiliki tipe data f. Fungsi hanya memiliki 1 nilai balik (output fungsi), sedangkan prosedur bisa memiliki lebih dari 1 nilai balik

Perbedaan Fungsi dan Prosedur Jurusan Teknik Informatika

III - 22

Universitas Widyatama

1. Menjadikan program memiliki struktur yang jelas1 sehingga program lebih konsisten dan lebih mudah dimengerti2 2. Menghindari penulisan baris program secara berulang-ulang1 sehingga program menjadi lebih efisien dan Ukuran Program menjadi lebih kecil2 3. Perintah dalam blok program cenderung lebih independen2

4. Reusable2 Pedoman Pembuatan Fungsi & Prosedur 2 Jurusan Teknik Informatika

III - 23

Universitas Widyatama

Kelebihan Fungsi & Prosedur Jurusan Teknik Informatika

III - 24

Universitas Widyatama