Anda di halaman 1dari 13

TUGAS PENGANTAR CODING

PEMOGRAMAN MODULAR

Disusun Oleh:
SODIAN
(20005064)

Dosen Pengampu :
Dr. Asrul Huda, S.Kom., M.Kom,

Dr. Noper Ardi, M.Eng

JURUSAN PENDIDIKAN LUAR SEKOLAH


FAKULTAS ILMU PENDIDIKAN
UNIVERSITAS NEGERI PADANG
2021
PEMROGRAMAN MODULAR

Konsep Pemrograman Modular dalam C++


a. Tujuan
Setelah mempelajari konsep pemrograman modular dalam C++, diharapkan
mahasiswa dapat:
1. Menjelaskan konsep pemrograman modular dalam Bahasa C++
2. Membedakan konsep pemrograman modular dalam bahasa C++
3. Mengimplementasikan penggunakan pemrograman modular dalam program
sederhana dalam bahasa pemrograman C++

b. Uraian Materi

Definisi Modular :
Pemrograman Modular adalah suatu teknik pemrograman di mana program yang
biasanya cukup besar dibagi-bagi menjadi beberapa bagian program yang lebih kecil
sehingga akan mudah dipahami dan dapat digunakan kembali, baik untuk program
itu sendiri maupun program lain yang memiliki proses yang sama.

Modul pada bahasa C++ dikenal dengan nama fungsi (function)


Bahasa C terdiri dari fungsi-fungsi, baik yang langsung dideklarasikan dalam
program ataupun dipisah di dalam header file.
Fungsi yang selalu ada pada program C++ adalah fungsi main
Kelebihan Modular :

Program lebih pendek


Mudah dibaca dan dimengerti
Mudah didokumentasi
Mengurangi kesalahan dan mudah mencari kesalahan
Kesalahan yang terjadi bersifat “lokal”
 
 

1. Konsep Pemrograman Modular


Pemrograman Modular adalah suatu teknik pemrograman di mana program
yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian program
yang lebih kecil sehingga akan mudah dipahami dan dapat digunakan
kembali, baik untuk program itu sendiri maupun program lain yang memiliki
proses yang sama.

Gambar 10.1 Konsep pemrograman Modular

Pemrograman modular menggunakan perancangan program


menyerdehanakan persoalan didalam program dengan memecah atau
membagi persoalan tersebut menjadi sub-sub persoalan yang lebih kecil
agar mudah diselesaikan. Secara umum dikenal dua cara yang dapat
digunakan untuk memecahkan persoalan dalam modul-modul, yaitu dengan
menggunakan
struktur fungsi dan prosedur.
Poin-poin penting dalam pemrograman modular:

a) Program dalam C++ dibagai menjadi beberapa bagian modul.


b) Modul pada bahasa C++ dikenal dengan nama fungsi (function).
c) Bahasa C terdiri dari fungsi-fungsi, baik yang langsung dideklarasikan
dalam program ataupun dipisah di dalam header file.
d) Fungsi yang selalu ada dalam C++ adalah fungsi main.
e) Fungsi dibentuk untuk menyelesaikan tugas tertentu.
f) Modul diperlukan jika perintah/coding tersebut diperlukan di tempat lain
dalam program
g) Modul sering disebut sub-program

Adapun keunggulan dari pemrograman modular yaitu:


a) Program lebih pendek, singkat dan padat.
b) Program menjadi lebih mudah dibaca dan dimengerti.
c) Masalah yang kompleks dapat dijadikan masalah yang lebih sederhana.
d) Mencari kesalahan lebih mudah karena alur logika lebih jelas.
e) Kesalahan yang terjadi bersifat local.
f) Modifikasi dapat dilakukan tanpa mengganggu program
secara
keseluruhan.

2. Konsep Divide and Conquer


Algoritma Divide and Conquer merupakan algoritma yang sangat
populer di dunia Ilmu Komputer. Divide and Conquer merupakan algoritma
yang berprinsip memecah-mecah permasalahan yang terlalu besar menjadi
beberapa bagian kecil sehingga lebih mudah untuk diselesaikan.
Langkahlangkah umum algoritma Divide and Conquer:
a) Divide: Membagi masalah menjadi beberapa upa-masalah yang
memiliki kemiripan dengan masalah semula namun berukuran lebih
kecil (idealnya berukuran hampir sama).
b) Conquer: Memecahkan (menyelesaikan) masing-masing masalah
(secara
rekursif).
c) Combine: Menggabungkan solusi masing-masing upa-masalah
sehingga membentuk solusi masalah semula.

