0% menganggap dokumen ini bermanfaat (0 suara)
557 tayangan84 halaman

Subprogram CPP Flowchart 220915

Dokumen tersebut membahas penggunaan subprogram dalam bahasa C++ untuk meningkatkan efisiensi program dengan menghindari penulisan kode yang sama berulang kali. Subprogram dibedakan menjadi prosedur dan fungsi, di mana prosedur digunakan untuk menjalankan serangkaian instruksi tanpa mengembalikan nilai sedangkan fungsi mengembalikan nilai. Contoh program mendemonstrasikan penggunaan prosedur dan fungsi untuk menghitung luas lingkaran dan ku

Diunggah oleh

sultanbona99
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
557 tayangan84 halaman

Subprogram CPP Flowchart 220915

Dokumen tersebut membahas penggunaan subprogram dalam bahasa C++ untuk meningkatkan efisiensi program dengan menghindari penulisan kode yang sama berulang kali. Subprogram dibedakan menjadi prosedur dan fungsi, di mana prosedur digunakan untuk menjalankan serangkaian instruksi tanpa mengembalikan nilai sedangkan fungsi mengembalikan nilai. Contoh program mendemonstrasikan penggunaan prosedur dan fungsi untuk menghitung luas lingkaran dan ku

Diunggah oleh

sultanbona99
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 84

Subprogram

(dalam Bahasa C++ + Flowchart)


Tim Penyusun Materi PTI-B

KU1072/Pengenalan Teknologi Informasi B


Tahap Tahun Pertama Bersama
Institut Teknologi Bandung
Tujuan
• Mahasiswa memahami makna dan kegunaan
subprogram dalam bentuk fungsi dan prosedur
• Mahasiswa dapat menggunakan notasi fungsi dan
prosedur dengan benar dan menggunakannya dalam
program
• Mahasiswa dapat membuat program dengan
menggunakan fungsi dan prosedur

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 2


Mulai

Contoh-1 (1)
str = “Maya”
// Program CetakNama: Mencetak nama ke layar
#include <iostream>
using namespace std; output(str)
int main() {
// KAMUS
string str1, str2; output(“Joko”)
// ALGORITMA
str1 = "Maya";
cout << "Hello " << str1 << endl; input(str2)

cout << "Hello " << "Joko" << endl;


output(str2)
cin >> str2;
cout << "Hello " << str2 << endl;
Selesai
return 0;
} 08/10/2015 KU1072/Pengenalan Teknologi Informasi B 3
Mulai

Contoh-1 (2)
str = “Maya”
// Program CetakNama: Mencetak nama ke layar
#include <iostream>
using namespace std; CetakHello(str)
int main() { DIGANTI
// KAMUS DENGAN
string str1, str2;
// ALGORITMA
PROSEDUR CetakHello(“Joko”)

str1 = "Maya";
cout << "Hello " << str1 << endl;
CetakHello(str1); input(str2)

cout << "Hello " << "Joko" << endl;


CetakHello("Joko");
CetakHello(str2)
cin >> str2;
cout << "Hello " << str2 << endl;
CetakHello(str2);
Selesai
return 0;
} 08/10/2015 KU1072/Pengenalan Teknologi Informasi B 4
Contoh-1 (3) – Procedure CetakHello
(C++)
void CetakHello (string str)
// Mencetak str ke layar CetakHello (str)
// KAMUS LOKAL

// ALGORITMA output (“Hello “, str)


{
cout << "Hello, " << str << endl;
return
}

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 5


Mulai

Contoh-2 (1) r1 = 10
// Program Kuadrat: Test fungsi kuadrat
#include <iostream> L = PI * r1 * r1
using namespace std;

int main() { output(L)


// KAMUS
const float PI = 3.14;
float L, r1, fx, x; x = 10
// ALGORITMA
r1 = 10;
fx = x * x
L = PI * r1 * r1;
cout << L << endl;
x = 10;
fx = x * x; output(fx)
cout << fx << endl;
return 0;
} 08/10/2015 Selesai
KU1072/Pengenalan Teknologi Informasi B 6
Mulai

Contoh-2 (2) r1 = 10

// Program Kuadrat: Test fungsi kuadrat


