0% menganggap dokumen ini bermanfaat (0 suara)
964 tayangan

Modul Algoritma & Pemrograman

Program ini menampilkan ukuran memori yang dibutuhkan oleh masing-masing tipe data dasar dalam bahasa C++ seperti char, short, int, long, float, double, dan long double. Program menggunakan fungsi sizeof() untuk mengetahui ukuran memori setiap tipe data dan menampilkannya melalui fungsi cout.

Diunggah oleh

Nur Salman
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
964 tayangan

Modul Algoritma & Pemrograman

Program ini menampilkan ukuran memori yang dibutuhkan oleh masing-masing tipe data dasar dalam bahasa C++ seperti char, short, int, long, float, double, dan long double. Program menggunakan fungsi sizeof() untuk mengetahui ukuran memori setiap tipe data dan menampilkannya melalui fungsi cout.

Diunggah oleh

Nur Salman
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 61

Dipakai Dilingkungan Sendiri

NO. POKOK : …………… … … … … …


NAMA : …………………………….
KELAS : …………………………….

DI SUSUN OLEH :

NUR SALMAN, S.Kom., M.T.


ST. AMINAH DINAYATI GHANI, S.Sos., M.Kom.

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER


STMIK DIPANEGARA
MAKASSAR
2019
KARTU KONTROL PRAKTIKUM

No.Pokok : …..…….............. Nama : ………..............…… Kelas : …......

Tanda tangan Tanda tangan


Prak. Hari/Tanggal Prak. Hari/Tanggal
Dosen/Asisten Dosen/Asisten

1 ……………… 11 ………………

2 ……………… 12 ………………

3 ……………… 13 ………………

4 ……………… 14 ………………

5 ……………… 15 ………………

6 ……………… 16 ………………

7 ……………… 17 ………………

8 ……………… 18 ………………

9 ……………… 19 ………………

10 ……………… 20 ………………

Makassar, …………………, 20…...

Catatan : harap dosen/asisten yang menangani praktikum ini tidak menandatangani kartu
kontrol praktikum ini jika mahasiswa yang bersangkutan belum menyelesaikan
kegiatan praktikumnya.

Praktikum Algoritma dan Pemrograman (C++) 1


PENDAHULUAN
Pengantar Program
Secara umum program adalah kumpulan instruksi atau perintah yang disusun
sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan
suatu permasalahan. Dengan demikian ada beberapa hal yang perlu diperhatikan dalam
penyusunan program, khususnya aspek-aspek yang menyangkut aturan-aturan
penulisan program.

Pengenalan Program C / C++


C++ diperkenalkan oleh Bjarne Stroustrup pada tahun 1980, dikembangkan dari
bahasa C yang telah dikenalkan oleh Dennis Ritchie pada tahun 1972. Nama C
digunakan sebagai penerus bahasa B yang dikenalkan Ken Thompson yang merupa-
kan penerus dari bahasa BPCL (Basic Combined Programming Langguage) yang di
kenalkan oleh Martin Richard pada tahun 1967. Nama C++ menunjukkan adanya pe-
nambahan, yaitu class yang dapat memfasilitasi pemrograman berorientasi objek.

Konsep Pemrograman Terstruktur


Bahasa pemrograman telah dikenal sejak komputer diciptakan ditahun 30-an,
walau demikian konsep penyelesaian masalah dalam bentuk “algoritma” telah dikenal
jauh sebelumnya. Berpatokan pada bahasa program paling dasar seperti bahasa Rakitan
(Assembler) maka semua bahasa pemrograman mengenal instruksi “loncatan tak
bersayarat” yang lebih populer dengan nama instruksi “GO TO”. Pemakaian instruksi
“GO TO” ini kemudian mendapat kritikan dari beberapa pakar dalam bidang
pemrograman karena instruksi ini dapat menyebabkan aliran program menjadi kacau.
Seorang pembuat program tentu saja bebas menyusun programnya menurut seleranya
apakah memakai “GO TO” atau tidak, namun bila program ini kemudian harus dibaca
atau ditelaah oleh orang lain maka tentu saja program tersebut harus ditulis mengikuti
suatu “struktur” yang mudah dimengerti.
Konsep pemrograman yang berstruktur (Structured Programming) kemudian
diperkenalkan dengan tiga karakteristik utama yaitu:
a. Program dibangun atas 3 macam instruksi utama, yaitu:
- instruksi ber-urutan (sequential)
- instruksi pemilihan (selection)
- instruksi pengulangan (repetition)
b. Loncatan tak bersyarat (instruksi “GO TO”) tidak diperkenankan.
c. Aliran program (program flow) memiliki hanya satu pintu masuk (entry point)
dan hanya satu pintu keluar (exit point).

Praktikum Algoritma dan Pemrograman (C++) 2


PRAKTIKUM 1
Tujuan:
Setelah melaksanakan praktikum ini mahasiswa diharapkan dapat menggunakan
tipe data, variabel, konstanta, standart I/O dalam program sederhana.
Dasar Teori:
Tipe Data Dasar.
Bahasa C++ mengenal sejumlah tipe data dasar berikut.

Tipe Data Ukuran Domain Nilai


unsigned char 8 bit 0 s.d. 255
char 8 bit -128 s.d. 127
unsigned int 16 bit 0 s.d. 65535
int 16 bit -32768 s.d.32767
unsigned long 32 bit 0 s.d. 4294967295
long 32 bit -2147483648 s.d. 2147483647
float 32 bit 3.4e-38 s.d. 3.4e38
double 64 bit 1.7e-308 s.d. 1.7e308
long double 80 bit 3.4e-4932 s.d. 1.1e4932

Ukuran memori yang diperlukan untuk masing-masing tipe data sangat bergantung
pada perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan
dari masing-masing tipe data juga bisa berlainan antara satu jenis mesin dengan mesin
lainnya.
Pendeklarasian Variabel
Variabel merupakan suatu komponen penting dalam pemrograman yang
berfungsi untuk menyimpan suatu nilai yang dapat berubah selama program
dieksekusi. Sintaks deklarasi variabel dalam C++ adalah sebagai berikut:

Tipe_data daftar_varibel;

Perhatikan contoh berikut:

int i; // deklarasi variabel i bertipe integer


float a,b; // deklarasi variabel a,b bertipe float
char c; // deklarasi variabel c bertipe char.
double gaji; // deklarasikan variabel gaji bertipe double.

Pendefenisian Nilai Variabel:


Nilai dari suatu variabel dapat didefenisikan saat variabel tersebut di deklarasikan
atau didefenisikan setelah variabel tersebut dideklarasikan.
Contoh. Pendeklarasian dan pendefenisian nilai variabel:

int I=20; //deklarasi variabel i bertipe integer dengan nilai 20


float a=100.50; //deklarasi variabel a dengan nilai 100.50

Praktikum Algoritma dan Pemrograman (C++) 3


char c=’A’; //deklarasi variabel c bertipe char dengan nilai ‘A’.
double gaji=500000; //deklarasi variabel gaji bertipe double dengan
//nilai 500000.

Pendeklarasian Konstanta
Selain variabel, pengenal lain yang dapat dideklarasikan pada C++ adalah
konstanta. Makna suatu konstanta dan variabel dalam suatu pemrograman adalah sama,
tetapi yang membedakan antara konstanta dan variabel adalah nilai variabel dapat
berubah sedangkan nilai konstanta tetap (konstan). Ada dua cara untuk
mendeklarasikan konstanta, yaitu:
a. Menggunakan preprocessor #define
#define phi 3.14

b. Menggunakan keyword const


const float phi=3.14;

Standart I/O Dasar


a. Standart input adalah instruksi dasar untuk membaca data/nilai lewat keyboard.
Adapun standart input dalam bahasa pemrograman C++ adalah cin.
Sintaks cin adalah sebagai berikut: cin>>variabel;
Misalnya: cin>>Gaji;
b. Standart ouput adalah instruksi dasar untuk menampilkan data/nilai ke monitor.
Adapun standart output dalam bahasa pemrograman C++ adalah cout.
Sintaksnya: cout<<[pernyataan]<<[variabel]<<[manipulator];
Misalnya: cout<<”Belajar Pemrgraman C++”;
cout<<gaji;
cout<<”Gaji Pokok : ”<<gaji<<endl;
Pada instruksi I/O kita mengenal manipulator yang berfungsi untuk mengatur
tampilan data. Adapun jenis manipulator pada C++ dapat dilihat pada tabel berikut:

Manipulator Keterangan
Menisipkan newline dan mengirimkan isi penyangga
endl
keluaran ke piranti keluaran
Mengatur lebar field untuk suatu nilai sebesar n
setw(int n)
karakter
setfill(int c) Mengatur karakter pemenuh berupa c
setprecision(int n) Mengatur presisi bilangan pecahan sebesar n digit
setiosflags(long f) Mengatur format yang ditentukan oleh f.
resetiosflags(long f) Menghapus format yang ditentukan oleh f.
Mengatur rata kiri terhadap lebar field yang diatur
ios::left
melalui setw()
Mengatur rata kanan terhadap lebar field yang diatur
ios::right
melalui setw()
ios::scientific Memformat keluaran dalam notasi eksponensial
ios::fixed Memformat keluaran dalam bentuk notasi desimal

