LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki...

17
LOGO Pendidikan Teknik Elektronika FT UNY FUNCTION (FUNGSI) Muh. Izzuddin Mahali, M.Cs. [email protected]

Transcript of LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki...

Page 1: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

LOGO

Pendidikan Teknik ElektronikaFT UNY

FUNCTION (FUNGSI)

Muh. Izzuddin Mahali, [email protected]

Page 2: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Overview

• Pendahuluan• Tujuan Fungsi• Dasar Fungsi• Jenis Fungsi :– memiliki return value•Integer•Selain integer– Tidak memiliki return value• Prototype/Deklarasi Fungsi

Page 3: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Pendahuluan

• Fungsi adalah :– suatu bagian dari program– yang dirancang untuk melaksanakan tugas tertentu– letaknya dipisahkan dari program yang

menggunakannya.• Macam fungsi:– standard : sudah disediakan oleh compiler, tinggal

dipakaidengan menyebutkan headernya (kamusnya) padapreprosessor include, misalnya fungsi :printf() à stdio.h; exit() à stdlib.h– user defined : didefinisikan oleh user, disesuaikan

dengankebutuhan user ybs

Page 4: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Tujuan Fungsi

• Fungsi banyak digunakan dengan tujuan : – Membuat program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsi-fungsi, maka fungsi utama (main()) menjadi lebih pendek, jelas dan mudah dimengerti. – Mengurangi pengulangan (duplikasi) kode, langkah-

langkah program yang sama dan dipakai berulang-ulang di program dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi. Selanjutnya bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut.

Page 5: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Dasar Fungsi

• Fungsi standar C yang mengemban tugas khususcontohnya adalah ;– printf() , yaitu untuk menampilkan informasi atau data

ke layar.– scanf() , yaitu untuk membaca kode tombol yang

diinputkan.• Pada umumnya fungsi memerlukan nilai masukan atauparameter yang disebut sebagai argumen yang akandiolah oleh fungsi.• Hasil akhir fungsi berupa sebuah nilai (disebut sebagaireturn value atau nilai keluaran fungsi).• Oleh karena itu fungsi sering digambarkan sebagai

"kotakgelap" seperti ditunjukkan pada gambar berikut ini.

Page 6: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Dasar Fungsi

Parameter bisa diatikan sebagai “bahanbaku”yang akandiproses dalam fungsi dan dikirim daritempat fungsi tsbdipanggil• Keluaran fungsi (return value) bisadiartikan sebagai “oleh-oleh”yang akandibawa ketika proses kembali ke tempatasal fungsi tsb dipanggil

Page 7: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Dasar Fungsi

• Bentuk umum dari definisi sebuah fungsi adalah sbb :

tipe-keluaran-fungsi nama-fungsi (deklarasi

argumen)

{

tubuh fungsi;

}

Keterangan :• tipe-keluaran-fungsi, dapat berupa salah satu tipe data C,

misalnya char atau int . Kalau penentu tipe tidakdisebutkan maka dianggap bertipe int (secara default).

• tubuh fungsi berisi deklarasi variabel (kalau ada) danstatemen-statemen yang akan melakukan tugas yang akandiberikan kepada fungsi yang bersangkutan. Tubuh fungsiini ditulis di dalam tanda kurung kurawal buka dan kurungkurawal tutup.

Page 8: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Jenis Fungsi

Berdasarkan keberadaan return value-nya,maka fungsi dibagi menjadi 2 jenis, yaitu :

1. punya return value (RV), ciri-cirinya :• ada nama tipe data di depan nama fungsi,

kecuali jika RVnya integer, boleh tidak dituliskarena merupakan tipe default

• ada statemen return di dalam body fungsi

2. tidak punya return value, ciri-cirinya :• ada tipe void di depan nama fungsi• tidak ada statemen return di dalam body

fungsi

Page 9: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Fungsi denganReturn Value integer

Fungsi yang memiliki RV integer, maka di

depan nama fungsi boleh dituliskan tipe intatau tanpa tipe sama sekali :

Page 10: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Fungsi denganReturn Value integer

Page 11: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Fungsi denganReturn Value bukan integer

• Untuk fungsi yang mempunyai RV bertipe bukan integer, maka fungsi HARUS didefiniskan dengan

diawali tipe RV-nya (ditulis di depan nama fungsi). • Contoh fungsi jumlah() memiliki RV bertipe float sbb :

float jumlah (float x, float y){return (x+y);};

Page 12: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Fungsi denganReturn Value bukan integer

#include <stdio.h>float jumlah(float, float);main(){

float a, b,c;printf("Masukkan nilai a : ");scanf("%f", &a);printf("Masukkan nilai b : ");scanf("%f", &b);c = jumlah(a, b);printf("\nHasil penjumlahan a + b = %g\n", c);

}

float jumlah(float x, float y) {

return(x + y);}

Page 13: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

FungsiTanpa Return Value

• Khusus untuk fungsi yang dirancang tanpamemberikan RV (melainkan hanya menjalankansuatu tugas khusus) biasa idefinisikan dengandiawali kata kunci void (di depan nama fungsi).

• Contoh fungsi info_program()yang tugasnyamenampilkan informasi tentang sebuah program:

void program_info()

{

puts(“=====================”);

puts(“selamat datang kelas b”);

puts(“selamat kita bisa pemrograman”);

puts(“=====================”);

}

Page 14: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Prototype/DeklarasiFungsi

• Prototipe fungsi digunakan untuk menjelaskankepadakompiler mengenai :– tipe keluaran fungsi– jumlah parameter– tipe dari masing-masing parameter

• Bagi kompiler, informasi tsb akan dipakai untukmemeriksa keabsahan (validitas) parameter dalam pemanggilan fungsi.

• Salah satu keuntungannya adalah, kompiler akanmelakukankonversi seandainya antara tipeparameter dalam fungsi dan parameter saatpemanggilan fungsi tidak sama, atau akanmenunjukan kesalahan bila jumlah parameter dalam definisi dan saat pemanggilan berbeda.

Page 15: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Prototype/DeklarasiFungsi

Page 16: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Prototype/DeklarasiFungsi

Page 17: LOGOstaffnew.uny.ac.id/upload/198412092015041001/pendidikan/5. Fungsi.pdf · –Tidak memiliki return value ... yaitu untuk membaca kode tombol yang ... ini ditulis di dalam tanda

Pendidikan Teknik ElektronikaFT UNY

Tugas !!

a. Buatlah sebuah fungsi yang berfungsi untukmenampilkan sebuah string (di layar) =“Pilihan Menu”(misalkan nama fungsinya =menu). Fungsi tersebut tidak memiliki nilaikembalian (return value) dan juga tidakmenerima parameter masukan apapun.

b. Tulislah prototipe fungsi untuk fungsitersebut.

c. Buat function main untuk memanggil functionmenu() secara berulang-ulang, denganjumlah perulangan yang merupakan inputdari user.