#include <iostream>
using namespace std; DIGANTI L = PI * FxKuadrat(r1)
DENGAN
int main() { FUNGSI
// KAMUS output(L)
const float PI = 3.14;
float L, r1, fx, x;
// ALGORITMA x = 10
r1 = 10;
FxKuadrat(r1);
L = PI * r1 * r1;
cout << L << endl; fx = FxKuadrat(x)
x = 10;
fx = xFxKuadrat(x);
* x;
cout << fx << endl;
return 0; output(fx)
} 08/10/2015 KU1072/Pengenalan Teknologi Informasi B 7
Selesai
Contoh-2 (3) – Fungsi FxKuadrat
(C++)
int FxKuadrat (int a)
// Menghasilkan a * a
// KAMUS LOKAL FxKuadrat(a)

// ALGORITMA
{ return (a * a)
return (a * a);

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 8


Kode yang berulang
• Semakin besar program, semakin banyak bagian kode
yang berulang
• Sangat tidak efisien jika bagian kode yang sama/serupa
diketik berulang-ulang, (bahkan kalau di-copy-paste)
• Di samping itu, dalam banyak persoalan, ada berbagai
rumus/formula yang berulang-ulang dipakai dalam satu
program
• Bagaimana jika ada cara supaya bagian kode tersebut
tidak perlu diketik berulang-ulang, tapi tetap dapat
digunakan berkali-kali dalam program yang sama

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 9


Subprogram
• A set of instructions designed to perform a frequently
used operation within a program
• 2 (dua) jenis subprogram:
– Prosedur
– Fungsi

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 10


Flowchart Symbol (Umum)
Pemanggilan subprogram dalam Flowchart terpisah untuk
algoritma program utama pendefinisian dan realisasi
subprogram
Mulai

Procedure/Function
... [(list-parameter-formal)]

Procedure/Function call
[(list-parameter-aktual)] ...

...
return [(return-value)]

Selesai
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 11
Contoh Kasus
• Buatlah program yang digunakan untuk membaca
masukan nilai besaran arus listrik (I) dan hambatan
(R) dan menghitung serta menampilkan tegangan
listrik (V)
V=I*R

• Akan dibahas:
– Solusi menggunakan prosedur
– Solusi menggunakan fungsi

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 12


PROSEDUR

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 13


Prosedur
• Suatu prosedur:
– Terdiri atas sederetan instruksi algoritmik  seperti
algoritma program umumnya
– Memiliki 0 s.d. n parameter input
– Memiliki 0 s.d. m parameter output
– Jelas initial state: kondisi awal sebelum prosedur
dijalankan
– Jelas final state: kondisi akhir yang dicapai setelah
prosedur selesai dijalankan

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 14


Tahapan Memanfaatkan Prosedur

1. Mendefinisikan dan merealisasikan


prosedur
2. Memanggil prosedur dalam program
utama

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 15


PROSEDUR
1. Mendefinisikan dan
Merealisasikan Prosedur

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 16


Flowchart untuk Prosedur
Pemanggilan prosedur dalam Flowchart terpisah untuk
algoritma program utama pendefinisian dan realisasi
prosedur
Mulai

Procedure
[(list-parameter-formal)]
...

Procedure call
[(list-parameter-aktual)]
...

return
...

08/10/2015 Selesai KU1072/Pengenalan Teknologi Informasi B 17


Prosedur

Langkah-langkah algoritmik
dalam prosedur:
Initial state Final State
(I.S.) (F.S.)
Mengubah initial state menjadi
final state

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 18


Prosedur
Parameter input Parameter output

p1
p4
Langkah-langkah algoritmik
dalam prosedur:
p2 Nilai p1, p2, p3, dan p6
dimanfaatkan dalam proses di p5
prosedur untuk mendapatkan
nilai p4, p5, dan p6.
p3
p6 mungkin mengalami
perubahan nilai.
p6
p6
Parameter
input/output

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 19


Definisi & Realisasi Prosedur (1)
• Memberikan nama prosedur
• Mendeklarasikan parameter formal (jika ada)
– Jenis parameter: parameter input, input/output, output
– Deklarasi setiap parameter: nama parameter dan type-nya
• Menuliskan spesifikasi:
– Initial State (I.S.): kondisi awal sebelum prosedur dijalankan 
termasuk kondisi parameter input (jika ada)
– Final State (F.S.): kondisi akhir yang dicapai setelah prosedur selesai
dijalankan  termasuk kondisi parameter output (jika ada)
• Membuat realisasi dari prosedur
– Langkah-langkah algoritmik prosedur: deretan instruksi pemberian
harga, input, output, analisis kasus, pengulangan, pemanggilan
fungsi dan prosedur lain

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 20


Definisi & Realisasi Prosedur (2) -
Memberikan nama Flowchart
procedure NamaProsedur ([list-parameter-formal])
{ Spesifikasi: }
{ I.S.: .... } List parameter
{ F.S.: .... } formal (jika ada)
KAMUS LOKAL
{ List variabel yang dipakai hanya dalam prosedur }
ALGORITMA
NamaProsedur
[(list-parameter-formal)]

{ langkah-langkah algoritmik
dalam prosedur } Realisasi Prosedur:
Langkah-langkah
algoritmik
return
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 21
Definisi & Realisasi Prosedur (2) –
Memberikan nama C++
void NamaProsedur ([list-parameter-formal])
// Spesifikasi:
// I.S.: .... List parameter
// F.S.: .... formal (jika ada)

// KAMUS LOKAL
// List variabel yang dipakai hanya dalam prosedur
// ALGORITMA
{

// langkah-langkah algoritmik dalam prosedur

} Realisasi Prosedur:
Langkah-langkah
algoritmik

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 22


Contoh Kasus (1)
• Diasumsikan dibutuhkan prosedur untuk menghitung
tegangan listrik (V) dengan masukan besarnya arus (I)
dan hambatan (R)
• Definisi prosedur:
– Nama : HitungTegangan
– Parameter input :
• I : integer  merepresentasikan besarnya arus listrik
• R : integer  merepresentasikan besarnya hambatan
– Parameter output:
• V : integer  merepresentasikan besarnya tegangan
– Spesifikasi: Menghitung V dengan rumus V = I * R
• I.S. : I dan R terdefinisi
• F.S.: V terdefinisi melalui perhitungan V = I * R

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 23


Contoh Kasus (2) - Flowchart
procedure HitungTegangan ( int I, int R, Parameter input
int * V )
// I.S.: I dan R terdefinisi
// F.S.: V terdefinisi melalui perhitungan V = I * R

Parameter output 
// KAMUS LOKAL
diberi tanda * sebelum
nama parameter

// ALGORITMA
HitungTegangan (I,R,V)

V=I*R

return
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 24
Contoh Kasus (2) – C++
procedure HitungTegangan
void HitungTegangan ( int( I,intint
I, R,
int R,
int *int
V *) V )
//
// I.S.:
I.S.: II dan
dan RR terdefinisi
terdefinisi
//
// F.S.:
F.S.: VV terdefinisi
terdefinisi melalui
melalui perhitungan
perhitungan VV == II ** RR }

