MODUL 1 Alur Seleksi dengan C++ -...

19

Click here to load reader

Transcript of MODUL 1 Alur Seleksi dengan C++ -...

Page 1: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

1

MODUL 1

Alur Seleksi dengan C++

Teori Singkat

C++ merupakan perluasan bahasa C dengan tambahan fasilitas kelas (Class).

Dengan fasilitas ini, maka C++ mendukung teknik pemrograman berorientasi objek

(object oriented programming). Pengembang aplikasi (application development)

dengan C++ dikeluarkan oleh sejumlah vendor, dua diantaranya adalah yang

dikeluarkan oleh Microsoft dan Borland. Panduan praktikum ini menggunakan

software C++ Builder versi 3 atau yang lebih tinggi.

Program C++ berupa sekumpulan fungsi. Bahkan program utama juga

berbentuk fungsi, yaitu fungsi main(). Kode C++ bersifat case sensitive, artinya

membedakan antara huruf kapital dengan huruf kecil. Jadi, sintak main() tidak

sama dengan Main().

Pada modul ini Anda akan menggunakan aplikasi konsol (console

application), yaitu aplikasi dalam jendela seperti DOS yang berjalan di sistem operasi

Windows. Perhatikan program berikut.

1. #include <iostream.h> 2. void main() 3. { 4. // tulis di layar 5. (* pesan Saya sedang belajar C++ *) 6. cout << “Saya sedang belajar C++” << endl; 7. getchar(); 8. }

Keterangan

Baris 1 adalah penyertaan file header iostream.h ke dalam program. Program

utama C++ berupa fungsi main() seperti baris 2. Kode program dalam fungsi ini

diapit oleh kurung kurawal “{“ dan “}” seperti baris 3 dan baris 4. Baris 4 dan baris 5

adalah gaya penulisan komentar dalam C++. Komentar dalam satu baris dapat diawali

dengan karakter //, atau diapit oleh “(*” dan “*)”. Baris 6 adalah pernyataan untuk

menuliskan pesan di layar. Baris 7 adalah fungsi untuk mengambil satu karakter dari

Page 2: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

2

keyboard tanpa diakhiri <enter>. Namun, untuk program ini dimaksudkan agar

program berhenti agar hasilnya dalam jendela DOS dapat dilihat. Yang perlu diingat,

bahwa setiap pernyataan harus diakhir dengan karakter “;”. Apabila dikehendaki

pernyataan dapat ditulis dalam beberapa baris.

Tipe Data Dasar

Tipe ukuran(bits)

Range

unsigned char 8 0 s/d 255 char 8 -128 s/d 127 short int 16 -32,768 s/d 32,767 unsigned int 32 0 s/d 4,294,967,295 int 32 -2,147,483,648 s/d 2,147,483,647 unsigned long 32 0 to 4,294,967,295 enum 32 -2,147,483,648 s/d 2,147,483,647 long 32 -2,147,483,648 s/d 2,147,483,647 float 32 3.4 E-38 s/d 1.7 E+38 double 64 1.7 E-308 s/d 3.4 E+308 long double 80 3.4 E-4932 s/d 1.1 E+4932 near pointer 32 tidak teraplikasi far pointer 32 tidak teraplikasi

Deklarasi variabel berbentuk:

tipe pengenal;

contoh:

int jumlah;

float panjang, lebar;

char nilai;

Operator aritmetika adalah operator yang digunakan untuk operasi-operasi

yang bersifat matematis.

Operator Arti Tipe Data Contoh + Tambah Numeris z = x + y; - kurang Numeris z = y - x; * kali Numeris z = y * x; / bagi Numeris z = z / x;

% modulus Bilangan bulat z = y % x;

Page 3: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

3

Operator penaikan dan penurunan, merupakan operator yang merupakan

penulisan singkat dari operasi penaikan dan penurunan nilai data dengan satu.

Bentuk:

variabel++; //post-increment (naikkan di akhir)

++variabel; //pre-increment (naikkan di awal)

