MODUL ALGORITMADANPEMROGRAMAN - BSI

51
1 Algoritma dan Pemrograman MODUL ALGORITMA DAN PEMROGRAMAN Disusun oleh Yana Iqbal Maulana, M.Kom Prodi Sistem Informasi Kampus Kabupaten Banyumas Universitas Bina Sarana Informatika 2019

Transcript of MODUL ALGORITMADANPEMROGRAMAN - BSI

Page 1: MODUL ALGORITMADANPEMROGRAMAN - BSI

1Algoritma dan Pemrograman

MODUL

ALGORITMADAN PEMROGRAMAN

Disusun oleh

Yana Iqbal Maulana, M.Kom

Prodi Sistem Informasi Kampus Kabupaten Banyumas

Universitas Bina Sarana Informatika

2019

Page 2: MODUL ALGORITMADANPEMROGRAMAN - BSI

2Algoritma dan Pemrograman

KATA PENGANTAR

Alhamdullillah, penulis panjatkan kehadirat Allah SWT, yangtelah melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnyapenulis dapat menyelesaikan Modul C++ ini dengan baik. Oleh karenaitu pada kesempatan ini, penulis ingin menyampaikan ucapan terimakasih kepada :

1. Rektor Universitas Bina Sarana Informatika2. Wakil Rektor Bidang Akademik Universitas Bina Sarana

Informatika3. DEKAN Fakultas Teknologi dan Informatika4. Kaprodi Sistem Informasi Universitas Bina Sarana Informatika5. Tim Konsorsium Sistem Informasi Universitas Bina Sarana

Informatika6. Staff / Karyawan / Dosen di lingkungan Universitas Bina Sarana

Informatika

Derasnya arus informasi perlu ditunjang oleh sistem informasiyang cepat, relevan dan akurat khususnya berkaitan dengan berbagaitransaksi internal, lintas fungsional dan transaksi eksternal yang makinmeluas dan melintas batas negara. Kerumitan berbagai transaksi bisnismembutuhkan dukungan teknologi komputer yang memungkinkanuntuk mengelola informasi secara cepat, relevan dan akurat.Perkembangan teknologi komputer yang demikian pesat dalamperangkat keras dan perangkat lunak semakin memberikan kekuatanbagi entitas bisnis untuk mengelola informasi dengan perangkat lunakkomputer.

DAFTAR ISI

Pertemuan 1...................................................................................................... 3

Pertemuan 2...................................................................................................... 5

Pertemuan 3...................................................................................................... 9

Pertemuan 4.................................................................................................... 11

Pertemuan 5.................................................................................................... 14

Pertemuan 6.................................................................................................... 17

Pertemuan 7.................................................................................................... 20

Pertemuan 8.................................................................................................... 23

Pertemuan 9.................................................................................................... 25

Pertemuan 10.................................................................................................. 27

Pertemuan 11.................................................................................................. 30

Pertemuan 12.................................................................................................. 32

Pertemuan 13.................................................................................................. 34

Pertemuan 14.................................................................................................. 36

Pertemuan 15.................................................................................................. 39

Pertemuan 16.................................................................................................. 41

Pertemuan 17.................................................................................................. 43

Pertemuan 18.................................................................................................. 45

Pertemuan 19.................................................................................................. 48

Pertemuan 20.................................................................................................. 50

Page 3: MODUL ALGORITMADANPEMROGRAMAN - BSI

3Algoritma dan Pemrograman

Pertemuan 1Pengenalan C++

Sejarah C++Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & TLaboratories mengembangkan bahasa B menjadi bahasa C. BahasaB yang diciptakan oleh Ken Thompson sebenarnya merupakanpengembangan dari bahasa BCPL ( Basic Combined ProgrammingLanguage ) yang diciptakan oleh Martin Richard.

Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropayang sebelumnya menggunakan bahasa B dan BCPL. Dalamperkembangannya, bahasa C menjadi bahasa paling populerdiantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN.

Tahun 1989, dunia pemrograman C mengalami peristiwa pentingdengan dikeluarkannya standar bahasa C oleh American NationalStandards Institute (ANSI). Bahasa C yang diciptakan Kerninghan &Ritchie kemudian dikenal dengan nama ANSI C.

Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T BellLaboratories mulai mengembangkan bahasa C. Pada tahun 1985,lahirlah secara resmi bahasa baru hasil pengembangan C yangdikenal dengan nama C++. Sebenarnya bahasa C++ mengalami duatahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories,dinamakan cfront. C++ versi kuno ini hanya berupa kompiler yangmenterjemahkan C++ menjadi bahasa C.

Pada evolusi selanjutnya, Borland International Inc.mengembangkan kompiler C++ menjadi sebuah kompiler yangmampu mengubah C++ langsung menjadi bahasa mesin (assembly).Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi

obyek yang digunakan oleh sebagian besar pemrogramprofessional.

Tampilan IDE (Integrated Development Environment) C++

Contoh Program C++ Sederhana

Script Program :

Page 4: MODUL ALGORITMADANPEMROGRAMAN - BSI

4Algoritma dan Pemrograman

Hasil :

Script Program :

#include<conio.h>#include<stdio.h> File Header#include<iostream.h>

main() Titik awal dimana seluruh program C++ akan mulaidieksekusi{cout<<”Selamat Datang Di Lab X”<<endl;cout<<”Ini Program C++ Pertama Saya”; statementgetch(); Fungsi untuk menampilkan output di layar}

Page 5: MODUL ALGORITMADANPEMROGRAMAN - BSI

5Algoritma dan Pemrograman

Pertemuan 2

Struktur Program C++

#include<file header>

main(){Statement atau pernyataan; Bagian Utama ProgramGetch();}

Keterangan :#include : Digunakan untuk memanggil file header yang

digunakan untuk memperkenalkan perintahinput output yang digunakan dalam penulisanprogram.

main() :Merupakan sebuah fungsi khusus untukmengeksekusi perintah program.

{ : Digunakan sebagai awal penulisan perintahprogram.

pernyataan : Bagian ini bisa berupa penulisan pernyataanataupun deklarasi program (variable, konstanta).

getch() :Merupakan sebuah fungsi untuk menampilkanhasil eksekusi program di layar.

} : Digunakan sebagai akhir penulisan perintahprogram.

File HeaderMerupakan file yang berfungsi sebagai pengenal perintah inputdan output yang digunakan dalam penulisan perintah program.Jenis File Header di C++ :conio : Console input output.

Sintaks clrscr(), getch().

stdio : Standar input output object.Sintaks Input scanf,gets.Sintaks Output puts, putchar, printf.

iostream : Input output stream.Sintaks Input cin.Sintaks Output cout.

iomanip : Input output manipulator biasanya digunakan dalamarray.Sintaks setw(width/lebar), setiosflags (rataan

paragraph atau kalimat), setprecision(decimal).

Perintah Masukan/Input dan Keluaran/Output di C++ :

Perintah Masukan Perintah KeluaranScanf(); Printf();Gets(); Puts();Cin(); Cout();

Putchar();

Penentu Format Untuk scanf/printf :

Tipe Data Penentu FormatInteger %dFloat/Desimal %fBerpangkat %eCharacter %cString %sLong Integer %ld

Perintah Sintaks Input (scanf, gets dan cin)Bentuk Umum :

scanf(“penentu format”, &nama_variabel);gets(nama_variabel);cin>>nama_variabel;

Page 6: MODUL ALGORITMADANPEMROGRAMAN - BSI

6Algoritma dan Pemrograman

Perintah Sintaks Output (printf, puts, putchar dan cout)Bentuk Umum :

printf(“statement”);puts(“statement”);putchar(“statement”);cout<<”statement”;

Perintah Sintaks Manipulation (setiosflags, setw, setprecision)Bentuk Umum :cout<<stiosflags(ios::left/right)<<setw(panjang_spasi)<<nama_variabel;cout<<setprecision(ukuran_desimal)<<nama_variabel;

Catatan : \n = Untuk pindah baris baru. \t = Untuk mengetengahkan teks. Scanf, cin = Tidak bisa menerima spasi. Gets = Bisa menerima spasi. endl = Untuk pindah baris.

Pengenalan Tipe DataTipe Data Ukuran

MemoryJangkauan Nilai Jumlah

DigitChar 1 Byte -128 s.d 127Int 2 Byte -32768 s.d 32767Short 2 Byte -32768 s.d 32767Long 4 Byte -2147435648 s.d

2147435647Float 4 Byte 3.4 x 10-38 s.d

3.4 x 10+385 – 7

Double 8 Byte 1.7 x 10-308 s.d1.7 x 10+308

15 – 16

Long Double 10 Byte 3.4 x 10-4932 s.d3.4 x 10+4932

19

Variabel Dan Konstanta Variable

Suatu tempat untuk menampung data atau konstanta di memoriyang mempunyai nilai data yang dapat berubah – ubah selamaproses program.Syarat penulisan variable :1. Tidak boleh ada spasi.2. Tidak boleh diawali dengan angka dan menggunakan

operator aritmatika.Deklarasi Variabel :

tipe data nama_variabel;

Tipe Variabel Simbol DeklarasiInteger intFloating Point floatDouble Precision doubleCharacter/String char

Contoh :char grade;char nama_mahasiswa[20];int nilai;float rata2;

KonstantaTipe data yang bersifat tetap.Jenis Konstanta :1. Bilangan (Bulat dan Decimal)2. Text (Karakter dan String)

Karakter memakai tanda kutip satu (‘).String memakai tanda kutip dua (“).

Page 7: MODUL ALGORITMADANPEMROGRAMAN - BSI

7Algoritma dan Pemrograman

X X XX.XXX

Deklarasi Konstanta :

const nama_konstanta = nilai konstanta;

Contoh :const x = 100;

Contoh Program :

/*Contoh 1*//*By : nim masing-masing*/

#include<stdio.h>#include<conio.h>#include<iostream.h>main(){clrscr();puts("Pengenalan Sintaks Output stdio");printf("Gampang kan ???");putchar('O');putchar('K');getch();}

/*Contoh 2*//*By : nim masing-masing*/

#include<stdio.h>#include<conio.h>#include<iostream.h>main(){float alas,tinggi,luas;cout<<"\tMenghitung Segitiga"<<endl;cout<<"\t~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;

printf("\tMasukkan Nilai Alas :");scanf("%f",&alas);printf("\tMasukkan Nilai Tinggi :");scanf("%f",&tinggi);luas = 0.5*alas*tinggi;cout<<"\t~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;printf("\tLuas Segitiga Adalah : %5.2f",luas);getch();}

Catatan :Penggunaan Penentu Lebar Field :Bentuk Umum :

%a.bf

Keterangan :a : Lebar field.b : Jumlah decimal.f : Penentu format tipe data decimal/float.

Contoh :%5.2f