//
// KAMUS
KAMUS LOKAL
LOKAL

//
// ALGORITMA
ALGORITMA
{ HitungTegangan (I,R,V)

V = I * R;

} V=I*R

return
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 25
PROSEDUR
2. Memanggil Prosedur dalam
Algoritma Program Utama

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 26


Flowchart untuk Prosedur
Pemanggilan prosedur dalam Flowchart terpisah untuk
algoritma program utama pendefinisian dan realisasi
prosedur
Mulai

Procedure
[(list-parameter-formal)]
...

Procedure call
[(list-parameter-aktual)]
...

return
...

08/10/2015 Selesai KU1072/Pengenalan Teknologi Informasi B 27


Pemanggilan (Call) Prosedur
• Menuliskan nama prosedur sebagai salah satu
instruksi dalam algoritma program utama

• Variabel/harga yang dituliskan pada parameter


prosedur dalam pemanggilan prosedur di program
utama  parameter aktual

AP/KU1071 28
Contoh Kasus (1) – Pemanggilan Prosedur
• Alur program utama:
– Membaca nilai besarnya arus dan hambatan dari keyboard
– Menghitung tegangan listrik dan menyimpan nilainya
dalam variabel tegangan  memanfaatkan prosedur
HitungTegangan
– Menampilkan tegangan ke layar

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 29


Contoh Kasus (2) – Pemanggilan Prosedur
(Flowchart)
Program HitungTeganganListrik
Mulai
// Menghitung tegangan listrik
// berdasarkan masukan arus listrik
// dan hambatan
input (arus)
KAMUS input (hambatan)
int arus, hambatan;
int tegangan;
HitungTegangan
ALGORITMA
(arus, hambatan, tegangan)
// lihat flowchart

output (tegangan)

Selesai
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 30
Contoh Kasus (3) –
Pemanggilan Prosedur (C++)
// Program HitungTeganganListrik;
// Menghitung tegangan listrik berdasarkan arus dan hambatan
#include <iostream>
using namespace std;