Objek masalah yang di bagi adalah masukan (input) atau instances


yang berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada
masalahnya. Tiap-tiap upa-masalah mempunyai karakteristik yang sama (the
same type) dengan karakteristik masalah asal, sehingga metode Divide and
Conquer lebih natural diungkapkan dalam skema rekursif. Sesuai dengan
karakteristik pembagian dan pemecahan masalah tersebut, maka algoritma
ini dapat berjalan baik pada persoalan yang bertipe rekursif (perulangan
dengan memanggil dirinya sendiri). Dengan demikian, algoritma ini dapat
diimplementasikan dengan cara iteratif (perulangan biasa), karena pada
prinsipnya iteratif hampir sama dengan rekursif. Salah satu penggunaan
algoritma ini yang paling populer adalah dalam hal pengolahan data yang
bertipe array (elemen larik). Hal ini terjadi karena pengolahan array pada
umumnya selalu menggunakan prinsip rekursif atau iteratif. Penggunaan
secara spesifik adalah untuk mencari nilai minimal dan maksimal serta untuk
mengurutkan elemen array. Dalam hal pengurutan ini ada empat macam
algoritma pengurutan yang berdasar pada algoritma Divide and Conquer,
yaitu merge sort, insert sort, quick sort, dan selection sort. Merge sort dan
Quick sort mempunyai kompleksitas algoritma O (n² log n). Hal ini lebih baik
jika dibandingkan dengan pengurutan biasa dengan menggunakan algoritma
brute force.
Skema umum algoritma divide and conquer:
3. Konsep Kopling dan kohesivitas
Kopling dan kohesi adalah dua konsep yang ditemukan di bahasa Java
(dan semua bahasa berorientasi objek lainnya). Coupling mengukur
seberapa besar masing-masing modul program bergantung pada modul
program lainnya. Kohesi mengukur seberapa kuat masing-masing fungsi
terkait dalam suatu modul. Sebenarnya, bahasa berorientasi objek apa pun
(termasuk Jawa) memiliki dua tujuan utama untuk meningkatkan
keterpaduan dan mengurangi sambungan pada saat yang sama, untuk
mengembangkan program yang paling efisien. Kedua metrik rekayasa
perangkat lunak ini dikembangkan oleh Larry Constantine untuk mengurangi
biaya modifikasi dan pemeliharaan perangkat lunak.
Kohesi mengukur seberapa kuat masing-masing fungsi terkait dalam
modul program. Kelas yang terstruktur dengan baik menyebabkan program
yang sangat kohesif. Jika kelas tertentu melakukan serangkaian fungsi yang
sangat terkait, kelas itu dikatakan kohesif. Di sisi lain, jika suatu kelas
melakukan banyak fungsi yang sama sekali tidak terkait itu berarti kelas
tersebut tidak kohesif sama sekali. Penting untuk dipahami bahwa tidak
memiliki keterpaduan tidak berarti bahwa keseluruhan aplikasi tidak memiliki
fungsionalitas yang diperlukan. Hanya saja tanpa kohesi, akan sangat sulit
untuk mengatur fungsi karena mereka akan tersebar di banyak tempat yang
salah karena kompleksitas aplikasi meningkat dari waktu ke waktu.
Mempertahankan, memodifikasi dan memperluas perilaku yang tersebar di
seluruh kode sangat membosankan bahkan untuk programmer yang paling
berpengalaman sekalipun.
Coupling mengukur seberapa besar masing-masing modul program
bergantung pada modul program lainnya. Interaksi antara dua objek terjadi
karena ada kopling. Program yang digabungkan secara longgar memiliki
fleksibilitas dan ekstensibilitas yang tinggi. Kopling yang kuat tidak pernah
baik karena satu objek dapat sangat bergantung pada beberapa objek
lainnya. Ini adalah mimpi buruk ketika kode dimodifikasi, karena kopling
tinggi berarti bahwa programmer perlu bekerja di beberapa tempat kode
bahkan untuk modifikasi perilaku tunggal. Kopling yang kuat selalu mengarah
ke program dengan fleksibilitas rendah dan skalabilitas / ekstensibilitas yang
lebih rendah. Namun, dalam bahasa pemrograman seperti Java, sepenuhnya
menghindari kopling tidak mungkin. Tetapi disarankan agar programmer
memberikan upaya terbaik untuk mengurangi kopling sebanyak mungkin.
Dimungkinkan juga untuk memiliki beberapa sambungan untuk membantu
objek berinteraksi satu sama lain tanpa menghambat skalabilitas dan
fleksibilitasnya.
Meskipun kopling dan kohesi berhubungan dengan kualitas modul
dalam rekayasa perangkat lunak, mereka sepenuhnya merupakan konsep
yang berbeda. Kohesi berbicara tentang seberapa banyak fungsionalitas
terkait satu sama lain dalam modul, sementara penggabungan berkaitan
dengan seberapa banyak satu modul tergantung pada modul program lain
dalam keseluruhan aplikasi. Untuk memiliki perangkat lunak dengan kualitas
terbaik, kohesi dan penggandengan harus mencapai dua ujung yang
berlawanan dari spektrum mereka. Dengan kata lain, kopling longgar dan
kohesi yang kuat menyediakan perangkat lunak terbaik. Memiliki bidang
pribadi, kelas non-publik, dan metode pribadi memberikan kopling yang
longgar, sementara membuat semua anggota terlihat di dalam kelas dan
memiliki paket sebagai visibilitas default memberikan kohesi yang tinggi.