variabel--; //post-decrement

--variabel; //pre-decrement

contoh:

x++ dan ++x sama dengan x=x+1

x-- dan --x sama dengan x=x-1

Operator ini dapat berlaku baik untuk tipe int maupun float.

Operator penugasan khusus, adalah untuk menyingkat penulisan statement

penugasan.

Bentuk pendek Bentuk panjang x += y x = x + y x -= y x = x - y x *= y x = x * y x /= y x = x / y

x %= y x = x % y

Operator logika digunakan untuk memanipulasi operasi-operasi yang bersifat

logika yaitu hanya punya dua nilai true atau false. Dalam C++ nilai true dituliskan

dengan 1 sedangkan nilai false dituliskan dengan 0; Operator logika terdiri sebagai

berikut:

Operator C++ Arti Contoh && AND if (a>0 && a<10)

|| OR if (a<0 || a>10) ! NOT if (!(a<0 || a>10))

Page 4: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

4

Operator relasional digunakan untuk membandingkan dua buah operand.

Hasil pembandingan ini berupa nilai kebenaran true (1) atau false (0)

Operator relasional

Arti Contoh

< Kurang dari if (a < 0) <= Kurang dr / sama if (a >= 0) > Lebih dari if (a > 100)

>= Lebih dr / sama if (a >= 85) == Sama dengan if (a == 0) != Tidak sama dgn if (a != ‘\n’) ?: Penugasan kondisional a = (x<1)? 1 : x;

Alir Program Seleksi

Aliran Seleksi digunakan untuk mengarahkan pencabangan aliran eksekusi

program. Eksekusi program diarahkan sesuai kondisi yang mengendalikannya. Aliran

seleksi dalam C++ dinyatakan dalam bentuk if dan switch. Aliran ini digunakan

untuk menentukan alur jalannya eksekusi program. Alur eksekusi program ditentukan

dari nilai kebenaran kondisi yang ditentukan.

Jika (kondisi) bernilai benar maka perintah dikerjakan, jika (kondisi) salah maka

tidak mengerjakan perintah apapun.

if (kondisi) {perintah}

contoh:

if (berat > 70) cout << “Anda gemuk” << endl;

Jika (kondisi) bernilai benar maka {perintah 1} dikerjakan, jika (kondisi) salah maka

dikerjakan {perintah 2}.

if (kondisi) {Perintah 1} else {Perintah 2}

Page 5: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

5

contoh:

if (berat > 70) cout << “Anda gemuk” << endl;

else cout << “Makannya tambah biar gemuk” << endl;

Bentuk seleksi yang lain adalah menggunakan switch. Penggunaan switch

merupakan bentuk penulisan yang lebih sederhana sebagai pengganti seleksi if

bertumpuk. Perintah ini sangat bermanfaat jika seleksi if bertumpuk yang akan

diperiksa cukup banyak, sehingga penulisan if-else kurang praktis.

Jika salah satu <konstanta k> dipenuhi maka {Perintah k} akan dikerjakan.

Jika semua konstanta tidak dipenuhi maka akan dikerjakan {Perintah lain}

switch (variable) {

case <konstanta 1> : {Perintah 1}; [break;] case <konstanta 2> : {Perintah 2}; [break;] ..... ..... case <konstanta n> : {Perintah n}; [break;] default : {Perintah lain};

}

Contoh program berikut digunakan untuk menyederhanakan penulisan if-else pada

program if-else bertumpuk.

// program if-else bertumpuk #include<iostream.h> void main() {

char op; double x, y, z; cout<<“Masukkan operand1 operator operand2 : “; cin >> x >> op >> y; switch (op) {

case ‘+’: z = x + y; break; case ‘-’: z = x - y; break; case ‘*’: z = x * y; break; case ‘/’: if (y != 0) z = x / y; break; default: cout<<”operator salah”<<endl;

Page 6: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

6

} cout<<”hasilnya : “<<z<<endl;

getchar(); }

Praktek