... // tuliskan definisi/header prosedur di sini

// PROGRAM UTAMA
int main ()
// KAMUS
int arus, hambatan; Pada saat dipanggil di
int tegangan; program utama, parameter
// ALGORITMA output harus diberi tanda &
cin >> arus; cin >> hambatan;
HitungTegangan(arus, hambatan, &tegangan);
cout << tegangan << endl;
return 0;
}
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 31
... // definisi dan realisasi prosedur di sini
Asosiasi Parameter Formal –
Paramater Aktual (1)
• Setiap parameter aktual harus berasosiasi dengan
tepat satu parameter formal
– Parameter aktual berasosiasi dengan paramater formal
yang posisi/urutannya sama
– Type parameter aktual = type parameter formal yang
berasosiasi dengannya

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 32


Asosiasi Parameter Formal –
Paramater Aktual (2)

Parameter aktual Parameter formal


pada pemanggilan pada pendefinisian
prosedur prosedur

type: integer
arus I
type: integer
hambatan R
type: integer
tegangan *V

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 33


PROSEDUR
Program Lengkap

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 34


Program Lengkap (Flowchart)
Program JudulProgram procedure NamaProsedur
// Spesifikasi Program (list-parameter-formal)
KAMUS // Spesifikasi Prosedur
// deklarasi variabel, KAMUS LOKAL
// konstanta, dll. // deklarasi variabel
ALGORITMA PROGRAM UTAMA // lokal prosedur, dll.
ALGORITMA

... ...

...

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 35


Kode prosedur dalam program
//Judul dan spesifikasi program
#include <iostream>
using namespace std;

DEFINISI PROSEDUR

// PROGRAM UTAMA
int main () {

PEMANGGILAN PROSEDUR

return 0;
}

REALISASI PROSEDUR

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 36


Contoh Kasus (C++) – Kode Lengkap
// Program HitungTeganganListrik;
// Menghitung tegangan listrik berdasarkan arus dan hambatan
#include <iostream>
using namespace std;
void HitungTegangan (int I, int R, int * V); Parameter formal
// I.S.: I dan R terdefinisi
// F.S.: V terdefinisi melalui perhitungan V = I * R
// ALGORITMA PROGRAM UTAMA
int main () {
// KAMUS
int arus, hambatan, tegangan;
// ALGORITMA Parameter aktual
cin >> arus; cin >> hambatan;
HitungTegangan(arus, hambatan, &tegangan);
cout << tegangan << endl;
return 0;
}
// Realisasi Prosedur
void HitungTegangan (int I, int R, int * V)
{ // ALGORITMA
*V = I * R;
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 37
}
Contoh 2: Menukar 2 Bilangan
• Dibaca 2 nilai integer dari keyboard, misalnya A dan B
• Tukar nilai A dan B
• Tuliskan nilai A dan B yang baru ke layar

• Buatlah prosedur untuk menukar nilai 2 integer

AP/KU1071 38
Contoh-2: Flowchart Program Utama
Program Tukar2Bilangan
Mulai
// Menerima masukan 2 integer dan
// menukar keduanya
KAMUS
int A, B; input(A, B)
ALGORITMA PROGRAM UTAMA
// lihat flowchart
Tukar(A,B)

output(A, B)

Selesai

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 39


Contoh-2: Flowchart Prosedur Tukar
procedure Tukar (int *A, int *B)
Tukar(A,B)
// I.S.: A, B terdefinisi
// F.S.: Nilai A, B ditukar
KAMUS LOKAL
int temp; temp = A
ALGORITMA A dan B parameter
// lihat flowchart input sekaligus
output A=B

B = temp

return

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 40


Contoh-2: Program Lengkap C++
// Program Tukar2Bilangan
// Menerima masukan 2 integer dan
// menukar keduanya
void Tukar (int *A, int *B)
#include <iostream>
// I.S.: A, B terdefinisi
using namespace std;
// F.S.: Nilai A, B ditukar
{
void Tukar (int *A, int *B);
// Kamus Lokal
// I.S.: A, B terdefinisi
int temp; A dan B: contoh
// F.S.: Nilai A, B ditukar
parameter
// Algoritma input/output
int main () {
temp = *A;
// KAMUS
*A = *B;
int A, B;
*B = temp;
// ALGORITMA
cin >> A; cin >> B;
}
Tukar(&A,&B);
cout << A << " " << B << endl;
return 0;
}
// 08/10/2015
Realisasi Prosedur Tukar
KU1072/Pengenalan Teknologi Informasi B 41
FUNGSI

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 42