4. Fungsi
Fungsi (function) merupakan blok kode yang dirancang untuk melakukan
tugas tertentu atau satu blok intruksi atau subprogram kecil yang dieksekusi
ketika dipanggil dari bagian lain dalam suatu program atau di sebut juga
dengan modular programming.
a) Kegunaan fungsi
1) Untuk mengurangi pengulangan penulisan program yang sama.
2) Agar program menjadi lebih terstruktur sehingga mudah dipahami dan
lebih mudah untuk dikembangkan.
3) Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang
lebih sederhana atau kecil.
4) Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh
programmer-programmer atau dipecah menjadi beberapa tahap
sehingga mempermudah pengerjaan dalam sebuah projek.
5) Menyembunyikan informasi dari user sehingga mencegah adanya
perbuatan iseng seperti memodifikasi atau mengubah program yang
kita buat.
6) Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu
kesalahan kita tinggal mencari fungsi yang bersangkutan saja dan tak
perlu mencari kesalahan tersebut di seluruh program.

b) Keunggulan Fungsi
1) Dapat melakukan pendekatan top-down dan divide-and conquer:
2) Top-down: penelusuran program mudah
3) Divide-and-conquer: program besar dapat dipisah menjadi
programprogram kecil.
4) Kode program menjadi lebih pendek, mudah dibaca, dan mudah
dipahami
5) Program dapat dikerjakan oleh beberapa orang sehingga program
cepat selesai dengan koordinasi yang mudah.
6) Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas
dan sederhana
7) Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
8) Modifikasi program dapat dilakukan pada suatu modul tertentu saja
tanpa mengganggu program keseluruhan
9) Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.

10)Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi


– fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas
dan mudah dimengerti.
11)Fungsi –fungsi digunakan untuk menghindari penulisan program yang
sama yang ditulis secara berulang – ulang.
12)Langkah – langkah tersebut dapat dituliskan sekali saja secara terpisah
dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan
langkah – langkah ini tidak perlu selalu menuliskannya, cukup
memanggil fungsi tersebut.
13)Mempermudah dokumentasi.
14)Reusability: Suatu fungsi dapat digunakan kembali oleh program atau
fungsi lain

c) Jenis Fungsi
1) StandardLibrary Function Yaitu fungsi-fungsi yang telah
disediakan oleh C dalam file-file header atau librarynya.

Misalnya: clrscr(), getch().

Untuk function ini kita harus mendeklarasikan terlebih dahulu


library yang akan digunakan, yaitu dengan menggunakan
preprosesor direktif.
Misalnya: #include <conio.h>

2) Programmer-Defined Function adalah function yang dibuat oleh


programmer sendiri.

Function ini memiliki nama tertentu yang unik dalam


program, letaknya terpisah dari program utama, dan bisa
dijadikan satu ke dalam suatu library buatan programmer itu
sendiri yang kemudian juga di-includekan jika ingin
menggunakannya.

d) Pendeklarasian Fungsi
Adapun cara mendeklerasikan fungsi adalah sebagai berikut:

Gambar 10.2 cara mendeklarasikan Fungsi dalam C++


Rancangan pembuatan fungsi

Dalam membuat fungsi, perlu diperhatikan:

