• Tidak ada hasil yang ditemukan

BAB III FUNGSI DAN MODULASI DALAM PROGRAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III FUNGSI DAN MODULASI DALAM PROGRAM"

Copied!
22
0
0

Teks penuh

(1)

Universitas Gadjah Mada 1 BAB III

FUNGSI DAN MODULASI DALAM PROGRAM

I. DASAR TEORI A. Fungsi

Bahasa pemprogaman C++ sangat mendukung konsep pemprogaman terstruktur atau bahkan konsep pemprogaman berorentasi objek (object oriented progamming). Pada konsep pemprogaman terstruktur, program dipecah-pecah menjadi beberapa fungsi. Fungsi merupakan bagian atau pecahan program yang dirancang untuk melaksanakan tugas spesifik tertentu. Suatu fungsi dapat dipanggil dan program utama (fungsi main()) atau dan fungsi lain. Tujuan pemakaian suatu fungsi dalam program adalah untuk memudahkan pengembangan program dan memperkecil ukuran program. Konsep pemprogaman terstruktur dapat digambarkan oleh skema pada gambar 3.1 berikut.

Gambar 3.1. Skema konsep pemprogaman terstruktur.

Skema diatas menunjukkan bahwa program terdiri dari fungsi utama atau fungsi main() fungsi a(), fungsi b(), fungsi c(). fungsi c1(), fungsi c2() dan fungsi c3(). Fungsi main() akan memanggil fungsi a(), fungsi b() dan fungsi c(). Sementara itu fungsi c() sendiri akan memanggil fungsi d(), fungsi c2() dan fungsi c3().

Pada umumnya fungsi memerlukan masukan yang disebut sebagai argumen atau parameter. Masukan ini selanjutnya diolah oleh fungsi tersebut. Hasil akhir fungsi berupa sebuah nilai yang disebut sebagai nilai keluaran atau nilai balik fungsi. OIeh karena itu fungsi sering digambarkan sebagai “ kotak hitam” (black box) seperti gambar 3.2 dibawah. Penggambaran fungsi sebagai kotak hitam dapat berarti bahwa bagian dalam fungsi bersifat pribadi bagi fungsi tersebut. Tak ada pernyataan dari

(2)

Universitas Gadjah Mada 2 luar fungsi yang dapat mengakses bagian dalam fungsi tersebut (selain melalui parameter ekstemal).

Gambar 3.2 Gambaran fungsi sebagal kotak hitam

Fungsi dalam bahasa pemprogaman C++ memiliki bentuk umum sebagai berikut:

Simbol tipe diawat fungsi menunjukkan jenis tipe data nilai kembalian atau nilai keluaran. Fungsi yang tidak memiliki nilai kembalian, simbol tipe-nya diideklarasikan dengan kata kunci void, seperti fungsi utama atau fungsi main() yang tidak memiliki nilai kembalian dideklarasikan sebagai : void main() . Simbol nama fungsi menunjukkan nama fungsi yang didefinisikan. Simbol (tipe argument, tipe argumen2, ...) menunjukkan daftar argumen atau nilai masukan yang dibutuhkan oleh fungsi. Tiap-tiap argumen memiliki tipe data sendiri-sendiri. Bagian terakhir adalah tubuh fungsi yang dibatasi oleh kurung kurawa buka dan tutup {}. Simbol tubuh fungsi berisi deretan penyataan dan perintah-perintah yang akan dijalankan oleh fungsi.

(3)

Universitas Gadjah Mada 3 Parameter fungsi yang masih berada pada saat pendefinisian fungsi disebut parameter formal, misalnya parameter pada contoh 3.1 . Sedang parameter fungsi yang dipakai pada saat pemanggilan fungsi dinamakan parameter aktual (contoh 3.3).

Fungsi-fungsi dalam program C/C++ biasanya didefinisikan atau dideklarasikan sebelum fungsi main(). Akan tetapi fungsi-fungsi juga dapat didefinisikan atau dideklarasikan setelah fungsi main() dengan terlebih dahulu mendeklarasikan prototipe fungsi sebelum fungsi main().

