1 / 19

Function(2)

Function(2). Contoh soal. Buatlah program untuk menghitung x y dengan x integer, y integer. Gunakan function untuk menghitung operasi tsb! X dan y dibaca dari keyboard. Solusi & langkah-langkah. Menentukan mana yang dijadikan program utama, mana yang dijadikan function

hosea
Download Presentation

Function(2)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Function(2)

  2. Contoh soal • Buatlah program untuk menghitung xy dengan x integer, y integer. Gunakan function untuk menghitung operasi tsb! X dan y dibaca dari keyboard

  3. Solusi & langkah-langkah • Menentukan mana yang dijadikan program utama, mana yang dijadikan function • Program utama  membaca masukan dari keyboard yaitu x dan y, kemudian menampilkan hasil operasinya • Fungsi  berisi operasi xy dengan spesifikasi fungsi sbb:

  4. Spesifikasi fungsi • Argumen (input fungsi) : x dan y, bertipe integer • Return value(output fungsi) : hasil operasi xy bertipe integer • Bentuk fungsinya kira-kira sbb: int pangkat(int x,int y);

  5. Algoritma perpangkatan • Bagaimana algoritma untuk menghitung z= xy? • Z= xy = x*x*x*x …*x • Dalam bentuk loop for: z = 1; for(i=0;i<y;i++) { z = z*x; } Sejumlah y

  6. Program Lengkap #include <cstdlib> #include <iostream> using namespace std; int pangkat(int x,int y) { int z,i; z=1; for(i=0;i<y;i++) { z=z*x; } return z; } int main(int argc, char *argv[]) { int x,y,hasil; cout << "masukkan x:"; cin >> x; cout <<endl<<"masukkan y:"; cin >> y; hasil = pangkat(x,y); cout <<endl<<"hasil : "<<hasil; system("PAUSE"); return EXIT_SUCCESS; }

  7. Contoh soal: • Buatlah program untuk menghitung nilai rerata dari n buah bilangan. Jumlah bilangan dibaca dari keyboard. Bilangan-bilangan yang akan direrata juga dibaca dari keyboard. Gunakan fungsi untuk operasi rerata!

  8. Langkah-langkah solusi • Program utama : membaca jumlah bilangan (n), membaca bilangan-bilangan yang akan direrata • Fungsi : menghitung rerata

  9. Spec fungsi • Return value : berupa rerata, tipe : float • Argumen (masukan) : berupa jumlah bilangan dan array bilangan. karena masukan ada yg berupa array yg akan dicari reratanya, maka ada 2 pilihan bentuk argumen: • float rerata(int jml,int masukan[10]) • float rerata(int jml,int *masukan) • Sebaiknya dipilih pilihan no 2. Argumen berupa pointer lebih fleksibel, jumlah elemen array tidak dibatasi

  10. Fungsi dengan multi output • Bagaimana jika diinginkan >1 output pada suatu fungsi? • Fungsi yang telah kita pelajari selama ini hanya memungkinkan utk 1 out, yaitu pada return value out1 in1 out2 in2 out3 out_n in_m

  11. Argumen ‘called by reference’ (cbr) • Untuk membuat fungsi dengan >1 output, digunakan teknik argumen ‘called by ref’ • Idenya dengan membuat argumen sebagai output • Contohnya seperti pada fungsi ‘scanf’ • scanf(“%d”,&a) Argumen 2, output Argumen 1, input

  12. Argumen ‘CBR’ • Output fungsi scanf tsb adalah variabel ‘a’ • Yang dijadikan sebagai argumen sebenarnya adalah referens a (&a) atau alamat a, jadi bukan variabel a itu sendiri • Untuk membuat fungsi menjadi CBR, digunakan argumen berbentuk pointer pada header fungsinya. Contoh: nama_fungsi(*arg1,*arg2)

  13. Membuat fungsi CBR • Contoh: • Buatlah program untuk menghitung +, -, X, dan / antara 2 bilangan, dengan syarat ke-4 operasi tsb dilakukan dalam 1 fungsi!

  14. Perancangan fungsi • Untuk mengerjakan ke-4 operasi tadi, dibutuhkan fungsi yang mempunyai 2 input dan 4 output • Karena mempunyai 4 output, fungsi yang digunakan adalah fungsi CBR • Rancangan headernya adalah sebagai berikut: void operasi(int a,int b,int *jumlah,int *kurang,int *kali,float *bagi) Hasil - Hasil / Hasil + Hasil * input Karena semua output sudah dikeluarkan lewat argumen, Return value dibuat void saja (tidak punya return val)

  15. Program lengkap void operasi(int a,int b,int *jumlah,int *kurang,int *kali,float *bagi) { //definisi fungsi ‘operasi’ *jumlah=a+b; *kurang=a-b; *kali=a*b; *bagi=a/b; } int main(int argc, char *argv[]) { int a,b,c,d,e; float f; cout <<"masukkan bilangan pertama:"; cin >>a; cout <<endl<<"masukkan bilangan kedua:"; cin >>b; operasi(a,b,&c,&d,&e,&f); cout <<"hasil jumlah: "<<c<<endl; cout <<"hasil kurang: "<<d<<endl; cout <<"hasil kali: "<<e<<endl; cout <<"hasil bagi: "<<f<<endl; system("PAUSE"); return EXIT_SUCCESS; } Modifikasi argumen output dengan operasi pointer Pemanggilan fungsi ‘operasi’ Melalui referens c,d,e,f Menampilkan output

  16. Fungsi dengan output suatu array • Fungsi yg telah kita pelajari sebelumnya adalah fungsi dengan output variabel tunggal • Bagaimana membuat suatu fungsi dengan output suatu array?

  17. Fungsi dengan output array • Fungsi CBR juga bisa digunakan untuk membuat fungsi meng-outputkan suatu array • Contoh: buatlah program untuk menjumlahkan 2 vektor. Gunakan fungsi untuk melakukan penjumlahan vektor

  18. Fungsi dgn output array • Rancangan header fungsi untuk contoh tsb adalah sebagai berikut: void jumlah_array(int *a,int *b,int *c,int n) c = a+b Panjang vektor Vektor output Vektor input Vektor input

  19. Program lengkap void jumlah(int *a,int *b,int *c,int n) { //definisi fungsi jumlah int i; for(i=0;i<n;i++) { *(c+i)=*(a+i)+*(b+i);//c[i]=a[i]+b[i] } } int main(int argc, char *argv[]) { int i,in1[5]={1,3,5,7,9},in2[5]={2,4,6,8,10},out[5],n=5; jumlah(in1,in2,out,n); //pemanggilan fungsi jumlah cout <<"hasil penjumlahan vektor:"<<endl; for(i=0;i<n;i++) { cout<<out[i]<<" "; } system("PAUSE"); return EXIT_SUCCESS; } Arraynya langsung jadi argumen

More Related