Lebar field 5 digit Jumlah decimal 2

Page 8: MODUL ALGORITMADANPEMROGRAMAN - BSI

8Algoritma dan Pemrograman

/*Contoh 3*//*By : nim masing-masing*/

#include<stdio.h>#include<conio.h>#include<iostream.h>main(){float jari2,luas,keliling;const phi=3.14;clrscr();cout<<"Menghitung Luas Dan KelilingLingkaran"<<endl;cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;cout<<"Masukkan Nilai Jari - jari : ";cin>>jari2;luas=phi*jari2*jari2;keliling=2*phi*jari2;cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;cout<<"Luas Lingkaran : "<<luas<<endl;cout<<"Keliling Lingkaran : "<<keliling<<endl;getch();}

Page 9: MODUL ALGORITMADANPEMROGRAMAN - BSI

9Algoritma dan Pemrograman

Pertemuan 3Operator

Merupakan symbol atau karakter yang digunakan untuk melakukansuatu operasi atau manipulasi, seperti Penjumlahan, penguranganatau pembagian.

Operator dalam C++ :1. Operator Aritmatika

Simbol Arti* Perkalian/ Pembagian% Sisa Pembagian+ Penjumlahan- Pengurangan

2. Operator Penaikan dan PenurunanSimbol Arti++ Penaikan (Increment)-- Penurunan (Decrement)

3. Operator RelasiSimbol Arti== Sama dengan!= Tidak sama dengan> Lebih dari< Kurang dari>= Lebih dari sama sengan<= Kurang dari sama dengan

4. Operator LogikaSimbol Arti&& And|| Or! Not

/*Contoh 4*//*By : nim masing-masing*/

#include<stdio.h>#include<conio.h>#include<iostream.h>main(){int a,b,c=0, d=0;clrscr();cout<<"Masukkan Nilai A :"; cin>>a;cout<<"Masukkan Nilai B :"; cin>>b;

c = a % b;d = a * b;

cout<<"Hasil Dari C = "<<c<<endl;cout<<"Hasil Dari D = "<<d<<endl;getch();}

/*Contoh 5*//*By : nim masing-masing*/

#include<stdio.h>#include<conio.h>#include<iostream.h>main(){int a=10,b=5;clrscr();cout<<"Operator Penaikan"<<endl;cout<<"-----------------------------"<<endl;printf("\nNilai a = %d",a);printf("\nNilai ++a = %d",++a);cout<<endl;

Page 10: MODUL ALGORITMADANPEMROGRAMAN - BSI

10Algoritma dan Pemrograman

cout<<"-----------------------------"<<endl;cout<<"Operator Penurunan"<<endl;printf("\nNilai b = %d",b);printf("\nNilai ++b = %d",--b);getch();}

/*Contoh 6*//*By : nim masing-masing*/

#include<stdio.h>#include<conio.h>#include<iostream.h>main(){char merk[20],tipe[10];int harga,jumbel,jumbay,ppn,totbay,ubay,ukem;clrscr();cout<<" TOKO CELLULER JUST 4 U"<<endl;cout<<"=================================="<<endl;cout<<"Merk Handphone : ";gets(merk);cout<<"Tipe Handphone : ";cin>>tipe;cout<<"Harga : ";cin>>harga;cout<<"Jumlah Beli : ";cin>>jumbel;jumbay=harga*jumbel;ppn=0.1*jumbay;totbay=jumbay+ppn;cout<<"=================================="<<endl;cout<<"Jumlah Bayar : Rp. "<<jumbay<<endl;cout<<"Ppn : Rp. "<<ppn<<endl;cout<<"Total Bayar : Rp. "<<totbay<<endl;cout<<"=================================="<<endl;cout<<"Uang Bayar : Rp. ";cin>>ubay;ukem=ubay-totbay;cout<<"Uang Kembali : Rp. "<<ukem;getch();}

Page 11: MODUL ALGORITMADANPEMROGRAMAN - BSI

11Algoritma dan Pemrograman

Pertemuan 4

Fungi Manipulasi String

Borland C++ menyediakan beberapa fungsi yang digunakan untukkeperluan manipulasi string :

1. Fungsi Strcat()Untuk menambah string sumber kebagian akhir dari string tujuan.File header yang disertakan adalah string.h dan ctype.hBentuk Umum :

strcat(tujuan, sumber);

Contoh :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<string.h>main(){char a1[20],a2[20];clrscr();cout<<"Masukkan Kata ke-1 :";cin>>a1;cout<<"Masukkan Kata ke-2 :";cin>>a2;strcat(a1, a2);cout<<"Hasil dari penggabungannya : "<<a1;getch();}

2. Fungsi strcmp()Untuk membandingkan string pertama dengan string kedua, hasildari fungsi ini bertipe integer.File header yang disertakan string.h

Bentuk Umum :

strcmp(str1, str2);

Contoh :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<string.h>main(){char a1[]="BSI";char a2[]="Bsi";char b1[]="BSI";clrscr();cout<<"Hasil perbandingan "<<a1<<" dan "<<a2<<"->";cout<<strcmp(a1,a2)<<endl;cout<<"Hasil perbandingan "<<a2<<" dan "<<a2<<"->";cout<<strcmp(a1,a2)<<endl;cout<<"Hasil perbandingan "<<a1<<" dan "<<b1<<"->";cout<<strcmp(a1,b1)<<endl;getch();}

3. Fungsi strcpyUntuk menyalin File.Bentuk Umum :

strcpy(string target, string asal)

Contoh :

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

Page 12: MODUL ALGORITMADANPEMROGRAMAN - BSI

12Algoritma dan Pemrograman

Main(){Char text[25]=”BSI OKE”;Char data[25];Clrscr;Strcpy(data, text);Cout<<”Data Asli : “<<data<<endl;Getch();}

4. Fungsi strlenUntuk mengetahui panjang string.Bentuk Umum :

strlen(string)

Contoh :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<string.h>Main();{Char bunga[15]=”Bina Sarana”;Char kosong[13]=” “;Clrscr;Cout<<strlen(bunga)<<endl;Cout<<strlen(kosong)<<endl;Getch();}

5. Fungsi strrev()Untuk membalik string.Bentuk Umum :

Strrev(string)

Contoh :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<string.h>Main();{Char lezat[15]=”Ice Cream”;Clrscr;Strrev(lezat);Cout<<lezat<<endl;Getch();}

6. Fungsi Strlwr() dan Strupr()Strlwr()merubah huruf menjadi huruf kecil.Strupr()merubah huruf menjadi huruf besar.

Contoh :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<string.h>Main();{Char x[20]=”PaLestina”;Clrscr;Cout<<” Isi X awalnya : “<<x<<endl;Strlwr(x);

Page 13: MODUL ALGORITMADANPEMROGRAMAN - BSI

13Algoritma dan Pemrograman

Cout<<” Isi X strlwr : “<<x<<endl;Strupr(x);Cout<<”Isi X strupr : “<<x<<endl;Getch();}

6. Fungsi strcmpUntuk membandingkan 2 buah string dengan hasil nilai negativjika a<b , a==b dan menghasilkan nilai positif jika a>b.

Contoh :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<string.h>Main();{Char a1[]=”BSI”;Char a2[]=”Bsi”;Char b[]=”BSI”:Clrscr();Cout<<”Hasil Perbandingan “<<a1<<”dan“<<a2<<”==> “;Cout<<strcmp(a2,a1)<<endl;Cout<<”Hasil Perbandingan “<<a1<<” dan“<<b<<”==> “;Cout<<strcmp(a1,b)<<endl;Getch();}

Page 14: MODUL ALGORITMADANPEMROGRAMAN - BSI

14Algoritma dan Pemrograman

Pertemuan 5Fungsi Percabangan IF

Suatu kondisi jika dikatakan benar maka perintah akan dikerjakan,tetapi jika tidak memenuhi syarat akan diabaikan.

1. If TunggalBentuk Umum :

if (kondisi)Pernyataan

2. If MajemukJika kondisi bernilai benar, maka perintah 1 dikerjakan, dan jikatidak memenuhi syarat maka akan mengerjakan perintah ke 2.Bentuk Umum :

if (kondisi-1){Pernyataan1;}

elseif ( kondisi-2){Pernyataan2;}

else{Pernyataan;}

3. Nested ifBentuk Umum :

if (kondisi){if (kondisi){Pernyataan;}

else{Pernyataan;}

}

Catatan : Kondisi pada if harus ada operator relasi dan logika. Jika ada lebih dari 1 kondisi maka kondisi terakhir tidak dituliskan

langsung else pernyataan.

Contoh 1 :

#include<conio.h>#include<iostream.h>#include<stdio.h>main(){double tot_beli, pot,jumbay;clrscr();cout<<”Total Pembelian Rp. “; cin>>tot_beli;if (tot_beli >= 50000)

{pot = 0.5 * tot_beli;}else

{pot = 0.2 * tot_beli;}cout<<”Besarnya potongan Rp. “<<pot<<endl;jumbay = tot_beli – pot ;cout<< “Jumlah yang harus dibayarkan Rp.“<<jumbay<<endl;getch();}

Page 15: MODUL ALGORITMADANPEMROGRAMAN - BSI

15Algoritma dan Pemrograman

Contoh 2 :

Tampilan Input :

Tampilan Output :

Ketentuan :1. Nama Paket dan Harga ditentukan berdasarkan Kode Paket :

Kode Paket Nama Paket Harga Paket1 Paket Hemat 75002 Paket Nasi 100003 Paket Spesial 15000

2. Total Harga = Jumlah Beli x Harga.3. PPn = 10% dari Total Harga.4. Jumlah Bayar = Total Harga + PPn.5. Uang Kembali = Uang Bayar – Jumlah Bayar.

Script Program :

#include<conio.h>#include<iostream.h>#include<stdio.h>main(){char nm[20], *jns, kode ;int jml, hrg, ttl, ppn, byr, kem, jbyr ;clrscr();cout<<"Masukan Kode [1/2/3] : " ;cin>>kode ;cout<<"Jumlah Beli : " ;cin>>jml ;cout<<"Nama Kasir : " ;cin>>nm ;if (kode == '1')

{jns="PAKET HEMAT";hrg=7500;}elseif (kode=='2')

{jns="PAKET NASI";hrg=10000;}else

{jns="PAKET SPESIAL";hrg=15000;}

clrscr();cout<<" SEJAHTERA CAFE"<<endl;cout<<" Jl. Juang No. 16"<<endl;cout<<"Telp : 7236574 - 7236575"<<endl;cout<<"***************************"<<endl;cout<<jns<<endl;cout<<jml<<" X"<<"\t"<<hrg<<endl;cout<<"***************************"<<endl;

Page 16: MODUL ALGORITMADANPEMROGRAMAN - BSI

16Algoritma dan Pemrograman