Data yang diperlukan sebagai inputan


Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya
Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Contoh deklarasi dan definisi fungsi

Contoh-deklarasi-dan-definisi-fungsi
Pemanggilan fungsi
Pada dasarnya fungsi dapat memanggil fungsi lain, bahkan fungsi dapat memanggil
dirinya sendiri (rekursif)
e) Jenis Fungsi Programmer-Defined dalam C++
Terdapat dua jenis fungsi yang didefinsikan oleh programmer
yaitu fungsi yang tidak mengembalikan nilai (void)dan fungsi yang
mengembalikan nilai (nonvoid).

1) Fungsi Void

Fungsi yang void sering disebut juga prosedur. Fungsi ini


dinamakan void karena fungsi tersebut tidak mengembalikan suatu
nilai keluaran yang didapat dari hasil proses fungsi tersebut. Pada
penggunaannya juga pada akhir program tidak dapat langsung
ditampilkan hasilnya. Fungsi ini tidak memiliki nilai kembalian fungsi.
Penulisan keyword void juga digunakan jika suatu function tidak
mengandung suatu parameter apapun. Adapun ciri-ciri dari fungsi
void yaitu:

Jenis fungsi di C++ :


1.Fungsi yang tidak mengembalikan nilai (void)

Fungsi yang void sering disebut juga prosedur


Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran
yang didapat dari hasil proses fungsi tersebut.
Tidak dapat langsung ditampilkan hasilnya
Tidak memiliki nilai kembalian fungsi
Keyword void juga digunakan jika suatu function tidak mengandung suatu
parameter apapun.
Fungsi yang mengembalikan nilai (nonvoid)
Ciri:

tidak adanya keyword return.


tidak adanya tipe data di dalam deklarasi
menggunakan keyword void.

Contoh:
#include<iostream> using
namespace std;

void garis(); void


inputdata(); void
hitbayar();

main(){ cout<<"Program Hitung Harga bayar"<<endl;


garis(); inputdata(); hitbayar(); garis();
}

void garis()
{ cout<<"\n===================================\
n";

void inputdata(){ string nama_barang;


cout<<"masukkan nama barang: ";
cin>>nama_barang;
}

void hitbayar(){ int bayar, harga, jumlah;


cout<<"masukkan harga barang: ";
cin>>harga;
cout<<"masukkan jumlah barang: ";
cin>>jumlah; bayar=harga*jumlah;
cout<<"total Bayar nya adalah "<<bayar;

}
2) Fungsi Non-void

Fungsi non-void disebut juga function biasa. Fungsi ini disebut


non-void karena mengembalikan nilai kembalian yang berasal dari
keluaran hasil proses function tersebut. Fungsi ini memiliki nilai
kembalian. Dapat dianalogikan sebagai suatu variabel yang memiliki
tipe data tertentu sehingga dapat langsung ditampilkan hasilnya.
Adapun ciri-ciri dari fungsi non-void yaitu:

Fungsi non Void :

Fungsi non-void disebut juga function


Disebut non-void karena mengembalikan nilai kembalian yang berasal dari
keluaran hasil proses function tersebut
Memiliki nilai kembalian
Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
sehingga dapat langsung ditampilkan hasilnya
Ciri:

ada keyword return


ada tipe data yang mengawali deklarasi fungsi
tidak ada keyword void
Pemanggilan fungsi
Pada dasarnya fungsi dapat memanggil fungsi lain, bahkan fungsi dapat memanggil
dirinya sendiri (rekursif)

:
#include<iostream>
using namespace std;
[4] int ujinilai(){[5]
return (8/2);
}

main(){ cout<<"Nilai yang ada dalam fungsi adalah ";


cout<<ujinilai();
}
c. Rangkuman
a. Pemrograman Modular adalah suatu teknik pemrograman di mana
program yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian
program;
b. Modul pada bahasa C++ dikenal dengan nama fungsi (function).
c. Modul sering disebut sub-program
d. Divide and Conquer merupakan algoritma yang berprinsip memecah-
mecah permasalahan yang terlalu besar menjadi beberapa bagian kecil
e. Coupling mengukur seberapa besar masing-masing modul program
bergantung pada modul program lainnya.
f. Kohesi mengukur seberapa kuat masing-masing fungsi terkait dalam suatu
modul
g. Terdapat dua macam defined-function yaitu fungsi void dan fungsi non-void

Anda mungkin juga menyukai