Download - 5 Fungsi Array

Transcript
Page 1: 5 Fungsi Array

Membuat Fungsi

Bagian 2

Page 2: 5 Fungsi Array

Fungsi dengan Multiple Argument

• Fungsi yang bermultiple argument, dipisahkan dengan koma

• Contoh :

int product(int arg1, int arg2)

{

return arg1 * arg2;

}

Page 3: 5 Fungsi Array

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.

Page 4: 5 Fungsi Array

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

}

Page 5: 5 Fungsi Array

• C++ masih mengenal fungsi someFunction(void), someFunction(int), someFunction(double), and someFunction(int, int) yang merupakan fungsi yang berbeda.

Page 6: 5 Fungsi Array

• 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)

Page 7: 5 Fungsi Array

Prototype Fungsi

int someFunc(double, int);

int main(int nNumberofArgs, char* pszArgs[])

{

someFunc(1, 2);

}

int someFunc(double arg1, int arg2)

{

// ...do something

}

Page 8: 5 Fungsi Array

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.

Page 9: 5 Fungsi Array

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);

Page 10: 5 Fungsi Array

• 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.

Page 11: 5 Fungsi Array

• Environment C++ menyediakan file include seperti : cstudio dan cstream

• Selama beberapa tahun, programmer menggunakan file include dengan ekstensi .h

Page 12: 5 Fungsi Array

Menyimpan Kejadian kedalam Array

Page 13: 5 Fungsi Array

• Array adalah serangkai variabel yang mengeshare nama yang sama direferensikan menggunakan index.

Page 14: 5 Fungsi Array

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.

Page 15: 5 Fungsi Array

• 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;

}

Page 16: 5 Fungsi Array

• 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].

Page 17: 5 Fungsi Array

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);

Page 18: 5 Fungsi Array

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];

Page 19: 5 Fungsi Array

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;

}

Page 20: 5 Fungsi Array

// ... 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;

}

Page 21: 5 Fungsi Array

// 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;

}

Page 22: 5 Fungsi Array

// 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;

}

Page 23: 5 Fungsi Array

• 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

Page 24: 5 Fungsi Array

• Environment dev-c++ membantu Anda untuk lebih mudah melihat daftar fungsi yang Anda buat.

Page 25: 5 Fungsi Array

• Fungsi displayArray() berisikan loop for yang digunakan untuk menjelajahi array

• Perhatikan index di inialisasi bilangan 0 bukan bilangan 1

Page 26: 5 Fungsi Array

• 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 . . .

Page 27: 5 Fungsi Array

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.

Page 28: 5 Fungsi Array

• 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};

Page 29: 5 Fungsi Array

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

Page 30: 5 Fungsi Array

• 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}

Page 31: 5 Fungsi Array

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.

Page 32: 5 Fungsi Array

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);

Page 33: 5 Fungsi Array

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];

}

}

Page 34: 5 Fungsi Array

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[]);

Page 35: 5 Fungsi Array

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;

}

Page 36: 5 Fungsi Array

• // 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.

Page 37: 5 Fungsi Array

• 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

Page 38: 5 Fungsi Array

Memanipulasi String dengan menggunakan Karakter

• Programmer C++ sering kali membutuhkan suatu perintah untuk memanipulasi string

Page 39: 5 Fungsi Array
Page 40: 5 Fungsi Array

• Anda butuh menambahkan statement #include <string.h> untuk memulai program yang menggunakan fungsi str…

Page 41: 5 Fungsi Array

• 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;

Page 42: 5 Fungsi Array

// 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];

Page 43: 5 Fungsi Array

// 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;

}

Page 44: 5 Fungsi Array

• 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

Page 45: 5 Fungsi Array

• 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.


Top Related