• Buka program dari icon C++ Builder • Pilih menu File | New • Pilihlan icon Console App (Console Wizard) • Tulislah program berikut, gantilah bentuk fungsi main() yang sudah ada dalam

editor dengan bentuk dalam program berikut. (kode lain, misalnya #include …, jangan dihapus).

• Setelah selesai, jalankan dengan menu Run | Run atau F9.

// beberapa baris ini mungkin sudah ada, JANGAN dihapus #include <vcl.h> #pragma hdrstop #pragma argsused //------------------------------------------------------- #include <iostream.h> // tambahkan baris ini //----------------------------------------------------- void main() { char jenis; int panjang, lebar, luas, jari; float luaslingkar; cout << "Pilih Persegi panjang<P> atau Lingkaran<L>: "; cin >> jenis; //ambil data dari keyboard if (jenis == 'P' || jenis == 'p') { cout << "panjang = "; cin >> panjang; cout << "lebar = "; cin >> lebar; luas = panjang * lebar; cout << "Luas = " << luas << endl; } else if (jenis == 'L' || jenis == 'l') { cout << "jari-jari = "; cin >> jari; luaslingkar = 3.14 * jari * jari; cout << "Luas = " << luaslingkar << endl; } else cout << "salah pilih" << endl;

Page 7: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

7

getchar(); }

1. Modifikasilah program di atas dengan struktur switch.

2. Buatlah program yang dapat menghitung luas, keliling, dan diagonal

persegipanjang. Diagonal dihitung dengan rumus:

diagonal = akar(panjang2 + lebar2). akar dapat dikerjakan dengan fungsi sqrt().

Masukan berupa panjang dan lebar. Program berupa pilihan untuk luas, keliling,

dan diagonal.

Page 8: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

8

MODUL 2

Perulangan

Teori Singkat

Seringkali di dalam program disuruh mengerjakan perintah secara berulang.

Struktur perulangan (kalang) digunakan untuk mengulang perintah program secara

berulang-ulang (iterasi). Struktur perulangan dalam C++ adalah

• for

• while

• do-while

Pada dasarnya, tiga struktur kalang di atas dapat saling menggantikan, artinya

program yang ditulis dalam salah satu struktur dapat ditulis dalam bentuk struktur

lain.

Kalang for mempunyai bentuk: for (<inisialisasi_var.kendali>;

<tes_kelanjutan>; <modifikasi_var.kendali>) {

Perintah }

Contoh program berikut adalah untuk menghasilkan bilangan genap antara 1 sampai

100 menggunakan struktur kalang for:

#include<iostream.h> void main() { int bilangan; for(bilangan=0;bilangan<=100;bilangan++) { if(bilangan%2==0) cout << bilangan << " "; } getchar(); }

Pada bagian pertama dari for, statemen bilangan = 0; dikerjakan

pertama kali dan hanya dikerjakan sekali. Kemudian diteruskan ke bagian kedua,

Page 9: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

9

yaitu kondisi apakah bilangan <= 100; jika ya maka diteruskan ke pernyataan

if di bawahnya. Selanjutnya dikerjakan bagian ketiga, yaitu bilangan++.

Perulangan diteruskan ke bagian kedua, pernyataan if, bagian ketiga, bagian kedua

lagi, dst. Jika bagian kedua bernilai salah (tidak), maka perulangan dihentikan.

Kalang while akan memeriksa kondisi pada awal kalang. Bentuk: while (kondisi) { Perintah

} Selama (kondisi) bernilai benar maka blok {Perintah} akan dikerjakan. Pengerjaan blok {Perintah} akan dihentikan jika (kondisi) bernilai salah. Contoh program berikut adalah penggunaan kalang while untuk menghasilkan bilangan genap antara 1 sampai 100. #include<iostream.h> void main() { int bilangan = 0; while (bilangan < 100) { bilangan++; if (bilangan%2==0) cout<<bilangan<<" "; } getchar(); } Kalang do-while akan menguji kondisi iterasi pada akhir kalang. Kalang ini melakukan iterasi setidaknya satu kali. Bentuk: do { Perintah } while (kondisi) Kerjakan blok {Perintah}, dan ulangi selama (kondisi) bernilai benar. Contoh berikut adalah program untuk menghasilkan bilangan genap antara 1 sampai 100 menggunakan kalang do-while #include<iostream.h>