ttl=hrg*jml;ppn=0.1*ttl ;jbyr =ttl+ppn;cout<<"Total : Rp. "<<ttl<<endl;cout<<"PPN 10% : Rp. "<<ppn<<endl;cout<<"Jumlah Bayar : Rp. "<<jbyr<<endl;cout<<"Bayar : Rp. ";cin>>byr ;kem=byr-jbyr;cout<<"Uang Kembali : Rp. "<<kem<<endl;cout<<"***************************"<<endl;cout<<"Nama Kasir : "<<nm<<endl;cout<<"***************************"<<endl;cout<<" SELAMATMENIKMATI"<<endl;cout<<" TERIMA KASIH"<<endl;getch();}

Page 17: MODUL ALGORITMADANPEMROGRAMAN - BSI

17Algoritma dan Pemrograman

Pertemuan 6SWITCH – CASE

Bentuk dari switch case sama dengan if majemuk menanganisuatu pengambilan keputusan yang melibatkan sejumlah atau banyakalternatif penyelesaian. Namun kondisi yang diseleksi hanya bersifatkarakter atau integer.Bentuk Umum :

switch (variable){

case kondisi 1 :{Pernyataan 1 ; Pernyataan 2 ;}

break ;case kondisi 2 :

{Pernyataan 1 ; Pernyataan 2 ;}break ;default :

Pernyataan ;break ;

}

Pernyataan break menunjukkan bahwa perintah siap keluar dariswitch. Jika pernyataan ini tidak ada maka program akan diteruskanke cabang-cabang yang lainnya. Sedangkan pemakaian default adalahbahwa jika semua kondisi tidak terpenuhi.

Contoh 1 :

#include <conio.h>#include <stdio.h>#include <iostream.h>main(){char kode;

clrscr();cout<<"Masukkan Kode Barang [A/B/C] : ";cin>>kode;switch(kode){

case'A' :cout<<"Alat Olah Raga";break;case'B' :cout<<"Alat Eletronik";break;case'C' :cout<<"Alat Masak";break;default :

cout<<"Anda salah memasukkan kode";break;

}getch();}

Contoh 2 :

Tampilan Input :

Masukkan Kode Buku [1|2|3] : <input>Jumlah Pembelian Buku Anda : <input>

Page 18: MODUL ALGORITMADANPEMROGRAMAN - BSI

18Algoritma dan Pemrograman

Tampilan Output :

**** TOKO BUKU HALIFI***JL. Keadilan No. 16

----------------------------------------------------------------------------------Nama Buku : <nama buku>Harga Buku : <harga buku>Potongan : <potongan>Bonus : <bonus>Total Bayar : <total bayar>PPN : <ppn>----------------------------------------------------------------------------------

**** T E R I M A K A S I H***Apa mau Input data lagi ????

Ketentuan Soal :

1. Untuk BUKU :a. Jika kode buku 1 maka nama buku = “ Sukses Belajar Borland

C++”, harga = 50000.b. Jika Kode buku 2 maka nama buku = ” Kunci Pribadi Yang

Sukses ”, harga = 35000.c. Jika kode buku 3 nama buku = ” Mencari Mutiara Di Dasar

Hati ”, harga = 45000.2. Akan Mendapat potongan 10% jika Jumlah pembelian lebih dari 5

buku, dan mendapat bonus ” Note Book”, tetapi jika pembeliankurang dari 5 maka tidak dapat potongan serta akan tampilpesan ”Maaf Tidak Dapat Bonus”.

3. Semua Pembelian akan dikenakan PPN Sebesar 10% dari TotalPembelian.

4. Gunakan Switch-Case dan IF-else.

Script Program :

#include <conio.h>#include <stdio.h>#include <iostream.h>main(){char *nb, *bns, lagi;int kd, hrg, pot, jml, ttl, ppn;clrscr();atas:cout<<"Masukan Kode Buku [1|2|3] : ";cin>>kd;switch(kd){case 1:{hrg=50000;nb="Sukses Belajar Borland C++";}break;case 2:{hrg=35000;nb="Kunci Pribadi Sukses";}break;case 3:{hrg=45000;nb="Mencari Mutiara di Dalam Hati";}break;default:cout<<"Maaf Kode Salah "<<endl;goto atas;break;}cout<<"Jumlah Pembelian Buku Anda : ";cin>>jml;ttl=hrg*jml;if(jml>=3){pot=0.1*ttl;bns="Note Book";}else{pot=0;bns="Maaf Tidak Dapat Bonus";}ppn=0.02*ttl;

Page 19: MODUL ALGORITMADANPEMROGRAMAN - BSI

19Algoritma dan Pemrograman

clrscr();cout<<" *** TOKO BUKU UNIX BGT***"<<endl;cout<<" JL. Bahagia Euy No.7"<<endl;cout<<" Telp.07318519"<<endl;cout<<"==============================="<<endl;cout<<endl;cout<<"Nama Buku : "<<nb<<endl;cout<<"Harga Buku : "<<hrg<<endl;cout<<"Potongan : Rp "<<pot<<endl;cout<<"Bonus : "<<bns<<endl;cout<<"Total Bayar : "<<ttl<<endl;cout<<"PPN : Rp "<<ppn<<endl<<endl;cout<<"=============================="<<endl<<endl;cout<<" ###*TERIMA KASIH*###"<<endl<<endl;cout<<"Apa Mau Diinput Data Lagi?";cin>>lagi;if(lagi=='y'||lagi=='Y')clrscr();goto atas;getch();}

Page 20: MODUL ALGORITMADANPEMROGRAMAN - BSI

20Algoritma dan Pemrograman

Pertemuan 7

Nested If (If Bersarang)

Notes :Penggunaan strcpy dan strcmp : strcpy (string copy)

Digunakan untuk memasukkan data yang bernilai string ke dalamnama variable yang juga bernilai string.Bentuk Umum :

strcpy(nama_variabel,”isi nilainya”)

strcmp (string compare)Digunakan untuk menyeleksi nilai kondisi data yang bernilai string.Bentuk Umum :

!strcmp(nama variable,”isi nilainya”)

atau

strcmp(nama_variabel,”isi nilainya”)==0

Contoh :

Tampilan Input :

Tampilan Output :

Ketentuan :1. Perintah Input : Nama Pembeli, Kode T-Shirt, Ukuran dan Jumlah

Beli.2. Merk dan Harga T-Shirt ditentukan berdasarkan table berikut :

KodeT-Shirt

Merk UkuranS M L

PS Polo Shirt 50000 60000 80000SK Skater Shirt 40000 50000 60000

3. Total Bayar = Harga x Jumlah Beli.4. Uang Kembali = Uang Bayar – Total Bayar.

Page 21: MODUL ALGORITMADANPEMROGRAMAN - BSI

21Algoritma dan Pemrograman

Script Program :

//Deklarasi File Header#include<conio.h>#include<stdio.h>#include<iostream.h>

main(){//Deklarasi Variabelchar nama[20],kode[2],ukuran,merk[20],lagi;int jumbel,harga,totbay,ubay,ukem;atas://Inputclrscr();cout<<" BLOSSOM DISTRO"<<endl;cout<<"-------------------------------------"<<endl;cout<<endl;cout<<"Nama Pembeli : ";gets(nama);ulangkode:cout<<"Kode T-Shirt [PS|SS] : ";cin>>kode;ulangukuran:cout<<"Ukuran T-Shirt [S|M|L] : ";cin>>ukuran;//Percabanganif(!strcmp(kode,"PS") || !strcmp(kode,"ps")){strcpy(merk,"Polo Shirt");if (ukuran=='S' || ukuran=='s')

{harga=50000;}elseif (ukuran=='M' || ukuran=='m')

{harga=60000;}elseif (ukuran=='L' || ukuran=='l')

{harga=80000;}else

{cout<<"Ukuran Salah ...!!!"<<endl;goto ulangukuran;}

}elseif(!strcmp(kode,"SS") || !strcmp(kode,"ss")){strcpy(merk,"Skater Shirt");if (ukuran=='S' || ukuran=='s')

{harga=40000;}elseif (ukuran=='M' || ukuran=='m')

{harga=50000;}elseif (ukuran=='L' || ukuran=='l')

{harga=60000;}else

{cout<<"Ukuran Salah ...!!!"<<endl;goto ulangukuran;}

}else{cout<<"Kode Salah ...!!!"<<endl;goto ulangkode;}

cout<<"Jumlah Beli : ";cin>>jumbel;totbay=harga*jumbel;//Outputclrscr();cout<<" BLOSSOM DISTRO"<<endl;cout<<"----------------------------------------"<<endl;cout<<endl;cout<<"Nama Pembeli : "<<nama<<endl;cout<<"Kode Merk T-Shirt : "<<kode<<endl;cout<<"Merk T-Shirt : "<<merk<<endl;cout<<"Ukuran T-Shirt : "<<ukuran<<endl;cout<<"-------------------------------------"<<endl;cout<<"Harga : Rp. "<<harga<<endl;cout<<"Jumlah Beli : "<<jumbel<<endl;cout<<"Total Bayar : Rp. "<<totbay<<endl;

Page 22: MODUL ALGORITMADANPEMROGRAMAN - BSI

22Algoritma dan Pemrograman

cout<<"-------------------------------------"<<endl;cout<<"Uang Bayar : Rp. ";cin>>ubay;ukem=ubay-totbay;cout<<"Uang Kembali : Rp. "<<ukem<<endl;cout<<"-------------------------------------"<<endl;cout<<"Input Data Lagi [Y|T] ...? ";cin>>lagi;if (lagi=='Y' || lagi=='y')

{goto atas;}getch();}

Tampilan Input :

Tampilan Output :

Ketentuan : Untuk ketentuan Paket :

Paket Nama Paket Harga1 Mewah 20000002 Sedang 15000003 Sederhana 1000000

Untuk Jenis Atraksi :Atraksi Nama Atraksi Harga

B Badut 300000S Sulap 500000P Penyanyi Cilik 600000

Potongan :Jika Total keseluruhan >= Rp. 2.000.000 maka mendapatkan potongan 10%dari Total dan Bonus = “Black Forest”, selain itu tidak dapat potongan danBonus = “ Maaf Tidak Dapat Bonus”.

Total Bayar = Total keseluruhan – Potongan Uang Kembali = Uang Bayar – Total Bayar. Gunakan Switch-Case dan Fungsi IF.

Page 23: MODUL ALGORITMADANPEMROGRAMAN - BSI

23Algoritma dan Pemrograman

Pertemuan 8Looping (Perulangan)

Looping merupakan perulangan statement atau pernyataan denganjumlah tertentu jika kondisi terpenuhi.

5. ForPerulangan dilakukan selama syarat terpenuhi.Bentuk Umum :

