Download - 5 Fungsi Array
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.