• Tidak ada hasil yang ditemukan

Membuat Fungsi. Bagian 2

N/A
N/A
Protected

Academic year: 2021

Membagikan "Membuat Fungsi. Bagian 2"

Copied!
45
0
0

Teks penuh

(1)

Membuat Fungsi

(2)

Fungsi dengan Multiple Argument

Fungsi yang bermultiple argument, dipisahkan

dengan koma

Contoh :

int product(int arg1, int arg2)

{

return arg1 * arg2;

}

(3)

Overloading Penamaan Fungsi

C++ membolehkan programmer untuk

menetapkan penamaan yang sama terhadap

dua atau lebih dari suatu fungsi.

Pada umumnya, dua fungsi dalam single

(4)

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 }

(5)

C++ masih mengenal fungsi

someFunction(void), someFunction(int),

someFunction(double), and someFunction(int,

int) yang merupakan fungsi yang berbeda.

(6)

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

(7)

Prototype Fungsi

int someFunc(double, int);

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

{

someFunc(1, 2);

}

int someFunc(double arg1, int arg2)

{

// ...do something

}

(8)

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.

(9)

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

(10)

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.

(11)

Environment C++ menyediakan file include

seperti : cstudio dan cstream

Selama beberapa tahun, programmer

(12)

Menyimpan Kejadian kedalam

Array

(13)

Array adalah serangkai variabel yang

mengeshare nama yang sama direferensikan

menggunakan index.

(14)

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.

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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;

}

(20)

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

(21)

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

}

(22)

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

}

(23)

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

(24)

Environment dev-c++ membantu Anda untuk

lebih mudah melihat daftar fungsi yang Anda

buat.

(25)

Fungsi displayArray() berisikan loop for yang

digunakan untuk menjelajahi array

Perhatikan index di inialisasi bilangan 0 bukan

bilangan 1

(26)

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

(27)

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

(28)

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.

(29)

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

(30)

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}

(31)

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.

(32)

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

(33)

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

(34)

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

(35)

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;

(36)

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

(37)

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

(38)

Memanipulasi String dengan

menggunakan Karakter

Programmer C++ sering kali membutuhkan

suatu perintah untuk memanipulasi string

(39)
(40)

Anda butuh menambahkan statement

#include <string.h> untuk memulai program

yang menggunakan fungsi str…

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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.

Referensi

Dokumen terkait

Kondisi tidak mendalam, tidak realistis, tidak relevan 2b Kemampuan melihat potensi pengembangan Memiliki ketajaman melihat peluang relevan Kurang tajam melihat peluang

Coca Cola Amatil Indonesia Central Java tahun 2014-2015 adalah tindakan tidak sesuai. standar (substandard

Selama penurunan biaya kegagalan lebih besar daripada kenaikan biaya pencegahan dan penilaian, maka perusahaan harus secara kontinyu meningkatkan usaha-usahanya untuk mencegah

Bentuk diskusi kelompok resmi yang disebut dengan istilah simposium ini sungguh sangat bermanfaat apabila pokok pembicaraan yang sedang didiskusikan itu tidak dapat dijawab dengan

Apabila ada anggota jemaat yang berkeberatan terhadap nama-nama calon baptis anak yang diwartakan oleh karena tidak terpenuhi syarat-syarat Baptis Kudus Anak, maka

Soal Susun program untuk menginput 3 ( tiga ) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian

Buatlah sebuah algoritma mencetak pesan ”bilangan genap” kemudian kalikan bilangan tersebut dengan angka 2 jika bilangan bulat yang dimasukkan dari piranti masukan merupakan bilangan

Soal Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain),. kemudian