• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM ALGORITMA & STRUKTUR DATA II PROGRAM KASIR KANTIN DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN C++

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAPORAN PRAKTIKUM ALGORITMA & STRUKTUR DATA II PROGRAM KASIR KANTIN DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN C++"

Copied!
21
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM

ALGORITMA & STRUKTUR DATA II

PROGRAM KASIR KANTIN

DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN C++

Disusun Oleh : Dwi Yuliarto

201401051

Dosen Pengampu : Padosroha Marbun, S.Kom

SISTEM INFORMASI

SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO

(2)

Daftar Isi Bab I ... 1 Dasar Teori ... 1 Dasar-dasar Pemrograman C++ ... 1 Tipe Data... 2 Interger ... 2

Float atau real ... 2

Boolean atauLogical ... 2

Character atau karakter ... 3

1.1 Program halodunia.cpp ... 3

1.2 Output Program halodunia.exe ... 4

Bab II ... 5

Listing Program ... 5

2.1 Program kasir.cpp ... 5

2.2 Output Program kasir.exe ... 12

Penjelasan Listing Program ... 17

Bab III ... 19

Kesimpulan ... 19

(3)

Bab I

Dasar Teori

Dasar-dasar Pemrograman C++

Suatu bahasa C++ ditulis dari beberapa elemen, antara lain :

 Pernyataan : Satu atau beberapa ekspresi yang di akhiri dengan tanda titik koma (;)

 Blok Pernyataan : terdiri dari satu atau beberapa pernyataan yang diawali dengan tanda { dan diakhiri dengan tanda }

Blok Pernyataan selalu diawali dengan suatu instruksi.

 Blok Fungsi : terdiri dari satu atau beberapa pernyataan yang dirancang untuk melakukan proses tertentu.

Blok fungsi dimulai dengan nama fungsi dan diikuti dengan tanda ( ) dan tanda { }

/* Program terpendek dalam bahasa C++ */ /* Nama File: ………. . . */

/* Identitas Perancang */

/* Deskripsi ringkas dari program */ Main ( )

{ }

#include

#include adalah salah satu pengarah praprosesor yang tersedia pada C++. Bentuk Umum : 1. #include <namafile>

2. #include ”namafile”

Bentuk pertama mengisyaratkan pencarian file dilakukan pada direktori khusus (direktori file include, yang diset melalui compiler). Sedangkan bentuk kedua menyatakan bahwa pencarian file (namafile) dilakukan pertama kali pada direktori kerja akan dicari pada direktori-direktori yang tercantum pada variable lingkungan yang bernama PATH (Oskar Ika Adi Nugroho, ST., MT., 2015)

(4)

Tipe Data