(4)

Universitas Gadjah Mada 4 Selain fungsi-fungsi yang didefinisikan oleh pemakai atau programer, didalam bahasa C++ juga telah didefinisikan fungsi-fungsi built-up . Fungsi fungsi ini dapat dipanggil dengan terlebih dahulu mendeklarisikan file-judul yang terkait dengan pustaka yang mengandung fungsi tersebut. Pendeklarasian file-judul dilakukan pada permulaan program sebagai pengarah praprosesor (lihat Bab I). Tabel 3.1 menunjukkan daflar fungsi-fungsi pustaka path C/C++.

(5)
(6)

Universitas Gadjah Mada 6 B. Modulasi Dalam Program

Modulasi program adalah proses pemecahan program menjadi beberapa bagian pokok yang memudahkan pemodifikasian dan penyempurnaan program. Selain dengan fungsi, bahasa pemprogaman C++ juga menyediakan fasilitas lain untuk kepentingan pemodulasian progam, yakni Struktur dan Kelas

1. Struktur

Struktur atau struct digunakan untuk mendeklarasikan sekelompok data yang memiliki tipe berlainan. Elemen-elemen atau anggota struktur menempati lokasi memori yang berbeda. Bentuk umum pendeklarasian struktur adalah:

Bagian nama struktur menyatakan sembarang nama yang menjadi nama struktur. Bagian tipe menyatakan tipe data salah satu anggota struktur, dapat berupa larik atau struktur yang lain. Bagian anggota1 dan anggota2 menyatakan nama-nama anggota struktur.

(7)

Universitas Gadjah Mada 7 Pemakaian struktur terkait dengan pendefinisian objek bertipe data struktur yang telah dideklarasikan. Bentuk umum pendefinisian objek tersebut adalah:

Bagian nama_stauktur menyatakan nama struktur. Sedang bagian objek_strukfur menyatakan nama objek yang bertipe data struktur yang didefinisikan.

Pendeklarasian struktur sekaligus pendefinisian objek bertipe data struktur dapat juga dilaksanakan secara serempak dengan format sebagai benkut:

(8)

Universitas Gadjah Mada 8 Pengaksesan anggota struktur dapat berupa pemberian nilai (data) ke anggota stmktur atau pengambilan niIai (data) dan anggota struktur. Pengaksesan nilai anggota struktur dilakukan dengan menambahkan titik (. ) terhadap objek dan struktur diikuti nama anggota struktur yang diakses. Bentuk umum pemberian nilai ke anggota struktur adalah:

Bagian objek_struktur menyatakan nama objek yang bertipe data struktur yang didefinisikan. Bagian anggota_struktur menyatakan anggota struktur yang diakses. Bagian data menyatakan nilai data yang diisikan ke anggota struktur. Bagian data ini dapat berupa konstanta, variabel atau anggota struktur yang lain. Tipe data dan data harus sesuai dengan tipe data anggota struktur.

Bentuk umum pengambilan nilai dan anggota struktur adalah:

Bagian variabel menunjukkan variabel tempat menampung data atau nilai yang telah diambil dan salah satu anggota struktur. Tipe data dari variabel harus sesuai dengan tipe data anggota struktur.

(9)

Universitas Gadjah Mada 9 Objek yang memiliki struktur yang sama dapat saling dipertukarkan atau diisikan.

2. Kelas

Kelas atau class digunakan untuk mendeklarasikan sekelompok data yang memiliki tipe dan fungsi berlainan. Berbeda dengan struktur yang hanya dapat menampung anggota dengan tipe data berlainan, kelas lebih luas lagi dengan kemampuan menampung anggota dengan tipe data dan fungsi berlainan sekaligus. Fungsi-fungsi dalam kelas biasanya dipakai untuk mengakses dan menggoperasikan anggota-anggota kelas.