Praktikum Algoritma dan Pemrograman (C++) 4


Kegiatan Praktikum:
1. Mengetahui ukuran memori dari tipe data. Untuk memastikan ukuran memori yang
diperlukan oleh semua tipe data ketiklah program berikut ini:
// Nama File : Modul1-1.cpp
// Deskripsi : Mengetahui ukuran memori semua tipe data

#include <iostream.h>
#include <conio.h>

void main()
{
clrscr();
cout<<"Ukuran char : "<<sizeof(char)<<" Byte \n";
cout<<"Ukuran short : "<<sizeof(short)<<" Byte \n";
cout<<"Ukuran int : "<<sizeof(int)<<" Byte \n";
cout<<"Ukuran long : "<<sizeof(long)<<" Byte \n";
cout<<"Ukuran float : "<<sizeof(float)<<" Byte \n";
cout<<"Ukuran double : "<<sizeof(double)<<" Byte \n";
cout<<"Ukuran long double: "<<sizeof(long double)<<" Byte \n";
}

2. Menggunakan instruksi standard I/O. Untuk melihat penggunaan instruksi I/O


ketiklah program berikut ini:
// Nama file : Modul1-2.cpp
// Deskripsi : Penggunaan Instruksi I/O

#include <iostream.h>
#include <conio.h>

void main()
{
char nama[20]; //deklarasi variabel nama, mampu memuat max 20 karakter.
char stambuk[6]; /*deklarasi variabel stambuk, mampu memuat
max. 6 karakter. */
char alamat[25]; /*deklarasi variabel alamat, mampu memuat
max. 25 karakter. */
int umur;

cout<<”Masukkan Stambuk Anda :”; cin>>stambuk;


cout<<”Masukkan Nama Anda : “; cin>>nama;
cout<<”Masukan Alamat Anda :”; cin>>alamat;
cout<<”Masukkan Umur Anda :”; cin>>umur;
clrscr(); //membersihkan layar

// Hasil penginputan data


cout<<”Stambuk Anda adalah ”<<stambuk<<endl;
cout<<”Nama Anda:”<<nama;
cout<<”\nAlamat Anda di”<<alamat;
cout<<”\nUmur Anda Sekarang :”<<umur<<” Tahun”;
return;
}

Praktikum Algoritma dan Pemrograman (C++) 5


3. Mengatur tampilan data dengan menggunakan manipulator I/O. Ketiklah program
berikut ini:

// Nama File : Modul1-3.cpp


// Deskripsi : Penggunaan Manipulator I/O

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

int nilai1;
float nilai2;
char nama[20];
double gaji;

void main()
{
cout<<"Masukkan nilai bulat : "; cin>>nilai1;
cout<<"Tampilan nilai yang anda masukkan "<<endl;
cout<<"Menggunakan setw(8) : "<<setw(8)<<nilai1<<endl;
cout<<"Menggunakan setw(-8) : "<<setw(-8)<<nilai1<<endl;
cout<<"Menggunakan setw(8) dan setfill('*') : ";
cout<<setfill('*')<<setw(8)<<nilai1<<endl;
cout<<setfill(' '); //menormalkan penggunaan setfill('*')
getch();

clrscr();
cout<<"Masukkan nilai pecahan : ";
cin>>nilai2;
cout<<"Tampilan nilai yang anda masukkan "<<endl;
cout<<"Menggunakan setiosflags(ios::fixed) : "
<<setiosflags(ios::fixed)<<nilai2<<endl;
cout<<"Menggunakan setiosflags(ios::scientific) : "
<<setiosflags(ios::scientific)<<nilai2<<endl;
cout<<resetiosflags(ios::scientific);
cout<<"Menggunakan setprecision(4) : ";
cout<<setprecision(4)<<nilai2<<endl;
getch();

clrscr();

cout<<"Masukkan nama anda : ";


cin>>nama;
cout<<"Masukkan uang saku anda perbulan : ";
cin>>gaji;
cout<<"Tampilan data yang anda masukkan "<<endl;
cout<<"Menggunakan setiosflags(ios::left) dan
setiosflags(ios::right) : "
cout<<endl;
cout<<setiosflags(ios::left)<<setw(25)<<"N A M A";
cout<<setiosflags(ios::right)<<setw(10)<<"UANG SAKU"<<endl;
cout<<setiosflags(ios::left)<<setw(25)<<nama;
cout<<setiosflags(ios::right)<<setw(10)<<gaji;
}

Praktikum Algoritma dan Pemrograman (C++) 6


PRAKTIKUM 2
Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan
elemen dasar berupa tipe data, variabel, konstanta dan insturksi dasar I/O.

1. Buatlah program untuk mencetak nota pembayaran pada suatu bengkel mobil
dengan input sebagai berikut:

Harga Alat : ... ... ... <diinput>


Ongkos Kerja : ... ... ... <diinput>

dan output sebagai berikut:

BENGKEL MOBIL MAJU MUNDUR


NOTA PEMBAYARAN

Harga Alat : Rp. ... ... ... <rata kanan>


Ongkos Kerja : Rp. ... ... ... <rata kanan>
Pajak PPn 10% : Rp. ... ... ... <rata kanan>
Total Pembayaran : Rp. ... ... ... <rata kanan>

TERIMA KASIH ATAS KUNJUNGAN ANDA

2. Buatlah program untuk menghitung nilai akhir seorang siswa dari kursus yang
diikutinya dengan ketentuan sebagai berikut:
 Nama Siswa, Nilai Keaktifan, Nilai Tugas dan Nilai Ujian diinput
 Proses yang dilakukan untuk mendapatkan nilai murni dari masing-masing
nilai adalah:
 Nilai murni keaktifan = nilai keaktifan dikalikan dengan 20%.
 Nilai murni tugas = nilai tugas dikalikan dengan 30%.
 Nilai murni ujian = nilai ujian dikalikan dengan 50%.
 Nilai Akhir adalah akumulasi dari ketiga nilai murni diatas.

Praktikum Algoritma dan Pemrograman (C++) 7


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 8


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 9


PRAKTIKUM 3
Tujuan:
Setelah melaksanakan praktikum ini mahasiswa diharapkan dapat menggunakan
jenis-jenis operator serta konversi tipe data (casting) dalam program sederhana.
Dasar Teori:
Operator
Operator adalah suatu simbol yang mempunyai makna tertentu bagi kompiler
C++. Operator biasanya digunakan untuk merelasikan dua buah operand. Jenis-jenis
operator pada bahasa C++ adalah sebagai berikut:
a. Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk operasi-operasi
matematika. Contoh operatornya adalah: + (penjumlahan), - (pengurangan), * (per
kalian), / (pembagian) dan % (modulus).
b. Operator Increment dan Decrement
Increment adalah operator yang digunakan untuk menaikkan nilai suatu variabel
dengan 1, sedangkan Decrement adalah operator yang digunakan untuk menurunkan
nilai suatu variabel dengan 1. Operator increment (++) dan operator decrement (--).
c. Operator Majemuk (Compound)
Operator majemuk adalah gabungan antara operator assigment (=) dengan
operator aritmatika atau dengan operator lainnya. Dalam Bahasa C++ dikenal
beberapa operator penugasan, antara lain: =, +=, -+, *=, /=, %=. Contoh program
yang menggunakan operator majemuk.
d. Operator relasional
Dalam Bahasa C++ dikenal beberapa operator relasional, antara lain: > (lebih
besar), < (lebih kecil), <= (lebih kecil sama dengan), >= (lebih besar sama dengan),
== (sama dengan), dan != (tidak sama dengan). Harap diingat bahwa dalam Bahasa
C++ tidak dikenal tipe boolean untuk menyatakan kondisi true/false. Oleh karena itu,
digunakan bilangan bulat untuk merepresentasikan kondisi true/false tersebut.
Kondisi true diwakili oleh bilangan bulat tidak nol. Kondisi false diwakili oleh
bilangan bulat nol.
e. Operator logika
Operator logika sering digunakan untuk mengabungkan beberapa ekspresi yang
menggunakan operator relasional. Hasil dari penggunaan operator ini selalu
mengarah ke nilai true atau false. Dimana nilai dari true dan false ini
direpresentasikan dengan menggunakan suatu nilai bilangan bulat (seperti yang telah
dijelaskan diatas). Jenis operator logika: && (AND), || (OR) dan ! (NOT).
f. Konversi Tipe Data (Casting)
Bahasa C++ memungkin kita untuk mengkonversi tipe data secara paksa, cara-
nya adalah dengan menambahkan tipe data yang kita inginkan dalam tanda kurung
sebelum operasi terhadap data tersebut dilakukan.

Praktikum Algoritma dan Pemrograman (C++) 10