Tipe data sederhana tunggal berdasarkan jenisnya dibagi menjadi 4 yaitu Interger (Bilangan Bulat), Float atau real (Bilangan decimal / pecahan), Boolean (logical atau tipe data untuk mengambil keputusan, dan Character (karakter) (Yosep Murya K.A , ST., 2002)

Interger

Adalah sebuah tipe data yang nilainya tidak memiliki titik decimal atau biasa disebut sebagai bilangan bulat. Ada 5 tipe data yang termasuk dalam kelompok interger yaitu short int, Interger, Long Int, byte, word (Yosep Murya K.A , ST., 2002)

Type Batas Nilai Format

Short Int -128 … 127 Signed 8 bit

Interger -32768 … 32767 Signed 16 bit

Long Int -2147483678 … 2147483677 Signed 32 bit

Byte 0 … 255 Unsigned 8 bit

Word 0 … 65535 Unsigned 16 bit

Float atau real

Adalah sebuah tipe data yang nilainya memiliki titik decimal atau biasa disebut sebagai bilangan pecahan (Yosep Murya K.A , ST., 2002)

Type Memory Batas Nilai Format

Single 4 byte 1.5x10E-45 .. 3.4x10E38 7-8 Double 8 byte 5.0x10E-324 .. 1.7x10E308 15-16 Extended 10 byte 1.9x10E-4951 .. 1.1x10E4932 19-20 Comp 8 byte -2E+63+1 .. 2E+63+1 19-20

Boolean atauLogical

Adalah tipe data yang hanya mengenal dua buah nilai, yaitu nilai benar (True) dan nilai salah (False). Atau dapat juga dinyatakan dengan simbol 1 untuk nilai benar (True) dan 0 untuk nilai salah (False).

(5)

Operasiyang dilakukan oleh tipe data Boolean dikenal dengan nama Operasi Boolean atau Operasi Logika, yang menghasilkan nilai Benar (True) dan nilaiSalah (False).Operator umum yang digunakan dalam Operasi Logika adalah Not, And, Or, dan Xor.

Input NOT (!) AND (&&) OR ( | | ) A B C !A !B !C A&&B&&C A | | B | | C 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1

Character atau karakter

Adalah himpunan karakter yang terdiri dari aksara (simbol) yang meliputi digit numeric, character alphabetic, dan special character. Data yang termasuk dalam karakter adalah semua huruf abjad, angka, dan karakter-karakter khusus seperti ‘&’ , ‘@’ , ‘%’ , ‘#’ , ‘*’ , dan lain-lain. (Yosep Murya K.A , ST., 2002)

Contoh Program Sederhana 1.1 Program halodunia.cpp #include <iostream> using namespace std; int main()

{

cout << "Halo Dunia yang Ceria!!?" << endl << endl; system("pause");

return 0; }

(6)
(7)

Bab II

Listing Program

2.1 Program kasir.cpp

#include <iostream> using namespace std;

int pilMember, pilMenu, pilMakanan, pilMinuman, pilRokok, harga, jrok, jmin, byr, diskon, totbyr;

int bymak = 0, bymin = 0, byrok = 0, uangByr, kembalian, total; //membuat fungsi menu makanan

void makanan() {

makan: //output list menu makanan

cout << "=================================" << endl; cout << "No. Makanan \t\tHarga" << endl;

cout << "=================================" << endl; cout << "1. gado-gado \t\tRp.4,000 \n" << endl; cout << "2. pecel \t\tRp.5,500 \n" << endl;

cout << "3. Indomie Telor \tRp.7,000 \n" << endl; cout << "4. Kembali Ke Main Menu\t" << endl;

cout << "=================================" << endl; cout << "inputkan pilihan :";

cin >> pilMakanan; //input pilihan menu makanan //membuat navigasi menu makanan

switch (pilMakanan) {

case 1: //navigasi ke menu makanan no.1

cout << "Makanan Akan segera di antar" << endl; cout << "silahkan Menunggu sebentar ^_^" << endl; bymak += +4000;

goto makan; // kembali ke list makanan break;

case 2: //navigasi ke menu makanan no.2

cout << "Makanan Akan segera di antar" << endl; cout << "silahkan Menunggu sebentar ^_^" << endl; bymak += +5500;

goto makan; // kembali ke list makanan break;

case 3: //navigasi ke menu makanan no.3

cout << "Makanan Akan segera di antar" << endl; cout << "silahkan Menunggu sebentar ^_^" << endl; bymak += +7000;

goto makan; // kembali ke list makanan break;

case 4: //navigasi ke menu makanan no.4 break; // keluar ke main menu

default: cout << " pilihan yang anda masukan tidak ada di list menu makanan" << endl;

(8)

goto makan; // kembali ke list makanan }

}

//membuat fungsi menu minuman void minuman() {

minum: //output list menu minuman

cout << "=================================" << endl; cout << "No. Minuman \tHarga" << endl;

cout << "=================================" << endl; cout << "1. Es Teh Manis \tRp.3,000 \n" << endl; cout << "2. Juice \t\tRp.5,500 \n" << endl;

cout << "3. Air Putih \t\tGRATIS \n" << endl; cout << "4. Kembali Ke Main Menu\t" << endl;

cout << "=================================" << endl; cout << "inputkan pilihan :";

cin >> pilMinuman; //input menu minuman //membuat navigasi menu makanan

switch (pilMinuman) {

case 1: //navigasi ke menu minuman no.1

cout << "Anda Membeli Es Teh Manis Sebanyak: 1 Gelas" << endl; cout << "silahkan Menunggu sebentar ^_^" << endl;

bymin += +3000;

goto minum; // kembali ke list minuman break;

case 2: //navigasi ke menu minuman no.2

cout << "Anda Membeli Juice Sebanyak: 1 Gelas" << endl; cout << "silahkan Menunggu sebentar ^_^" << endl;

bymin += +5500;

goto minum; // kembali ke list minuman break;

case 3: //navigasi ke menu minuman no.3

cout << "AIR PUTIH Silahkan Ambil Sendiri Sepuasnya" << endl; bymin += +0;

goto minum; // kembali ke list minuman break;

case 4: //navigasi ke menu minuman no.4 break; // keluar ke main menu

default:

cout << " pilihan yang anda masukan tidak ada di list menu minuman" << endl;

goto minum; }

}

//membuat fungsi menu rokok void Rokok() {

rokok: //output list menu rokok

(9)

cout << "No. Rokok \t\tHarga" << endl;

cout << "======================================" << endl; cout << "1. LA Lights \t\tRp.15,000 \n" << endl;

cout << "2. MARLBORO \t\tRp.18,000 \n" << endl; cout << "3. DJARUM SUPER 16 \tRp.17,500 \n" << endl; cout << "4. Kembali Ke Main Menu \t\t" << endl;

cout << "======================================" << endl; cout << "inputkan pilihan :";

cin >> pilRokok; //input menu rokok //membuat navigasi menu rokok

switch (pilRokok) {

case 1: //navigasi ke menu rokok no.1

cout << "Anda Membeli LA Lights Sebanyak:"; cin >> jrok;

cout << "Anda Membeli LA Ligths Sebanyak: " << jrok << " Bungkus" << endl;

//membuat kondisi jika membeli >5 dan <=10 dapat diskon 10% if (jrok>5 && jrok <= 10) {

harga = 15000; byr = jrok*harga;

diskon = (harga * 10) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 10% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 10%)" << endl;

}