Fungsi
• Suatu fungsi:
– Sebuah transformasi akibat pemetaan suatu nilai (dari
domain) ke nilai lain (dalam range)  sama seperti di
matematika
– Domain dinyatakan dalam type parameter input  bisa 0
s.d. N parameter input
– Range dinyatakan dalam type nilai output  harus ada
– Realisasi fungsi  memanfaatkan nilai parameter input
untuk mendapatkan nilai sesuai type output

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 43


Flowchart untuk Fungsi
Pemanggilan fungsi dalam Flowchart terpisah untuk
algoritma program utama pendefinisian dan realisasi
Mulai fungsi

... Function
[(list-parameter-formal)]

Ekspresi memanfaatkan function

Function
[(list-parameter-aktual)]
...

return (return value)


...

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 44


Selesai
Tahapan Memanfaatkan Fungsi

1. Mendefinisikan dan merealisasikan


fungsi
2. Memanggil fungsi dalam program
utama sebagai bagian dari ekspresi
dalam instruksi dalam algoritma

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 45


FUNGSI
1. Mendefinisikan dan
Merealisasikan Fungsi

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 46


Flowchart untuk Fungsi
Pemanggilan fungsi dalam Flowchart terpisah untuk
algoritma program utama pendefinisian dan realisasi
Mulai fungsi

... Function
[(list-parameter-formal)]

Ekspresi memanfaatkan function

Function
[(list-parameter-aktual)]
...

return (return value)


...

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 47


Selesai
Fungsi

Langkah-langkah algoritmik
dalam fungsi:
Parameter
Mentransformasi nilai parameter Nilai Output
input
input untuk mendapatkan nilai
output

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 48


Parameter input: boleh
Fungsi
tidak ada

p1

Langkah-langkah algoritmik
p2 dalam fungsi:

Mentransformasi nilai p1, p2, Nilai output


p3, p4 untuk menghasilkan
p3 nilai output

p4

Nilai output: HARUS ADA

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 49


Definisi & Realisasi Fungsi (1)
• Memberikan nama fungsi
• Mendeklarasikan parameter formal input (jika ada)
– Deklarasi setiap parameter: nama parameter dan type-nya
• Mendeklarasikan type nilai output (harus ada)
• Menuliskan spesifikasi:
– Menghasilkan nilai output seperti apa berdasarkan nilai parameter
input
• Membuat realisasi dari fungsi
– Langkah-langkah algoritmik fungsi: deretan instruksi pemberian
harga, analisis kasus, pengulangan, pemanggilan fungsi dan
prosedur lain yang dibutuhkan untuk mentransformasi input
menjadi nilai output
– Harus mengembalikan (return) suatu nilai (value) yang bertype
sama seperti type nilai output
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 50
Definisi & Realisasi Fungsi (2) -
Memberikan nama Flowchart
function NamaFungsi ([list-parameter-input])  type-output
// Menghasilkan ...
List parameter input
Type nilai output
formal (jika ada)
KAMUS LOKAL
// List variabel yang dipakai hanya dalam fungsi
ALGORITMA
NamaFungsi
[(list-parameter-formal)]
Realisasi Fungsi
// langkah-langkah transformasi input
// menjadi nilai output Return-value harus
bertype sama seperti
type-output

return(return-value)
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 51
Definisi & Realisasi Fungsi (3) -
Type nilai output Memberikan nama Pascal
type-output NamaFungsi ([list-parameter-formal])
// Menghasilkan ...
List parameter input
formal (jika ada)
// KAMUS LOKAL
// List variabel yang dipakai hanya dalam fungsi
// ALGORITMA Realisasi Fungsi
{

// langkah-langkah transformasi input menjadi output

return (return-value); Return-value harus


bertype sama seperti
} type-output
Cara return di C++
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 52
Contoh Kasus (1)
• Diasumsikan dibutuhkan fungsi untuk menghitung
tegangan listrik dengan input besarnya arus (I) dan
hambatan (R)
• Definisi fungsi:
– Nama : FTegangan
– Parameter input :
• I : integer  merepresentasikan besarnya arus listrik
• R : integer  merepresentasikan besarnya hambatan
– Type output: integer
– Spesifikasi: Menghasilkan nilai tegangan berdasarkan nilai I
dan R, yaitu I * R

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 53