Kegiatan Praktikum:
1. Untuk mengetahui penggunaan operator aritmetika, ketiklah program berikut ini:
// Nama File : Modul2-1.cpp
// Deskripsi : penggunaan operator aritmetika
#include <iostream.h>
void main()
{ int Bil1, Bil2, a;
Float b;
cout<<"Masukkan Bilangan Pertama : ";
cin>>Bil1;
cout<<"Masukkan Bilangan Kedua : ";
cin>>Bil2;
a = Bil1 + Bil2;
cout<<"Hasil "<<Bil1<<" + "<<Bil2<<" = "<<a<<endl;
a = Bil1 - Bil2;
cout<<"Hasil "<<Bil1<<" - "<<Bil2<<" = "<<a<<endl;
b = Bil1 * Bil2;
cout<<"Hasil "<<Bil1<<" * "<<Bil2<<" = "<<b<<endl;
b = float(Bil1) / float(Bil2);
cout<<"Hasil "<<Bil1<<" / "<<Bil2<<" = "<<b<<endl;
a = Bil1 % Bil2;
cout<<"Hasil "<<Bil1<<" % "<<Bil2<<" = "<<a<<endl;
a = Bil1 / Bil2;
cout<<"Hasil "<<Bil1<<" div "<<Bil2<<" = "<<a;
return;
}

2. Program berikut menunjukkan fungsi operator increment (analisa hasil dari


program ini, untuk membedakan peletakan operator didepan atau dibelakang
operandnya):
// Nama file : modul2-2.CPP
// Deskripsi : penggunaan operator increment dan decrement
#include <iostream.h>
int main()
{ int x;
cout<<"Masukkan sebuah bilangan (X) : "; cin>>x;
cout<<"Nilai Awal X = "<<x<<endl;
cout<<"Nilai X setelah X++ = "<<x++<<endl;
cout<<"Nilai X setelah ++X = "<<++x<<endl;
cout<<"Nilai X setelah X++ + 4 = "<<x++ + 4<<endl;
cout<<"Nilai X setelah ++X + 4 = "<<++x + 4<<endl;
cout<<"Nilai X terakhir = "<<x;
return(0);
}

3. Contoh program yang menggunakan operator majemuk:


// Nama file : modul2-3.cpp
// Deskripsi : penggunaan operator penugasan dan majemuk
#include <iostream.h>
int main()
{ int n, m;
float l;
cout<<"Masukkan tanggal kelahiran anda (n) : "; cin>>n;
cout<<"Masukkan bulan kelahiran anda (m) : "; cin>>m;
cout<<"Masukkan tahun lahir anda (l), isi 2 digit akhir : ";

Praktikum Algoritma dan Pemrograman (C++) 11


cin>>l;
n += m; cout<<"Nilai n setelah n += m adalah "<<n<<endl;
n -= m; cout<<"Nilai n setelah n -= m adalah "<<n<<endl;
n %= m; cout<<"Nilai n setelah n %= m adalah "<<n<<endl;
n *= m; cout<<"Nilai n setelah n *= m adalah "<<n<<endl;
l /= m; cout<<"Nilai l setelah l /= m adalah "<<l<<endl;
return (0);
}

4. Contoh Program yang menggunakan operator relasional dan logika:


// Nama File : Modul2-4.cpp
// Deskripsi : Penggunaan operator relasi dan Logika
#include <iostream.h>
#include <conio.h>
int main()
{ int i=10, j=20, k=30, r;
r = i > j; // operator lebih besar
cout<<"r = "<<r<<endl;
r = i >= k; // operator lebih besar sama dengan
cout<<"r = "<<r<<endl;
r = j < k; // operator lebih kecil
cout<<"r = "<<r<<endl;
r = j <= k; // operator lebih kecil sama dengan
cout<<"r = "<<r<<endl;
r = i == j; // operator sama dengan
cout<<"r = "<<r<<endl;
r = i != k; // operator tidak sama dengan
cout<<"r = "<<r<<endl;
getch(); clrscr();
r = (i > j) && (j > k); // operator AND
cout<< "r = "<<r<<endl;
r = (i < j) || (j < k); // operator OR
cout<<"r = "<<r<<endl;
r = !(i < j); // operator NOT
cout<<"r = "<<r<<endl;
return(0);
}

5. Contoh program untuk konversi tipe data (casting):


// Nama file : modul2-5.cpp
// Deskripsi : konversi tipe data
#include <iostream.h>
int main()
{ int i=3, j=2;
float k;
k = (float)i / (float)j;
cout<<"Hasil 3 bagi 2 adalah : “<<k;
return(0);
}

Praktikum Algoritma dan Pemrograman (C++) 12


PRAKTIKUM 4

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan
jenis-jenis operator serta konversi tipe data (casting).

1. Buat program untuk menghitung biaya pemasangan pagar mengelilingi sebuah


bidang tanah dengan bentuk persegi panjang. Dimana diketahui biaya pemasangan
pagar per meternya adalah Rp. 125.000,-. Jika pada bidang tanah tersebut dibangun
sebuah rumah, hitung biaya pemasangan rumput gajah mini pada sisa bidang tanah
(halaman rumah) jika diketahui biaya pemasangan rumput gajah mini per m2 adalah
Rp. 50.000,-.
Keterangan: panjang dan lebar tanah serta panjang dan lebar rumah di input
2. Sebuah SD akan mengadakan darmawisata ke Bantimurung. Kendaraan yang akan
dipakai adalah bus dengan daya tampung 30 orang serta minibus dengan daya
tampung 7 orang. Rancang program untuk menghitung berapa jumlah bus dan
minibus yang akan digunakan, serta jumlah siswa SD tersebut yang tidak kebagian
tempat.
Keterangan: jumlah siswa SD yang akan berdarmawisata di input.

Praktikum Algoritma dan Pemrograman (C++) 13


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 14


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 15


PRAKTIKUM 5
Tujuan:
Setelah melaksanakan praktikum ini, mahasiswa diharapkan dapat menerapkan
penggunaan instruksi-instruksi pemilihan dalam menyelesaikan berbagai kasus
pemrograman.
Dasar Teori:
Instruksi pemilihan
Instruksi pemilihan adalah instruksi yang digunakan untuk memilih satu alternatif
penyelesaian masalah diantara beberapa alaternatif penyelesaian masalah lainnya yang
tersedia.
a. Instruksi IF .. ELSE
Bentuk umum instruksi if..else:

if (kondisi) if (kondisi) if (kondisi1)


{ aksi } { aksi1 } { aksi1 }
else else if (kondisi2)
{ aksi2 } { aksi2 }
else
{ aksi3 }

Kurung kurawal { } sesudah if atau sesudah else dapat tidak dituliskan apabila
hanya ada satu baris instruksi/aksi yang mengikutinya.
b. Instruksi SWITCH .. CASE
Bentuk umum instruksi switch .. case:

switch (variabel) if (variabel == nilai1)


{ { aksi1 }
case nilai1 : aksi1; else if (variabel == nilai2)
break; { aksi2 }
case nilai2 : aksi2; .....
serupa
break; else if (variabel == nilaiN)
dengan
..... { aksiN }
case nilaiN : else
aksiN; brea { aksiDef }
k;
default : aksiDef;
}

Perhatikan, kondisi pada pernyataan switch berupa nilai. Dengan demikian, anda
tidak dapat menuliskan ekspresi apapun sebagai kondisi (hanya menyamakan
antara isi variabel setelah switch dengan nilai-nilai setelah case).
Kegiatan Praktikum:
1. Sebuah swalayan akan memberikan discount sebesar 10% jika seorang pembeli
melakukan pembelian lebih besar dari Rp.50.000,-. Hitunglah discount yang
diperoleh pembeli tersebut serta jumlah yang harus dibayarnya.
// Nama file : modul3-1.cpp

Praktikum Algoritma dan Pemrograman (C++) 16