//membuat kondisi yang lain jika membeli >10 dan <=20 dapat diskon 20%

else if (jrok>10 && jrok <= 20) { harga = 15000;

byr = jrok*harga;

diskon = (harga * 20) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 20% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 20%)" << endl;

}

//membuat kondisi yang lain jika membeli >20 dapat diskon 30% else if (jrok>20) {

harga = 15000; byr = jrok*harga;

diskon = (harga * 30) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 30% Yaitu : Rp." << diskon << endl;

(10)

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 30%)" << endl;

}

//membuat kondisi selain kondisi diatas maka tidak mendapatkan diskon

else {

harga = 15000; byr = jrok*harga; diskon = 0;

totbyr = byr - diskon;

cout << "Anda Membayar : Rp." << totbyr << endl;

cout << "Sorry, Anda Tidak Mendapat Diskon, Beli >5 untuk mendapatkan Diskon !" << endl;

}

byrok += +totbyr;

goto rokok; // kembali ke list rokok break;

case 2: //navigasi ke menu rokok no.2 cout << "Anda Membeli MARLBORO Sebanyak:"; cin >> jrok;

cout << "Anda Membeli MARLBORO Sebanyak: " << jrok << " Bungkus" << endl;

//membuat kondisi jika membeli >5 dan <=10 dapat diskon 10% if (jrok>5 && jrok <= 10) {

harga = 18000; byr = jrok*harga;

diskon = (harga * 10) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 10% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 10%)" << endl;

}

//membuat kondisi yang lain jika membeli >10 dan <=20 dapat diskon 20%

else if (jrok>10 && jrok <= 20) { harga = 18000;

byr = jrok*harga;

diskon = (harga * 20) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 20% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 20%)" << endl;

}

//membuat kondisi yang lain jika membeli >20 dapat diskon 30% else if (jrok>20) {

(11)

harga = 18000; byr = jrok*harga;

diskon = (harga * 30) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 30% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 30%)" << endl;

}

//membuat kondisi selain kondisi diatas maka tidak mendapatkan diskon

else {

harga = 18000; byr = jrok*harga; diskon = 0;

totbyr = byr - diskon;

cout << "Anda Membayar : Rp." << totbyr << endl;

cout << "Sorry, Anda Tidak Mendapat Diskon, Beli >5 untuk mendapatkan Diskon !" << endl;

}

byrok += +totbyr;

goto rokok; // kembali ke list rokok break;

case 3: //navigasi ke menu rokok no.3

cout << "Anda Membeli DJARUM SUPER 16 Sebanyak:"; cin >> jrok;

cout << "Anda Membeli DJARUM SUPER 16 Sebanyak: " << jrok << " Bungkus" << endl;

//membuat kondisi jika membeli >5 dan <=10 dapat diskon 10% if (jrok>5 && jrok <= 10) {

harga = 17500; byr = jrok*harga;

diskon = (harga * 10) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 10% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 10%)" << endl;

}

//membuat kondisi yang lain jika membeli >10 dan <=20 dapat diskon 20%

else if (jrok>10 && jrok <= 20) { harga = 17500;

byr = jrok*harga;

diskon = (harga * 20) / 100; totbyr = byr - diskon;

(12)

cout << "Anda Mendapat Diskon 20% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 20%)" << endl;

}