Contoh Kasus (2) - Flowchart
function FTegangan ( int I, int R )  int Type-output
// Menghasilkan tegangan dari perkalian I dan R

KAMUS LOKAL
- I, R : Parameter input

ALGORITMA
FTegangan(I,R)

return (I*R)

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 54


Contoh Kasus (3) - Pascal
function FTegangan
int FTegangan ( int( I,
intint ) R )  int
I, Rint
//
// Menghasilkan
Menghasilkan tegangan
tegangan dari
dari perkalian
perkalian II dan
dan RR

KAMUS LOKAL
// KAMUS LOKAL
-

ALGORITMA
// ALGORITMA
{ Tegangan(I,R)

return (I * R);

}
return (I*R)

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 55


FUNGSI
2. Memanggil fungsi dalam program
utama sebagai bagian dari ekspresi
dalam instruksi dalam algoritma

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 56


Flowchart untuk Fungsi
Pemanggilan fungsi dalam Flowchart terpisah untuk
algoritma program utama pendefinisian dan realisasi
Mulai fungsi

... Function
[(list-parameter-formal)]

Ekspresi memanfaatkan function

Function
[(list-parameter-aktual)]
...

return (return value)


...

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 57


Selesai
Pemanggilan Fungsi
• Fungsi harus dipanggil dalam algoritma program
utama sebagai bagian dari sebuah ekspresi
var = <fungsi-dipanggil-di-sini>
output(<fungsi-dipanggil-di-sini>)

• Variabel/harga yang dituliskan pada parameter input


fungsi dalam pemanggilan fungsi di program utama
 parameter aktual

AP/KU1071 58
Contoh Kasus (1) – Pemanggilan Fungsi
• Alur program utama:
– Membaca nilai besarnya arus dan hambatan dari keyboard
– Menampung hasil perhitungan nilai tegangan dengan
memanfaatkan fungsi FTegangan dalam variabel tegangan
– Menuliskan ke layar nilai tegangan

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 59


Contoh Kasus (2) – Pemanggilan Fungsi
(Flowchart)
Program HitungTeganganListrik Mulai
// Menghitung tegangan listrik
// berdasarkan masukan arus listrik
// dan hambatan input (arus)
KAMUS input (hambatan)
int arus, hambatan;
int tegangan;
ALGORITMA tegangan =
// lihat flowchart FTegangan
(arus, hambatan)

output(tegangan)

08/10/2015 KU1072/Pengenalan Teknologi Informasi B Selesai 60


Contoh Kasus (3) –
Pemanggilan Fungsi (C++)
// Program HitungTeganganListrik;
// Menghitung tegangan listrik berdasarkan arus dan hambatan
#include <iostream>
using namespace std;

... // tuliskan definisi/header fungsi di sini

// PROGRAM UTAMA
int main ()
// KAMUS
int arus, hambatan;
int tegangan;
// ALGORITMA
cin >> arus; cin >> hambatan;
tegangan = FTegangan(arus, hambatan);
cout << tegangan << endl;
return 0;
}
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 61
... // realisasi fungsi di sini
Asosiasi Parameter Formal –
Paramater Aktual (1)
• Setiap parameter aktual harus berasosiasi dengan
tepat satu parameter formal
– Parameter aktual berasosiasi dengan paramater formal
yang posisi/urutannya sama
– Type parameter aktual = type parameter formal yang
berasosiasi dengannya
– Sama seperti di prosedur

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 62


Asosiasi Parameter Formal –
Paramater Aktual (2)

Parameter aktual Parameter formal


pada pemanggilan pada pendefinisian
fungsi fungsi

type: integer
arus I

type: integer
hambatan R

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 63


FUNGSI
Program Lengkap

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 64