for (nilai awal ; syarat perulangan ; peubah nilai){pernyataan;pernyataan;}

Contoh 1 :

#include <stdio.h>#include <conio.h>#include <iostream.h>main(){int a;for(a=1;a<=10;a++)cout<<a;getch();}

Hasil : 123456789

Contoh 2 :

#include <stdio.h>#include <conio.h>#include <iostream.h>main(){int a;for(a=1;a<=10;a+=2)

cout<<a;getch();}

Hasil : 13579

6. WhilePerulangan dilakukan selama syarat terpenuhi.Bentuk Umum :

while (syarat){pernyataan ;pernyataan ;}

Contoh :

#include <stdio.h>#include <conio.h>#include <iostream.h>main(){int a=1;clrscr();while(a<=10){cout<<a;++a;}

getch();}

Hasil : 12345678910

7. Do…WhilePernyataan dilakukan hingga syarat tidak terpenuhi.

Page 24: MODUL ALGORITMADANPEMROGRAMAN - BSI

24Algoritma dan Pemrograman

Bentuk Umum :

do{pernyataan ;pernyataan ;}

while (syarat);

Contoh :

#include <stdio.h>#include <conio.h>#include <iostream.h>main(){int a=2;do{cout<<a;a+=2; }

while(a<=10);getch();}

Hasil : 246810

8. Nested For (For Bersarang)Bentuk Umum :

for (inisialisasi; syarat perulangan; pencacah){pernyataan ;for(inisialisasi; syarat perulangan; pencacah){pernyataan ;}

}

Contoh 1 :

#include <stdio.h>#include <conio.h>#include <iostream.h>main(){int a,b;for(a=1;a<=5;a++){cout<<endl;

for(b=a;b<=5;b++)cout<<a; }

getch();}

Hasil :111112222333445

Page 25: MODUL ALGORITMADANPEMROGRAMAN - BSI

25Algoritma dan Pemrograman

Pertemuan 9Array

Array atau larik adalah salah satu tipe data terstruktur yangterdiri dari sejumlah komponen-komponen yang mempunyai tipe datayang sama. Suatu array mempunyai jumlah komponen yangbanyaknya tetap. Banyaknya komponen dalam suatu larikditunjukkan oleh suatu indek untuk membedakan variabel yang satudengan yang lainnya.

Array dapat dikelompokkan menjadi :1. Array Berdimensi Satu.

Sebelum digunakan variabel array perlu dideklarasikan, sepertihalnya deklarasi variabel, hanya saja diikuti oleh suatu index yangmenunjukkan jumlah maksimum data yang disediakan.Bentuk Umum:

Keterangan :Tipe Data : Menyatakan tipe data yang digunakan.Ukuran :Menyatakan jumlah maksimum elemen array.

Contoh :float nil_akhir [ 6 ]

2. Array Berdimensi Dua.Array berdimensi 2 tersusun dalam bentuk baris dan kolom,dimana indeks pertama menunjukkan baris dan indeks keduamenunjukkan kolom. Array dimensi dua dapat digunakan sepertipendataan nilai, pendataan penjualan,dsb.

BentukUmum :

Keterangan :Tipe Data : Menyatakan tipe data yang digunakan.Index-1 : Menyatakan Jumlah Baris.Index-2 : Menyatakan Jumlah Kolom.

Contoh :int data_jual [3] [3]

Keterangan : setw() : Mengatur lebar field untuk suatu nilai sebesar n

karakter. setprecision : Mengatur presisi bilangan pecahan sebesar digit. setiosflags : Mengatur perataan paragraph ios::left : Mengatur rata-kiri terhadap field yang diatur melalui

setw() ios::right : Mengatur rata-kanan terhadap field yang diatur

melalui setw()

Tipe data elemen array

Nama Array

Jumlah Elemen Array

Jumlah KolomJumlah Baris

Nama ArrayTipe Data Elemen Array

Page 26: MODUL ALGORITMADANPEMROGRAMAN - BSI

26Algoritma dan Pemrograman

Contoh Array Berdimensi Satu :

#include<stdio.h>#include<conio.h>#include<iostream.h>#include<iomanip.h>main(){int i;char nm[5][20];int nilai1[5],nilai2[5],hasil[5];clrscr();for(i=1;i<=2;i++){cout<<"Data Ke-"<<i<<endl;cout<<"Nama Siswa :";gets(nm[i]);cout<<"Nilai Mid Tes :";cin>>nilai1[i];cout<<"Nilai Final :";cin>>nilai2[i];hasil[i]=(nilai1[i]*0.40)+(nilai2[i]*0.60);cout<<endl;}cout<<"=========================================="<<endl;cout<<"No. Nama Siswa Nilai Nilai Hasil"<<endl;cout<<" Mid Tes Final Ujian"<<endl;cout<<"=========================================="<<endl;for(i=1;i<=2;i++){cout<<setiosflags(ios::left)<<setw(4)<<i;cout<<setiosflags(ios::left)<<setw(15)<<nm[i];cout<<setiosflags(ios::left)<<setw(10)<<nilai1[i];cout<<setiosflags(ios::left)<<setw(10)<<nilai2[i];cout<<setiosflags(ios::left)<<setw(6)<<hasil[i]<<endl;}cout<<"================================================"<<endl;getch();}

Contoh Array Berdimensi dua :

#include <stdio.h>#include <conio.h>#include <iostream.h>#include <iomanip.h>main(){int i,j;int data_jual[4][4];clrscr();for(i=1;i<=3;i++){

for(j=1;j<=3;j++){cout<<"Data Ke- "<<i<<""<<j<<endl;cout<<"Jumlah Penjualan :";cin>>data_jual[i][j];}

}cout<<endl;cout<<"\nData Penjualan Pertahun"<<endl;cout<<"------------------------"<<endl;cout<<"No 2001 2002 2003 "<<endl;cout<<"------------------------"<<endl;for(i=1;i<=3;i++){

cout<<setiosflags(ios::left)<<setw(2)<<i;for(j=1;j<=3;j++){cout<<setiosflags(ios::right)<<setw(4);cout<<data_jual[i][j];cout<<" ";}cout<<endl;

}

cout<<"------------------------"<<endl;getch();}

Page 27: MODUL ALGORITMADANPEMROGRAMAN - BSI

27Algoritma dan Pemrograman

Pertemuan 10

Latihan :Tampilan Input :

Tampilan Program

Tampilan Output :

Ketentuan Soal :

Kode Film Judul Film HargaSewa/Hari

D-AAC Ayat – Ayat Cinta Rp. 15.000H-KSM Kereta Setan Manggarai Rp. 12.500A-JBD James Bond Rp. 12.000K-DOU Drop Out Rp. 10.000A-KPD Kungfu Panda Rp. 8.500

Total = Lama Sewa x Harga Sewa. Jika Lama Sewa lebih dari 10 hari maka akan mendapat potongan

10% dari total. Total Bayar = Total – Potongan.

===========================================RENTAL FILM *BSI RENTAL*

===========================================Nama Penyewa :Kode Film :Lama Sewa :===========================================

===========================================STRUK PEMBAYARAN RENTAL BSI

===========================================Nama Penyewa :Judul Film :Lama Sewa :===========================================Harga Sewa : Rp.Total : Rp.Potongan : Rp.Total Bayar : Rp.===========================================

TERIMA KASIH ATAS KUNJUNGANNYA===========================================

Page 28: MODUL ALGORITMADANPEMROGRAMAN - BSI

28Algoritma dan Pemrograman

Quiz C++ Tipe A

Buatlah Proram dengan tampilan seperti di bawah ini :Tampilan Input :

Tampilan Output :

Ketentuan Soal :1. Buat directori baru di Drive C dengan nama Quiz.2. Rubah direktori penyimpanan menjadi C:/Quiz.3. Simpan program dengan nama NIM masing – masing diikuti

dengan tipe soal Quiz.Contoh : C:/Quiz/1208xxxxA.

4. Perintah Input : Nama Pembeli, Kode Konser, Pilih Jenis Tiket,Jumlah Beli dan Uang Bayar.

5. Harga Tiket ditentukan berdasarkan Kode Konser dan Jenis Tiket :

KodeKonser Judul Jenis Tiket

Tribune VIP VVIP1 Java Jazz

FestivalRp. 50.000 Rp. 75.000 Rp. 100.000

2 Young Diva InConcert

Rp. 50.000 Rp. 100.000 Rp. 150.000

3 LA LightIndieFest

Rp. 50.000 Rp. 90.000 Rp. 130.000

6. Total Harga = Jumlah Beli x Harga Tiket.7. Potongan ditentukan berdasarkan Jumlah Beli :

Jika Jumlah Beli lebih dari 5 maka akan mendapatkan potongan10% dari total harga.

Jika Jumlah Beli kurang dari 5 maka tidak mendapatkanpotongan.

8. Total Bayar = Total Harga – Potongan.9. Uang Kembali = Uang Bayar – Total Bayar.10.Waktu pengerjaan 60 Menit.

Selamat Mengerjakan…!!!

================================================Penjualan Tiket Konser

================================================Nama Pembeli :Kode Konser [1/2/3] :Jenis Tiket1. Tribune2. VIP3. VVIPPilih Jenis Tiket [1/2/3] :Jumlah Beli :

================================================Penjualan Tiket Konser

================================================Nama Pembeli :Judul Konser :Jenis Tiket :Harga Tiket : Rp.Jumlah Beli :================================================Total Harga : Rp.Potongan : Rp.Total Bayar : Rp.================================================Uang Bayar : Rp.Uang Kembali : Rp.================================================

Have Fun And Enjoy The Show…

Page 29: MODUL ALGORITMADANPEMROGRAMAN - BSI

29Algoritma dan Pemrograman

Quiz C++ Tipe BBuatlah Proram dengan tampilan seperti di bawah ini :Tampilan Input :

Tampilan Output :

Ketentuan Soal :1. Buat directori baru di Drive C dengan nama Quiz.2. Rubah direktori penyimpanan menjadi C:/Quiz.3. Simpan program dengan nama NIM masing – masing diikuti

dengan tipe soal Quiz.Contoh : C:/Quiz/1208xxxxB.

4. Perintah Input : Pilih Jenis Privider, No Handphone, Pilih NominalPulsa, Jumlah Beli dan Uang Bayar.

5. Harga Pulsa ditentukan berdasarkan Jenis Provider dan NominalPulsa :

KodePrivider Jenis Provider Nominal Pulsa

10 20 501 Simpati Rp. 12.000 Rp. 22.000 Rp. 52.0002 IM3 Rp. 11.000 Rp. 21.000 Rp. 51.0003 XL Rp. 11.500 Rp. 22.000 Rp. 52.000

6. Total Harga = Jumlah Beli x Harga Pulsa.7. Potongan ditentukan berdasarkan Total Harga :

