Anda di halaman 1dari 16

LAPORAN PRAKTIKUM

PEMROGRAMAN DASAR
UNIT 12
PEMROGRAMAN MODULAR

Nama : Naufal Rashad Aryaputra


NIM : 19/447081/SV/16800
Kelas : TRIK B
Hari/Tgl : Rabu, 27 April 2020

LABORATORIUM TEKNIK PERANGKAT LUNAK DAN KOMPUTER


TEKNOLOGI REKAYASA INSTRUMENTASI DAN KONTROL
DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
2020
BAB I
DASAR TEORI

Dalam sebuah program, seringkali pemrogram perlu memecah persoalan yang


kompleks menjadi beberapa bagian yang lebih mudah diselesaikan. Ide inilah yang
mencetuskan struktur pemrograman modular, yaitu memecah persoalan menjadi
subsub persoalan yang biasa disebut subprogram.

Bayangkan sebuah program yang dibuat untuk menghitung nilai rata-rata dari
sekumpulan nilai integer. Dalam prosesnya, program melakukan perhitungan tersebut
dalam dua langkah, yaitu menjumlahkan seluruh nilai, kemudian membaginya dengan
banyaknya nilai yang tersedia. Dengan demikian program tersebut dapat dipecah
menjadi dua subprogram, yaitu subprogram penjumlahan dan subprogram pembagian.

- Selain itu, pemrograman modular memungkinkan pemrogram memanggil


kembali subprogram yang telah didefinisikannya setiap kali diperlukan dalam
program tersebut.
- Pemrogram tidak perlu berulang kali mendefinisikan sekumpulan instruksi yang
diperlukan beberapa kali dalam sebuah program maupun dalam program
lainnya.
- Dengan pemrograman modular, sebuah subprogram dapat dianggap sebagai
program kecil dengan sebuah tujuan spesifik yang umumnya berisi operasi
sederhana dan apabila terdapat kesalahan dapat dilokalisir pada subprogram itu
sendiri. Sub-sub program tersebut kemudian disatukan oleh bagian program
utama yang dapat memanggil subprogram tersebut sesuai kebutuhan dalam
program.

Dalam pemrograman, dikenal dua tipe subprogram yang biasa digunakan untuk
memecah persoalan kompleks menjadi lebih sederhana, yaitu fungsi (function) dan
prosedur (procedure). Kedua tipe subprogram ini dapat digunakan bersamaan maupun
salah satunya saja dalam sebuah program. Masing-masing tipe subprogram memiliki
karakteristik dan perilaku yang berbeda sehingga penggunaannya dalam program juga
berbeda-beda.

• Subprogram sebagai bagian dari program utama wajib mendefinisikan kondisi awal
(initial state/I.S.) sebelum proses dalam subprogram dieksekusi dan juga
mendefinisikan kondisi akhir (final state/F.S.) yang berupa hasil proses (output) atau
perubahan nilai dalam variabel tertentu (khusus untuk fungsi saja).

Beberapa fungsi dan prosedur telah terdefinisi dan dapat langsung digunakan oleh
pemrogram dalam sebuah program dengan mendefinisikan variabel-variabel yang
diperlukan. Selain fungsi dan prosedur yang telah terdefinisi tersebut, pemrogram juga
dapat membuat sendiri fungsi dan prosedur yang diperlukannya dalam sebuah program.
Dalam membuat sebuah subprogram, pemrogram dapat menyimpannya dalam salah
satu dari dua lokasi berikut ini:
1. Dalam file yang sama dengan program utama: dapat dilakukan jika subprogram
sedikit dan berukuran kecil sehingga relatif mudah dikelola dalam sebuah file
2. Dalam file yang terpisah: biasanya dilakukan jika subprogram sudah terlalu
banyak sehingga sulit dikelola, atau jika pemrogram menginginkan supaya
subprogram dapat digunakan di beberapa program utama sekaligus

A. Variabel Lokal dan Variabel Global