Page 10: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

10

main() { int bilangan = 0; do { bilangan++; if (bilangan%2==0) cout<<bilangan<<" "; } while(bilangan < 100); getchar(); }

Praktek

• Buka program dari icon C++ Builder • Pilih menu File | New • Pilihlan icon Console App (Console Wizard) • Tulislah program berikut, gantilah bentuk fungsi main() yang sudah ada dalam

editor dengan bentuk dalam program berikut. (kode lain, misalnya #include …, jangan dihapus).

• Setelah selesai, jalankan dengan menu Run | Run atau F9. // beberapa baris ini mungkin sudah ada, JANGAN dihapus #include <vcl.h> #pragma hdrstop #pragma argsused //------------------------------------------------------- #include <iostream.h> // tambahkan baris ini //------------------------------------------------------- void main() { int batas; cout << "masukkan batas perhitungan: "; cin >> batas; int jumlah = 0; int kali = 1; int bil = 1; while (bil <= batas) { jumlah += bil; kali *= bil; bil++; } cout << "Hasil penjumlahan = " << jumlah << endl; cout << "Hasil perkalian = " << kali << endl; getchar(); }

Page 11: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

11

1. Modifikasilah program di atas dengan struktur for.

2. Buatlah program untuk menghitung karakter yang dimasukkan dari keyboard.

Pemasukan karakter dengan fungsi getchar(). Penggunaan:

char karakter = getchar();

Akhir pemasukan dengan tombol <enter>. Tombol <enter> sama dengan nilai 13.

Gunakan struktur perulangan do-while.

Page 12: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

12

MODUL 3

Fungsi

Teori Singkat

Suatu program yang cukup panjang dapat saja ditulis dalam satu fungsi

main(). Namun, agar langkah program dapat ditulis dengan baik, program biasanya

dipecah kedalam sejumlah subprogram. Subprogram dalam C++ berbentuk fungsi.

Dalam C++ tidak dikenal prosedur. Secara sederhana, sekelompok pernyataan dapat

diambil, diapit kurung kurawal, dan dinamai, maka menjadi fungsi. Fungsi yang

hanya mengerjakan tugas tertentu dan tidak menghasilkan nilai, maka fungsi itu

bertipe hasil void. Fungsi seperti ini bertindak sebagai prosedur dalam bahasa lain.

Perhatikan contoh berikut.

void Tambah() { int a, b, c; a = 3; b = 4; c = a + b: cout << c; } void main() { Tambah(); //pemanggilan fungsi getchar(); }

Ada kalanya fungsi mempunyai parameter, maka dalam pemanggilannya juga perlu

disertai parameter dengan jumlah dan tipe yang sama dengan pada saat didefinisikan.

void Tambah(int a, int b) { int c; c = a + b: cout << c; } void main() { int a = 3; Tambah(a, 4); //pemanggilan fungsi getchar();

Page 13: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

13

}

Suatu fungsi yang memberikan hasil, maka tipe void di depan pengenal fungsi

diganti dengan tipe lain. Hasil fungsi dikerjakan dengan pernyataan return.

int Tambah(int a, int b) { int c; c = a + b: return c; } void main() { int a = 3; int d; d = Tambah(a, 4); //pemanggilan fungsi cout << “d = “ << d << endl; getchar(); }

Pelewatan parameter kedalam fungsi adalah dengan cara bagaimana parameter aktual

(parameter yang terdapat dalam pemanggilan fungsi) dilewatkan ke parameter formal

(parameter yang terdapat dalam definisi fungsi).

Pelewatan parameter mempunyai jenis

• pelewatan secara nilai

• pelewatan secara pointer

• pelewatan secara referensi

Pelewatan secara nilai adalah parameter aktual dikopikan ke parameter formal,

sehingga perubahan yang terjadi pada parameter formal tidak mempengaruhi

parameter aktual. Parameter dalam fungsi Tambah() di atas (parameter a dan b)

dilewatkan secara nilai.

Pelewatan secara pointer adalah parameter berupa pointer. Karena pointer menunjuk

ke variabel lain, maka parameter aktual dapat dipengaruhi oleh perubahan nilai

variabel yang ditunjuk oleh parameter formal. Berikut, parameter c dalam fungsi

Tambah() dilewatkan secara pointer.

void Tambah(int a, int b, int* c) {

Page 14: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

14

*c = a + b: } void main() { int a = 3; int hasil; Tambah(a, 4, &hasil); //pemanggilan fungsi cout << “hasil = “ << hasil << endl; getchar(); }

Pelewatan secara referensi berperilaku parameter formal sebagai nama alias dari

parameter aktualnya. Jadi, perubahan yang terjadi pada parameter formal akan

menjadi hasil di parameter aktualnya. Pelewatan parameter secara referensi ditandai

dengan karakter & setelah tipe parameter. Berikut, parameter c dalam fungsi

Tambah() dilewatkan secara referensi

void Tambah(int a, int b, int& c) { c = a + b: } void main() { int a = 3; int hasil; Tambah(a, 4, hasil); //pemanggilan fungsi cout << “hasil = “ << hasil << endl; getchar(); }

Praktek

Program berikut terdapat fungsi Tambah() yang menjumlah semua bilangan ganjil

mulai dari isi variabel awal sampai dengan isi variabel akhir. Jika awal bernilai genap

maka penjumlahan dimulai dari awal+1.

#include <iostream.h> void Tambah(int a, int b) {

Page 15: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

15

int c = 0; int i = a; if((a % 2) == 0) i = a + 1; while (i <= b) { c += i; i +=2; } cout << "Hasil = " << c << endl; } void main() { int awal, akhir, hasil; cout << "Awal = "; cin >> awal; cout << "Akhir = "; cin >> akhir; Tambah(awal, akhir); getchar(); } 1. Modifikasilah fungsi Tambah() agar menghasilkan nilai (return value) dari

penjumlahan itu. Dan pemanggilan fungsi Tambah() dalam main() tentunya juga berubah.

2. Buatlah fungsi untuk menghasilkan nilai perpangkatan AB.

Perpangkatan dapat dikerjakan dengan rumus: pangkat = exp(B * log(A))

Mungkin Anda perlu menyertakan file header math.h A dan B bertipe float sebagai parameter fungsi. Hasil pangkat ditulis sebagai parameter ketiga berupa pointer. Deklarasi fungsi:

void Pangkat(float A, float B, float* hasil) Panggillah fungsi ini dari fungsi main().

Page 16: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

16

MODUL 4

Struktur dan Kelas

Teori Singkat

Seringkali terjadi sejumlah data yang saling berkaitan, misalnya, kode barang,

jumlah barang, dan harga satuan. Masing-masing data ini biasanya berbeda tipenya.

Sejumlah data dengan tipe berbeda seperti ini dapat dikumpulkan menjadi satu

kesatuan membentuk struktur. Data itu di dalam struktur disebut field. Deklarasi

struktur:

struct TipeStruktur { tipe field1; tipe field2; . . . };

Untuk kasus barang di atas deklarasinya adalah:

struct TBarang { char kode[6]; // kode barang bertipe string 5 karakter int jumlah; int harga; };

Sedangkan deklarasi variabel adalah:

TBarang barang;

Untuk mengakses variabel barang ini, misalnya:

barang.jumlah = 8;

strcpy(barang.kode, “BRG01”); // mengisi field kode dengan BRG01

cout << barang.harga << endl;

Tipe struktur (struct) dapat digantikan dengan tipe kelas (class) dengan

fieldnya diberi sifat public. Untuk kelas, istilah field diganti dengan anggota.

Deklarasi struktur TBarang di atas bila digantikan dengan tipe kelas menjadi:

Page 17: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

17

class TBarang { public: char kode[6]; // kode barang bertipe string 5 karakter int jumlah; int harga; };

Sedangkan untuk deklarasi variabel kelas dan cara mengaksesnya sama dengan tipe

struktur.

Jadi antara struktur dengan kelas dapat saling menggantikan. Jika anggota

anggota hanya berupa data (seperti contoh di atas) dipakai tipe struktur. Secara umum

penggunaan kelas adalah bila anggotanya juga berupa fungsi. Anggota berupa data

seringkali diberi sifat private, sedangkan bila anggota berupa fungsi seringkali diberi

sifat public. Anggota dengan sifat private, artinya bahwa data itu hanya dapat diakses

di dalam kelas itu sendiri, tidak dapat diakses lewat variabel kelas. Sedangkan

anggota yang diberi sifat public dapat juga diakses dari luar keas itu, misalnya lewat

variabel kelas itu.

Untuk kasus kelas TBarang di atas, jika ditambahkan anggota berupa fungsi IsiData,

yaitu untuk mengisi anggota data adalah:

class TBarang { private: char kode[6]; // kode barang bertipe string 5 karakter int jumlah; int harga; public: void IsiData(char kd[], int jml, int hrg) { strcpy(kode, kd); jumlah = jml; harga = hrg; } };

Fungsi anggota IsiData juga dapat ditulis definisi fungsinya di luar kelas, yaitu:

class TBarang { private: char kode[6]; // kode barang bertipe string 5 karakter int jumlah; int harga;

Page 18: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

18

public: void IsiData(char kd[], int jml, int hrg); }; void TBarang::IsiData(char kd[], int jml, int hrg) { strcpy(kode, kd); jumlah = jml; harga = hrg; }

Variabel bertipe kelas (dalam pemrograman berorientasi objek disebut instan) dapat

ditunjuk oleh pointer. Sedangkan untuk mengakses anggota digunakan notasi:

pointer->anggota

Perhatikan contoh berikut.

TBarang barang; // instan kelas TBarang

TBarang* brg; // pointer ke kelas TBarang

brg = &barang; // brg disuruh menunjuk ke barang

// mengakses fungsi IsiData dari instan barang

barang.IsiData(“BRG01”, 8, 2000);

// mengakses fungsi IsiData dari pointernya

brg->IsiData(“BRG01”, 8, 2000);

Praktek

1. Tulislah program berikut lewat ConsoleWizard pada C++Builder.

#include <string.h> #include <iostream.h> //------------------------------------------------------- #pragma argsused class TBarang { private: char kode[6]; // kode barang bertipe string 5 karakter int jumlah; int harga; public: void IsiData(char kd[], int jml, int hrg); void Cetak(); }; void TBarang::IsiData(char kd[], int jml, int hrg)

Page 19: MODUL 1 Alur Seleksi dengan C++ - library.stmikdb.ac.idlibrary.stmikdb.ac.id/./files/disk1/1/--timdosen-29-1-modul1-4.pdf · utama C++ berupa fungsi main() ... disertai parameter

19

{ strcpy(kode, kd); jumlah = jml; harga = hrg; } void TBarang::Cetak() { cout << "kode barang = " << kode << endl << "jumlah barang = " << jumlah << endl << "harga barang = " << harga << endl; } void main() { TBarang barang; barang.IsiData("BRG01", 8, 2000); barang.Cetak(); getchar(); } 2. Modifikasilah fungsi main sehingga data mengenai barang (kode, jumlah, harga)

dimasukkan dari keyboard (lewat cin). Baru kemudian panggillah fungsi IsiData. 3. Tambahkan fungsi anggota JumlahHarga, yang menghitung harga x jumlah. 4. Tambahkan ke dalam fungsi main, variabel pointer ke TBarang dan menunjuk ke

instan barang. Panggilah fungsi anggota dari TBarang lewat pointernya.