Program Lengkap (Flowchart)
Program JudulProgram function NamaFungsi (list-
// Spesifikasi Program parameter-formal)  type-
KAMUS output
// deklarasi variabel, // Spesifikasi Prosedur}
// konstanta, dll. KAMUS LOKAL
ALGORITMA PROGRAM UTAMA // deklarasi variabel
// lokal fungsi, dll.
ALGORITMA
...
...

...

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 65


Kode fungsi dalam program
//Judul dan spesifikasi program
#include <iostream>
using namespace std;

DEFINISI FUNGSI

// PROGRAM UTAMA
int main () {

PEMANGGILAN FUNGSI

return 0;
}

REALISASI FUNGSI

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 66


Contoh Kasus (C++) – Kode Lengkap
// Program HitungTeganganListrik;
// Menghitung tegangan listrik berdasarkan arus dan hambatan
#include <iostream>
using namespace std;
Parameter formal
int FTegangan (int I, int R);
// Menghasilkan tegangan dgn rumus = I*R

// ALGORITMA PROGRAM UTAMA


int main () {
// KAMUS
int arus, hambatan, tegangan;
// ALGORITMA Parameter aktual
cin >> arus; cin >> hambatan;
tegangan = FTegangan(arus, hambatan);
cout << tegangan << endl;
return 0;
}
// Realisasi Fungsi
int FTegangan (int I, int R)
{ // ALGORITMA
return (I * R);
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 67
}
Contoh 2: Menukar 2 Bilangan
• Dibaca 2 nilai integer dari keyboard, misalnya A dan B
• Tukar nilai A dan B
• Tuliskan nilai A dan B yang baru ke layar

• Apakah prosedur Tukar bisa dibuat menjadi fungsi?


TIDAK BISA, karena:
– A dan B harus jadi input sekaligus output  di fungsi suatu
parameter hanya bisa menjadi input
– Jika dipaksa, dibutuhkan 2 nilai keluaran  fungsi hanya
memberikan 1 jenis keluaran [sejauh ini]

AP/KU1071 68
Contoh-3: Luas Lingkaran
• Buatlah program yang menerima masukan buah nilai
jari-jari lingkaran (bilangan riil), misalnya R, dan
menuliskan luas lingkaran ke layar

• Perhitungan luas lingkaran  dibuat menjadi fungsi

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 69


Contoh-3: Flowchart Program Utama
Mulai

Program LuasLingkaran
// Menerima masukan nilai jari-
input(R)
// jari dan menuliskan ke layar
// luas lingkaran
KAMUS
const float PI = 3.14;
float R; L= Luas (R)
float L;
ALGORITMA PROGRAM UTAMA
// lihat flowchart
output(L)

Selesai

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 70


Contoh-3: Flowchart Fungsi Luas
function Luas (float R)  float
// Menghasilkan luas lingkaran
// berdasarkan jari-jari R: PI * R * R
KAMUS LOKAL
-
ALGORITMA

Luas (R)

return (PI * R * R)

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 71


Contoh-2: Program Lengkap C++
// Program LuasLingkaran
// Menerima masukan nilai jari-jari dan
// menuliskan ke layar luas lingkaran
#include <iostream>
float Luas (float R)
using namespace std;
// Menghasilkan luas lingkaran
// KAMUS
// berdasarkan jari-jari R:
const float PI = 3.14;
// PI * R * R
float Luas (float R); {
// Menghasilkan luas lingkaran // Kamus Lokal
// berdasarkan jari-jari R: PI * R * R
// Algoritma
int main () { return (PI * R * R);
// KAMUS
float L, R;a }
// ALGORITMA
cin >> R;
L = Luas(R);
cout << L << endl;
return 0;
}
// Realisasi
08/10/2015 Fungsi Luas KU1072/Pengenalan Teknologi Informasi B 72
LATIHAN SOAL

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 73


Soal-1a:
int CiriBilangan(int bil) {
• Diketahui fungsi // Menghasilkan:
// 0 : jika bil adalah 0
CiriBilangan seperti di // 1 : jika bil adalah positif
// -1 : jika bil adalah negatif
samping: //Kamus Lokal
int hasil;
//Algoritma
if (bil == 0) {
hasil = 0;
} else if (bil > 0) {
hasil = 1;
} else { // bil < 0
hasil = -1;
}
return hasil;
}

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 74


Soal-1b:
• Apakah hasil dari potongan program berikut?
int X = 0;
cout << CiriBilangan(X) << endl; 0

cout << CiriBilangan(1000) << endl;


1

int bil, c;

bil = -222;
-1
c = CiriBilangan(bil);
cout << c << endl;

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 75


Soal 2: Fungsi Konversi
• Persoalan:
– Tuliskanlah fungsi Konversi yang digunakan untuk
mengubah harga karakter angka (nol sampai dengan 9)
menjadi harga numerik sesuai dengan karakter yang
tertulis. Contoh :
• '0'  0
• '8'  8
• Spesifikasi :
– Fungsi KarakterToInteger :
– Domain : x : character ['0'..'9'] )
– Range : integer [0..9]
– Proses : analisis kasus terhadap x, untuk setiap harga x
diasosiasikan integer yang sesuai.
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 76
Soal-3: MAX2 dan MAX3
• Tuliskan fungsi MAX2, yang menerima masukan dua
buah bilangan integer dan menghasilkan bilangan
terbesar
– Contoh: MAX2(1,2)  2
• Tuliskan fungsi MAX3 yang memanfaatkan fungsi
MAX2. Fungsi MAX3 menerima input 3 bilangan
integer dan menghasilkan bilangan terbesar
– Contoh: MAX3(10,2,3)  10

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 77