// Deskripsi : pemilihan dengan dua alternatif
#include <iostream.h>
#include <conio.h>
void main()
{
long jumlah, bayar;
float discon;
clrscr();
cout<<"Masukkan Jumlah Pembelian Rp. ";
cin>>jumlah;
if (jumlah > 50000)
discon = 0.1 * jumlah;
else
discon = 0;
bayar = jumlah - discon;
cout<<"Jumlah pembelian Rp. "<<jumlah<<endl;
cout<<"Jumlah discount Rp. "<<discon<<'\n';
cout<<"----------------------------------\n";
cout<<"Jumlah pembayaran Rp. "<<bayar;
}
2. Ketiklah program dibawah ini. Program ini meminta dua buah bilangan yang akan
dioperasikan secara matematika berdasarkan jenis operasi yang dimasukkan
(apakah penjumlahan, pengurangan, perkalian, pembagian atau modulus).
// Nama file : modul3-2.cpp
// Deskripsi : pemilihan dengan banyak alternatif
#include <iostream.h>
#include <conio.h>
float Bil1, Bil2, Hasil;
int pilihan;
void main()
{
cout<<"Masukkan Bilangan Pertama : ";
cin>>Bil1;
cout<<"Masukkan Bilangan Kedua : ";
cin>>Bil2;
cout<<"\nPilihlah operasi berikut ini: \n";
cout<<"1. Penjumlahan \n";
cout<<"2. Pengurangan \n";
cout<<"3. Perkalian \n";
cout<<"4. Pembagian \n";
cout<<"5. Sisa Pembagian\n";
cout<<"Masukkan pilihan anda : ";
cin>>pilihan;
if (pilihan==1)
Hasil = Bil1 + Bil2;
else if (pilihan==2)
Hasil = Bil1 - Bil2;
else if (pilihan==3)
Hasil = Bil1 * Bil2;
else if ((pilihan==4)||(pilihan==5))
{if (Bil2 == 0.0)

Praktikum Algoritma dan Pemrograman (C++) 17


{ cout<<"Operasi Pembagian dibatalkan,\n";
Cout<<Bilangan2 = 0 \n";
Hasil = 0.0;
}
else if (pilihan==5)
Hasil = (int)Bil1 % (int)Bil2;
else
Hasil = Bil1 / Bil2;
}
if ((pilihan<6)&&(pilihan>0))
cout<<"Hasil operasi = "<<Hasil;
return;
}
3. Ketiklah program berikut ini. Program ini menunjukkan penggunaan instruksi
switch .. case.
/* Nama file : modul3-3.cpp
Deskripsi : analisa kasus nilai huruf dengan switch */
#include <iostream.h>
main()
{
char nilai;
cout("Masukkan Nilai anda (A,B,C,D,E,K) : “;
cin>>nilai;
switch (nilai)
{ case 'A' : cout<<"Nilai Anda Baik Sekali ”; break;
case 'B' : cout<<"Nilai Anda Baik ”; break;
case 'C' : cout<<"Nilai Anda Cukup ”; break;
case 'D' : cout<<"Nilai Anda Kurang ”; break;
case 'E' : cout<<"Nilai Anda Kurang Sekali ”; break;
case 'K' : cout<<"Anda tidak lulus ”; break;
default : cout<<"Anda salah input ”;
}
return(0);
}

4. Ubahlah kegiatan praktikum No. 2 menggunakan instruksi switch..case.

Praktikum Algoritma dan Pemrograman (C++) 18


PRAKTIKUM 6

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menerapkan
penggunaan instruksi-instruksi pemilihan (if atau switch).

Sebuah Counter Handphone melayani penjualan pulsa elektrik dengan rincian sebagai berikut:
Operator Jenis Pulsa Harga Pulsa
20 Rp. 21.000,-
10 Rp. 12.000,-
Simpati
5 Rp. 7.000,-
20 Rp. 21.000,-
10 Rp. 12.000,-
As
5 Rp. 7.000,-
20 Rp. 20.000,-
10 Rp. 11.000,-
Flexi
5 Rp. 6.000,-

Buatlah program untuk menentukan Harga Pulsa berdasarkan jenis operator dan jenis
pulsa yang diinginkan. Masukan : Jenis Operator dan Jenis Pulsa.
Keluaran : Harga Pulsa

Praktikum Algoritma dan Pemrograman (C++) 19


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 20


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 21


PRAKTIKUM 7
Tujuan:
Setelah melaksanakan praktikum ini, mahasiswa diharapkan dapat menerapkan
penggunaan instruksi-instruksi perulangan dalam menyelesaikan berbagai kasus
pemrograman.
Dasar Teori:
Instruksi Perulangan
Instruksi perulangan adalah instruksi yang digunakan untuk mengulang satu atau
beberapa instruksi lainnya. Syarat terjadinya perulangan bergantung pada kondisi yang
diberikan pada instruksi perulangan tersebut.
a. Instruksi WHILE
Perulangan dengan while akan dilakukan selama kondisi_pengulangan bernilai
true. Jumlah minimal pengulangan menggunakan instruksi ini adalah nol.
while (kondisi_pengulangan)
{
aksi
}

b. Instruksi DO..WHILE
Pengulangan dengan do..while akan dilakukan selama kondisi_pengulangan ber
nilai true (bukan kondisi berhenti). Jumlah minimal pengulangan menggunakan inst-
ruksi ini adalah satu.
do
{
aksi
}
while (kondisi_pengulangan);

c. Instruksi FOR
Instruksi for sebenarnya cukup fleksibel dan dapat digunakan untuk berbagai
keperluan. Fungsi dasar dari for adalah melakukan perulangan berdasarkan suatu
variabel counter (pencacah). Bentuk umum pernyataan for:
for (inisialisasi; kondisi_pengulangan; perubahan)
{
aksi
}
Parameter instruksi for adalah sebagai berikut:
 inisialisasi adalah mendefinisikan satu atau lebih pernyataan penugasan (assignment,
contoh: count=1) yang akan melakukan inisialisasi terhadap variabel counter sebelum sebuah
iterasi perulangan dilakukan.
 kondisi_pengulangan (terdiri dari sebuah ekspresi kondisional) akan dievaluasi terlebih
dahulu, jika kondisi ini bernilai true maka perulangan dilanjutkan, jika false maka perulangan
berhenti.

Praktikum Algoritma dan Pemrograman (C++) 22


 perubahan terdiri dari satu atau lebih pernyataan penugasan yang akan melakukan perubahan
terhadap nilai variabel counter (contoh: count++).
Terdapat satu keunikan dari instruksi looping for, yaitu ketiga parameternya boleh
dihilangkan sebagian atau seluruhnya, sehingga bentuk-bentuk seperti dibawah ini
tetap diperbolehkan (tetapi agak jarang digunakan, jika mau digunakan berhati-
hatilah):
for ( ; c<=10; c++)
aksi
for (;;)
aksi // looping terus menerus, tanpa syarat berhenti

d. Instruksi break dan continue


Instruksi break digunakan untuk keluar dari loop secara langsung, dapat digunakan
dalam sebuah blok for, while, atau do..while. Sedangkan continue digunakan untuk
kembali ke bagian atas suatu loop, melewati semua instruksi dibawahnya.
Kegiatan Praktikum:
1. Ketiklah program berikut untuk melihat penggunaan perintah while. Program ini
digunakan untuk menerima masukan sejumlah data mahasiswa dan menentukan
skor akhir tertinggi dari sejumlah data yang dimasukkan tersebut.

// Nama file : modul4-1.cpp


// Deskripsi : perulangan menggunakan while

#include <iostream.h>

int nilai, i=1;


char stb[7], nama[30];

void main()
{
char jawab = 'y';
int max = 0;

while (jawab=='y')
{
cout<<"Masukkan Data Mahasiswa ke "<<i<<endl;
cout<<"No.Pokok : "; cin>>stb;
cout<<"N a m a : "; cin>>nama;
cout<<"Nilai Akhir (0-100) : "; cin>>nilai;

if (nilai>max)
max = nilai;

i++;
cout<<"Masih ada data [y/t] : "; cin>>jawab;
}
cout<<"Nilai Akhir tertinggi : "<<max;
return;
}

Praktikum Algoritma dan Pemrograman (C++) 23


2. Untuk melihat penggunaan instruksi do..while, ketiklah program berikut ini.

// Nama file : modul4-2.cpp


// Deskripsi : perulangan menggunakan instruksi do..while

#include <iostream.h>
#include <conio.h>

int no_menu;

void main()
{
do
{
clrscr();
cout<<" MENU HARI INI \n";
cout<<"----------------\n";
cout<<"1. Nasi Goreng \n";
cout<<"2. Nasi Soto Ayam \n";
cout<<"3. Gado-gado \n";
cout<<"4. Bubur Ayam \n";
cout<<"5. Nasi Rawon \n";
cout<<"Masukkan pesanan anda [0=selesai] : ";
cin>>no_menu;

switch(no_menu)
{
case 1 : cout<<"Nasi Goreng Rp. 7.500,-";
break;
case 2 : cout<<"Nasi Soto Ayam Rp. 8.000,-";
break;
case 3 : cout<<"Gado-gado Rp. 6.000,-";
break;
case 4 : cout<<"Bubur Ayam Rp. 5.500,-";
break;

case 5 : cout<<"Nasi Rawon Rp. 9.000,-";


break;
case 0 : cout<<"Terima Kasih ...!";
}
getch();
} while (no_menu != 0);
return;
}
3. Contoh pengaplikasian instruksi for untuk mencari nilai pangkat dari sebuah
bilangan bulat:
/* Nama file : modul4-3.cpp
Deskripsi : mencari pangkat dari suatu bilangan bulat */
#include <iostream.h>
int main()
{

Praktikum Algoritma dan Pemrograman (C++) 24


int i, bil, pangkat, hasil=1;
cout<<"Masukkan bilangan yang akan dipangkatkan :”;
cin>>bil;
/* aplikasi do..while untuk memastikan bahwa
Bilangan yang dibaca adalah bilangan bulat positif */
do
{ cout<<"Masukkan pangkat dari bilangan tersebut : “;
cin>>pangkat;
}
while(pangkat<0);
// pengaplikasian for untuk menghitung pangkat
for (i=0; i<pangkat; i++)
hasil *= bil; // ulangi sampai nilai i=pangkat
cout<<"Hasilnya adalah : "<<hasil;
return(0);
}

4. Akan dihitung rata-rata dari sejumlah nilai yang dimasukkan. Jika nilai yang
dimasukkan melebihi 100 maka nilai tersebut diabaikan atau ditolak.
//Nama file : modul4-4.cpp
//Deskripsi : contoh pemakaian continue dan break
#include <iostream.h>
#include <conio.h>
void main()
{
int pencacah;
float nilai;
float total;
clrscr();
cout<<"Menghitung Nilai Rata-rata "<<endl;
cout<<"Akhiri dengan memasukkan nilai negatif"<<endl;
pencacah = 0;
total = 0;
while (1) //1 = true, menyatakan kondisi yang selalu benar
{
cout<<"Nilai ke-"<<pencacah+1<<" = ";
cin>>nilai;
if (nilai > 100)
{
cout<<"Nilai diatas diabaikan"<<endl;
continue; //ulangi ke awal while
}
if (nilai < 0)
break;
pencacah++;
total += nilai;
}
cout<<"Jumlah nilai = "<<pencacah<<endl;
cout<<"Nilai rata-rata = "<<total/pencacah<<endl;
}

Praktikum Algoritma dan Pemrograman (C++) 25


PRAKTIKUM 8

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menerapkan
penggunaan instruksi-instruksi perulangan for, while dan do-while.

1. Pusat pendidikan komputer Informatika mengadakan kursus komputer untuk 3


bahasa pemrograman, yaitu: Basic, Pascal dan C++. Setiap peserta bebas memilih
salah satu bahasa pemrograman. Pada akhir pelaksanaan kursus, peserta yang
memiliki nilai tertinggi untuk masing-masing kelas bahasa pemrograman yang ada
akan memperoleh penghargaan dan hadiah. Buat program untuk mencari nilai ujian
maksimum peserta dari setiap kelas bahasa pemrograman.
Data masukan : No.Registrasi Peserta Kursus, Nama Bahasa Pemrograman yang
dipilih dan Nilai Ujian.
Data keluaran : Data peserta dengan nilai maksimum untuk setiap kelas bahasa
pemrograman.

2. Rancang program untuk tampilan berikut ini:

1
3 4
5 6 7
7 8 9 10
9 10 11 12 13

Serta tampilan berikut ini:

10 8 6 4 2
8 6 4 2
6 4 2
4 2
2

Praktikum Algoritma dan Pemrograman (C++) 26


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 27


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 28


PRAKTIKUM 9
Tujuan:
Setelah melaksanakan praktikum ini mahasiswa diharapkan dapat membuat dan
menggunakan fungsi dalam menyelesaikan berbagai kasus pemrograman.
Dasar Teori:
Sub program dibuat agar lebih memudahkan anda untuk membaca dan mengerti
jalannya program serta memudahkan anda dalam menelusuri kesalahan dan akan
menjadikan program yang anda buat semakin terstruktur. Fungsi merupakan sub
program yang dapat dipanggil dari fungsi lain dan dapat mengembalikan nilai. Setiap
program C++ selalu dimulai dengan fungsi main().
Pernyataan return di dalam fungsi digunakan untuk memberikan nilai balik
fungsi. Adakalanya suatu fungsi tidak perlu memiliki nilai balik sehingga pernyataan
return dapat dihilangkan dan tipe fungsi didefenisikan dengan tipe void.
Fungsi dalam Bahasa C++
Fungsi selalu mengembalikan nilai. Nilai yang dikembalikan dapat dituliskan
langsung atau dilewatkan oleh sebuah variabel atau berupa sebuah ekspresi. Penting
diingat bahwa nilai yang dikembalikan harus setipe dengan tipe fungsi. Sebuah fungsi
didefinisikan dengan bentuk:
tipe_kembalian nama_fungsi(tipe_parameter1 parameter1, … )
{
kode program
return (<nilai|variabel|ekspresi>);
}
Prosedur dalam Bahasa C++
Bahasa C++ tidak mengenal bentuk prosedur. Untuk mengkonstruksikan bentuk
prosedur, Kita dapat menggunakan fungsi bertipe void. Fungsi bertipe void tidak perlu
mengembalikan nilai.
Variabel Global dan Lokal
Variabel yang didefenisikan di dalam sebuah fungsi disebut dengan variabel
lokal. Variabel tersebut hanya dapat digunakan di dalam fungsi tersebut dan tidak
dikenali pada fungsi-fungsi lainnya. Variabel yang didefinisikan di luar fungsi di dalam
sebuah modul tertentu disebut dengan variabel global. Variabel global dapat digunakan
oleh semua fungsi pada modul tersebut.
Kegiatan Praktikum:
1. Ketiklah program berikut ini. Program ini menunjukkan penggunaan fungsi seder-
hana yang tidak mengembalikan nilai.
/* Nama file : modul5-1.cpp
Deskripsi : rekonstruksi fungsi dalam C++ */
#include <iostream.h>
#include <conio.h>
#include <math.h>
int panjang, lebar; //deklarasi variabel global
void input(); //deklarasi prototipe fungsi

Praktikum Algoritma dan Pemrograman (C++) 29


void Luas()
{
int ls; // deklarasi variabel lokal
ls = panjang * lebar;
cout<<"Luasnya adalah : "<<ls;
}
void Keliling()
{
int kl; // deklarasi variabel lokal
kl = (2*panjang) + (2*lebar);
cout<<"Kelilingnya adalah : "<<kl;
}
void Diagonal()
{
float dg; // deklarasi variabel lokal
dg = sqrt((panjang*panjang)+(lebar*lebar));
cout<<"Diagonalnya adalah : "<<dg;
}
void main()
{
int pilih;
do
{clrscr();
cout<<"Pilihlah ------> "<<endl;
cout<<"1. Luas Persegi Panjang \n";
cout<<"2. Keliling Persegi Panjang \n";
cout<<"3. Diagonal Persegi Panjang \n";
cout<<"4. SELESAI \n";
cout<<"Masukkan Pilihan Anda : ";
cin>>pilih;
if (pilih != 4)
input(); //pemanggilan fungsi input
switch (pilih)
{
case 1 : Luas(); //pemanggilan fungsi luas
break;
case 2 : Keliling(); //pemanggilan fungsi keliling
break;
case 3 : Diagonal(); //pemanggilan fungsi diagonal
break;
case 4 : cout<<"Terima Kasih ..!";
}
getch();
} while (pilih != 4);
}
void input()
{
cout<<"Masukkan Nilai Panjang : ";
cin>>panjang;
cout<<"Masukkan Nilai Lebar : ";
cin>>lebar;
return;
}

Praktikum Algoritma dan Pemrograman (C++) 30


2. Contoh program dengan bentuk fungsi yang memiliki nilai balik:
/* Nama file : modul5-2.cpp
Deskripsi : menghitung pangkat dari suatu bilangan */
#include <iostream.h>
int bil,pangkat; // variabel global bernama bil dan pangkat
int perpangkatan(); // prototipe fungsi perpangkatan
int main()
{ cout<<"Masukkan bilangan yang akan dipangkatkan : “;
cin>>bil;
cout<<"Masukkan pangkat dari bilangan tersebut : “;
cin>>pangkat;
cout<<"Hasilnya adalah : "<<perpangkatan();
return (0);
}
int perpangkatan()
{ int i, hasil=1; //variabel lokal untuk fungsi perpangkatan
if (pangkat < 0)
hasil=0; //diasumsikan bila pangkat < 0 adalah 0
else // pangkat ≥ 0
{ for (i=0; i<pangkat; i++) // jika pangkat=0, maka for
hasil*=bil; // tidak dilakukan
// ulangi sampai nilai i=pangkat
}
return(hasil);
}

Praktikum Algoritma dan Pemrograman (C++) 31


PRAKTIKUM 10

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan membuat dan
menggunakan fungsi sederhana tanpa parameter.
Buat program untuk menyelesaikan permasalahan dibawah ini:
Sebuah negara menentukan pajak atas barang-barang import sebagai berikut

Kelas Jenis Barang Pajak


1 Makanan 5%
2 Pakaian 10%
3 Mesin-mesin 20%

Buat program untuk menghitung besarnya pajak dari masing-masing jenis barang yang
di import tersebut (data masukan: kelas barang, nama barang, harga barang. Keluaran:
pajak dari masing-masing jenis barang).
Gunakan procedure dan function untuk menyelesaikan masalah tersebut.

Praktikum Algoritma dan Pemrograman (C++) 32


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 33


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 34


PRAKTIKUM 11
Tujuan:
Setelah melaksanakan praktikum ini mahasiswa diharapkan dapat membuat dan
menggunakan fungsi menggunakan paramater input, input/output dan membuat
program modular dalam menyelesaikan berbagai kasus pemrograman.
Dasar Teori:
Sub program dibuat agar lebih memudahkan anda untuk membaca dan mengerti
jalannya program serta memudahkan anda dalam menelusuri kesalahan dan akan
menjadikan program yang anda buat semakin terstruktur.
Informasi yang dilewatkan ke fungsi disebut argumen dan informasi yang di
terima oleh fungsi disebut sebagai parameter.
Parameter Fungsi
a. Passing by Value
Parameter passing by value adalah parameter formal yang hanya berperan sebagai
input. Artinya, parameter tersebut hanya melewatkan sebuah konstanta yang akan
diolah oleh fungsi, sementara nilai dari konstanta tersebut, tentu saja tidak akan
berubah.
b. Passing by Reference (by Address)
Parameter passing by reference adalah parameter formal yang dapat berperan
sebagai input maupun output. Sehingga jika nilai yang dikirim ke dalam fungsi
mengalami perubahan maka akan mempengaruhi nilai asalnya di fungsi utama.
Kegiatan Praktikum:
1. Program berikut menunjukkan penggunaan parameter input dan argumen dalam
proses pengiriman nilai ke dalam fungsi:
/* Nama file : modul6-1.cpp
Deskripsi : parameter input dan argumen */
#include <iostream.h>
#include <conio.h>
#include <math.h>
int Hitung(int x, int y) //x dan y = parameter input
{
int ls;
ls = x * y;
return(ls);
}
void main()
{
int pilih;
int panjang, lebar, alas, tinggi, sisi;
float Luas;
do
{
clrscr();
cout<<"Pilihlah ------> "<<endl;

Praktikum Algoritma dan Pemrograman (C++) 35


cout<<"1. Luas Persegi Panjang \n";
cout<<"2. Luas Segitiga \n";
cout<<"3. Luas Bujursangkar \n";
cout<<"4. SELESAI \n";
cout<<"Masukkan Pilihan Anda : ";
cin>>pilih;
switch (pilih)
{
case 1 : cout<<"Masukkan Nilai Panjang : ";
cin>>panjang;
cout<<"Masukkan Nilai Lebar : ";
cin>>lebar;
Luas = Hitung(panjang,lebar);
break;
case 2 : cout<<"Masukkan Nilai Alas : ";
cin>>alas;
cout<<"Masukkan Nilai Tinggi : ";
cin>>tinggi;
Luas = Hitung(alas,tinggi) * 0.5;
break;
case 3 : cout<<"Masukkan Nilai Sisi : ";
cin>>sisi;
Luas = Hitung(sisi,sisi);
break;
case 4 : cout<<"Terima Kasih ..!";
}
if (pilih !=4)
cout<<"Luasnya adalah : "<<Luas;
getch();
} while (pilih != 4);
}
2. Program berikut menunjukkan penggunaan parameter input/output dan argumen
dalam proses pengiriman nilai ke dalam fungsi. Ketik dan bandingkan kedua
program berikut ini:
/* Nama file : modul6-2.cpp
Deskripsi : menukar nilai a dan b */
#include <iostream.h>
void TukarAB(int a, int b) // tukar nilai a dan b
{ int temp;
temp = a;
a = b;
b = temp;
cout<<"Dalam fungsi TukarAB \n";
cout<<"Nilai a = "<<a<<" dan Nilai b = "<<b;
// fungsi bertipe void tidak mengembalikan nilai
}
int main()
{
int a,b;
cout<<"Masukkan nilai a : "; cin>>a;
cout<<"Masukkan nilai b : "; cin>>b;
cout<<"Nilai a dan b sebelum masuk fungsi TukarAB : “;

Praktikum Algoritma dan Pemrograman (C++) 36


cout<<"Nilai a = "<<a<<" dan b = "<<b<<endl;
// a dan b dikirim ke fungsi TukarAB
TukarAB(a,b); //pemanggilan fungsi TukarAB
cout<<"Nilai a dan b sesudah keluar fungsi TukarAB : “;
cout<<"Nilai a = "<<a<<" dan b = "<<b<<endl;
return (0);
}

Perhatikan contoh berikut, bandingkan dengan contoh sebelumnya.


/* Nama file : modul6-3.cpp
Deskripsi : menukar nilai a dan b */
#include <iostream.h>
void TukarAB(int &a, int &b) // tukar nilai a dan b
{ int temp;
temp = a;
a = b;
b = temp;
cout<<"Dalam fungsi TukarAB \n";
cout<<"Nilai a = "<<a<<" dan Nilai b = "<<b;
// fungsi bertipe void tidak mengembalikan nilai
}
int main()
{
int a,b;
cout<<"Masukkan nilai a : "; cin>>a;
cout<<"Masukkan nilai b : "; cin>>b;
cout<<"Nilai a dan b sebelum masuk fungsi TukarAB : “;
cout<<"Nilai a = "<<a<<" dan b = "<<b<<endl;
// a dan b dikirim ke fungsi TukarAB
TukarAB(a,b); //pemanggilan fungsi TukarAB
cout<<"Nilai a dan b sesudah keluar fungsi TukarAB : “;
cout<<"Nilai a = "<<a<<" dan b = "<<b<<endl;
return (0);
}

Praktikum Algoritma dan Pemrograman (C++) 37


PRAKTIKUM 12

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menerapkan fungsi
yang menggunakan paramater input, input/output.
Buat program untuk menghitung total lembaran uang kertas dalam pecahan Rp. 100
ribu, Rp. 50 ribu, Rp. 20 ribu, Rp. 10 ribu, Rp. 5 ribu, Rp. 1000 dan Rp. 500, serta
menghitung total jumlah lembaran uang kertas tersebut.

Petunjuk: rancang sebuah fungsi untuk menerima masukan jumlah uang yang akan
dihitung lembarannya serta sebuah fungsi untuk menghitung jumlah
lembaran uang kertas sesuai pecahannya.

Praktikum Algoritma dan Pemrograman (C++) 38


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 39


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 40


PRAKTIKUM 13
Tujuan:
Setelah melaksanakan praktikum ini mahasiswa diharapkan dapat menggunakan
array statik berdimensi-n dalam berbagai kasus pemrograman.
Dasar Teori:
Deklarasi Array
Array digunakan untuk menyimpan banyak elemen di dalam sebuah variabel dan
setiap elemen pada array tersebut di akses dengan sebuah indeks. Array didefinisikan
dengan sebuah nama, tipe variabel, dan jumlah elemen didalam array tersebut dengan
bentuk:
tipe_variabel nama_array [jumlah_elemen];
Masing-masing elemen dapat diakses dengan menambahkan indeks pada variabel
tersebut yaitu: nama_array [indeks]. Berbeda dengan bahasa lainnya, indeks awal
array pada Bahasa C++ dimulai dari 0 (nol). Selain menggunakan konstanta, indeks
array dapat juga berupa suatu variabel ordinal (integer, char, atau enumerasi).
Array dapt dibedakan atas jumlah dimensinya, array berdimensi satu disebut vektor,
array berdimensi dua disebut matriks dan array berdimensi lebih dari dua disebut
tensor. Array dua dimensi dideklarasikan dengan bentuk:
tipe_data NamaArray [ jumlah_baris ] [ jumlah_kolom ];
Deklarasi ini menyatakan bahwa NamaArray adalah array satu-dimensi dengan jumlah
elemen jumlah_baris, dimana masing-masing elemennya adalah sebuah array satu-
dimensi dengan jumlah elemen jumlah_kolom.
Inisialisasi
Array diinisialisasi dengan menuliskan deretan nilai diantara simbol { dan }
seperti berikut:
float data[5] = { 0.1, 0.4, 0.6, 0.8, 0.9 };
/* data adalah array bertipe float dengan jumlah elemen 5
yaitu 0.1, 0.4, 0.6, 0.8, dan 0.9 */
char vokal[5] = { 'a', 'i', 'u', 'e', 'o' };
/* vokal adalah array bertipe karakter dengan jumlah
elemen 5 yaitu 'a', 'i', 'u', 'e', dan 'o' */

Operasi Pada Array


Dua operasi terpenting terhadap suatu array adalah Pencarian (searching) dan
Pengurutan (sorting). Banyak sekali metode yang dapat digunakan untuk kedua operasi
ini, salah satu teknik pencarian yang paling sederhana adalah linear search, yaitu
mencari suatu data di dalam suatu array dengan cara menelusuri elemen array satu per
satu dari awal sampai akhir.
Array sebagai Parameter Fungsi
Array dapat digunakan sebagai parameter fungsi dengan menggunakan bantuan
pointer. Dua jenis sintaks yang sering digunakan adalah sebagai berikut :
void fungsi1 (int array[]);

Praktikum Algoritma dan Pemrograman (C++) 41


Jika besar array sudah dapat dipastikan, boleh juga digunakan bentuk seperti:
void fungsi1 (int array[100]);
Di dalam fungsi ini elemen array dapat diakses seperti biasanya. Sedangkan untuk
mengirimkan array kedalam fungsi tersebut, cukup dituliskan nama array yang akan
dikirim ke dalam parameter fungsi tersebut.
Array berdimensi banyak dapat dikirimkan kedalam fungsi dengan cara yang mirip
dengan array satu dimensi, tetapi besar semua dimensi array, kecuali dimensi pertama,
harus dideklarasikan pada parameter fungsi, seperti pada contoh berikut:
void fungsi2 ( float matrix[][5] ) ;
atau
void fungsi2 ( float matrix[6][5] ) ;

Kegiatan Praktikum:
1. Program berikut menunjukkan penggunaan array berdimensi satu untuk menerima
sejumlah data bilangan bulat, menghitung total jumlahannya serta menampilkan
kembali seluruh data bilangan tesebut dan menampilkan nilai maksimumnya.
//Nama file : modul7-1.cpp
//Deskripsi : pemakaian array dimensi satu
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
int pencacah;
int nilai[50]; //deklarasi array dimensi satu
float total;
clrscr();
cout<<"Masukkan Data Bilangan Bulat "<<endl;
cout<<"Akhiri dengan memasukkan nilai negatif"<<endl;
pencacah = 0;
total = 0;
while (1) //1 = true, menyatakan kondisi yang selalu benar
{
cout<<"Nilai ke-"<<pencacah+1<<" = ";
cin>>nilai[pencacah];
if (nilai[pencacah] < 0)
break;
total += nilai[pencacah];
pencacah++;
}
cout<<"Data yang telah diinput : ";
int max = 0;
for (int x=0;x<pencacah;x++)
{
cout<<setw(5)<<nilai[x];
if (max < nilai[x])
max = nilai[x];
}

Praktikum Algoritma dan Pemrograman (C++) 42


cout<<"\nJumlah Data = "<<pencacah<<endl;
cout<<"Nilai Total = "<<total<<endl;
cout<<"Nilai Maximum = "<<max;
}
2. Program berikut menunjukkan penggunaan array berdimensi dua untuk melaku-
kan proses penjumlahan terhadap dua buah matriks.
/* nama file : modul7-2.cpp
Deskripsi : Program penjumlahan matriks */
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int MatriksA[10][10], MatriksB[10][10], MatriksC[10][10];
int i, j, baris, kolom;
void input(int m[10][10], char n)
{
cout<<"Masukkan elemen dari Matriks "<<n<<" : \n";
for(i=0;i<baris;i++)
{
for (j=0;j<kolom;j++)
{
cout<<"Elemen ["<<i<<","<<j<<"] : ";
cin>>m[i][j];
}
cout<<endl;
}
}
void cetak(int m[10][10])
{
for(i=0;i<baris;i++)
{
for(j=0;j<kolom;j++)
cout<<setw(4)<<m[i][j];
cout<<endl;
}
}
void Hitung(int x[10][10], int m[10][10], int n[10][10])
{
for(i=0;i<baris;i++)
{
for(j=0;j<kolom;j++)
x[i][j] = m[i][j] + n[i][j];
}
}
void main()
{
clrscr();
cout<<"Program Penjumlahan Matriks \n";
cout<<"Masukkan jumlah baris : "; cin>>baris;
cout<<"Masukkan jumlah kolom : "; cin>>kolom;
input(MatriksA,'A'); //input elemen matriks A
cout<<endl;

Praktikum Algoritma dan Pemrograman (C++) 43


input(MatriksB,'B'); //input elemen matriks B
clrscr();
cout<<"Elemen MatriksA : \n";
cetak(MatriksA);
cout<<"Elemen MatriksB : \n";
cetak(MatriksB);
Hitung(MatriksC,MatriksA,MatriksB);
cout<<"Hasil MatriksA + MatriksB = \n";
cetak(MatriksC);
getch();
}

