Modul Algoritma & Pemrograman
Modul Algoritma & Pemrograman
DI SUSUN OLEH :
1 ……………… 11 ………………
2 ……………… 12 ………………
3 ……………… 13 ………………
4 ……………… 14 ………………
5 ……………… 15 ………………
6 ……………… 16 ………………
7 ……………… 17 ………………
8 ……………… 18 ………………
9 ……………… 19 ………………
10 ……………… 20 ………………
Catatan : harap dosen/asisten yang menangani praktikum ini tidak menandatangani kartu
kontrol praktikum ini jika mahasiswa yang bersangkutan belum menyelesaikan
kegiatan praktikumnya.
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;
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
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
#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";
}
#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;
#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();
1. Buatlah program untuk mencetak nota pembayaran pada suatu bengkel mobil
dengan input sebagai berikut:
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.
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan
jenis-jenis operator serta konversi tipe data (casting).
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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:
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
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
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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.
#include <iostream.h>
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;
}
#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;
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;
}
Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menerapkan
penggunaan instruksi-instruksi perulangan for, while dan do-while.
1
3 4
5 6 7
7 8 9 10
9 10 11 12 13
10 8 6 4 2
8 6 4 2
6 4 2
4 2
2
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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
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.
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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.
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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];
}
Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan
array statik berdimensi-n.
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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;
};
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;
};
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];
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;
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));
Kegiatan Praktikum:
Rancang program untuk menyelesaikan masalah berikut ini dengan menggunakan tipe
data terstruktur (struktur).
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
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);
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;
fmhs.close();
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();
}
#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;
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”.
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..
… … … … … … … … … … … … … … … … … … … … … … … … … … … ..