Soal-4: Putar 3 Bilangan
• Dengan memanfaatkan prosedur Tukar, buatlah
sebuah program utama yang digunakan untuk
memutar 3 buah bilangan, misalnya A=a, B=b, C=c
sehingga A=c, B=a, C=b
Ketiga bilangan dibaca dari keyboard
• Contoh:
A = 3; B = 2; C = 1
 ditukar menjadi :
A = 1; B = 3; C = 2
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 78
Soal-5
• Implementasikan sebuah prosedur yang digunakan
untuk:
– Membaca sejumlah N bilangan integer dari keyboard  N
merupakan parameter input untuk prosedur diasumsikan N > 0
– Menghasilkan penjumlahan seluruh bilangan yang dimasukkan 
menjadi parameter output
• Definisi dari prosedur tersebut adalah sebagai berikut:
void BacaDanJumlahBil (int N, int * Sum);
// Membaca N bilangan integer dari keyboard dan menghasilkan
// Sum yang merupakan jumlah dari seluruh bilangan yang
// dimasukkan
// I.S. : N terdefinisi, N > 0
// F.S. : Sum merupakan jumlah N bilangan

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 79


Alternatif Solusi Soal 2 s.d. 5
• Alternatif Solusi baru dalam bentuk notasi C++
• Untuk notasi flowchart silakan dibuat sendiri

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 80


Alt. Solusi Soal-2 (C++)
int KarakterToInteger (char x) {
// diberikan x berupa karakter, menghasilkan harga integer yang
// sesuai dengan penulisan pada karakter

//Algoritma
switch(x) {
case '0' : return 0;
case '1' : return 1;
case '2' : return 2;
case '3' : return 3;
case '4' : return 4;
case '5' : return 5;
case '6' : return 6;
case '7' : return 7;
case '8' : return 8;
case '9' : return 9;
}
}
08/10/2015 KU1072/Pengenalan Teknologi Informasi B 81
Alt. Solusi Soal-3
int Max2 (int a1, int b1) {
// diberikan a1 dan b1, menghasilkan a1 jika a1 >= b1,
// dan b1 jika b1 > a1
//Algoritma
if (a1 >= b1) {
return a1;
} else { // a1 < b1
return b1;
}
}

int Max3 (int a, int b, int c) {


// diberikan a, b, dan c, menghasilkan a jika a>=b dan a>=c,
// menghasilkan b jika b>=a dan b>=c, menghasilkan c jika c>=a dan
// c>=b
//Algoritma
return Max2(Max2(a,b),c);
}

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 82


#include <iostream>
using namespace std;
Alt. Solusi Soal-4
void Tukar(int * A, int * B);
... (C++)
int main () {
//Kamus
int a1, b1, c1;
//Algoritma
cin >> a1 >> b1 >> c1;
cout << "Sebelum ditukar : " << endl;
cout << "a = " << a1 << "; b = " << b1 << "; c = " << c1 << endl;
Tukar(&a1, &b1);
Tukar(&a1, &c1);
cout << "Sesudah ditukar : " << endl;
cout << "a = " << a1 << "; b = " << b1 << "; c = " << c1 << endl;

return 0;
}
// Realisasi Prosedur ...

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 83


Alternatif Solusi Soal-5
void BacaDanJumlahBil (int N, int * Sum) {
// Membaca N bilangan integer dari keyboard dan menghasilkan Sum
// yang merupakan jumlah dari seluruh bilangan yang dimasukkan
// I.S. : N terdefinisi, N > 0
// F.S. : Sum merupakan jumlah N bilangan
// KAMUS LOKAL
int x, i;

// ALGORITMA
*Sum = 0;
for (i = 1; i <= N; i++) {
cin >> x;
*Sum = *Sum + x;
}
}

08/10/2015 KU1072/Pengenalan Teknologi Informasi B 84

Anda mungkin juga menyukai