Praktikum Algoritma dan Pemrograman (C++) 44


PRAKTIKUM 14

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan
array statik berdimensi-n.

1. Rancang program untuk menyelesaikan masalah berikut ini dengan Rancang


program untuk menginput beberapa data mahasiswa beserta nilai akhir untuk mata
kuliah Pemrograman Terstruktur. Kemudian akan ditampilkan kembali data
mahasiswa yang memiliki nilai akhir tertinggi dan terendah dari beberapa data nilai
akhir yang diinput serta rata-rata dari nilai akhir tersebut (data masukan: NIM,
Nama, NilaiAkhir. Keluaran: rata-rata nilaiakhir, nilai tertinggi dan terendah).
2. Dari soal no.1 diatas, tampilkan kembali data mahasiswa yang telah diinput dalam
bentuk tabel, terurut (ascending) berdasarkan Nilai Akhirnya.

Praktikum Algoritma dan Pemrograman (C++) 45


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 46


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 47


PRAKTIKUM 15
Tujuan:
Setelah melakukan praktikum, mahasiswa diharapkan dapat menggunakan tipe
data terstruktur (struktur) untuk menyelesaikan masalah menggunakan program C++.

Dasar Teori:
Struktur adalah kumpulan elemen-elemen data yang digabungkan menjadi
satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field
data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun field-
field tersebut berada dalam satu kesatuan, namun masing-masing field tersebut tetap
dapat diakses secara individual. Bentuk umum pendeklarasian struktur:

struct NamaStruktur
{
TipeData NamaField1;
TipeData NamaField2;
... ;
TipeData NamaFieldN;
};

struct NamaStruktur NamaVarStruktur;

Untuk membuat agar variable struktur dapat menampung beberapa data yang sama
dengan susunan fieldnya maka variable struktur tersebut dapat dikombinasikan dengan
tipe data array. Bentuk umum pendeklarasiannya:

struct NamaStruktur
{
TipeData NamaField1;
TipeData NamaField2;
... ;
TipeData NamaFieldN;
};

struct NamaStruktur NamaVarStruktur[JumlahElemen];

Kegiatan 1:
Masalah 1: akan dihitung nilai akhir dari mahasiswa yang mengambil matakuliah
Struktur Data dengan kriteria penilaian sebagai berikut: nilai tugas = 25%, nilai mid =
35% dan nilai final = 40%.

#include <iostream.h>
#include <conio.h>

struct DataMhs
{
char nim[10];
char nama[30];

Praktikum Algoritma dan Pemrograman (C++) 48


int nt, nm, nf;
float na;
};

struct DataMhs mhs;

void main()
{
cout<<"Menghitung Nilai akhir : \n";
cout<<"Masukkan NIM : "; cin>>mhs.nim;
cout<<"Masukkan Nama : "; cin>>mhs.nama;
cout<<"Masukkan Nilai Tugas : "; cin>>mhs.nt;
cout<<"Masukkan Nilai Mid : "; cin>>mhs.nm;
cout<<"Masukkan Nilai Final : "; cin>>mhs.nf;

mhs.na = (0.25*mhs.nt) + (0.35*mhs.nm) + (0.40*mhs.nf);


cout<<"Nilai Akhir dari mahasiswa ini = "<<mhs.na;
}