Anggota-anggota dan fungsi dalam kelas memiliki berbagai tingkat spesifikasi akses, yakni private, protected dan public. Anggota dan fungsi private suatu kelas hanya dapat diakses fungsi kelas tersebut. Suatu usaha untuk mengakses anggota dan fungsi private suatu kelas akan memunculkan pesan kesalahan kompilasi. Anggota dan fungsi protected suatu kelas selain dapat diakses fungsi kelas itu sendiri juga akan dapat diakses oleh kelas turunan (dibahas pada kesempatan lain). Sedang anggota dan fungsi public selain dapat diakses oleh fungsi didalam kelas itu sendiri dan fungsi kelas keturunannya, juga dapat diakses oleh fungsi-fungsi luar. Jika tingkat spesifikasi akses tidak dicantumkan maka secara otomatis yang berlaku adalah tingkat spesifikasi akses private. Bentuk umum deklarasi kelas adalah :

(10)

Universitas Gadjah Mada 10 Bagian class menyatakan kata kunci untuk mendeklarasikan dan mendefinisikan suatu kelas. Bagian nama_kelas menyatakan nama kelas yang diciptakan. Bagian tipe menyatakan tipe data anggota kefas atau nilal kembalian fungsi kelas. Bagian private, protected dan public yang diikuti dengan tanda : menyatakan tingkat spesifikasi akses anggota dan fungsi kelas yang dibawahnya. Bagian nama_kelas (argumen1, argumen2 ) menyatakan konstruktor kelas, atau fungsi kelas yang pertama-tama akan dieksekusi ketika kelas objek kelas didefinisikan. Sedang bagian ~nama_kelas() menyatakan destruktor kelas, atau fungsi kelas yang paling akhir dieksekusi ketika objek kelas didealokasi dari ruang memori. Konstruktor dan destruktor kelas sangat bermanfaat dalam penerapan konsep menejemen memori dinamis dengan menggunakan penunjuk.

(11)

Universitas Gadjah Mada 11 Bentuk lain pendeklarasian suatu kelas adalah dengan mendeklarasikan anggota anggota kelas dahalu, kemudian diikuti dengan definisi fungsi-fungsi kelas diluar kelas dengan didahului nama kelas diikuti tanda :: dan nama fungsi kelas.

(12)

Universitas Gadjah Mada 12 Pemakaian kelas terkait dengan pendefinisian objek bertipe data kelas yang telah dideklarasikan. Bentuk umum pendefinisian objek tersebut adalah:

Bagian nama_kelas menyatakan nama kelas . Sedang bagian objek_kelas menyatakan nama objek yang bertipe data kelas yang didefinisikan.

Pendeklarasian kelas sekaligus pendefinisian objek bertipe data kelas dapat juga dilaksanakan secara serempak dengan format sebagai berikut:

Dimana objek_kelas menyatakan nama objek yang bertipe data kelas yang didefinisikan.

Pengaksesan anggota atau fungsi kelas dapat berupa pemberian nilai (data) ke anggota atau fungsi kelas serta pengambilan nilai (data) dan anggota atau fungsi kelas. Pengaksesan niIai anggota atau fungsi kelas dilakukan dengan menambahkan titik (.) terhadap objek dari kelas diikuti nama anggota atau nama

(13)

Universitas Gadjah Mada 13 fungsi kelas yang diakses jika diakses dan luar kelas. Pengaksesan ini dilaksanakan dengan memperhatikan spesifikasi akses dan anggota atau fungsi kelas terkait. Pengaksesan anggota kelas dari luar kelas, seyogyanya dilaksanakan dengan menggunakan fungsi kelas terkait, karena untuk menjaga aspek modulasi program. Bentuk umum pemberian nilai ke anggota atau fungsi kelas adalah:

Atau

Contoh 3.17 :

Blk1.SetPanjang (20.2); bIk1.balok (20.2, 3.2, 1.3);

Bentuk umum pengambilan nilai dan anggota atau fungsi kelas adalah

Atau

Bagian variabel menunjukkan variabel tempat menampung data atau nilai yang telah diambil dari salah satu anggota atau fungsi kelas. Tipe data dari variabel harus sesuai dengan tipe data anggota atau fungsi kelas.