1. Variabel Lokal
Dalam mendeklarasikan sebuah fungsi/ prosedur, dapat dideklarasikan pula
variabel-variabel yang akan digunakan dalam fungsi/ prosedur tersebut. Variabel
semacam ini disebut variabel lokal atau variabel internal, artinya variabel ini hanya
dikenali secara lokal dalam sebuah subprogram (fungsi atau prosedur). Variabel
lokal tidak dapat dipanggil, diakses dan diubah oleh prosedur atau fungsi yang
lain, bahkan oleh program utama sekalipun karena hanya dapat dikenali oleh
prosedur atau fungsi dimana variabel ini didefinisikan.
2. Variabel Global
Sedangkan variabel yang didefinisikan dalam program utama dan dapat
digunakan di program utama maupun sub-sub program lainnya disebut dengan
variabel global. Nilai dari variabel ini dapat dipanggil, diakses dan diubah oleh
prosedur atau fungsi apapun yang terdapat dalam program tersebut.

B. Fungsi
Fungsi adalah subprogram yang menerima data masukan, melakukan beberapa
perhitungan dari data tersebut, kemudian mengembalikan output berupa sebuah data
baru. Dengan kata lain, sebuah fungsi memetakan sebuah nilai (dalam domain)
menjadi nilai lain (dalam range) dengan operasi/ proses tertentu. Pendeklarasian
fungsi merupakan salah satu cara memecah persoalan ke dalam beberapa sub
persoalan yang lebih mudah diselesaikan. Dalam pembuatan sebuah fungsi,
pemrogram harus mendefinisikan:
− nama fungsi
− Tipe data yang dibuat/ dihasilkan oleh fungsi
− Daftar parameter yang menyatakan data yang diperlukan oleh fungsi
− Satu atau lebih instruksi yang melakukan perhitungan
Selanjutnya, fungsi yang sudah didefinisikan dapat digunakan dalam program utama
maupun dalam fungsi lainnya dengan cara memanggil nama fungsi dan memberikan
parameter yang diperlukan oleh fungsi tersebut. Fungsi bekerja menurut mekanisme
pemanggilan-pengembalian (callreturn-mechanism). Tahapan dalam mekanisme
tersebut adalah:
1. Fungsi dipanggil dari program utama maupun fungsi lainnya
2. Sekumpulan operasi dalam fungsi dieksekusi
3. Hasil eksekusi dikembalikan ke program utama atau fungsi lain yang
memanggilnya.

Contoh fungsi :
int rata(int x, int y, int z)
{
int ave;
ave = (x + y + z)/3;
return(ave);
}

Di dalam fungsi dikenal istilah Parameter Formal dan Parameter Aktual :


a. Parameter formal adalah parameter yang terdapat pada pendefinisian sebuah
fungsi.
b. Parameter aktual adalah parameter yang terdapat pada saat pemanggilan fungsi.

Cara melewatkan parameter ke dalam suatu fungsi dapat dilakukan melalui dua cara
yaitu:
a. Pelewatan parameter melalui nilai (call by value) :
- Pelewatan parameter ke dalam fungsi dengan menyalin nilai dari suatu
variabel aktualnya. Maksudnya adalah fungsi menerima masukan berupa
nilai, bukan alamat memori letak dari datanya dan nilai tersebut disimpan di
alamat memori yang terpisah dari nilai aslinya yang digunakan oleh bagian
program yang memanggil fungsi.
Contoh :
#include <iostream>
using namespace std;
int kali(int a, int b, int c) //parameter formal
{
int x;
x = a*b*c;
return(x);
}
int main()
{
int a,b,c;
cout<<"Masukkan angka 1 : "; cin>>a;
cout<<"Masukkan angka 2 : "; cin>>b;
cout<<"Masukkan angka 3 : "; cin>>c;
cout<<"Hasil perkalian ketiga bilangan :
"<<kali(a,b,c); //parameter aktual
return 0;
}

b. Pelewatan parameter melalui acuan/referensi (call by reference) :


- Pelewatan parameter ke dalam fungsi dengan menyalin alamat dari suatu
variabel aktualnya. Fungsi yang menerima kiriman alamat ini akan
menggunakan alamat yang sama untuk mendapatkan nilai datanya. Hal ini
dilakukan dengan menggunakan pointer. Pointer adalah variabel yang
merujuk pada alamat lokasi suatu memori tertentu, variable pointer dapat
dideklarasikan dengan menuliskan nama variabelnya diawali dengan asterisk
(‘*’). Perubahan yang terjadi pada variabel asal akan mengakibatkan
perubahan pada variabel pointernya dan sebaliknya.

