Anda di halaman 1dari 29

LAPORAN PRAKTIKUM VI

FUNGSI (FUNCTION)

Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++


Dibimbing oleh Bapak Drs. Wahyu Sakti Gunawan Irianto, M.Kom.

Oleh:
ARVENDO MAHARDIKA
160533611405
S1 PTI 2016 A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA
November 2016
2

LAPORAN PRAKTIKUM VI
FUNGSI (FUNCTION)

Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++


Dibimbing oleh Bapak Drs. Wahyu Sakti Gunawan Irianto, M.Kom.

Oleh:
DIAN MONICA
160533611453
S1 PTI 2016 A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA
November 2016
3

LAPORAN PRAKTIKUM V
LARIK (ARRAY)

Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++


Dibimbing oleh Bapak Drs. Wahyu Sakti Gunawan Irianto, M.Kom.

Oleh:
DIAN MONICA
160533611453
S1 PTI 2016 A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA
November 2016
FUNGSI

A. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu:
Mahasiswa mampu memahami fungsi
Mahasiswa mampu mendeklarasikan dan mendefinisikan fungsi
Mahasiswa mampu menyelesaikan masalah menggunakan fungsi
Mahasiswa mampu memahami metode pemanggilan fungsi
Mahasiswa mampu membuat fungsi rekursif

B. Dasar Teori
1. Pendahuluan

Gambar 1. Program Permutasi

Dalam pembuatan program di atas terdapat suatu rumus permutasi. Agar


program lebih efisien dapat dipisahkan antara rumus dengan program
utama, sehingga dalam program utama hanya ada perintah memanggil
rumus untuk memproses suatu variabel. Hal ini dalam pemrograman disebut
dengan fungsi. Fungsi merupakan blok dari kode yang dirancang untuk
melakukan tugas khusus. Tujuan pembuatan fungsi adalah:
Program menjadi terstruktur
Dapat mengurangi duplikasi kode
Fungsi dapat dipanggil dari program atau fungsi yang lain
Pada umumnya fungsi memerlukan masukan yang disebut parameter
atau argument. Hasil akhir fungsi akan berupa nilai (nilai balik fungsi).
Bentuk umum sebuah fungsi adalah:

1
2

TipeFungsi namaFungsi (parameter)


{
//Tubuh fungsi
}

Misalkan: Dalam bahasa C++:


void Ckali(int angka)
{
int a=angka*angka;
cout<<Hasil Perkalian:<<a<<endl;
}

TipeFungsi berfungsi untuk menentukan tipe keluaran fungsi yang dapat berupa
salah satu tipe data C++ yang berlaku misalnya char atau int. Default tipe yang
tidak disebutkan dianggap sebagai int.
Contoh:
Ckali()
{
return(0);
}

2. Prototype Function
Sebuah program C++ dapat terdiri dari banyak fungsi. Salah satu fungsi tersebut
harus bernama main(). Jika fungsi yang lain di tuliskan setelah fungsi main(),
sebelum fungsi main harus ditambahkan prototype function agar fungsi tersebut
dapat dikenal. Hal tersebut tidak berlaku jika penulisannya dilakukan sebelum
fungsi main(). Misal:
#include <stdio.h>

//prototype function
void hitung(int angka, int bilangan);
void tulis(char);
int tampil(int angka[],char huruf);

//fungsi main
void main()
{
int array[3]={1,2,3};
char huruf='D';

//memanggil fungsi
hitung(2,3);
tulis('A');
tampil(array,huruf);
}
3

//inisialisasi fungsi hitung