II. STUDI KASUS  Studi kasus I

Di sini akan diberi contoh fungsi untuk menghitung luas permukaan bola dan volume bola jika diketahui jari-jari suatu bola.

/ /****************************************************************** / / Program memakai fungsi penghitung gaya coulomb / /******************************************************************

(14)

Universitas Gadjah Mada 14 #include <iostream.h>

#include <iomanip.h>

float GayaCoulomb(float ql,float q2,float r) { return ((9e+9*ql*q2)/(r*r));; } void main() { float ql,q2,r,F;

cout<<” Menghitung gaya coulomb”<<endl; cout<<” Masukkan q1 : ”; cin>>ql; cout<<” Masukkan q2 : ”; cin>>q2; cout<<” Masukkan jarak : ”; cin>>r;

F=GayaCoulomb(q1,q2,r); //memanggil

fungsi GayaCoulomb ();

cout<<” Besar gaya coulomb = ”<<setw(8)<<F<<endl; }

 Studi kasus 2

Pada studi kasus kali ini akan diberi contoh tiga fungsi untuk menghitung gaya Coulomb, potensial listrik dan medan listrik. Gaya Coulomb dihitung dengan memasukkan nilai dua muatan dan jarak antar muatan. Potensial listrik dihitung dengan memasukkan besar nilai muatan dan jarak suatu titik posisi dengan suatu muatan. Sedang medan listrik dihitung dengan memasukkan nilai besar suatu muatan dan jarak titik yang di tinjau nilai medannya dari muatan tersebut.

1. Program memakai fungsi penghitung Gaya Coulomb //****************************************************************** // Program memakai fungsi penghitung gaya Coulumb //****************************************************************** #include <iostream.h>

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

float GayaCoulomb(float q1,float q2,float r) {

(15)

Universitas Gadjah Mada 15 return (9e+9*q1*q2)I(r*r));; } void main() { float q1, q2 r, F;

cout<<” Menghitung Gaya Coulomb”<<endl; cout<<” Masukkan q1 : “;cin>>q1; cout<<” Masukkan q2 :“; cin>>q2; cout<<” Masukkan jarak :“; cin>>r;

F = GayaCoulomb(q1,q2,r); //memanggil fungsi GayaCoulomb(); cout<<” Besar Gaya Coulomb= “<<setw(8)<<F<<endl;

getch(); }

2. Program memakai fungsi penghitung Potensial listrik

//************************************************************************ // Program memakai fungsi penghitung potensial listrik

//************************************************************************ #include <iostream.h>

#include <iomanip.h>

float Potensial(float q1,float r) { float V; V=(9e+9*q1)/r; return V; } void main() { float q1,r,V;

cout<<“Mengbilung Potensial Listrik”<<endl; cout<<“Masukkan q1 :“;cin>>q1;

cout<<“Masukkan jarak :“;cin>>r;

V= Potensial(q1,r); //memanggil fungsi Potensial() cout<<“Besar potensial = “<<setw(8)<<V<<“volt”<<endl: }

3. Program memakai fungsi penghitung Medan listrik

(16)

Universitas Gadjah Mada 16 // Program memakai fungsi penghitung medan listrik

//******************************************************************** #include <iostream.h>

#include <iomanip.h>

float Medan(float Q,float r) { return (9e+9*Q)/(r*r); } Void main() { float Q,r,E;

cout<<“Menghitung kuat medan listrik”<<endl; cout<<”Masukkan muatan Q :“;cin>>Q; cout<<”Masukkan jarak :“;cin>>r; E=Medan(Q.r);

//memanggil fungsi Medan()

cout<<”Besar Medan Listrik =“<<setw(8)<<E<<endl; }

Studi Kasus 3

Pada studi kasus ini akan dibuat program untuk menghitung suatu fungsi matematis yang memiliki bentuk rumusan :

Nilai y(t) dicari dengan memberi nilai t sebagai masukan. //******************************************************************** // Program menghitung fungsi polinomial

//******************************************************************** #include<iostream.h> #include<math.h> #include<iomanip.h> float Polinom(float t) { Float y;

(17)

Universitas Gadjah Mada 17 Y=(t*t*t+2.0*t*t-8.0*t-100.0*t)/sqrt(5.0*t*t-10.0); return y; { Void main() { Float t,hasil;

cout<<“ Menghitung fungsi Polinominal”<<endl; cout<<“ Masukkan nilai variable bebas :“;cin>>t; hasil=Polinom(t); //memanggil tiingsi Polinom()

cout<<“ Hasil yang diperoleh, y(t) =“<<setw(8)<<hasil<<endl; }

Studi Kasus 4

Pada studi kasus kali ini diberikan contoh pemakaian struktur untuk menghitung isi balok.

//******************************************************************** // Program balok dengan struktur

//******************************************************************** #include <iostream.h> #include <math.h> void main() { struct balok { float panjang; float lebar; float tinggi; } balok blk1,blk2;

//pengisian nilai pada balok pertama cout<<” Masukkan data balok”<<endl; cout<<“ Panjang balok : “;

cin>>blk1.panjang; cout<<” Lebar balok : “; cin>>blk1.Iebar;

(18)

Universitas Gadjah Mada 18 cout<<“ Tinggi balok : “;

cin>>blk1.tinggi;

blk2=blk1; //pengisian balok kedua oleh balok pertama cout<<” Karakteristik Balok “<<endl;

cout<<”IsiBalok = “<<(blk2.panjang*blk2.1ebar*blk2.tinggi)<<“m^3”<<endl; cout<<“Luas alas dan tutup balok ”<<(blk2.panjang*blk2.lebar)<<”m^2”<<endl; }

Studi Kasus 5

Pada studi kasus kali ini diberikan contoh pemakaian kelas untuk memodulasi atau menyimpan informasi tentang balok.

#include <iostream.h> #include <math.h> class balok { private: float panjang; float lebar; float tinggi; float isi; public:

balok (float pnj, float lbr, float tng) { panjang=pnj;

lebar=lbr; tnggi=tng; isi=pnj*Ibr*tng; }

float AmbPaniang() {return panjang; } float AmbLebar() {return lebar; } float AmbTinggi() {retum tinggi ; } float Ambisi() {return isi; }

};

void main() {

(19)

Universitas Gadjah Mada 19 balok balokku(20.1,2.3,4.0); pnj= balokku.AmbPanjang(); lbr= balokku.AmbLebar(); tng balokku.AmbTinggi(); isi= balokku.Ambisi(); Iuas=pnj*lbr;

cout<<” Karakteristik balok ”<<endl;

cout<<” 1.Panjang Balok = “<<pnj<<” m”<<endl; cout<<” 2.Lebar Balok = “<<lbr<<” m”<<endl; cout<<” 3.Tinggi Balok = “<<tng<<” m”<<endl; cout<<” 4.Isi Balok = “<<isi<<” m^3”<<endl;

cout<<” 5.Luas alas Balok = “<<luas<<” m^2”<<endl; }

Studi Kasus 6

Pada studi kasus kali ini diberikan contoh pemakaian kelas untuk memodulasi suatu bilangan kompleks.

#include <iostreamh> #include <conio.h> class Kompleks {

private :

double real;//nilai real double imaj;//nilai imajimer public :

//definisi fungsi anggota kelas kompleks. Kompleks(double re,double im)

{

real = re; imaj = im; }

void info() {

cout<<“\n Bilangan kompleks: “<<endl; cout<<“\n real : “<<real<<endl;

(20)

Universitas Gadjah Mada 20 } }; void info() { clrscr(); Kompleks a(2.34,0.12); a.info(); Kompleks b(.09,32); b.info(); } III. LATIHAN Latihan 1

Tulislah suatu program dengan menggunakan fungsi untuk memangkatkan suatu bilangan real dengan bilangan real lainnya. Fungsi ini menerima dua parameter bertipe data float atau double dan memiliki nilai kembalian bertipe data float atau double yang merupakan hasil pemangkatan dari kedua parameter tersebut.

Latihan 2

Tulislah suatu program dengan menggunakan fungsi untuk menyederhanakan pecahan ⁄ menjadi

a

⁄ di mana x dan y adalah bilangan bulat dan x > y. Sebagai contoh , pecahan 1 ⁄ dapat disederhanakan menjadi 2 ⁄ .

Latihan 3

Tulislah suatu program dengan menggunakan fungsi untuk mengkonversi suhu dari : - Celcius ke Fahrenheit - Fahrenheit ke Celcius - Celcius ke Kelvin - Kelvin ke Fahrenheit -  Latihan 4

(21)

Universitas Gadjah Mada 21 Tulislah suatu program dengan menggunakan fungsi untuk mengkonversi masukan sudut dalam derajat menjadi sudut dalam radian dan sebaliknya.

Latihan 5

Tulislah suatu program dengan menggunakan fungsi untuk mengkonversi masukan berupa koordinat polar (r, ) ke koordinat kartesian (x,y) dan sebaliknya.

Latihan 6

Tulislah suatu program dengan menggunakan fungsi dan struktur untuk menghitung panjang sisi a dan segitiga ABC pada gambar 3. dibawah ini, apabila diberi masukan berupa nilai b, c, .

Latihan 7

Buatlah program dengan menggunakan fungsi untuk menghitung lama benda yang jatuh bebas dari puncak gedung jika diketahui ketinggian gedung. Asumsikan nilai percepatan gravitasinya.

Latihan 8

Buatlah program dengan menggunakan fungsi untuk menghitung jarak peluru yang ditembakkan dari suatu lokasi penembakan dengan sudut penembakan ( ) dan kecepatan mula-mula ( ) diketahui. Rumus menghitung jarak adalah

Latihan 9

Buatlah suatu program dengan menggunakan fungsi untuk menghitung momen inersia, kecepatan sudut dan energi kinetik dari suatu tabung yang diputar tetap sekitar sumbu tegaknya jika diketahui jari-jari dan tinggi tabung, serta besar pergeseran sudut tabung selama waktu tertentu.

(22)

Universitas Gadjah Mada 22  Latihan 10

Tulislah program dengan menggunakan struktur atau kelas untuk menjumlahkan, mengurangkan, mengalikan dan membagi bilangan kompleks.

Gambar

Gambar 3.1. Skema konsep pemprogaman terstruktur.

Referensi

Dokumen terkait

 Terjadi kegagalan dalam memulihkan perfusi organ pada resusitasi cairan menandakan perdarahan masih berlanjut atau syok neurogenik Sudah resusitasi tp tidak ada perubahan. 

DUA tetap tidak menyerahkan pembagian hasil tetap tidak menyerahkan pembagian hasil embatalkan perjanjian ini secara sepihak dan embatalkan perjanjian ini secara

Dari hasil kajian literatur tentang penelitian yang relevan dengan penerapan siklus belajar 7E dan socioscientific issues (SSI) dalam pembelajaran diperoleh kesimpulan

Jumlah saham yang ditawarkan 215.000.000 Saham Biasa Atas Nama Seri B dengan nilai nominal Rp..

Menjadi Program Studi yang terkemuka, pelopor pembaharuan pemikiran dalam konsep pelayanan kesehatan, pengembangan keilmuan di bidang kedokteran, serta dapat menghasilkan dokter

Kesimpulan dalam penelitian ini motif para pengguna tv berlangganan Aora Tv Satelit di Surabaya adalah motif kebutuhan individu ( Individu’s need) yang berdasar

Gugus Pulau Bintan memiliki potensi wisata yang meliputi wisata alam, wisata budaya dan minat khusus yang tersebar di berbagai kecamatan yang terdapat pada Kabupaten Bintan

mitra serta pihak-pihak lainnya yang terkait, antara lain pihak pemerintahan desa maupun kecamatan. Tujuan kegiatan FGD adalah untuk mengkoordinasikan pelaksanaan