Jika Total Harga lebih dari 50.000 maka akan mendapatkanpotongan 10% dari total harga.

Jika Total Harga kurang dari 50.000 maka tidak mendapatkanpotongan.

8. Total Bayar = Total Harga – Potongan.9. Uang Kembali = Uang Bayar – Total Bayar.10.Waktu pengerjaan 60 Menit.

Selamat Mengerjakan…!!!

================================================Evolution Celluler Shop

================================================Jenis Provider1. Simpati2. IM33. XLPilih Kode Provider [1/2/3] :No Handphone :Pilih Nominal Pulsa [10/20/50] :Jumlah Beli :

================================================Evolution Celluler Shop

================================================No Handphone :Jenis Provider :Nominal Pulsa :Harga Pulsa : Rp.Jumlah Beli :================================================Total Harga : Rp.Potongan : Rp.Total Bayar : Rp.================================================Uang Bayar : Rp.Uang Kembali : Rp.================================================

Beli Pulsa Baru Bicara…

Page 30: MODUL ALGORITMADANPEMROGRAMAN - BSI

30Algoritma dan Pemrograman

Pertemuan 11Function (Fungsi)

Fungsi merupakan blok dari kode yang dirancang untukmelaksanakan tugas khusus.Pada intinya fungsi berguna untuk : Mengurangi pengulangan penulisan program yang berulang atau

sama. Program menjadi terstruktur sehingga mudah dipahami.

Struktur Fungsi :

tipe_data nama_fungsi (parameter){

pernyataan/statement;pernyataan/statement;

}

Contoh Soal :

Tampilan Input :

Script Program :

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

garis(){cout<<"-------------------------------------"<<endl;}

int hasil(int uts,int uas){return ((uts+uas)/2);}

main(){char nim[8],nama[20],*ket,lagi;int uts,uas;float rata;ulang:clrscr();garis();cout<<"\tPerhitungan Nilai Mahasiswa"<<endl;garis();cout<<"Nomor Induk Mahasiswa : ";cin>>nim;cout<<"Nama Mahasiswa : ";gets(nama);cout<<"Nilai UTS : ";cin>>uts;cout<<"Nilai UAS : ";cin>>uas;rata=hasil(uts,uas);if (rata>60)

{ket="LULUS";}else

{ket="GAGAL";}garis();cout<<"Nilai Rata-Rata Mahasiswa dengan NIM"<<nim<<" adalah : "<<rata<<endl;garis();

---------------------------------------------------------------------------------Perhitungan Nilai Mahasiswa

---------------------------------------------------------------------------------Nomor Induk Mahasiswa : <input>Nama Mahasiswa : <input>Nilai UTS : <input>Nilai UAS : <input>---------------------------------------------------------------------------------Nilai Rata-Rata Mahasiswa dengan NIM <output> adalah<output>---------------------------------------------------------------------------------Input Data Lagi [Y|T]…?

Page 31: MODUL ALGORITMADANPEMROGRAMAN - BSI

31Algoritma dan Pemrograman

cout<<"Input Data Lagi [Y|T]...? ";cin>>lagi;if (lagi=='Y' || lagi=='y')

{goto ulang;}getch();}

Latihan Soal :

Tampilan Input dan Output :

Ketentuan Soal :Buat Fungsi untuk menghitung Total Bayar.

---------------------------------------------------------------------------------Transaksi Penjualan Handphone

---------------------------------------------------------------------------------Nomor Transaksi : <input>Nama Pembeli : <input>Merk Handphone : <input>Tipe Handphone : <input>Kondisi [Baru|Second] : <input>Harga : <input>Jumlah Beli : <input>---------------------------------------------------------------------------------Total Bayar : Rp. <output>---------------------------------------------------------------------------------Uang Bayar : Rp. <input>Uang Kembali : Rp. <output>---------------------------------------------------------------------------------

TERIMA KASIH…

Page 32: MODUL ALGORITMADANPEMROGRAMAN - BSI

32Algoritma dan Pemrograman

Pertemuan 12Function (Fungsi) Lanjutan

Contoh Soal :

Tampilan Input :

Tampilan Output :

Ketentuan Soal :Sebuah Toko Kue mempunyai daftar menu sebagai berikut :Kode Daftar Kue HargaBB Bolu Black Forest Rp. 60.000CC Chesse Cake Rp. 45.000BC Banana Cake Rp. 25.500SC Strawbery Cake Rp. 35.000

Gunakan perintah percabangan (if dan strcmp) untuk menentukanharga kue.

Jumlah Bayar = Harga Kue x Jumlah Beli. Buat Fungsi untuk mencetak garis. Buat Fungsi untuk menentukan Nama dan Harga Kue. Buat Fungsi untuk menghitung Jumlah Bayar.

Script Program :

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

garis(){cout<<"------------------------------------"<<endl;}

int hitung(int harga,int jumbel){return harga*jumbel;}

char* nakue(char kokue[2]){if (!strcmp(kokue,"BB") || !strcmp(kokue,"bb"))

{return "Bolu Black Forest";}elseif (!strcmp(kokue,"CC") || !strcmp(kokue,"cc"))

{return "Chesse Cake";}

DAFTAR MENU TOKO “NIKMAT”*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*1. BOLU BLACK FOREST (BB)2. CHESSE CAKE (CC)3. BANANA CAKE (BC)4. STRAWBERI CAKE (SC)

Nama Pembeli :--------------------------------------------------------------------------------------------Kode Kue :Jumlah Beli :

TOKO KUE “NIKMAT”STRUK PEMBAYARAN

*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*Nama Pembeli :Kode Kue :Nama Kue :Harga Kue : Rp.Jumlah Kue :--------------------------------------------------------------------------------------------Jumlah Bayar : Rp.

TERIMA KASIH ATAS KUNJUNGANNYA

Page 33: MODUL ALGORITMADANPEMROGRAMAN - BSI

33Algoritma dan Pemrograman

elseif (!strcmp(kokue,"BC") || !strcmp(kokue,"bc"))

{return "Banana Cake";}else

{return "Strawbery Cake";}}

int harga(char kokue[2]){if (!strcmp(kokue,"BB") || !strcmp(kokue,"bb"))

{return 65000;}elseif (!strcmp(kokue,"CC") || !strcmp(kokue,"cc"))

{return 45000;}elseif (!strcmp(kokue,"BC") || !strcmp(kokue,"bc"))

{return 25000;}else

{return 35000;}}

main(){char kokue[2],nama[30];int jumbel,jumbay;clrscr();cout<<"DAFTAR MENU TOKO NIKMAT"<<endl;cout<<"*--*--*--*--*--*--*--*--*"<<endl;cout<<"1. BOLU BLACK FOREST (BB)"<<endl;cout<<"2. CHESSE CAKE (CC)"<<endl;cout<<"3. BANANA CAKE (BC)"<<endl;cout<<"4. STRAWBERI CAKE (SC)"<<endl;cout<<endl;cout<<"Nama Pembeli : ";gets(nama);garis();cout<<"Kode Kue : ";cin>>kokue;cout<<"Jumlah Beli : ";cin>>jumbel;jumbay=hitung(harga(kokue),jumbel);

clrscr();cout<<" TOKO KUE NIKMAT"<<endl;cout<<" STRUK PEMBAYARAN"<<endl;cout<<"*--*--*--*--*--*--*--*--*--*--*--*--*"<<endl;cout<<"Nama Pembeli : "<<nama<<endl;cout<<"Kode Kue : "<<kokue<<endl;cout<<"Nama Kue : "<<nakue(kokue)<<endl;cout<<"Harga Kue : Rp. "<<harga(kokue)<<endl;cout<<"Jumlah Kue : "<<jumbel<<endl;garis();cout<<"Jumlah Bayar : Rp. "<<jumbay<<endl;cout<<endl;cout<<" TERIMA KASIH ATAS KUNJUNGANNYA"<<endl;getch();}

Page 34: MODUL ALGORITMADANPEMROGRAMAN - BSI

34Algoritma dan Pemrograman

Pertemuan 13MACRO

Macro disebut dengan preprocessor directives, yaitu instruksiyang diberikan kepada compiler, sesaat sebelum proseskompilasi berlangsung.

Penggunaan #define#define digunakan untuk mendefinisikan suatu nilai kepada suatunama konstanta.Bentuk Umum :

#define nama_konstanta teks

Contoh :Tampilan Input :

Tampilan Output :

Ketentuan Soal :1. Data Film

Kode Film Judul Film Teater1 Prince Of Persia 12 How To Train Your Dragon 23 The Last Air Bender 34 The Twilight : Eclipse 4

2. Jam TayangKode Jam Jam Tayang

1 12.302 15.303 18.30

3. Harga Tiket untuk semua film 20000.

*********************************************************************BIOSKOP Evolution

*********************************************************************1. Prince Of Persia2. How To Train Your Dragon3. The Last Air Bender4. The Twilight : Eclipse

*********************************************************************Nama Pembeli : (input)Pilih Kode Film [1/2/3/4] : (input)Jam Tayang Film1. 12.302. 15.303. 18.30

Pilih Jam Tayang [1/2/3] : (input)Jumlah Beli Tiket : (input)

************************************************************************BIOSKOP Evolution

************************************************************************Nama Pembeli : (output)Judul Film : (output)Teater : (output)Jam Tayang : (output)Harga Tiket : (output)Jumlah Beli Tiket : (output)************************************************************************Jumlah Bayar : (output)************************************************************************Uang Bayar : (input)Uang Kembali : (output)************************************************************************

Your Satisfaction Is Our Priority...Ingin Input Data Lagi [Y/T]…? (input)

Page 35: MODUL ALGORITMADANPEMROGRAMAN - BSI

35Algoritma dan Pemrograman

4. Jumlah Bayar = Harga Tiket * Jumlah Beli.Script Program :

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

#define awal {#define akhir }#define mulai() main()#define cetak cout Deklarasi #define#define input cin#define hapus() clrscr()#define tampil() getch()#define harga 20000

mulai()awalchar nama[20],kode,*judul,kojam,*jam,*teater,lagi;float jumbel,jumbay,ubay,ukem;ulang:hapus();cetak<<"********************************************"<<endl;cetak<<" BIOSKOP Evolution"<<endl;cetak<<"********************************************"<<endl;cetak<<"\t1. Prince Of Persia"<<endl;cetak<<"\t2. How To Train Your Dragon"<<endl;cetak<<"\t3. The Last Air Bender"<<endl;cetak<<"\t4. The Twilight : Eclipse"<<endl;cetak<<"********************************************"<<endl;cetak<<"Nama Pembeli : ";gets(nama);cetak<<"Pilih Kode Film [1|2|3|4] : ";input>>kode;cetak<<"Jam Tayang"<<endl;cetak<<"\t1. 12.30"<<endl;cetak<<"\t2. 15.30"<<endl;cetak<<"\t3. 18.30"<<endl;cetak<<"Pilih Jam Tayang [1|2|3] : ";input>>kojam;cetak<<"Jumlah Beli Tiket : ";input>>jumbel;if (kode=='1')

