Membuat Fungsi Bagian 2
Fungsi dengan Multiple Argument Fungsi yang bermultiple argument, dipisahkan dengan koma Contoh : int product(int arg1, int arg2) } return arg1 * arg2;
Overloading Penamaan Fungsi C++ membolehkan programmer untuk menetapkan penamaan yang sama terhadap dua atau lebih dari suatu fungsi. Pada umumnya, dua fungsi dalam single program tidak dapat share nama yang sama.
void somefunction(void) //...perform some function } void somefunction(int n) //...perform some different function } void somefunction(double d) //...perform some very different function } void somefunction(int n1, int n2) //...do something different yet }
C++ masih mengenal fungsi somefunction(void), somefunction(int), somefunction(double), and somefunction(int, int) yang merupakan fungsi yang berbeda.
Berikut ini pengaplikasian penggunaan overloaded fungsi dengan penamaan yang unik : int intvariable1, intvariable2; // equivalent to // int Variable1; // int Variable2; double doublevariable; // functions are distinguished by the type of // the argument passed somefunction(); // calls somefunction(void) somefunction(intvariable1); // calls somefunction(int) somefunction(doublevariable); // calls somefunction(double) somefunction(intvariable1, intvariable2); // calls // somefunction(int, int) // this works for constants as well somefunction(1); // calls somefunction(int) somefunction(1.0); // calls somefunction(double) somefunction(1, 2); // calls somefunction(int, int)
Prototype Fungsi int somefunc(double, int); int main(int nnumberofargs, char* pszargs[]) somefunc(1, 2); } int somefunc(double arg1, int arg2) //...do something }
Tipe-tipe storage variable Variabel fungsi di storekan di tiga tempat berbeda Contoh variabel localvariable sebagai fungsi lokal fn(): int globalvariable; void fn() int localvariable; static int staticvariable; } Variabel globalvariable dibuat ketika program mulai eksekusi Variabel staticvariable mirip suatu campuran variabel lokal dan variabel global.
Memasukkan File Include Pada umumnya prototip suatu fungsi diletakkan dalam file terpisah, yang kemudian file tersebut di include-kan dalam source C++. Pendefinisian file include math seperti berikut: // math include file: // provide prototypes for functions that might be useful // in more than one program // abs - return the absolute value of the argument double abs(double d); // square - return the square of the argument double square(double d);
Program menggunakan file include math seperti berikut : // MyProgram - #include math using namespace std; // my code continues here #include adalah directive #include bukanlah format C++, directive ini akan dieksekusi oleh interpreter sebelum kompiler melakukan kompilasi.
Environment C++ menyediakan file include seperti : cstudio dan cstream Selama beberapa tahun, programmer menggunakan file include dengan ekstensi.h
Menyimpan Kejadian kedalam Array
Array adalah serangkai variabel yang mengeshare nama yang sama direferensikan menggunakan index.
Mengapa Butuh Array? Coba anda lihat : cin >> value1; if (value1 >= 0) cin >> value2; if (value2 >= 0)... Dapat kita simpulkan, penanganan ini hanya dapat menangani beberapa bilangan.
Masalah tersebut dapat ditangani dengan menggunakan Array : int value; // declare an array capable of holding up to 128 ints int valuearray[128]; // define an index used to access subsequent members of // of the array; don t exceed the 128 int limit for (int i = 0; i < 128; i++) cin >> value; // exit the loop when the user enters a negative // number if (value < 0) break; } valuearray[i] = value; }
Pada baris kedua dari code di atas, baris tersebut mendeklarasi variabel valuearray sebagai Array Potongan program tersebut meminta masukan dari user untuk memasukkan bilangan, kemudian program menyimpan masukan bilangan tersebut ke variabel Array valuearray. Dalam penggunaan Array, valuearray[i] menunjukkan i adalah elemen ke i dari valuearray[i].
Menggunakan Array Program berikut meminta masukkan nilai integer dari keyboard, hingga si usernya memasukkan bilangan negatif. // ArrayDemo - demonstrate the use of arrays // by reading a sequence of integers // and then displaying them in order #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; // prototype declarations int sumarray(int integerarray[], int sizeofloatarray); void displayarray(int integerarray[], int sizeofloatarray);
int main(int nnumberofargs, char* pszargs[]) // input the loop count int naccumulator = 0; cout << This program sums values entered << by the user\n ; cout << Terminate the loop by entering << a negative number\n ; cout << endl; // store numbers into an array int inputvalues[128];
int numberofvalues; for(numberofvalues = 0;numberOfValues < 128; numberofvalues++) // fetch another number int integervalue; cout << Enter next number: ; cin >> integervalue; // if it s negative... if (integervalue < 0) //...then exit break; }
} //... otherwise store the number // into the storage array inputvalues[numberofvalues] = integervalue; // now output the values and the sum of the values displayarray(inputvalues, numberofvalues); cout << The sum is << sumarray(inputvalues, numberofvalues) << endl; } // wait until user is ready before terminating program // to allow the user to see the program results system( PAUSE ); return 0;
// displayarray - display the members of an // array of length sizeofloatarray void displayarray(int integerarray[], int sizeofarray) cout << The value of the array is: << endl; for (int i = 0; i < sizeofarray; i++) cout.width(3); cout << i << : << integerarray[i] << endl; } cout << endl; }
// sumarray - return the sum of the members of an // integer array int sumarray(int integerarray[], int sizeofarray) int accumulator = 0; for (int i = 0; i < sizeofarray; i++) accumulator += integerarray[i]; } return accumulator; }
Program ArrayDemo dimulai dengan sebuah prototipe deklarasi dari fungsi sumarray() dan displayarray(). Jika input bilangan adalah negatif, maka loop akan keluar dengan mengeksekusi break Nilai Array inputvalues dideklarasikan sebagai 128 long integer Fungsi main diakhiri dengan pemanggilan displayarray() untuk menampilkan isi array dan jumlah
Environment dev-c++ membantu Anda untuk lebih mudah melihat daftar fungsi yang Anda buat.
Fungsi displayarray() berisikan loop for yang digunakan untuk menjelajahi array Perhatikan index di inialisasi bilangan 0 bukan bilangan 1
Output Program : This program sums values entered by the user Terminate the loop by entering a negative number Enter next number: 1 Enter next number: 2 Enter next number: 3 Enter next number: -1 The value of the array is: 0: 1 1: 2 2: 3 The sum is 6 Press any key to continue...
Menginisialisasi Array Variabel lokal tidak dimulai dengan nilai yang valid, dan juga bukan 0. Kebetulan, variabel array yang kecil bisa di inisialisasikan disaat variabel tersebut dideklarasikan : float floatarray[5] = 0.0, 1.0, 2.0, 3.0, 4.0}; Code tersebut menginisialisasi floatarray[0] ke 0.0, floatarray[1] = 1.0, floatarray[2] ke 2.0 dan seterusnya.
Banyaknya yang diinisialisasi bergantung dengan ukuran suatu Array Contoh deklarasi array yang mirip dengan sebelumnya : float floatarray[] = 0.0, 1.0, 2.0, 3.0, 4.0}; Anda dapat saja menginisialisasikan semua element dalam array dengan mengelist nilai tersebut. Berikut contoh, menginisialisasikan nilai 1.0 di 25 lokasi dalam floatarray. float floatarray[25] = 1.0};
Mendefinisikan dan Menggunakan Array 2 Dimensi C++ Mengimplementasikan suatu matrix seperti berikut : int intmatrix[10][5]; Matrix ini berisikan 10 elemen yang berada pada dimensi 1, dan 5 elemen pada dimensi yang lain, jadi total elemen array adalah 10 * 5 = 50 elemen
Suatu matrix dapat diinisiasikan dalam cara yang sama dengan menginisialisasikan array : int intmatrix[2][3] = 1, 2, 3}, 4, 5, 6}}; Code ini menginisialisasikan 3 elemen array dalam intmatrix[0] ke [1, 2, 3} dan 3 elemen array dalam intmatrix[1] ke 4, 5, 6}
Menggunakan Array Karakter Elemen suatu array banyak tipe. Array float, double, dan long juga mungkin menjadi tipe dari suatu Array. Tetapi array karakter menjadi penekanan yang paling penting.
Membuat Array Karakter Kata-kata dan kalimat dapat diekspresikan ke dalam bentuk array karakter char smyname[] = S, t, e, p, h, e, n }; Berikut ini contoh program yang menampilkan MyName // CharDisplay - output a character array to // standard output, the MS-DOS window #include <stdio.h> #include <iostream.h> // prototype declarations void displaychararray(char stringarray[],int sizeofloatarray);
int main(int narg, char* pszargs[]) char charmyname[] = S, t, e, p, h, e, n }; displaychararray(charmyname, 7); cout << \n ; return 0; } // displaychararray - display an array of characters // by outputing one character at // a time void displaychararray(char stringarray[], int sizeofloatarray) for(int i = 0; i< sizeofloatarray; i++) cout << stringarray[i]; } }
Membuat String dari karakter Dengan melihat contoh program sebelumnya, diberikan program : // DisplayString - output a character array to // standard output, the MS-DOS window #include <cstdio> #include <cstdlib> #include <iostream> #include <string> using namespace std; // prototype declarations void displaystring(char stringarray[]);
int main(int nnumberofargs, char* pszargs[]) char charmyname[] = S, t, e, p, h, e, n, 0}; displaystring(charmyname); } // wait until user is ready before terminating program // to allow the user to see the program results system( PAUSE ); return 0;
// displaystring - display a character string // one character at a time void displaystring(char stringarray[]) for(int i = 0; stringarray*i+!= \0 ; i++) cout << stringarray[i]; } } Pendeklarasian charmyname mendeklarasikan karakter array dengan karakter ekstra null sebagai elemen akhirnya.
Kita memilih karakter \0 adalah untuk mengakhiri karakter bukan random char szmyname*+ = Stephen ; Identik dengan : char szalsomyname[] =, S, t, e, p, h, e, n, \0 -; String Stephen terdiri dari 8 karakter bukan 7, karena karakter \0 merupakan bagian dari string Stephen
Memanipulasi String dengan menggunakan Karakter Programmer C++ sering kali membutuhkan suatu perintah untuk memanipulasi string
Anda butuh menambahkan statement #include <string.h> untuk memulai program yang menggunakan fungsi str
Berikut program yang menginput dua string dari keyboard dan menggabungkannya kedalam bentuk satu string // Concatenate - concatenate two strings // with a - in the middle #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; // the following include file is deprecated; // however, it is required for the str functions #include <strings.h> int main(int nnumberofargs, char* pszargs[]) // read first string... char szstring1[256]; cout << Enter string #1: ; cin >> szstring1;
// safer alternative // cin.getline(szstring1, 128); //...now the second string... char szstring2[128]; cout << Enter string #2: ; cin >> szstring2; // safer alternative // cin.getline(szstring1, 128); // accumulate both strings into a single buffer char szstring[260];
// copy the first string into the buffer... strncpy(szstring, szstring1, 128); //...concatenate a - onto the first... strncat(szstring, -, 4); //...now add the second string... strncat(szstring, szstring2, 128); //...and display the result cout << \n << szstring << endl; } // wait until user is ready before terminating program // to allow the user to see the program results system( PAUSE ); return 0;
Output Program : Enter string #1:Chester Enter string #2:Dog Chester - Dog Press any key to continue... Program dimulai dengan membaca input dari keyboard Extractor cin >> tidak tahu apa-apa dengan panjang string
Solusinya adalah menggunakan : cin.getline(string, lengthofthestring); Fungsi ini dapat menerima panjang suatu karakter dari string Fungsi strncpy() dan strncat() juga dapat menerima panjang string.