“Contoh Program Tugas Besar”
Dalam pembuatan program, adakalanya kita ingin membuat sesuai yang berguna dalam kehidupan sehari-hari, misalnya membuat program dari toko yang kita punyai atau program yang bisa mempermudah kita dalam mengerjakan tugas. dari beberapa contoh diatas maka kita perlu belajar yang namanya "Proyek/Program Besar".
Dalam hal ini tetu kita pasti kesulitan untuk membuat program tersebut, pasalnya karena banyaknya baris yang telah dibuat, lupa untuk mendeklarasikan, banyak yang harus diatur, dan lain-lain. oleh karena itu sobat perlu belajar dengan namanya "Rancangan Fungsi", nah rancangan ini akan membantu dalam membuat program yang diinginkan sobat beserta kemudahan dalam mengatur apa yang dibuat/dibangun sobat ke program yang sobat buat.
- Contoh Program
Dalam program ini, terdapat berbagai macam souce code yang dibuat dengan tujuan membangun program yang terorganisir, seperti:
- Penyeleksian kondisi
- Perulangan
- Array
- Manipulasi String
- Fungsi
- Akses File
- Struktur/Struct Array
- Pointer
- Menginputkan jumlah client.
- Memasukan nama lengkap.
- Menginputkan jumlah penumpang.
- Memilih pesawat.
- Memilih tujuan keberangkatan.
- Memilih jenis/kelas pesawat yang ditumpangi.
- Hasil dari inputan yang telah dilakukan.
- Memunculkan tabel pembayaran.
- Menginputkan bayaran.
- Melakukan akses file dari program yang telah di-running.
#include <iostream> //header input output
#include <conio.h> //header getch
#include <windows.h> //header system cls
#include <fstream> //header membuka dan menutup file
#include <string.h> //header operasi string
#include <string> //header fungsi string
#include <iomanip> //header pemerataan io set flags
/* Nama : Muhammad Ausha Nuryan
Kelas : 1C
Kelompok : 4 (Tiket Pesawat)
Anggota : Muhammad Suriyadi
Cucu Sulaiman
Agung Laksana
Muhammad Ausha Nuryan*/
using namespace std; //pengganti std::
int a, b, c, d, jml, jum;
int byr, kembalian;
int totPem = 0;
struct client
{
string nama[30];
string *org;
}cl;
struct atasNama
{
string nama[30][30];
int umur[10][10];
}an;
struct pesawat
{
int tiket[10];
float diskon[10];
string tujuan[15][15], kelas, kPenerbangan;
char pswt[10], pil[10][10], pil2[10][10];
}t;
void tampilanAwal () //membuat garis tabel awal tampilan
{
cout << "========================================================================================================================" << endl;
cout << " TIKET ONLINE PENERBANGAN BANJARMASIN " << endl;
cout << "========================================================================================================================" << endl;
}
void tampilanPesawat () //tabel pesawat yang tersedia
{
cout << endl;
cout << "=================================================================" << endl;
cout << "| No.| Pesawat Harga Tiket " << endl;
cout << "=================================================================" << endl;
cout << "| 1. | Sulaiman Indonesia Rp. 1.600.000,- " << endl;
cout << "| 2. | Yadi Airlines Rp. 1.700.000,- " << endl;
cout << "| 3. | Sriwijaya Agung Rp. 1.400.000,- " << endl;
cout << "| 4. | Lion Ausha Rp. 1.500.000,- " << endl;
cout << "=================================================================" << endl;
}
void orang () //pemasukan nama pembeli tiket
{
cin.ignore();
cout << "\n Client " << a << endl;
cout << " Nama Lengkap : "; getline(cin, cl.nama[a]);
cl.org = &cl.nama[a];
cout << " Alamat dari nama client : " << cl.org << endl;
cout << " Jumlah Penumpang : "; cin >> jum;
if (jum > 1)
{
for (d = 1; d < jum; d++)
{
cin.ignore();
cout << " Nama Lengkap : "; getline(cin, an.nama[a][d]);
cout << " Umur" << endl;
cout << " 1. Dewasa (Lebih dari 14 Tahun)" << endl;
cout << " 2. Anak-Remaja (7 Tahun sampai 14 Tahun)" << endl;
cout << " 3. Balita (Kurang dari 7 Tahun)" << endl;
cout << " Pilihan Umur : "; cin >> an.umur[a][d];
}
}
}
void pilihanTujuan () //menampilkan list Tujuan tujuan
{
cout << " Tujuan Keberangkatan:\n";
cout << " 1. BANJARMASIN-JAKARTA\n";
cout << " 2. BANJARMASIN-MAKAASAR\n";
cout << " 3. BANJARMASIN-BALI\n";
cout << " 4. BANJARMASIN-SURABAYA\n";
cout << " 5. BANJARMASIN-PONTIANAK\n";
}
string Tujuan () //untuk pengeluan output hasil dari pemilihan tujuan
{
if (t.pil[a][b] == '1')
{
t.tujuan[a][b] = "BANJARMASIN-JAKARTA";
}
else if (t.pil[a][b] == '2')
{
t.tujuan[a][b] = "BANJARMASIN-MAKAASAR";
}
else if (t.pil[a][b] == '3')
{
t.tujuan[a][b] = "BANJARMASIN-BALI";
}
else if (t.pil[a][b] == '4')
{
t.tujuan[a][b] = "BANJARMASIN-SURABAYA";
}
else if (t.pil[a][b] == '5')
{
t.tujuan[a][b] = "BANJARMASIN-PONTIANAK";
}
return t.tujuan[a][b];
}
string kode () //kode penerbangan saat diprint out di teks
{
if (t.pswt[a] == '1')
{
if (t.pil[a][b] == '1')
{
t.kPenerbangan = "SI-BJ";
}
else if (t.pil[a][b] == '2')
{
t.kPenerbangan = "SI-BM";
}
else if (t.pil[a][b] == '3')
{
t.kPenerbangan = "SI-BB";
}
else if (t.pil[a][b] == '4')
{
t.kPenerbangan = "SI-BS";
}
else if (t.pil[a][b] == '5')
{
t.kPenerbangan = "SI-BP";
}
}
else if (t.pswt[a] == '2')
{
if (t.pil[a][b] == '1')
{
t.kPenerbangan = "YA-BJ";
}
else if (t.pil[a][b] == '2')
{
t.kPenerbangan = "YA-BM";
}
else if (t.pil[a][b] == '3')
{
t.kPenerbangan = "YA-BB";
}
else if (t.pil[a][b] == '4')
{
t.kPenerbangan = "YA-BS";
}
else if (t.pil[a][b] == '5')
{
t.kPenerbangan = "YA-BP";
}
}
else if (t.pswt[a] == '3')
{
if (t.pil[a][b] == '1')
{
t.kPenerbangan = "SA-BJ";
}
else if (t.pil[a][b] == '2')
{
t.kPenerbangan = "SA-BM";
}
else if (t.pil[a][b] == '3')
{
t.kPenerbangan = "SA-BB";
}
else if (t.pil[a][b] == '4')
{
t.kPenerbangan = "SA-BS";
}
else if (t.pil[a][b] == '5')
{
t.kPenerbangan = "SA-BP";
}
}
else if (t.pswt[a] == '4')
{
if (t.pil[a][b] == '1')
{
t.kPenerbangan = "LA-BJ";
}
else if (t.pil[a][b] == '2')
{
t.kPenerbangan = "LA-BM";
}
else if (t.pil[a][b] == '3')
{
t.kPenerbangan = "LA-BB";
}
else if (t.pil[a][b] == '4')
{
t.kPenerbangan = "LA-BS";
}
else if (t.pil[a][b] == '5')
{
t.kPenerbangan = "LA-BP";
}
}
return t.kPenerbangan;
}
string tipe () //kelas pesawat
{
if (t.pil2[a][b] == '1')
{
t.kelas = "Ekonomi";
}
else if (t.pil2[a][b] == '2')
{
t.kelas = "Bisnis";
}
return t.kelas;
}
void pilihanKelas () //tabel pilihan kelas pesawat ekonomi atau ekslusif
{
cout << endl;
cout << " Kelas Pesawat\n 1. Ekonomi\n 2. Bisnis\n";
}
void dataTiket () // pemasukan data pilihan tujuan penerbangan
{
ulang:
cout << " Pilihan : "; cin >> t.pil2[a][b];
if (t.pil2[a][b] == '1')
{
cout << " Tiket Regular, tidak ada tambahan biaya" << endl;
}
else if (t.pil2[a][b] == '2')
{
cout << " Tambahan biaya Rp. 500.000,-" << endl;
}
else
{
cout << " Salah Input\n";
goto ulang;
}
}
int hargaTiket () //harga tiket
{
if (t.pswt[a] == '1')
{
if (t.pil2[a][b] == '1')
{
t.tiket[a] = 1600000 * jum;
}
else if (t.pil2[a][b] == '2')
{
t.tiket[a] = 1600000 * jum + 500000;
}
}
if (t.pswt[a] == '2')
{
if (t.pil2[a][b] == '1')
{
t.tiket[a] = 1700000 * jum;
}
else if (t.pil2[a][b] == '2')
{
t.tiket[a] = 1700000 * jum + 500000;
}
}
if (t.pswt[a] == '3')
{
if (t.pil2[a][b] == '1')
{
t.tiket[a] = 1400000 * jum;
}
else if (t.pil2[a][b] == '2')
{
t.tiket[a] = 1400000 * jum + 500000;
}
}
if (t.pswt[a] == '4')
{
if (t.pil2[a][b] == '1')
{
t.tiket[a] = 1500000 * jum;
}
else if (t.pil2[a][b] == '2')
{
t.tiket[a] = 1500000 * jum + 500000;
}
}
return t.tiket[a];
}
float diskon()
{
if (hargaTiket() > 15000000)
{
t.diskon[a] = hargaTiket() * 0.4;
}
else if (hargaTiket() > 7500000 && hargaTiket() <= 15000000)
{
t.diskon[a] = hargaTiket() * 0.25;
}
else if (hargaTiket() > 5000000 && hargaTiket() <= 7500000)
{
t.diskon[a] = hargaTiket() * 0.15;
}
else
{
t.diskon[a] = 0;
}
return t.diskon[a];
}
int hTiket() //rumus total harga tiket
{
totPem = hargaTiket() - diskon();
return totPem;
}
void tampilanAkhir () //menampilkan hasil dari proses
{
for (a = 1; a <= jml; a++)
{
for (b = 1; b <= 1; b++)
{
cout << " Client " << cl.nama[a] << " Membeli tiket " << Tujuan() << " dengan pesawat " << kode();
cout << " kelas " << tipe() << "\n seharga Rp. " << hTiket() << ",-" << endl;
}
}
}
void printTabel () //print hasil proses
{
ofstream file ("Retail.txt");
cout << endl;
if (!file.is_open()){
cout << "TIdak bisa membuka file";
}
else {
cout << endl;
cout << "================================================================================================================================" << endl;
file << "================================================================================================================================" << endl;
cout << " No. | Nama Client | Tujuan | Pesawat | Kelas | Harga |" << endl;
file << " No. | Nama Client | Tujuan | Pesawat | Kelas | Harga |" << endl;
cout << endl;
for (a = 1; a <= jml; a++)
{
cout << endl;
cout << setiosflags(ios::right) << setw(2) << a << setiosflags(ios::right) << setw(26) << cl.nama[a];
file << setiosflags(ios::right) << setw(2) << a << setiosflags(ios::right) << setw(26) << cl.nama[a];
for (b = 1; b <= 1; b++)
{
totPem = totPem + hTiket();
cout << setiosflags(ios::left) << setw(31) << Tujuan() << setiosflags(ios::left) << setw(13) << kode();
file << setiosflags(ios::left) << setw(31) << Tujuan() << setiosflags(ios::left) << setw(13) << kode();
cout << setiosflags(ios::left) << setw(20) << tipe() << setiosflags(ios::left) << setw(16) << "Rp. " << hTiket() << ",-" << setiosflags(ios::left) << setw(11) << "|" << endl;
file << setiosflags(ios::left) << setw(20) << tipe() << setiosflags(ios::left) << setw(16) << "Rp. " << hTiket() << ",-" << setiosflags(ios::left) << setw(11) << "|" << endl;
}
cout << "================================================================================================================================" << endl;
file << "================================================================================================================================" << endl;
cout << setiosflags(ios::right) << setw(102) << "Total" << setiosflags(ios::left) << setw(6) << "Rp. " << totPem << ",-" << endl;
file << setiosflags(ios::right) << setw(102) << "Total" << setiosflags(ios::left) << setw(6) << "Rp. " << totPem << ",-" << endl;
cout << setiosflags(ios::right) << setw(102) << "Bayar" << setiosflags(ios::left) << setw(6) << "Rp. "; cin >> byr;
file << setiosflags(ios::right) << setw(102) << "Bayar" << setiosflags(ios::left) << setw(6) << "Rp. " << byr << ",-" << endl;
kembalian = byr - totPem;
cout << setiosflags(ios::right) << setw(102) << "Kembalian" << setiosflags(ios::left) << setw(6) << "Rp. " << kembalian << ",-" << endl;
file << setiosflags(ios::right) << setw(102) << "Kembalian" << setiosflags(ios::left) << setw(6) << "Rp. " << kembalian << ",-" << endl;
}
file.close();
cout << endl << " Rekap data sudah ditulis dan dikirim ke pusat. Terima kasih telah memakai jasa kami" << endl;
}
}
void printTiket ()
{
ofstream file ("Tiket.txt");
cout << endl;
if (!file.is_open()) {
cout << "TIdak bisa membuka file";
}
else {
for (a = 1; a <= jml; a++)
{
for (b = 1; b <= 1; b++)
{
file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << endl << endl;
file << " Kelas " << tipe() << endl << endl;
file << " Nama" << endl;
file << " " << cl.nama[a] << endl << endl;
file << " Penerbangan Kelas" << endl;
file << " " << kode() << setiosflags(ios::right) << setw(19) << tipe() << endl << endl;
file << " Dari - Ke" << endl;
file << " " << Tujuan() << endl;
file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << endl;
if (jum > 1)
{
for (d = 1; d < jum; d++)
{
file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << endl << endl;
file << " Kelas " << tipe() << endl << endl;
file << " Nama" << endl;
file << " " << an.nama[a][d] << endl << endl;
file << " Penerbangan Kelas" << endl;
file << " " << kode() << setiosflags(ios::right) << setw(19) << tipe() << endl << endl;
file << " Dari - Ke" << endl;
file << " " << Tujuan() << endl;
file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << endl;
}
}
}
cout << endl;
}
}
}
main ()
{
system("cls");
tampilanAwal();
tampilanPesawat();
cout << endl;
cout << " Jumlah Client : "; cin >> jml; //untuk perulangan jumlah client yang membeli tiket pesawat
for (a = 1; a <= jml; a++) //perulangan jumlah client
{
orang();
ulang1:
cout << " Pesawat : "; cin >> t.pswt[a]; //inputan pilihan pesawat
for (b = 1; b <= 1; b++) //perulangan data pesawat client
{
switch (t.pswt[a]) //penyeleksian kondisi pemilihan pesawat
{
case '1':
{
cout << endl;
pilihanTujuan();
kembali1:
cout << " Tujuan Pilihan : "; cin >> t.pil[a][b];
switch (t.pil[a][b])
{
case '1':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '2':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '3':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '4':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '5':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
default:
{
cout << " Salah Inputan\n";
cout << " Tekan ENTER untuk kembali\n";
getch();
goto kembali1;
break;
}
}
break;
}
case '2':
{
cout << endl;
pilihanTujuan();
kembali2:
cout << " Tujuan Pilihan : "; cin >> t.pil[a][b];
switch (t.pil[a][b])
{
case '1':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '2':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '3':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '4':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '5':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
default:
{
cout << " Salah Inputan\n";
cout << " Tekan ENTER untuk kembali\n";
getch();
goto kembali2;
break;
}
}
break;
}
case '3':
{
cout << endl;
pilihanTujuan();
kembali3:
cout << " Tujuan Pilihan : "; cin >> t.pil[a][b];
switch (t.pil[a][b])
{
case '1':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '2':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '3':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '4':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '5':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
default:
{
cout << " Salah Inputan\n";
cout << " Tekan ENTER untuk kembali\n";
getch();
goto kembali3;
break;
}
}
break;
}
case '4':
{
cout << endl;
pilihanTujuan();
kembali4:
cout << " Tujuan Pilihan : "; cin >> t.pil[a][b];
switch (t.pil[a][b])
{
case '1':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '2':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '3':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '4':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
case '5':
{
cout << endl << " Tujuan : " << Tujuan () << endl;
pilihanKelas();
dataTiket();
break;
}
default:
{
cout << " Salah Inputan\n";
cout << " Tekan ENTER untuk kembali\n";
getch();
goto kembali4;
break;
}
}
break;
}
default: //jika penginputan salah, maka akan langsung mengarah ke default untuk menyatakan kondisi salah
{
cout << "Salah memasukan pilihan\n";
goto ulang1;
break;
}
}
}
cout << endl;
}
tampilanAkhir(); //menampilkan hasil dari proses dalam main
cout << endl;
getch();
system("cls"); //menghapus tampilan program
printTabel(); //menampilkan tabel rekap data pelanggan yang membeli tiket
printTiket (); //menampilkan boarding pass
cout << endl;
return 0; //mengembalikan seluruhnya
}
- Hasil Running
Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
makasih sudah share
BalasHapusMesin pemisah lcd touch