{judul="Prince Of Persia";teater="Teater 1";}else

if (kode=='2'){judul="How To Train Your Dragon";teater="Teater 2";}

elseif (kode=='3')

{judul="The Last Air Bender";teater="Teater 3";}else

{judul="The Twilight : Eclipse";teater="Teater 4";}

if (kojam=='1'){jam="12.30";}

elseif (kojam=='2')

{jam="15.30";}else

{jam="18.30";}

jumbay=harga*jumbel;

hapus();cetak<<"*****************************************"<<endl;cetak<<" BIOSKOP Evolution"<<endl;cetak<<"*****************************************"<<endl;cetak<<"Nama Pembeli : "<<nama<<endl;cetak<<"Judul Film : "<<judul<<endl;cetak<<"Teater : "<<teater<<endl;cetak<<"Jam Tayang : "<<jam<<endl;cetak<<"Harga Tiket : "<<harga<<endl;cetak<<"Jumlah Beli Tiket : "<<jumbel<<endl;cetak<<"*****************************************"<<endl;cetak<<"Jumlah Bayar : Rp. "<<jumbay<<endl;cetak<<"*****************************************"<<endl;cetak<<"Uang Bayar : Rp. ";input>>ubay;ukem=ubay-jumbay;cetak<<"Ueng Kembali : Rp. "<<ukem<<endl;cetak<<"*****************************************"<<endl;cetak<<" YOUR SATISFACTION IS OUR PRIORITY..."<<endl;cetak<<"Ingin Input Data Lagi[Y|T]...? ";cin>>lagi;if (lagi=='Y' || lagi=='y')

goto ulang;tampil();akhir

Page 36: MODUL ALGORITMADANPEMROGRAMAN - BSI

36Algoritma dan Pemrograman

Pertemuan 14MACRO Lanjutan

Pembuatan File Header

Contoh :Tampilan Input :

Tampilan Output :

Ketentuan Soal :1. Perintah input : Tanggal dan Nomor Induk Karyawan.2. Nama, Jabatan dan Gaji Pokok karyawan ditentukan berdasarkan

NIP.NIP Nama Jabatan Gaji Pokok

2010091231 Firmanto Mauludani Manager 30000002010083312 Windi Tri Mulyani Personalia 25000002010034890 Febri Hardiansyah HRD 2000000

3. Tunjangan ditentukan berdasarkan JabatanManager mendapat tunjangan 30% dari Gaji Pokok.Personalia mendapat tunjangan 20% dari Gaji Pokok.HRDmendapat tunjangan 10% dari Gaji Pokok.

4. PPh = 5% dari Gaji Pokok.5. Gaji Bersih = (Gaji Pokok + Tunjangan Jabatan) – PPh

Script Program :Buat 2 File

File Pertama Simpan dengan nama atur.h

#define awal {#define akhir }#define mulai() main()#define cetak cout#define input cin#define hapus() clrscr()#define tampil() getch()

Data KaryawanPT. Success SE7EN

-------------------------------------------------------------------------------Tanggal Input : <input>Nomor Induk Karyawan : <input>

Slip Gaji KaryawanPT. Success SE7EN

-------------------------------------------------------------------------------Tanggal Input : <output>-------------------------------------------------------------------------------Nomor Induk Karyawan : <output>Nama Karyawan : <output>Jabatan : <output>Gaji Pokok : Rp. <output>Tunjangan Jabatan : Rp. <output>PPh 5% : Rp. <output>-------------------------------------------------------------------------------Gaji Bersih : Rp. <output>

Page 37: MODUL ALGORITMADANPEMROGRAMAN - BSI

37Algoritma dan Pemrograman

File Kedua Simpan dengan nama Karyawan

#include<stdio.h>#include<conio.h>#include<iostream.h>#include"atur.h" //memanggil file header atur.h

mulai()awalchar tanggal[20],nik[10],*nama,*jabatan;long gapok,tunj,pph,gaber;hapus();cetak<<" Data Karyawan"<<endl;cetak<<" PT. Success SE7EN"<<endl;cetak<<"-----------------------------------------"<<endl;cetak<<"Tanggal Input : ";gets(tanggal);cetak<<"Nomor Induk Karyawan : ";input>>nik;if(!strcmp(nik,"2010091231"))

{nama="FirmantoMauludani";jabatan="Manager";gapok=3000000;}elseif(!strcmp(nik,"2010083312"))

{nama="Windi TriMulyani";jabatan="Personalia";gapok=2500000;}else

{nama="Febri Hardiansyah";jabatan="HRD";gapok=2000000;}

if(!strcmp(jabatan,"Manager")){tunj=0.3*gapok;}

elseif(!strcmp(jabatan,"Personalia"))

{tunj=0.2*gapok;}else

{tunj=0.1*gapok;}

pph=0.05*gapok;gaber=(gapok+tunj)-pph;hapus();cetak<<" Slip Gaji Karyawan"<<endl;cetak<<" PT. Success SE7EN"<<endl;cetak<<"-----------------------------------------"<<endl;

cetak<<"Tanggal Input "<<tanggal<<endl;cetak<<"-----------------------------------------"<<endl;

cetak<<"Nomor Induk Karyawan : "<<nik<<endl;cetak<<"Nama Karyawan : "<<nama<<endl;cetak<<"Jabatan : "<<jabatan<<endl;cetak<<"Gaji Pokok : Rp. "<<gapok<<endl;cetak<<"Tunjangan Jabatan : Rp. "<<tunj<<endl;cetak<<"PPh 5% : Rp. "<<pph<<endl;cetak<<"-----------------------------------------"<<endl;cetak<<"Gaji Bersih : Rp. "<<gaber<<endl;tampil();akhir

Latihan Soal :Tampilan Input :

Penerimaan Mahasiswa BaruAkademi FREEDOM

-------------------------------------------------------------------------------Nama Calon Mahasiswa : <input>Jurusan[MI] Manajemen Informatika[TK] Teknik Komputer[KA] Komputerisasi AkuntansiPilih Kode Jurusan : <input>Waktu Kuliah[P] Pagi[M] MalamPilih Kode Waktu Kuliah : <input>

Page 38: MODUL ALGORITMADANPEMROGRAMAN - BSI

38Algoritma dan Pemrograman

Tampilan Output :

Ketentuan Soal :1. Perintah input : Nama Calon Mahasiswa, Kode Jurusan dan Kode

Waktu Kuliah.2. Biaya Pendaftaran = 100000.3. Biaya Gedung = 1500000.4. Biaya Kuliah ditentukan berdasarkan Jurusan dan Waktu Kuliah

Jurusan Waktu KuliahPagi Malam

Manajemen Informatika 900000 1200000Teknik Komputer 1200000 1500000Komputerisasi Akuntansi 1000000 1300000

5. Total Biaya = Biaya Pendaftaran + Biaya Gedung + Biaya Kuliah

Penerimaan Mahasiswa BaruAkademi FREEDOM

-------------------------------------------------------------------------------Nama Calon Mahasiswa : <output>Jurusan : <output>Waktu Kuliah : <output>Biaya Pendaftaran : Rp. <output>Biaya Kuliah : Rp. <output>Biaya Gedung : Rp. <output>-------------------------------------------------------------------------------Total Biaya : Rp. <output>-------------------------------------------------------------------------------

Page 39: MODUL ALGORITMADANPEMROGRAMAN - BSI

39Algoritma dan Pemrograman

Pertemuan 15STRUCTUR

Structure digunakan untuk mengelompokkan sejumlah datayang mempunyai tipe data yang berbeda. Variable-variable yangmembentuk sebuah structure dinamakan elemen structure. Structuresama seperti record.Penggunaan structure nama_structur.nama_variabelDeklarasi Structure

struct{

elemen structure ;….….

} nama_tipe_structure ;

Contoh :Tampilan Input :

Tampilan Output :

Ketentuan Soal :1. Uang pendaftaran 100000.2. Biaya materi ditentukan berdasarkan Nama Paket dan Materi.

KodeMateri NamaMateri Paket

Reguler Intensif PrivateVB Visual Basic 300000 500000 800000WP Web Programming 400000 800000 1000000

3. Total Bayar = Uang Pendaftaran + Biaya Materi.4. Bonus diperoleh berdasarkan Total Bayar.

Jika Total Bayar > 1000000 maka akan mendapatkan Potongan 10%dari Total Harga dan Bonus Flash Disk 8 GB, selain itu hanyamendapat bonus Flash Disk 2 GB.

5. Sisa Angsuran = Total Bayar – Uang Muka.6. Buat structur untuk mengelompokkan data kursus dengan nama

kursus.

SE7EN Computer Center-------------------------------------------------------------------------------Tanggal Pendaftaran : <input>No Pendaftaran : <input>-------------------------------------------------------------------------------Nama Pendaftar : <input>Pilihan Paket[1] Reguler[2] Intensif[3] PrivatePilih Kode Paket [1|2|3] : <input>Pilihan Materi[VB] Visual Basic[WP] Web Programming : <input>Pilih Kode Materi : <input>

SE7EN Computer CenterData Pendaftaran

-------------------------------------------------------------------------------Tanggal Pendaftaran : <output>No Pendaftaran : <output>Uang Pendaftaran : <output>-------------------------------------------------------------------------------Nama Pendaftar : <output>Paket Yang Dipilih : <output>Materi Yang Dipilih : <output>Biaya Materi : Rp. <output>Total Bayar : Rp. <output>Potongan : Rp. <output>Jumlah Bayar : Rp. <output>Bonus : <output>-------------------------------------------------------------------------------Uang Muka : Rp. <input>Sisa Angsuran : Rp. <output>

Page 40: MODUL ALGORITMADANPEMROGRAMAN - BSI

40Algoritma dan Pemrograman

Script Program :#include<conio.h>#include<stdio.h>#include<iostream.h>