//membuat kondisi yang lain jika membeli >20 dapat diskon 30% else if (jrok>20) {

harga = 17500; byr = jrok*harga;

diskon = (harga * 30) / 100; totbyr = byr - diskon;

cout << "Anda Mendapat Diskon 30% Yaitu : Rp." << diskon << endl;

cout << "Anda Cukup Membayar : Rp." << totbyr << " Dari Harga : Rp." << byr << "(Sebelum Diskon 30%)" << endl;

}

//membuat kondisi selain kondisi diatas maka tidak mendapatkan diskon

else {

harga = 17500; byr = jrok*harga; diskon = 0;

totbyr = byr - diskon;

cout << "Anda Membayar : Rp." << totbyr << endl;

cout << "Sorry, Anda Tidak Mendapat Diskon, Beli >5 untuk mendapatkan Diskon !" << endl;

}

byrok += +totbyr;

goto rokok; // kembali ke list rokok break;

case 4: //navigasi ke menu rokok no.4 break; // keluar ke main menu

default:

cout << " pilihan yang anda masukan tidak ada di list rokok" << endl;

goto rokok; // kembali ke list rokok }

}

//membuat fungsi menu Banner void bannerCafe() {

cout << "==================================" << endl; cout << " Kantin 'Bu Kodhar' " << endl; cout << " selamat datang di Kantin Kami " << endl; cout << " [email protected] " << endl; cout << "==================================" << endl; }

(13)

void pembayaran() {

mbayar: //menu list pembayaran

cout << "total pembelian Makanan \t: Rp." << bymak << endl; cout << "total pembelian Minuman \t: Rp." << bymin << endl; cout << "total pembelian Rokok \t\t: Rp." << byrok << endl; total = bymak + bymin + byrok;

cout << "TOTAL \t\t\t\t: Rp." << total << endl; cout << "BAYAR \t\t\t\t: Rp.";

cin >> uangByr;

cout << "---" << endl;

//membuat kondisi jika pembayaran kurang dari jumlah bayar if (uangByr<total) {

cout << "Uang Anda Kurang Rp." << total - uangByr << " -> Mimimum Bayar Rp." << total << endl;

goto mbayar; // kembali ke list pembayaran }

//membuat kondisi jika pembayaran lebih dari jumlah bayar else if (uangByr>total) {

cout << "Kembalian Anda \t\t\t: Rp." << uangByr - total << endl;

cout << "Terima Kasih"; }

//membuat kondisi jika pembayaran sama dengan jumlah bayar else

{

cout << "Uang Anda Pas. Terima Kasih" << endl; }

//jika pembayaran sama dengan jumlah bayar maka akan dikeluarkan dari main menu

exit(0); }

//membuat fungsi main menu int main() {

menu: //output main menu bannerCafe();

cout << "| Main Menu |" << endl; cout << "1. Daftar makanan" << endl; cout << "2. Daftar Minuman" << endl; cout << "3. Daftar Rokok" << endl; cout << "4. bayar" << endl;

cout << "5. Keluar Kantin" << endl;

cout << "==================================" << endl; cout << "masukan pilihan :";

cin >> pilMenu; //input main menu //membuat navigasi main menu switch (pilMenu) {

(14)

bannerCafe(); //memanggil fungsi Banner makanan(); //memanggil fungsi menu makanan goto menu; // kembali ke list main menu break;

case 2: //navigasi ke main menu no.2

bannerCafe(); //memanggil fungsi Banner minuman(); //memanggil fungsi menu minuman goto menu; // kembali ke list main menu break;

case 3: //navigasi ke main menu no.3

bannerCafe(); //memanggil fungsi Banner Rokok(); //memanggil fungsi menu rokok goto menu; // kembali ke list main menu break;

case 4: //navigasi ke main menu no.4

pembayaran(); //memanggil fungsi Pembayaran goto menu; // kembali ke list main menu break;

case 5: //navigasi ke main menu no.5

cout << "Terima Kasih Sudah Mampir Ke Kantin Kami"; exit(0);

break; default:

cout << "Pilihan Tidak Ada, Pilih Menu 1-5"; break;

} }

2.2 Output Program kasir.exe User Interface Menu Kantin :

(15)

Langkah 1 : Masukkan pilihan no.1 untuk membeli makanan

Langkah 2 : inputkan 1 →untuk memilih menu makanan gado-gado order 1 :

- Gado-gado : Rp.4,000

Langkah 3 : inputkan 4 →untuk memilih Main Menu

(16)