Contoh :
#include <iostream>
using namespace std;
void desc_sort(int *bil1, int *bil2) // parameter formal
{
if(*bil1<*bil2)
{
*bil1 = *bil1 + *bil2;
*bil2 = *bil1 - *bil2;
*bil1 = *bil1 - *bil2;
}
}
int main()
{
int a,b,c;
cout<<"Masukkan angka 1 : "; cin>>a;
cout<<"Masukkan angka 2 : "; cin>>b;
cout<<"Masukkan angka 3 : "; cin>>c;
desc_sort(&a, &b); //parameter aktual
desc_sort(&a, &c); //parameter aktual
desc_sort(&b, &c); //parameter aktual
cout<<"Hasil descending sort : "<<a<<" "<<b<<" "<<c;
return 0;

C. Prosedur
Cara lain memecah persoalan pemrograman ke dalam sub-sub persoalan
pemrograman adalah dengan mendeklarasikan prosedur. Prosedur adalah sederetan
instruksi yang diberi nama, dan melakukan tujuan tertentu. Seperti halnya pada
fungsi, prosedur bekerja dengan mekanisme pemanggilan pengembalian (call-return
mechanism), yaitu dengan urutan langkah:
1. Prosedur dipanggil oleh kode pemanggil (program utama maupun prosedur
lainnya)
2. Sekumpulan operasi yang disimpan dalam prosedur dieksekusi
3. Kontrol dikembalikan ke kode pemanggil
Penulisan prosedure seperti berikut :
void nama_procedure (<daftar_parameter_input>
,<daftar_parameter_output>)
{
/* instruksi */
}

Dengan catatan bahwa nama prosedur dan nama parameternya harus disebutkan
dalam blok kode pemanggil. Berbeda dengan fungsi, daftar parameter pada
procedure terbagi menjadi dua yaitu parameter input dan parameter output. Daftar
parameter boleh kosong (tidak ada parameter input maupun output). Jika parameter
tidak kosong (minimal ada satu parameter) maka harus dituliskan nama parameter
beserta tipe datanya.
Prosedur tanpa parameter memanfaatkan nilai dari variabel yang terdefinisi dalam
kode program utama/prosedur lain yang memanggilnya. Prosedur tanpa parameter
ini hanya dapat dieksekusi jika nilai dari variabel yang diperlukan dalam prosedur
sudah didefinisikan dalam kode program utama/prosedur lain yang memanggilnya.
Prosedur dengan parameter dibuat untuk mengeksekusi sekumpulan instruksi
dengan parameter yang berbeda-beda. Nama parameter yang dituliskan pada
definisi / spesifikasi prosedur disebut dengan parameter formal. Sedangkan
parameter yang dituliskan pada pemanggilan prosedur disebut parameter aktual.
Parameter formal adalah nama-nama variabel yang dipakai dalam mendefinisikan
prosedur, dan membuat prosedur tersebut dapat dieksekusi dengan variabel yang
berbeda saat pemanggilan. Terdapat tiga tipe parameter formal:
- parameter input, yaitu parameter yang diperlukan prosedur sebagai masukan
untuk melakukan aksi yang efektif
- parameter output, yaitu parameter yang akan menyimpan nilai yang dihasilkan
oleh prosedur
- parameter input/output, yaitu parameter yang diperlukan prosedur sebagai
masukan untuk melakukan aksi tertentu, yang pada akhir prosedur akan diisi
dengan nilai baru sebagai hasil eksekusi prosedur.

Parameter aktual adalah variabel / konstanta yang dipakai ketika prosedur dipanggil
oleh program utama / prosedur lain. Parameter aktual dapat berupa variabel /
konstanta, tapi parameter output harus berupa variabel karena akan menyimpan hasil
eksekusi prosedur.

Tugas

Praktikkan program berikut (hasilnya dicapture dan dianalisis di laporan)


BAB II
HASIL DAN ANALISA
Tugas 1
Program

Hasil Program

Analisa
Program diatas merupakan contoh program pemanggilan fungsi secara global maupun
secara local, dimana variable addition merupakan variable global dan z merupakan
variable local. Output sama dengan 8 bisa dihasilkan karena pada awalnya sudah
didefinisikan bahwa parameter yang digunakan oleh fungsi addition adalah (a,b) dan
variable r terdapat dalam fungsi addition dimana r=a+b, dilanjutkan dengan
pendefinisian nilai dari parameter addition yaitu addition (5,3) hal ini sama dengan
addition (a,b) dimana 5 merupakan a dan 3 merupakan b. Kesimpulannya adalah nilai
r=a+b atau r=5+3 dimana r merupakan bagian dari fungsi addition.
#include <iostream>; :

#include merupakan sebuah preprocessor directive yang digunakan untuk memuat


sebuah file library. <iostream> merupakan sebuah file header yang memuat semua
fungsi program seperti cout,cin dan lainnya, #include memberitahu preprocessor
compiler untuk menggunakan file header standar iostream ke dalam program.

using namespace std; :


Baris ini merupakan instruksi untuk memberi tahu compiler bahwa program
menggunakan library dari Namespace. Dengan menggunakan perintah ini dapat
meminimalisir kesalahan akibat tidak dikenalinya fungsi cout maupun cin Std
merupakan singkatan dari standard.

Int addition(int a, int b);


Merupakan Deklarasi fungsi int addition dengan menggunakan parameter (int a, int b).
Fungsi dengan tipe int menyatakan kalau fungsi addition akan mengembalikan nilai
return diakhir program (ditandai dengan adanya perintah return r)
Line 5 - 9

Baris 5-9 merupakan body dari fungsi addition dimana isinya merupakan perintah
untuk mendefinisikan tipe data yang digunakan pada variable r, dilanjutkan dengan
perintah aritmatika dimana nilai r sama dengan a + b, return digunakan untuk
mengembalikan atau memberikan feedback kepada fungsi addition.
Int main() :

Fungsi utama atau entry point dari seluruh program sebelum program di eksekusi,
fungsi main ini harus ada disetiap program agar program tersebut dapat berjalan. Fungsi
ini selalu diikuti dengan buka tutup kurung yang menandakan kalau line tersebut
merupakan suatu fungsi dalam program. int merupakan tipe data dalam fungsi main.

Line 12 - 16

Baris 12-16 merupakan body dari fungsi addition dimana isinya merupakan perintah
untuk mendefinisikan tipe data dari variable z yaitu integer, dilanjutkan dengan perintah
untuk mendefinisikan variable z terdiri dari addition (5,3), addition merupakan variable
dengan tipe data integer yang sebelumnya sudah dideklarasikan pada fungsi addition,
(5,3) digunakan untuk mendefinisikan isi dari parameter (int a, int b) pada fungsi
addition. Baris 15 perintah untuk output nilai dari variable Z.
Tugas 2
Program

Hasil Program

Analisa
Program diatas merupakan sebuah perintah pemanggilan fungsi printmessage pada
fungsi utama pada program yaitu int main, dimana sebelumnya nilai dari fungsi
printmessage sudah di definisikan yaitu printout text “I Am a function”. Kesimpulannya
ketika fungsi printmessage dideklarasikan pada fungsi utama program, fungsi tersebut
dipanggil kemudian dijalankan

#include <iostream>; :

#include merupakan sebuah preprocessor directive yang digunakan untuk memuat


sebuah file library. <iostream> merupakan sebuah file header yang memuat semua
fungsi program seperti cout,cin dan lainnya, #include memberitahu preprocessor
compiler untuk menggunakan file header standar iostream ke dalam program.

using namespace std; :

Baris ini merupakan instruksi untuk memberi tahu compiler bahwa program
menggunakan library dari Namespace. Dengan menggunakan perintah ini dapat
meminimalisir kesalahan akibat tidak dikenalinya fungsi cout maupun cin Std
merupakan singkatan dari standard.

Void printmessage();
Merupakan Deklarasi fungsi printmessage dengan tidak menggunakan apapun. Fungsi
dengan tipe void menyatakan kalau fungsi printmessage tidak akan mengembalikan
nilai diakhir program (ditandai dengan tidak adanya perintah return).

Line 5 - 7

Baris 5-7 merupakan body dari fungsi addition dimana isinya merupakan perintah
printout dari tulisan “I’am a Function!”;
Int main() :

Fungsi utama atau entry point dari seluruh program sebelum program di eksekusi,
fungsi main ini harus ada disetiap program agar program tersebut dapat berjalan. Fungsi
ini selalu diikuti dengan buka tutup kurung yang menandakan kalau line tersebut
merupakan suatu fungsi dalam program. int merupakan tipe data dalam fungsi main.

Printmessage()

Merupakan perintah pemanggilan dari fungsi printmessage yang sebelumnya nilainya


sudah di definisikan pada baris 5-7 yaitu untuk melakukan printout tulisan.
Tugas 3
Program

Hasil Program

Analisa
Program diatas merupakan contoh lainnya tentang program pemanggilan fungsi secara
global maupun secara local, dimana variable divide merupakan variable global dan r
merupakan variable local. Nilai 6 didapatkan dari hasil pembagian 12/2, dimana nilai
6 didefinisikan sebagai int a dan secara default (nilai yang di input pada program) nilai
dari b adalah 2 sehingga 12/2= 6. Pada nilai yang kedua karena nilai dari int a diwakili
oleh 20 dan nilai b diwakili oleh 4 (dalam kasus ini karena nilai b didefinisikan maka
nilai default akan digantikan), sehingga hasil dari 20/4=5.

#include <iostream>; :

#include merupakan sebuah preprocessor directive yang digunakan untuk memuat


sebuah file library. <iostream> merupakan sebuah file header yang memuat semua
fungsi program seperti cout,cin dan lainnya, #include memberitahu preprocessor
compiler untuk menggunakan file header standar iostream ke dalam program.

using namespace std; :


Baris ini merupakan instruksi untuk memberi tahu compiler bahwa program
menggunakan library dari Namespace. Dengan menggunakan perintah ini dapat
meminimalisir kesalahan akibat tidak dikenalinya fungsi cout maupun cin Std
merupakan singkatan dari standard.

Int divide(int a, int b=2);


Merupakan Deklarasi fungsi int addition dengan menggunakan parameter (int a, int
b=2). Fungsi dengan tipe int menyatakan kalau fungsi addition akan mengembalikan
nilai return diakhir program (ditandai dengan adanya perintah return r)

Line 5 - 9

Baris 5-9 merupakan body dari fungsi divide dimana isinya merupakan perintah untuk
mendefinisikan tipe data yang digunakan pada variable r, dilanjutkan dengan perintah
aritmatika dimana nilai r sama dengan a / b, return digunakan untuk mengembalikan
atau memberikan feedback kepada fungsi divide.

Int main() :

Fungsi utama atau entry point dari seluruh program sebelum program di eksekusi,
fungsi main ini harus ada disetiap program agar program tersebut dapat berjalan. Fungsi
ini selalu diikuti dengan buka tutup kurung yang menandakan kalau line tersebut
merupakan suatu fungsi dalam program. int merupakan tipe data dalam fungsi main.

Line 12 - 16

Baris 12-16 merupakan body dari fungsi main dimana isinya merupakan perintah untuk
mendefinisikan nilai dari parameter yang terdapat dalam fungsi divide, dimana nilai 12
atau 20 merepresentasikan nilai dari int a dan 4 merepresentasikan nilai dari b.
Tugas 4
Program

Hasil Program

Analisa
Program diatas merupakan program untuk mencari tahu apakah suatu bilangan bernilai
positif atau negative, dimana pada fungsi bool checkIfPositive terdapat penyeleksian
kondisijika nilai dari x lebih besar dari 0 maka program akan mereturn nilai true atau
1, jika tidak program akan return false atau 0. Selanjutnya fungsi void printIfPositive
(intx) merupakan penyeleksian kondisi dimana jika nilai dari fungsi checkifpositive
adalah true atau 1 maka program akan melakukan printout nilai dari angka tersebut
dan menyatakan kalau angka tersebut adalah bilangan positive, jika negative program
tidak akan melakukan printout nilai bilangan.

#include <iostream>; :
#include merupakan sebuah preprocessor directive yang digunakan untuk memuat
sebuah file library. <iostream> merupakan sebuah file header yang memuat semua
fungsi program seperti cout,cin dan lainnya, #include memberitahu preprocessor
compiler untuk menggunakan file header standar iostream ke dalam program.

using namespace std; :

Baris ini merupakan instruksi untuk memberi tahu compiler bahwa program
menggunakan library dari Namespace. Dengan menggunakan perintah ini dapat
meminimalisir kesalahan akibat tidak dikenalinya fungsi cout maupun cin Std
merupakan singkatan dari standard.

bool checkIfPositive(int x)

Merupakan Deklarasi fungsi bool checkIfPositive dengan menggunakan parameter (int


x). Fungsi dengan tipe bool menyatakan kalau fungsi addition akan mengembalikan
nilai return diakhir program (ditandai dengan adanya perintah return true dan false)

Line 6 - 10

Baris 6-10 merupakan body dari fungsi checkIfPositive dimana isinya merupakan
perintah untuk penyeleksian kondisi, jika nilai dari variable x adalah lebih besar atau
sama dengan 0 maka program akan return true atau nilai 1, ketika kondisi tidak
terpenuhi maka program akan return false atau nilai 0.
void printIfPositive(int x)
Merupakan Deklarasi fungsi void printIfPositive dengan menggunakan parameter (int
x). Fungsi dengan tipe void menyatakan kalau fungsi addition tidak akan
mengembalikan nilai return diakhir program (ditandai dengan tidak adanya perintah
return)

Line 14 - 18
Baris 14-18 merupakan body dari fungsi checkIfPositive dimana isinya merupakan
perintah untuk mendefinisikan variable isPositive bernilai checkIfPositive(x) yang
berarti jika pada fungsi pertama nilai return adalah True atau 1 maka nilai variable
isPositive juga akan True atau 1 dan sebaliknya. Dilanjutkan dengan perintah untuk
penyeleksian kondisi, jika nilai dari variable isPositive adalah true atau 1 maka program
akan melakukan printout nilai dari angka tersebut dan menyatakan kalau angka tersebut
adalah bilangan positive, jika negative program tidak akan melakukan printout nilai
bilangan.

Int main() :

Fungsi utama atau entry point dari seluruh program sebelum program di eksekusi,
fungsi main ini harus ada disetiap program agar program tersebut dapat berjalan. Fungsi
ini selalu diikuti dengan buka tutup kurung yang menandakan kalau line tersebut
merupakan suatu fungsi dalam program. int merupakan tipe data dalam fungsi main.

Line 12 - 16

Baris 12-16 merupakan body dari fungsi main dimana isinya merupakan perintah untuk
mendefinisikan nilai dari parameter yang terdapat dalam fungsi printIfPositive, nilai
dari 3,-54 dan 710 merupakan nilai yang akan menggantikan nilai dari parameter x pada
fungsi checkIfPositive, masing masing dari bilangan diatas akan dicheck nilainya
apakah bernilai positive atau negative kalau angka tersebut adalah bilangan positive,
jika negative program tidak akan melakukan printout nilai bilangan.
BAB III
KESIMPULAN

1. Variabel dibagi 2 jenis yaitu local dan global. Variabel lokal berlaku pada suatu
kondisi tertentu didalam suatu perintah. Sedangkan global berlaku dan bisa
dipanggil sepanjang program
2. Fungsi adalah subprogram dan mengandung nilai tertentu dari sebuah variabel.
Bisa dipanggil oleh nilai nya (call by value) dan refrensi nya (call by reference).
3. Analisa diatas merupakan contoh penerapan dari variable global dan variable
local, contohnya dapat dilihat pada tugas 1 pada line 4-7 yang menunjukkan
pendeklarasian dari variable global. Sedangkan pada line 14 menunjukkan kalau
Z merupakan jenis variable local.

BAB IV
DAFTAR PUSTAKA

1. Modul Praktikum Pemrograman Dasar Laboratorium Teknik Perangkat Lunak


dan Komputer, Teknologi Rekayasa Instrumentasi dan Kontrol, Departemen
Teknik Elektro dan Informatika, Sekolah Vokasi, Universitas Gadjah Mada.
2. Hastomo, Rafifnanda, 2018, Laporan Praktikum Pemrograman Dasar Bab 11,
Yogyakarta, Laboratorium Teknik Perangkat Lunak dan Komputer, Sekolah
Vokasi, Universitas Gadjah Mada.

Anda mungkin juga menyukai