main(){struct{char kopaket,*nmpaket,komateri[2],*nmmateri;long biaya;}kursus;char tanggal[10],nodaf[10],nama[20],*bonus;long pot,jumbay,tobia,umuka,sisaang;const udaftar=100000;clrscr();cout<<" SE7EN Computer Center"<<endl;cout<<"------------------------------------------"<<endl;cout<<"Tanggal Pendaftaran : ";gets(tanggal);cout<<"No Pendaftaran : ";cin>>nodaf;cout<<"------------------------------------------"<<endl;cout<<"Nama Pendaftar : ";gets(nama);cout<<"Pilihan Paket"<<endl;cout<<"[1] Reguler"<<endl;cout<<"[2] Intensif"<<endl;cout<<"[3] Private"<<endl;cout<<"Pilih Kode Paket [1|2|3] : ";cin>>kursus.kopaket;cout<<"Pilihan Materi"<<endl;cout<<"[VB] Visual Basic"<<endl;cout<<"[WP] Web Programming"<<endl;cout<<"Pilih Kode Materi : ";cin>>kursus.komateri;if (kursus.kopaket=='1')

{kursus.nmpaket="Reguler";}elseif (kursus.kopaket=='2')

{kursus.nmpaket="Intensif";}else

{kursus.nmpaket="Private";}

if (!strcmp(kursus.komateri,"VB")){kursus.nmmateri="Visual Basic";if (kursus.kopaket=='1')

{kursus.biaya=300000;}

elseif (kursus.kopaket=='2')

{kursus.biaya=500000;}else

{kursus.biaya=800000;}}

else{kursus.nmmateri="Web Programming";if (kursus.kopaket=='1')

{kursus.biaya=400000;}elseif (kursus.kopaket=='2')

{kursus.biaya=800000;}else

{kursus.biaya=1000000;}}

tobia=udaftar+kursus.biaya;if (tobia>=1000000)

{pot=0.1*tobia;bonus="Flash Disk 8 GB";}else

{pot=0;bonus="Flash Disk 2 GB";}jumbay=tobia-pot;clrscr();cout<<" SE7EN Computer Center"<<endl;cout<<"------------------------------------------"<<endl;cout<<"Tanggal Pendaftaran : "<<tanggal<<endl;cout<<"No Pendaftaran : "<<nodaf<<endl;cout<<"Uang Pendaftaran : Rp. "<<udaftar<<endl;cout<<"------------------------------------------"<<endl;cout<<"Nama Pendaftar : "<<nama<<endl;cout<<"Paket Yang Dipilih : "<<kursus.nmpaket<<endl;cout<<"Materi Yang Dipilih : "<<kursus.nmmateri<<endl;cout<<"Biaya Materi : Rp. "<<kursus.biaya<<endl;cout<<"Total Biaya : Rp. "<<tobia<<endl;cout<<"Potongan : Rp. "<<pot<<endl;cout<<"Jumlah Bayar : Rp. "<<jumbay<<endl;cout<<"Bonus : "<<bonus<<endl;cout<<"------------------------------------------"<<endl;cout<<"Uang Muka : Rp. ";cin>>umuka;sisaang=tobia-umuka;cout<<"Sisa Angsuran : Rp. "<<sisaang;getch();}

Page 41: MODUL ALGORITMADANPEMROGRAMAN - BSI

41Algoritma dan Pemrograman

Pertemuan 16STRUCT – ARRAY

Contoh :Tampilan Input :

Tampilan Output :

Ketentuan Program :1. Buat dua struct dengan ketentuan :

a. struct Film : judul, genre, jenis dan lama.b. struct Penyewa : tanggal, nama dan jumlah sewa.

2. Harga Sewa ditentukan berdasarkan Jenis.New Release = 5000Recent Release = 3000Katalog = 2000

3. Subtotal = Harga Sewa x Lama Sewa.4. Total Bayar = Total dari Subtotal.5. Potongan ditentukan berdasarkan Jumlah DVD yang disewa.

Jika Jumlah DVD yang disewa lebih dari 5 maka akan mendapatpotongan 10% dari Total Bayar, selain itu tidak mendapat potongan.

6. Jumlah Bayar = Total Bayar – Potongan.

Script Program :#include<stdio.h>#include<conio.h>#include<iostream.h>#include<iomanip.h>

garis(){cout<<"-----------------------------------------"<<endl;

}

main(){struct{char judul[25],genre[10],kojenis,jenis[20];int lama,harga;}film[10];

struct{char tanggal[20],nama[20];int jumse;}penyewa;

SE7EN Season DVD Rental-------------------------------------------------------------------------------Tanggal Sewa : <input>Nama Penyewa : <input>Masukkan Jumlah Sewa : <input>-------------------------------------------------------------------------------Data DVD Ke – nJudul Film : <input>Genre : <input>Jenis[1] New Release[2] Recent Release[3] KatalogPilih Jenis Film : <input>Lama Sewa : <input>

SE7EN Season DVD Rental--------------------------------------------Tanggal Sewa : <output>Nama Penyewa : <output>----------------------------------------------------------------------------------------No Judul Film Genre Jenis Harga Lama Subtotal----------------------------------------------------------------------------------------1.2.----------------------------------------------------------------------------------------Total Bayar : Rp.Potongan : Rp.Jumlah Bayar : Rp.

Page 42: MODUL ALGORITMADANPEMROGRAMAN - BSI

42Algoritma dan Pemrograman

float tobay=0,subtotal[10],subjumse,potongan,jumbay;int i;clrscr();cout<<"\tSE7EN Season DVD Rental"<<endl;garis();cout<<"Tanggal Sewa : ";gets(penyewa.tanggal);cout<<"Nama Penyewa : ";cin>>penyewa.nama;cout<<"Masukkan Jumlah Sewa : ";cin>>penyewa.jumse;garis();for(i=1;i<=penyewa.jumse;i++){cout<<"Data DVD Ke - "<<i<<endl;cout<<"Judul Film : ";gets(film[i].judul);cout<<"Genre : ";gets(film[i].genre);cout<<"Jenis"<<endl;cout<<"[1] New Release"<<endl;cout<<"[2] Recent Release"<<endl;cout<<"[3] Katalog"<<endl;cout<<"Pilih Jenis Film : ";cin>>film[i].kojenis;cout<<"Lama Sewa : ";cin>>film[i].lama;cout<<endl;

if(film[i].kojenis=='1'){strcpy(film[i].jenis,"New Release");film[i].harga=5000;

}else if(film[i].kojenis=='2'){strcpy(film[i].jenis,"Recent Release");film[i].harga=3000;

}else{strcpy(film[i].jenis,"Katalog");film[i].harga=2000;

}subtotal[i]=film[i].lama*film[i].harga;tobay=tobay+subtotal[i];}

if(penyewa.jumse>5){potongan=0.1*tobay;}else

{potongan=0;}jumbay=tobay-potongan;

clrscr();cout<<"\tSE7EN Season DVD Rental"<<endl;garis();cout<<"Tanggal Sewa : "<<penyewa.tanggal<<endl;cout<<"Nama Penyewa : "<<penyewa.nama<<endl;garis();cout<<"No Judul Film Genre Jenis Harga LamaSubtotal"<<endl;garis();for(i=1;i<=penyewa.jumse;i++){cout<<setiosflags(ios::left)<<setw(4)<<i;cout<<setiosflags(ios::left)<<setw(10)<<film[i].judul;cout<<setiosflags(ios::left)<<setw(18)<<film[i].genre;cout<<setiosflags(ios::left)<<setw(28)<<film[i].jenis;cout<<setiosflags(ios::left)<<setw(20)<<film[i].harga;cout<<setiosflags(ios::left)<<setw(20)<<film[i].lama;cout<<setiosflags(ios::left)<<setw(20)<<subtotal[i];}garis();cout<<"Total Bayar : Rp. "<<tobay<<endl;cout<<"Potongan : Rp. "<<potongan<<endl;cout<<"Jumlah Bayar : Rp. "<<jumbay<<endl;garis();getch();}

Page 43: MODUL ALGORITMADANPEMROGRAMAN - BSI

43Algoritma dan Pemrograman

Pertemuan 17

STRUC – ARRAY – FUNCTION upah buruh harian

Input :

Output :

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

int harian (int gol){if(gol==1){return 25000;}elseif(gol==2){return 15000;}else{return 10000;}}int lembur (int gol){if(gol==1){return 7500;}elseif(gol==2){return 5000;}else{return 3500;}}main(){struct{char nama[20];int jamkerja,gol;float totalupah,lembur,harian;}buruh[100];int i,j;long total=0;clrscr();cout<<" PT. KARYA PRIMA MANDIRI"<<endl;cout<<"--------------------------------"<<endl;cout<<"Perhitungan Upah Buruh Harian"<<endl;cout<<"Banyak Data Buruh : ";cin>>j;cout<<endl;for(i=1;i<=j;i++){cout<<"Data Ke - "<<i<<endl;

Page 44: MODUL ALGORITMADANPEMROGRAMAN - BSI

44Algoritma dan Pemrograman

cout<<"Nama Pegawai : ";gets(buruh[i].nama);cout<<"Golongan [1/2/3] : ";cin>>buruh[i].gol;cout<<"Jumlah Jam Kerja : ";cin>>buruh[i].jamkerja;if(buruh[i].jamkerja > 8 ){buruh[i].lembur=(buruh[i].jamkerja- 8)*lembur(buruh[i].gol);}else{buruh[i].lembur=0;}cout<<endl;buruh[i].totalupah=harian(buruh[i].gol)+buruh[i].lembur;total=total+buruh[i].totalupah;}clrscr();cout<<" PT. KARYA PRIMA MANDIRI"<<endl;cout<<"------------------------------------------"<<endl;cout<<"No. Nama Buruh Gol Upah Harian Upah Lembur TotalUpah"<<endl;cout<<"------------------------------------------"<<endl;for(i=1;i<=j;i++){cout<<setiosflags(ios::left)<<setw(4)<<i;cout<<setiosflags(ios::left)<<setw(13)<<buruh[i].nama;cout<<setiosflags(ios::left)<<setw(6)<<buruh[i].gol;cout<<setiosflags(ios::left)<<setw(14)<<harian(buruh[i].gol);cout<<setiosflags(ios::left)<<setw(10)<<buruh[i].lembur;cout<<setiosflags(ios::left)<<setw(10)<<buruh[i].totalupah;cout<<endl;}cout<<"------------------------------------------"<<endl;cout<<"Total Uang Yang Dikeluarkan Perusahaan : Rp."<<total<<endl;cout<<"------------------------------------------"<<endl;getch();}

Page 45: MODUL ALGORITMADANPEMROGRAMAN - BSI

45Algoritma dan Pemrograman

Pertemuan 18CLASS

Class merupakan struktur data dari object. Class mempunyaipersamaan dengan structure.

Bentuk Umum :

Contoh :

Tampilan Input :

Tampilan Output :

Ketentuan :1. Perintah input : Nama Pembeli,Kode Pizza, Kode Ukuran, Ukuran

Jumlah Beli dan Uang Bayar.2. Buat class dengan nama pizza dengan anggota : Kode Pizza, Nama

Pizza, Ukuran dan Harga.3. Proses :

Nama dan Harga Pizza ditentukan berdasarkan Kode dan UkuranPizza :KodePizza

NamaPizza

Ukuran PizzaPersonal Sedang Besar

ML Meat Lovers 30000 50000 80000SS Super Suprime 40000 60000 90000BP Beetato Peeperoni 50000 70000 100000