Langkah 4 : Masukkan pilihan no.2 untuk membeli minuman.

Langkah 5 : inputkan 1 →untuk memilih menu minuman Juice order 1 :

- Gado-gado : Rp.4,000 Oder 2 :

- Juice : Rp.5,500

Langkah 6 : inputkan 4 →untuk memilih Main Menu Langkah 7 : Masukkan pilihan no.3 untuk membeli rokok

(17)

Langkah 8 : inputkan 1 →untuk memilih menu rokok LA Lights. order 1 : - Gado-gado : Rp.4,000 Oder 2 : - Juice : Rp.5,500 Oder 3: - LA Lights : Rp.15,000

Langkah 9 : inputkan 4 →untuk memilih Main Menu. Langkah 9 : inputkan 4 →untuk memilih Bayar.

Maka akan keluar Tagihan berdasarkan order yang dipilih sebelumnya yaitu : Order 1 : Gado-gado : Rp.4,000

Order 2 : Juice : Rp.5,500 Order 3 : LA Lights : Rp.15,000 + Total : Rp.24,500

Langkah 10 : Selanjutnya Kita diminta memasukkan jumlah uang yang dibayarkan jika pembayaran kurang dari Total Tagihan maka akan memunculkan hasil berikut :

(18)

Langkah 11 : Selanjutnya Kita diminta memasukkan kembali jumlah uang yang dibayarkan jika pembayaran lebih dari Total Tagihan maka akan memunculkan hasil berikut :

Program Closed

Program Diskon Pembelian

Disini pemrogram hanya menerapkan diskon pada pembelian Rokok dengan ketentuan sebagai berikut :

Jika Pembelian < 5 bungkus maka Tidak mendapatkan diskon

Jika Pembelian >5 dan ≤ 10 maka akan mendapatkan diskon sebesar 10% Jika Pembelian >10 dan ≤ 20 maka akan mendapatkan diskon sebesar 20% Jika Pembelian >20 maka akan mendapatkan diskon sebesar 30%

Untuk output programnya sebagai berikut: Diskon 10%

(19)

Diskon 20%

Diskon 30%

Penjelasan Listing Program

#include adalah salah satu pengarah praprosesoryang tersedia pada C++

Int adalah tipe data untuk bilangan interger atau tipe bilangan bulat. void adalah fungsi yang sering disebut juga prosedur . Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.

switch adalah pernyataan yang digunakan untuk menjalankan salah satu pernyataan dari beberapa kemungkinan pernyataan. Perintah switch dan break memiliki sifat yang hampir sama dengan else if. Namun penggunaannya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data yang bertipe karakter atau integer.

case pernyataan switch case, memungkinkan kita untuk memilih salah satu pilihan dari berbagai ekspresi. pemilihan dilakukan berdasarkan nilai ekspresi yang telah ditetapkan. pemilihan berbagai kemungkinan nilai switch dilakukan satu demi satu berdasarkan nilai case. jika nilai dalam ekspresi switch tidak ada

(20)

yang sesuai dengan nilai-nilai case, maka pilihan akan secara otomatis ke alihkan ke default.

goto Intruksi goto dalam pemrograman bahasa C++ berfungsi membuat lompatan dalam program. Tujuan dari lompatan diidentifikasikan dengan label, label merupakan suatu identifier yang diikuti dengan tanda titik dua (:) yang berisikan argumen-argumen.

cout<< adalah sebuah perintah yang akan dieksekusi oleh compiler dan merupakan perintah yang akan dikerjakan.

(21)

Bab III

Kesimpulan

Program kasir ini dibuat untuk memenuhi tugas mata kuliah Algoritma dan Struktur Data II dalam pengembangan pemrograman dan implementasi dari tugas-tugas pemrograman sebelumnya.

Demikian Laporan ini dibuat, semoga dapat bermanfaat bagi yang membacanya.

£€¥$00000oooo TERIMA KASIH oooo00000$¥€£

Daftar Pustaka

Dr.Suarga, M.Sc., M.Math., Ph.D. (2012). ALGORITMA dan PEMROGRAMAN. Yogyakarta: CV.Andi Offset.

Oskar Ika Adi Nugroho, ST., MT. (2015). Modul Praktikum Algoritma & Pemrograman I. Purwokerto: STIKOM Yos Sudarso.

Yosep Murya K.A , ST. (2002). Struktur Data Dalam Ilustrasi Eclipse Indigo. Yogyakarta: CAPS (Center of Academic Publishing Service).

Referensi

Dokumen terkait