Masalah 2: dari masalah satu diatas akan dibuat agar program dapat menginput
beberapa data mahasiswa dan mencari mahasiswa yang memiliki nilai akhir tertinggi
dan terendah.

#include <iostream.h>
#include <conio.h>
#include <string.h>

struct DataMhs
{
char nim[10];
char nama[30];
int nt, nm, nf;
float na;
};
struct DataMhs mhs[100],mhsmin,mhsmax;
int i,j;
float min, max;

void main()
{
i = 0;
cout<<"Menghitung Nilai Akhir : \n";
cout<<"Masukkan NIM : "; cin>>mhs[i].nim;
do
{ cout<<"Masukkan N a m a : "; cin>>mhs[i].nama;
cout<<"Masukkan Nilai Tugas : "; cin>>mhs[i].nt;
cout<<"Masukkan Nilai Mid : "; cin>>mhs[i].nm;
cout<<"Masukkan Nilai Final : "; cin>>mhs[i].nf;
mhs[i].na = (0.25 * mhs[i].nt)+(0.35 * mhs[i].nm)+(0.40 *
mhs[i].nf);
cout<<"Nilai Akhir dari mahasiswa ini = "<<mhs[i].na<<endl;
i++;
cout<<"Masukkan NIM : "; cin>>mhs[i].nim;
} while (!(strcmp(mhs[i].nim,"x")==0));

Praktikum Algoritma dan Pemrograman (C++) 49


//mencari mhs dengan NilaiAkhir tertinggi dan terendah
i--;
min = mhs[0].na; max = mhs[0].na;
mhsmin = mhs[0]; mhsmax = mhs[0];
for (j=1;j<=i;j++)
{ if (mhs[j].na > max)
{ max = mhs[j].na;
mhsmax = mhs[j];
}
if (mhs[j].na < min)
{ min = mhs[j].na;
mhsmin = mhs[j];
}
}
cout<<"Mahasiswa dengan nilai akhir tertinggi : "<<endl;
cout<<"NIM : "<<mhsmax.nim<<" dengan Nama : "<<mhsmax.nama;
cout<<" dan NilaiAkhir : "<<mhsmax.na<<endl;
cout<<"Mahasiswa dengan nilai akhir terendah : "<<endl;
cout<<"NIM : "<<mhsmin.nim<<" dengan Nama : "<<mhsmin.nama;
cout<<" dan NilaiAkhir : "<<mhsmin.na<<endl;
}

Praktikum Algoritma dan Pemrograman (C++) 50


PRAKTIKUM 16

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan tipe
data terstruktur (struktur).

1. Buat program untuk menyelesaikan permasalahan dibawah ini:


Diketahui data mahasiswa terdiri atas: No.Pokok, Nama, Alamat, MataKuliah.
Dimana setiap mahasiswa boleh mengambil maksimal 22 sks setiap semesternya.
Adapun data matakuliah ini terdiri atas: semester, kode matakuliah, nama
matakuliah, sks, nilai huruf. Buat program untuk menampung beberapa data
mahasiswa beserta data matakuliah yang diambilnya setiap semester.

2. Buat program untuk menyelesaikan permasalahan dibawah ini:


Dari soal 1 diatas buat program untuk menghitung Indeks Prestasi perSemester
dengan ketentuan bobot nilai untuk A = 4, B = 3, C = 2, D = 1 dan E = 0 (IPS = 
(bobot*sks) / totalsks).

Praktikum Algoritma dan Pemrograman (C++) 51


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 52


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 53


PRAKTIKUM 17
Tujuan:
Setelah melaksanakan praktikum ini mahasiswa diharapkan dapat melakukan
manipulasi terhadap file teks.
Dasar Teori:
Membuka File
Agar sebuah file dapat digunakan, file harus dibuka atau diaktifkan terlebih
dahulu. Sebelum file dibuka, terlebih dulu kita membuat suatu objek dengan
menggunakan perintah:
ofstream NamaObjek;
setelah objek dibuat maka selanjutnya file dibuka dengan menggunakan perintah:
NamaObjek.open(“NamaFile”);
Perintah ini akan membuat file baru bilamana di dalam disk belum ada file dengan
nama tersebut. Jika file tersebut sudah ada maka isi dari file yang lama akan tertimpa
oleh isi file yang baru.
Kedua perintah tersebut dapat digabungkan menjadi:
ofstream NamaObjek(“NamaFile”);

Memproses File
Setelah file diaktifkan, selanjutnya perekaman dapat dilakukan dengan cara:
NamaObjek<<” ... text ... “;
Menutup File
Setelah file dibuka atau diaktifkan dan dilakukan pemrosesan, selanjutnya file tersebut
harus ditutup. Berikut perintah yang digunakan untuk menutup file:
NamaObjek.close;
Membaca Isi File
Setelah data direkam ke dalam file, data dapat dibaca dengan menggunakan perintah:
ifstream NamaObjek;
NamaObjek.open(“NamaFile”);
atau:
ifstream NamaObjek(“NamaFile”);
pada pembacaan isi suatu file, haruslah dilakukan pendeteksian terhadap akhir dari
suatu file. Fungsi yang digunakan untuk keperluan ini adalah eof().
Menambah Isi File
Untuk menambah isi dari suatu file dilakukan dengan menggunakan perintah
ios::app. Perintah ini selain digunakan untuk menambah data, jika file yang dibuka
belum ada di dalam disk, maka secara otomatis akan dibuatkan file yang baru.
Perintah ini akan diletakkan pada fungsi open(), menjadi argumen kedua di dalam
fungsi open(). Berikut bentuk penulisannya:
NamaObjek.open(“NamaFile”, ios::app);

Praktikum Algoritma dan Pemrograman (C++) 54


Kegiatan Praktikum:
1. Program berikut menunjukkan proses pengaktifan dan perekaman data kedalam
sebuah file text serta membaca dan menapilkan hasil pembacaan file.
#include "iostream.h"
#include "fstream.h"
#include "iomanip.h"
#include "stdlib.h"
#include "string.h"

char nama[20],stb[8];
int nilai;

char a[5];

void main()
{
ofstream fmhs;
fmhs.open("mahasiswa.txt");
cout<<"Masukkan Data Mahasiswa";
cout<<"\nAkhiri dengan mengisi [x] pada nama ..!\n";
cout<<"Masukkan Nama : "; cin>>nama;
do
{
cout<<"Masukkan No.Pokok : "; cin>>stb;
cout<<"Masukkan Nilai : "; cin>>nilai;
itoa(nilai,a,10); //konversi integer ke charakter
fmhs<<setw(20)<<nama<<setw(10)<<stb;
fmhs<<setw(8)<<a<<endl;

cout<<"\nMasukkan Nama : "; cin>>nama;


}while(nama[0] != 'x');

fmhs.close();

cout<<"\nHasil Pembacaan File : "<<endl;


cout<<setw(20)<<"N A M A"<<setw(10)<<"NO.POKOK";
cout<<setw(8)<<"NILAI"<<endl;

ifstream fmhs1("mahasiswa.txt");
while (fmhs1)
{ fmhs1.getline(nama,21);
cout<<setw(20)<<nama;
fmhs1.getline(stb,11);
cout<<setw(10)<<stb;
fmhs1.getline(a,7);
cout<<setw(8)<<a<<endl;
}
fmhs1.close();
}

Praktikum Algoritma dan Pemrograman (C++) 55


2. Program berikut menunjukkan proses penambahan data ke dalam file text.

#include "iostream.h"
#include "fstream.h"
#include "iomanip.h"
#include "stdlib.h"
#include "string.h"

char nama[20],stb[8];
int nilai;

char a[5];
void main()
{
ofstream fmhs;
fmhs.open("mahasiswa.txt");
cout<<"Masukkan Data Mahasiswa";
cout<<"\nAkhiri dengan mengisi [x] pada nama ..!\n";
cout<<"Masukkan Nama : "; cin>>nama;
do
{
cout<<"Masukkan No.Pokok : "; cin>>stb;
cout<<"Masukkan Nilai : "; cin>>nilai;
itoa(nilai,a,10); //konversi integer ke charakter
fmhs<<setw(20)<<nama<<setw(10)<<stb;
fmhs<<setw(8)<<a<<endl;
cout<<"\nMasukkan Nama : "; cin>>nama;
}while(nama[0] != 'x');
fmhs.close();
cout<<"\nHasil Pembacaan File : "<<endl;
cout<<setw(20)<<"N A M A"<<setw(10)<<"NO.POKOK";
cout<<setw(8)<<"NILAI"<<endl;
ifstream fmhs1("mahasiswa.txt");
while (fmhs1)
{ fmhs1.getline(nama,21);
cout<<setw(20)<<nama;
fmhs1.getline(stb,11);
cout<<setw(10)<<stb;
fmhs1.getline(a,7);
cout<<setw(8)<<a<<endl;
}
fmhs1.close();
fstream fmhs2("mahasiswa.txt",ios::app);
cout<<"Masukkan Data Mahasiswa Tambahan";
cout<<"\nAkhiri dengan mengisi [x] pada nama ..!\n";
cout<<"Masukkan Nama : "; cin>>nama;
do
{
cout<<"Masukkan No.Pokok : "; cin>>stb;

Praktikum Algoritma dan Pemrograman (C++) 56


cout<<"Masukkan Nilai : "; cin>>nilai;
itoa(nilai,a,10); //konversi integer ke charakter
fmhs2<<setw(20)<<nama<<setw(10)<<stb
fmhs<<setw(8)<<a<<endl;
cout<<"\nMasukkan Nama : "; cin>>nama;
}while(nama[0] != 'x');
fmhs2.close();
cout<<"\nHasil Pembacaan File Setelah Penambahan Data : \n";
cout<<setw(20)<<"N A M A"<<setw(10)<<"NO.POKOK";
cout<<setw(8)<<"NILAI"<<endl;
ifstream fmhs3("mahasiswa.txt");
while (fmhs3)
{ fmhs3.getline(nama,21);
cout<<setw(20)<<nama;
fmhs3.getline(stb,11);
cout<<setw(10)<<stb;
fmhs3.getline(a,7);
cout<<setw(8)<<a<<endl;
}
fmhs3.close();
}

Praktikum Algoritma dan Pemrograman (C++) 57


PRAKTIKUM 18

Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan
manipulasi terhadap file teks.

PT. MAJU LEBIH BAIK memberikan tambahan gaji kepada para salesmannya dengan
ketentuan sebagai berikut :
1. Bila seorang salesman dapat menjual barang hingga Rp.200.000,- maka dia akan
mendapat uang jasa sebesar Rp.10.000,- ditambah dengan uang komisi sebesar
10% dari pendapatan yang diperoleh hari itu.
2. Bila seorang salesman menjual barang diatas Rp.200.000,- hingga Rp. 500.000,-
maka uang jasa yang diterima sebesar Rp.20.000,- ditambah dengan 15% dari
pendapatan yang diperoleh hari itu.
3. Bila seorang salesman menjual barang diatas Rp.500.000,- maka uang jasa yang
diperoleh sebesar Rp.30.000,- ditambah dengan 20% dari pendapatan yang
diperoleh hari itu.

Rancang program untuk menghitung jumlah uang jasa, komisi dan tambahan gaji dari
beberapa orang salesman yang diinput datanya. Kemudian rekam data tersebut ke
dalam file text dengan nama ”Penjualan.txt”.

Masukan : Nama Salesman, Jumlah Penjualannya


Keluaran : Uang Jasa, Komisi, dan Tambahan Gaji

Praktikum Algoritma dan Pemrograman (C++) 58


Lembar Jawaban :

… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 59


… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..

Praktikum Algoritma dan Pemrograman (C++) 60

Anda mungkin juga menyukai