4. Sub Total = Harga * Jumlah Beli.

--------------------------------------------------------------------------------------TOKO PIZZA LEZAT

--------------------------------------------------------------------------------------Nama Pembeli : <input>Nama Pizza[ML] Meat Lovers[SS] Super Suprime[BP] Beetato PeeperoniKode Pizza : <input>Ukuran [P|S|B] : <input>Jumlah Beli : <input>

--------------------------------------------------------------------------------------DETAIL PEMBELIAN PIZZA

--------------------------------------------------------------------------------------Nama Pembeli : <output>Nama Pizza : <output>Ukuran Pizza : <output>Harga Pizza : Rp. <output>Jumlah Beli : <output>--------------------------------------------------------------------------------------Sub Total : Rp. <output>Potongan : Rp. <output>Total Bayar : Rp. <output>--------------------------------------------------------------------------------------Uang Bayar : Rp. <input>Uang Kembali : Rp. <output>--------------------------------------------------------------------------------------Input Data Lagi [Y | T] : <input>

Page 46: MODUL ALGORITMADANPEMROGRAMAN - BSI

46Algoritma dan Pemrograman

5. Jika Jumlah Beli > 5 maka akan mendapatkan potongan 10% dariSub Total, selain itu akan mendapatkan potongan 5% dari Sub Total.

6. Total Bayar = Subtotal – Potongan.7. Uang Kembali = Uang Bayar – Total Bayar.

Script Program :

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

char* ukuranpizza(char koukur){if(koukur=='P')

{return"Personal";}elseif(koukur=='S')

{return"Sedang";}else

{return"Besar";}}

main(){class{public:char kopizza[2],*napizza,koukur,*ukuran;int harga;}pizza;

char nama[20],lagi;float jumbel,subtotal,potongan,tobay,ubay,ukem;awal:clrscr();cout<<"------------------------------------------"<<endl;cout<<" TOKO PIZZA LEZAT"<<endl;cout<<"------------------------------------------"<<endl;cout<<"Nama Pembeli : ";gets(nama);cout<<"Nama Pizza"<<endl;cout<<"[ML] Meat Lovers"<<endl;cout<<"[SS] Super Supreme"<<endl;cout<<"[BP] Beetato Peeperoni"<<endl;

cout<<"Kode Pizza : ";cin>>pizza.kopizza;cout<<"Ukuran [P|S|B] : ";cin>>pizza.koukur;cout<<"Jumlah Beli : ";cin>>jumbel;if(!strcmp(pizza.kopizza,"ML"))

{pizza.napizza="Meat Lovers";if(pizza.koukur=='P')

{pizza.harga=30000;}elseif(pizza.koukur=='S')

{pizza.harga=50000;}else

{pizza.harga=80000;}}

elseif(!strcmp(pizza.kopizza,"SS"))

{pizza.napizza="Super Supreme";if(pizza.koukur=='P')

{pizza.harga=40000;}elseif(pizza.koukur=='S')

{pizza.harga=60000;}else

{pizza.harga=90000;}}

else{pizza.napizza="Beetato Peeperoni";if(pizza.koukur=='P')

{pizza.harga=50000;}elseif(pizza.koukur=='S')

{pizza.harga=70000;}else

{pizza.harga=100000;}}

subtotal=jumbel*pizza.harga;if(jumbel>5)

Page 47: MODUL ALGORITMADANPEMROGRAMAN - BSI

47Algoritma dan Pemrograman

{potongan=0.1*subtotal;}else

{potongan=0.05*subtotal;}tobay=subtotal-potongan;clrscr();cout<<"------------------------------------------"<<endl;cout<<" DETAIL PEMBELIAN PIZZA"<<endl;cout<<"------------------------------------------"<<endl;cout<<"Nama Pembeli : "<<nama<<endl;cout<<"Nama Pizza : "<<pizza.napizza<<endl;cout<<"Ukuran Pizza :"<<ukuranpizza(pizza.koukur)<<endl;cout<<"Harga : Rp. "<<pizza.harga<<endl;cout<<"Jumlah Beli : "<<jumbel<<endl;cout<<"------------------------------------------"<<endl;cout<<"Subtotal : Rp. "<<subtotal<<endl;cout<<"Potongan : Rp. "<<potongan<<endl;cout<<"Total Bayar : Rp. "<<tobay<<endl;cout<<"------------------------------------------"<<endl;cout<<"Uang Bayar : Rp. ";cin>>ubay;ukem=ubay-tobay;cout<<"Uang Kembali : Rp. "<<ukem<<endl;cout<<"------------------------------------------"<<endl;cout<<"Input Data Lagi [Y/T]...? ";cin>>lagi;if(lagi=='Y'||lagi=='y'){goto awal;}getch();}

Page 48: MODUL ALGORITMADANPEMROGRAMAN - BSI

48Algoritma dan Pemrograman

Pertemuan 19CLASS – ARRAY

Tampilan Input :

Tampilan Output :

Ketentuan :Kode Tujuan Berat Harga

1 Bandung>=100 40000>=40 20000< 40 10000

2 Semarang>=100 75000>=40 30000< 40 20000

3 Yogya>=100 80000>=40 40000< 40 30000

Buat class dengan nama ekspedisi dengan anggota : Kode Kota,Kota Tujuan, Berat Barang dan Harga.

Total Harga = Total harga pengiriman. Pajak = 10% dari Total Harga. Total Bayar = Total Harga + Pajak.

Script Program :

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

main(){class{public:char kokota,*kota;int berat,harga;}ekspedisi[100];

int i,j;char nama[20],tanggal[20];float toharga=0,pajak,tobay;

LIGHT UP EXPEDITION--------------------------------------------------------------------------------Nama Pelanggan : <input>Tanggal Pengiriman : <input>Jumlah Barang : <input>

Data Barang Ke – iKode Kota Tujuan : <input>Berat Barang : <input>

Faktur Pengiriman Barang-----------------------------------------Nama Pelanggan : <output>Tanggal Pengiriman : <output>Jumlah Barang : <output>---------------------------------------------------------------------------No Kota Tujuan Berat Harga---------------------------------------------------------------------------123---------------------------------------------------------------------------Total Harga : Rp. <output>Pajak : Rp. <output>Total Bayar : Rp. <output>

Page 49: MODUL ALGORITMADANPEMROGRAMAN - BSI

49Algoritma dan Pemrograman

clrscr();cout<<" LIGHT UP EXPRDITION"<<endl;cout<<"------------------------------------------"<<endl;cout<<"Nama Pelanggan : ";gets(nama);cout<<"Tanggal Pengiriman : ";gets(tanggal);cout<<"Jumlah Barang : ";cin>>j;cout<<endl;for(i=1;i<=j;i++){cout<<"Data Barang Ke - "<<i<<endl;cout<<"Kode Kota Tujuan : ";cin>>ekspedisi[i].kokota;cout<<"Berat Barang : ";cin>>ekspedisi[i].berat;cout<<"------------------------------------------"<<endl;if(ekspedisi[i].kokota=='1')

{ekspedisi[i].kota="Bandung";if(ekspedisi[i].berat>=100)

{ekspedisi[i].harga=40000;}elseif(ekspedisi[i].berat>=40)

{ekspedisi[i].harga=20000;}else

{ekspedisi[i].harga=10000;}}

elseif(ekspedisi[i].kokota=='2')

{ekspedisi[i].kota="Semarang";if(ekspedisi[i].berat>=100)

{ekspedisi[i].harga=75000;}elseif(ekspedisi[i].berat>=40)

{ekspedisi[i].harga=30000;}else

{ekspedisi[i].harga=20000;}}

else{ekspedisi[i].kota="Yogya";if(ekspedisi[i].berat>=100)

{ekspedisi[i].harga=80000;}elseif(ekspedisi[i].berat>=40)

{ekspedisi[i].harga=40000;}

else{ekspedisi[i].harga=30000;}

}

toharga=toharga+ekspedisi[i].harga;}pajak=0.1*toharga;tobay=toharga+pajak;clrscr();cout<<"Faktur Pengiriman Barang"<<endl;cout<<"------------------------"<<endl;cout<<"Nama Pelanggan : "<<nama<<endl;cout<<"Tanggal Pengiriman : "<<tanggal<<endl;cout<<"Jumlah Barang : "<<j<<endl;cout<<"-------------------------------------"<<endl;cout<<"No Kota Tujuan Berat Harga"<<endl;cout<<"-------------------------------------"<<endl;for(i=1;i<=j;i++){cout<<setiosflags(ios::left)<<setw(4)<<i;cout<<setiosflags(ios::left)<<setw(18)<<ekspedisi[i].kota;cout<<setiosflags(ios::left)<<setw(10)<<ekspedisi[i].berat;cout<<setiosflags(ios::left)<<setw(5)<<ekspedisi[i].harga<<endl;}cout<<"-------------------------------------"<<endl;cout<<"Total Harga : Rp. "<<toharga<<endl;cout<<"Pajak : Rp. "<<pajak<<endl;cout<<"Total Bayar : Rp. "<<tobay<<endl;getch();}

Page 50: MODUL ALGORITMADANPEMROGRAMAN - BSI

50Algoritma dan Pemrograman

Pertemuan 20CLASS – ARRAY – FUNCTION loper koran

Input :

AGEN KORAN SINAR BUMI

*********************************************************

Banyak Pengecer :

Data Pengecer ke – 1

Nama Pengecer =

Nama Koran[M / R / S] =

Masukan Jumlah Ambil =

Masukan Jumlah Keluar =

Output :

AGEN KORAN SINAR BUMI

*********************************************************

No|Nama |Nama |Jumlah|Jumlah |Jumlah |Harga|Total

|Pengecer|Koran|Ambil |Kembali|Terjual|Koran|Penjualan

*********************************************************

1.

2.

*********************************************************

Ketentuan :

Buatlah Function dengan nama hargakoran,

1. Ketentuannya :Kode Koran Nama Koran Harga Eceran

M Media Indonesia 2500

R Republika 2000

S Sindo 3000

2. Banyak pengecer diinput untuk menyesuaikan data pengecer yangada!

3. Nama pengecer, nama Koran, jumlah ambil dan jumlah Korankembali di input gunakan Array.

4. Jumlah koran terjual didapat dari jumlah Koran yang diambildikurangi jumlah Koran yang dikembalikan.

5. Total Penjualan diperoleh dari jumlah koran terjual dikali hargaKoran.

Page 51: MODUL ALGORITMADANPEMROGRAMAN - BSI

51Algoritma dan Pemrograman

DAFTAR PUSTAKA

Al Fatta, H. (2006). Dasar Pemrograman C++. Yogyakarta: ANDIOFFSET.

Kadir, A. (2010). Mudah Menjadi Programmer C++. Yogyakarta:ANDI OFFSET.