void hitung(int a, int b)
{
//Blok fungsi
printf("Angka adalah: "%d\n",a);
printf("Angka adalah: "%d\n",b);
}

//inisialisasi fungsi tulis


void tulis(char a)
{
//blok fungsi
printf("huruf adalah: "%c\n",a);
}

//inisialisasi fungsi tampil


int tampil(int x[], char a)
{
//blok fungsi
return(a);
}

3. Call by Value vs Call by Reference


Ada dua cara pemanggilan fungsi yaitu: (1) Call by value (2) Call by reference
a. Call by Value
Pemanggilan fungsi dengan melewatkan nilai paramater variabel dalam
definisi fungsi. Fungsi tsb akan mengolah nilai yang dikirimkan kepadanya
Misalnya:
float bayar = 5000;
float tax = calcSalesTax(bayar);

Dapat juga merupakan suatu konstanta:


hitung(2, 3);
tulis(A);

b. Call by Reference
Pemanggilan dengan referensi merupakan suatu usaha melewatkan alamat
dari suatu variabel ke dalam fungsi. Dengan pengubahan dilakukan di dalam
fungsi untuk mengubah variabel di luar fungsi.
Misal:
A bernilai 20 -> X juga bernilai 20
B bernilai 30 -> Y juga bernilai 30
4

Selanjutnya nilai X dan Y diproses tetapi nilai A dan B akan tetap (tidak
berubah). Metode Call by Reference menggunakan operator pointer &
dan * untuk mengirimkan alamat variabel ke suatu fungsi.
4. Fungsi Rekursif
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri, artinya fungsi
tersebut dipanggil di dalam tubuh fungsi itu sendiri. Parameter yang
dilewatkan berubah sebanyak fungsi itu dipanggil.

C. Hasil Latihan, Praktikum, dan Tugas Rumah


1. Latihan 1
Nama program : Menentukan Nilai
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program :
#include <iostream.h>
int Rtukar(int *, int *);
int Vtukar(int, int);
int main()
{
int a, b;
a = 99;
b = 11;

cout<<"Nilai sebelum pemanggilan fungsi : "<<endl;


cout<<"Nilai a = " <<a<< ". Nilai b = " <<b<<endl<<endl;
Rtukar (&a, &b);
cout<<"Nilai setelah pemanggilan fungsi Rtukar :"<<endl;
cout<<"Nilai a = " << a << ". Nilai b = " << b << endl;
a = 99;
b = 11;
cout<<" Nilai sebelum pemanggilan fungsi : " <<endl;
cout<<"Nilai a = "<<a<<". Nilai b = "<<b<<endl<<endl;
Vtukar(a,b);
cout<<"Nilai setelah pemanggilan fungsi Vtukar :"<<endl;
cout<<"Nilai a = " <<a<<". Nilai b = " <<b<<endl<<endl;
return 0;
}
int Rtukar(int *px, int *py)
{
int temp;
temp = *px;
*px = *py;
*py = temp;
cout<<" Nilai pada fungsi dengan Call By Reference :\n";
cout<<"Nilai px = " <<*px<<". Nilai py =
"<<*py<<endl<<endl;
5

}
int Vtukar(int px, int py)
{
int temp; temp = px;
px = py; py = temp;
cout<<"Nilai pada fungsi dengan Call by Value : "<<endl;
cout<<"Nilai px = " << px <<". Nilai py =
"<<py<<endl<<endl;
}

Keluaran program :

Penjelasan program :
Program ini mengimplementasikan penggunaan call by reference dan call
by value. Ketika dijalankan, program akan membaca fungsi (tanpa nilai
balikan) rtukar dan vtukar, kemudian membaca pendeklarasian variabel
pada fungsi main a dan b. Selanjutnya program memberikan keluaran nilai
sebelum pemanggilan fungsi pada nilai a dan nilai b dan memanggil fungsi
rtukar. Program memberikan dialog fungsi dengan call by reference pada
px dan py, lalu nilai setelah pemanggilan fungsi rtukar pada nilai a dan nilai
b. Setelah itu program mengembalikan nilai a=99, dan b=11 ke semula, dan
menampilkan dialog nilai sebelum pemanggilan fungsi vtukar. Program
menampilkan nilai fungsi dengan call by value pada px dan py, lalu me-
nampilkan nilai setelah pemanggilan fungsi vtukar pada nilai a dan nilai b.
6

2. Latihan 2
Nama program : Mencari Nilai Terbesar dari Suatu Data
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program salah :
//fungsi
#include <stdio.h>

//deklarasi fungsi
int cari(int n1, int n2);
void prin (int m);

//main function
main()
{
int i = 5;
int j = 7;
int k;
k = cari(i,j);
print(k);
return 0;
}

int cari(int a, int b)


{
if (a>b) return a;
else return b;
}
void prin (int m)
{
printf("Bilangan terbesar adalah: %d\n", m);
}

Skrip program benar :


//fungsi
#include <stdio.h>

//deklarasi fungsi
int cari(int n1, int n2);
void print(int m);

//main function
int main()
{
int i = 5;
int j = 7;
int k;
k = cari(i,j);
print(k);
return 0;
}
7

int cari(int a, int b)


{
if (a>b)
return a;
else
return b;
}

void print (int m)


{
printf("Bilangan terbesar adalah: %d\n", m);
}

Keluaran program :

Penjelasan program :
Program tersebut berfungsi untuk mencari nilai terbesar dari suatu data,
yang dibuat dengan bahasa pemrograman C++ dan pengompilasi MinGW
Developer Studio. Program tersebut berfungsi untuk menampilkan data
yang terbesar dengan mengaplikasikan fungsi, di mana data-data tersebut
telah disiapkan oleh programmer melalui variabel i dan j yang bertipe
integer. Fungsi-fungsi yang ada ialah fungsi cari yang berfungsi sebagai
penentu data mana yang terbesar, main function, dan print untuk
memberikan hasil keluaran sesuai fungsi cari yang telah dijalankan.

3. Latihan 3
Nama program : Menentukan Pajak Pembelian
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program salah :
8

#include <iostream.h>

int calcSalesTax(float purchase, float taxRate = 0.1);

main()
{
float purchase;
cout << "Masukkan pembelian: ";
cin >> purchase;

float tax = calcSalesTax(purchase);


cout << "Pajak pembelian adalah :" << tax << endl;
return 0;
}

int calcSalesTax (float purchase, float taxRate)


{
return purchase * taxRate;
}
Skrip program benar :
#include <iostream.h>

int calcSalesTax(float purchase, float taxRate = 0.1);

int main()
{
float purchase;
cout << "Masukkan pembelian: ";
cin >> purchase;

float tax = calcSalesTax(purchase);


cout << "Pajak pembelian adalah :" << tax << endl;
return 0;
}

int calcSalesTax (float purchase, float taxRate)


{
return purchase * taxRate;
}

Keluaran program :
9

Penjelasan program :
Program di atas merupakan program yang digunakan untuk menghitung
pajak pembelian dengan rumus yang telah ditentukan, yang dibuat dengan
bahasa pemrograman C++ dan pengompilasi MinGW Developer Studio.
Program tersebut tentunya berjalan dengan fungsi yang telah ditetapkan.
Pertama, user memasukkan inputan berupa nilai nominal pembelian
kemudian program akan memproses nominal hasil masukkan tersebut
dengan fungsi calcSalesTax yaitu dengan cara mamasukkan value yang
telah ditetapkan pada awal pendeklarasian, dengan ketentuan pembayaran
pajak 10% dari pembelian. Kemudian program akan menampilkan keluaran
berupa hasil dari pembelian dikalikan 0,1, yang mana itu merupakan pajak
pembelian.

4. Latihan 4
Nama program : Menghitung Faktorial dengan Fungsi
Rekursif
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program salah :
#include <iostream.h>

int faktorial(int a)
{
if (a==1)
return 1;
else
return a * faktorial(a+1);
}
void main()
{
int x;
cout << "Mencari Nilai Faktorial\n";
cout << "Masukkan nilai n = ";
cin >> x;
cout << "Faktorial " << x << "!=" << faktorial(x) << endl;
}
Skrip program benar :
#include <iostream.h>

int faktorial(int a)
{
10

if (a==1)
return 1;
else
return a * faktorial(a-1);
}

main()
{
int x;
cout << "Mencari Nilai Faktorial\n";
cout << "Masukkan nilai n = ";
cin >> x;
cout << "Faktorial " << x << "!=" << faktorial(x) << endl;
}

Keluaran program :

Penjelasan program :
Program di atas merupakan program yang digunakan untuk menghitung
bilangan faktorial, yang dibuat dengan bahasa pemrograman C++ dan
pengompilasi MinGW Developer Studio. Program tersebut menggunakan
variabel x dengan tipe data integer sebagai inputannya. Pertama, program
akan meminta input masukan user nilai berupa angka yang akan dijadikan
sebagai bahan perhitungan. Fungsi faktorial pada program di atas
menggunakan variabel a. Program tersebut menggunakan parameter, yang
mana jika input user 1 maka parameter akan menampilkan 1, jika tidak maka
parameter akan meneruskan ke dalam rumus yang telah ditetapkan oleh
faktorial dengan rumus a faktorial(a-1). Dari penjelasan di atas fungsi
rekursif digunakan pada program ini karena jika nilai a lebih dari satu maka
a akan diulang sampai nilai a = 1.
11

5. Latihan 5
Nama program : Mencari Nilai Fibonacci
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program salah :
#include <iostream.h>

long fibo(long a)
{
if (a==1 && a==2)
return 1;
else
return fibo(a-1) + fibo(a-2);
}

void main()
{
int x;
cout << "Mencari nilai fibonacci\n";
cout << "Masukkan nilai n = ";
cin >> x;
cout << "Fibonacci " << x << " = " << fibo(x) << endl;
}
Skrip program benar :
#include <iostream.h>

long fibo(long a)
{
if (a==0)
return 0;
else if (a==1)
return 1;
else
return fibo(a-1) + fibo(a-2);
}

int main()
{
int x;
cout << "Mencari nilai fibonacci\n";
cout << "Masukkan nilai n = ";
cin >> x;
cout << "Fibonacci " << x << " = " << fibo(x) << endl;
}
12

Keluaran program :

Penjelasan program :
Program ini adalah program untuk mencari nilai Fibonacci, yang dibuat
dengan bahasa pemrograman C++ dan pengompilasi MinGW Developer
Studio. Pertama yang dilakukan adalah membuat fungsi main. Yang
berfungsi sebagai tempat user menginputkan nilai n untuk dicari bilangan
Fibonaccinya. Lalu dibuatlah fungsi fibo, yang berfungsi untuk menentukan
berapa nilai bilangan Fibonacci ke n, jika a=1 atau a=2 maka bilangan
Fibonaccinya adalah 1 dan jika selain itu bilangan Fibonaccinya
menggunakan rumus fibo(a-1) + fibo(a-2). Pada fungsi main bilangan
Fibonacci dicari dengan memanggil fungsi fibo. Outputnya adalah program
akan menampilkan nilai bilangan Fibonacci ke n, di mana n diinputkan oleh
user.

6. Praktikum 1
Nama program : Menampilkan Kombinasi nCr
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program :

#include <iostream.h>

int faktorial (int n)


{
int fak;
if (n<=1)
{
fak=1;
}
else
13

{
fak=n*faktorial(n-1);
}
return (fak);
}

int main()
{
int n, r, kombinasi = 0;
cout << "---------------------------------\n";
cout << " MODUL FUNCTION \n";
cout << "---------------------------------\n";
cout << " PROGRAM KOMBINASI \n";
cout << "---------------------------------\n";
cout << "Masukkan nilai n : ";
cin >> n;
cout << "Masukkan nilai r : ";
cin >> r;

kombinasi = faktorial(n) / (faktorial(r) * faktorial(n-r));

cout << "\nHasil kombinasi " << n << "C" << r << " adalah "
<< kombinasi;
}
Keluaran program :

Penjelasan program :
Program ini adalah program untuk mencari hasil kombinasi nCr, yang
dibuat dengan bahasa pemrograman C++ dan pengompilasi MinGW
Developer Studio. Pertama yang dilakukan adalah membuat fungsi main,
yang berfungsi sebagai tempat user menginputkan nilai n dan r, serta
meletakkan rumus mencari kombinasi yakni faktorial(n) / (faktorial(r) *
faktorial(n-r)). Lalu dibuatlah fungsi faktorial, yang berfungsi untuk
menentukan perubahan nominal n dan r. Output dari program tersebut
14

adalah adalah program akan menampilkan nilai kombinasi nCr, di mana n


dan r diinputkan oleh user.

7. Praktikum 2
Nama program : Penghitung Luas, Selimut, dan Volume
Tabung
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program :

#include <iostream.h>

float llingk(float jari_jari)


{
return 3.14 * jari_jari * jari_jari;
}

float klingk(float jari_jari)


{
return 3.14 * (jari_jari * 2);
}

int main()
{
float volume, luas, selimut, jari_jari, tinggi = 0;
cout << "---------------------------------------------\n";
cout << " MODUL FUNCTION \n";
cout << "---------------------------------------------\n";
cout << " PROGRAM KOMBINASI \n";
cout << " PROGRAM TABUNG \n";
cout << "---------------------------------------------\n";
cout << "Masukkan jari-jari : ";
cin >> jari_jari;
cout << "Masukkan tinggi : ";
cin >> tinggi;

volume = llingk(jari_jari) * tinggi;


luas = (2 * llingk(jari_jari)) + (klingk(jari_jari) *
tinggi);
selimut = klingk(jari_jari) * tinggi;

cout << "---------------------------------------------";


cout << "\nNilai Luas Tabung : "<< luas <<endl;
cout << "Nilai Selimut Tabung : "<< selimut <<endl;
cout << "Nilai Volume Tabung : "<< volume <<endl;
cout << "---------------------------------------------";
}
15

Keluaran program :

Penjelasan program :
Program ini adalah program untuk mencari luas permukaan secara
keseluruhan, selimut, dan volume dari sebuah tabung, yang dibuat dengan
bahasa pemrograman C++ dan pengompilasi MinGW Developer Studio.
Pertama yang dilakukan adalah membuat fungsi main, yang berfungsi
sebagai tempat user menginputkan nilai jari-jari dan tinggi, serta
meletakkan rumus-rumus dalam mencari luas keseluruhan, luas selimut, dan
volume. Lalu dibuatlah fungsi llingk yang berfungsi sebagai mencari luas
lingkaran dan klingk yang berfungsi sebagai tempat rumus mencari keliling
lingkaran. Output dari program tersebut adalah adalah program akan
menampilkan nilai-nilai yang dicari, di mana jari-jari dan tinggi tabung
diinputkan oleh user.

8. Tugas Rumah 1
Nama program : Pencari Nilai Terbesar dan Terkecil
berdasarkan Inputan User
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program :
#include <iostream.h>
#include <conio.h>
16

int outputan(float a, float b);


int main()
{
int i = 1, angka, max, min;
char jawab;

cout << "--------------------------------------------\n";


cout << " MODUL FUNCTION \n";
cout << "--------------------------------------------\n";
cout << " MENENTUKAN BATAS \n";
cout << "--------------------------------------------\n";
cout << endl;

do {
cout << "Masukkan Angka : ";
cin >> angka;

if (i == 1)
{
min = angka;
max = angka;
}
else if (min > angka)
{
min = angka;
}
else if (max < angka)
{
max = angka;
}

i++;

cout << "input angka lagi (y/n) : ";


cin >> jawab;

}
while (jawab == 'y');

if (jawab == 'n')
{
cout << outputan(min, max);
}
getch();
}

int outputan(float a, float b)


{
<< "\n\n";
getch();
return 0;
}
17

Diagram alir program :


18

Keluaran program :

Penjelasan program :
Program ini adalah program untuk mencari nilai terbesar dan terkecil dari
angka-angka yang diinputkan, yang dibuat dengan bahasa pemrograman
C++ dan pengompilasi MinGW Developer Studio. Pertama yang dilakukan
adalah membuat fungsi main, yang berfungsi sebagai tempat user
menginputkan angka-angka yang akan dicari batas atas dan batas bawahnya.
Dalam fungsi main terdapat perulangan yang berfungsi untuk menentukan,
apakah dilakukan input nilai/bilangan lagi atau tidak dan menampilkan hasil
nilai terbesar dan terkecil. Lalu dibuatlah fungsi outputan yang berfungsi
sebagai tempat meletakkan apa yang harus dikeluarkan. Output dari
program tersebut adalah adalah program akan menampilkan nilai terkecil
dan nilai terbesar, di mana semua inputan angka-angka berasal dari user.

9. Tugas Rumah 2
Nama program : Pencari Standar Deviasi berdasarkan
Inputan User
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program :
19

#include <iostream.h>
#include <conio.h>
#include <math.h>

int stddev(int max, int min, int i)


{
return sqrt(((max - min)*(max - min)) / (i-1));
}

int main()
{
int i = 1;
int max, min, rata = 0;
int angka = 0;
int total = 0;
char jawab;

cout << "-------------------------------------------\n";


cout << " MODULE FUNCTION \n";
cout << "-------------------------------------------\n";
cout << " STANDAR DEVIASI \n";
cout << "-------------------------------------------\n";
cout << endl;

do {
cout << "Masukkan Angka : ";
cin >> angka;
total = total + angka;

if (i == 1)
{
min = angka;
max = angka;
}
else if (min > angka)
{
min = angka;
}
else if (max < angka)
{
max = angka;
}
//total = total + angka;
i++;

cout << "Input angka lagi? (y/n): ";


cin >> jawab;
}
while (jawab == 'y');

if (jawab == 'n')
{
rata = total/(i-1);
cout << endl;
cout << "Nilai rata-rata : " << rata <<
endl;
20

cout << "Nilai standar deviasi : " << stddev(max,


min, i) << endl;
}

getch();
}

Diagram alir program :


21

Keluaran program :

Penjelasan program :
Program ini berfungsi untuk mencari nilai simpangan baku, atau yang
dikenal dengan standar deviasi, serta rata-rata dari angka-angka yang
diinputkan, yang dibuat dengan bahasa pemrograman C++ dan
pengompilasi MinGW Developer Studio. Dalam program ini, terdapat
header file yang baru ditambahkan ialah math.h, karena dalam program ini
penulis menggunakan sqrt yang merupakan fungsi untuk mencari akar dari
suatu bilangan, yang akan digunakan ketika mencari standar deviasi.
Pertama yang dilakukan adalah membuat fungsi main, yang berfungsi
sebagai tempat user menginputkan angka-angka yang akan dicari rata-rata
dan standar deviasinya. Dalam fungsi main terdapat perulangan yang
berfungsi untuk menentukan, apakah dilakukan input nilai/bilangan lagi
atau tidak dan menampilkan hasil rata-rata dan standar deviasi. Lalu
dibuatlah fungsi stddev yang berfungsi sebagai tempat meletakkan rumus
standar deviasi, yakni sqrt(((max - min)*(max - min)) / (i-1)). Untuk
rata-rata, tidak dibuatkan fungsi dan langsung menjadi rumus yang
dituliskan di dalam fungsi main. Output dari program tersebut adalah adalah
program akan menampilkan rata-rata dan standar deviasi, di mana semua
inputan angka-angka berasal dari user.
22

10. Tugas Rumah 3


Nama program : Pencari Modus berdasarkan Inputan User
Bahasa pemrograman : C++
Pengompilasi : MinGW Developer Studio
Skrip program :
#include <iostream.h>
#include <conio.h>

int main()
{
int i = 1;
int n, k = 1;
int x = 0;
int banyak[100];
float nilai[100];
float modus[100];
char jawab;

cout << "--------------------------------------------\n";


cout << " MODULE FUNCTION \n";
cout << "--------------------------------------------\n";
cout << " MENENTUKAN DATA YANG SERING DIINPUTKAN \n";
cout << "--------------------------------------------\n";
cout << endl;

do {
cout << "Masukkan Angka : ";
cin >> nilai[i];
i++;

cout << "Input angka lagi? (y/n): ";


cin >> jawab;
}
while (jawab == 'y');

if (jawab == 'n')
{
//menghitung berapa kali muncul tiap angka
for(int i = 0; i < n; i++)
{
banyak[i] = 0;
for(int j = 0; j < n; j++)
{
if(nilai[i] == nilai[j])
{
banyak[i]++;
}
}
}

//menentukan nilai yang paling sering muncul


for(int i=0; i < n; i++)
23

{
if(banyak[i] > k)
{
k = banyak[i];
}
}

//jika modus lebih dari satu


for(int i=0;i<n;i++)
{
if(x==0)
modus[x]=0;
else
modus[x]=modus[x-1];

if(banyak[i]==k)
{
if(nilai[i]!=modus[x])
{
modus[x]=nilai[i];
x++;
}
}
}

//Jika Semua angka muncul sama banyak


int z=0;
for(int i=0;i<n;i++)
{
if(banyak[i]==k)
{
z++;
}
}
if(z==n)
{
x=0;
}

if (x==0)
cout<<"\nTidak Ada Modus!"<<endl;
else
{
for(int i=0;i<x;i++)
{
cout << "\n----------------------------
---------" << endl;
cout << "Data yang sering diinputkan
adalah " << modus[i] << endl;
cout << "------------------------------
-------\n" << endl;
}
}
}

getch();
}
24

Diagram alir program :


25

Keluaran program :

Penjelasan program :
Program ini berfungsi untuk mencari nilai yang sering muncul atau yang
dikenal dengan modus, yang dibuat dengan bahasa pemrograman C++ dan
pengompilasi MinGW Developer Studio. Pertama yang dilakukan adalah
membuat fungsi main, yang berfungsi sebagai tempat user menginputkan
angka-angka yang akan dicari modusnya. Dalam fungsi main terdapat
perulangan yang berfungsi untuk menentukan, apakah dilakukan input
nilai/bilangan lagi atau tidak dan menampilkan hasil rata-rata dan standar
deviasi. Output dari program tersebut adalah adalah program akan
menampilkan modus.

D. Kesimpulan
1. Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas
khusus atau instruksi yang dieksekusi ketika dipanggil dari bagian lain
dalam suatu program.
26

2. Tipe data berfungsi untuk menentukan tipe keluaran fungsi yang dapat
berupa salah satu tipe data C++ yang berlaku, misalnya char atau integer.
3. Pada umumnya, fungsi memerlukan masukan yang disebut parameter atau
argument, hasil akhir fungsi akan berupa nilai (nilai balik fungsi).
4. Fungsi dibedakan menjadi dua yaitu void (fungsi tanpa nilai balik) dan non-
void (fungsi dengan nilai balik).
5. Ada dua cara pemanggilan fungsi yaitu call by value dan call by reference.
6. Fungsi rekursif adalah fungsi yang memangil dirinya sendiri. Artinya,
fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri.

E. Daftar Rujukan
1. Puspita, Candra Adi. 2014. Pemrograman Dasar. Malang: SMK Negeri 8
Malang.
2. Tim Asisten Praktikum. 2016. Modul 4: Perulangan (Array). Malang:
Teknik Elektro Universitas Negeri Malang.
3. Tim Asisten Praktikum. 2016. Modul 6: Fungsi (Function). Malang:
Teknik Elektro Universitas Negeri Malang.

Anda mungkin juga menyukai