Jumat, 15 Maret 2019

Soal Alpro + Jawaban

Quiz struck, struck Array, dan Pointer



1. Soal

Konsep Tugas Algoritma Dan Pemprograman 2
Rumah Makan Welcome To Podo Moro

*Inputan
Memasukkan Jumlah Pelanggan: inputan
(perulangan sesuai dengan jumlah pelanggan yang dimasukkan)
Pembeli ke-1
Nama pelanggan : inputan
Tanggal               : inputan
Memasukkan Jumlah Pesanan : inputan
(perulangan sesuai jumlah jenis produk yang dibeli)
Kode  Menu :
         Makanan
         Minuman
Memasukkan kode menu [1/2]= inputan
Jika memilih 1 maka muncul tampilan :
“Anda memilih kode menu makanan”
Ketentuan I
Masukkan pilihan [1-3]
Ketentuan II
Jika memilih 2 maka muncul tampilan
“Anda memilih kode menu minuman”
Ketentun II
Memasukkan pilihan menu [1-3]
*Output
Pelanggan  ke-n :
Nama : Hasil Proses
Tanggal : Hari Proses
Menu Pesanan : Hasil Proses
Jumlah Pesanan : Hasil Proses
Total Pembayaran adalah Rp. Total Pembayaran

Ketentuan I
1Warna Kuning adalah inputan
2. Warna Merah adalah Hasil Proses
Ketentuan II
Jika memilih 1;
Menu Makanan:
1. Ayam Gebrek+ Nasi
2. Ayam Camcam+ Nasi
3. Ayam Rica-rica + Nasi
4. Ayam Bakar Super Pedas
5.  Ayam Bakar Biasa
6. Nasi Goreng Original + Sosis
7. Nasi Goreng Rica-rica + Kentucki
8. Nasi Goreng pedas + Dadar
Jika memasukkan angka 1 “Anda memilih ayam Gebrek+ Nasi”
Jika memasukkan angka 2 “Anda memilih ayam Camcam+ Nasi”
Jika memasukkan angka 3 “Anda memilih ayam Rica-rica+ Nasi”
Jika memasukkan angka 4 “Anda memilih ayam Bakar Super Pedas”
Jika memasukkan angka 5 “Anda memilih ayam Bakar Biasa”
Jika memasukkan angka 6 “Anda memilih ayam Nasi Goreng Original + Sosis”
Jika memasukkan angka 7 “Anda memilih ayam Nasi Goreng Rica-rica + Kentucki”
Jika memasukkan angka 8 “Anda memilih ayam Nasi Goreng pedas + Dadar”
Jika Memilih 2:
Memilih Minuman:
1.        Es lumut bahagia
2.        Es kopi
3.        Es jeruk
4.        Teh Es
5.        Jus Jeruk
6.        Jus Alpukat
7.        Teh Hangat
8.        Air Mineral Biasa
9.        Air Mineral Dingin
Jika memasukkan angka 1 “Es Lumut Bahagia”
Jika memasukkan angka 2 “Es Kopi”
Jika memasukkan angka 3 “Es Jeruk ”
Jika memasukkan angka 4 “Teh Es”
Jika memasukkan angka 5 “jus jeruk”
Jika memasukkan angka 6 “Jus Alpukat ”
Jika memasukkan angka 7 “Teh Hangat”
Jika memasukkan angka 8 “Air Mineral Biasa”
Jika memasukkan angka 9 “Air Mineral Dingin”
Jika salah menginput maka akan atomatis kembali pada pemilihan menu awal.
2. Listing


#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

struct aray
{
    string jm[5][5][5],nama[10];
};
struct aray1
{
    int jml [5],jenis_menu [5][5],harga [5][5][5],kembali1[5][5][5],kembali2[5][5][5], kembali3[5][5][5];
};
struct aray2
{
    float sa[5][5],porsi [5][5][5];
};
struct aray3
{
    char kn [5][5][5],mn [5][5][5];
};
struct aray4
{
     float porsi [5][5][5],total[5][5][5];
};


void garis()
{
    cout<< "====================================================================================================="<<endl;
}
void daftar_menu1()
{
    cout<< "   Menu Makanan                     Harga perporsi "<<endl;
    cout<< "1. Ayam Gebrek + nasi               Rp. 12.000"<<endl;
    cout<< "2. Ayam camcam + nasi               Rp. 12.000"<<endl;
    cout<< "3. Ayam Rica-rica + nasi            Rp  13.000"<<endl;
    cout<< "4. Nasi Goreng Original + Sosis     Rp  12.000"<<endl;
    cout<< "5. Nasi Goreng Rica-rica + Kentucki Rp. 17.000"<<endl;
    cout<< "6. Nasi Goreng pedas + Dadar        Rp. 15.000"<<endl;
    cout<< "7. Ayam Bakar Super Pedas           Rp  25.000" <<endl;
    cout<< "8. Ayam Bakar Biasa                 Rp  20.000" <<endl;
}

void daftar_menu2()
{
    cout<< "Menu Minuman                        Harga perporsi "<<endl;
    cout<< "1. Es Lumut Bahagia                 Rp.5000"<<endl;
    cout<< "2. Es Kopi                          Rp. 5.000"<<endl;
    cout<< "3. Es Jeruk                         Rp 3.000 "<<endl;
    cout<< "4. Teh Es                           Rp.3.000"<<endl;
    cout<< "5. Jus Jeruk                        Rp. 5.000"<<endl;
    cout<< "6. Jus Alpukat                      Rp.10.000"<<endl;
    cout<< "7. Teh Hangat                       Rp. 2.000"<< endl;
    cout<< "8. Air Mineral Biasa                Rp. 4.000"<<endl;
    cout<< "9. Air Minersl Dingin               Rp.5.000"<<endl;
}

int total_harga (int t, int h)
{
    return(t*h);
}

int jum_hrg (int j)
{
    int jum;
    jum = 0;
    jum = jum+j;
    return(jum);
}

int pajak (int p)
{
    return(p*0.1);
}

int total_pembayar (int b, int y)
{
    return(b+y);
}

main ()
{
    int z,x,y,jp;
    int ttl;
    int b=6;

    aray lin;
    aray1 lin1;
    aray2 lin2;
    aray3 lin3;
    aray4 lin4;

    garis();
    cout << "       WELCOME TO PODO MORO              " << endl;
    garis();
    ofstream myfile ("sherly.txt");
    cout<< "Memasukkan Jumlah Pembeli :";cin>>jp;
    for (x=1; x<=jp; x++)
    {
        system ("cls");

        cout<< "Pembeli ke       :"<<x<<endl;
        cout<< "Nama             :";cin>>lin.nama[x];
        cout<< "Code Pembelian   :"<<lin.nama<<endl;
        cout<< "Masukkan Jumlah Pesanan :";cin>>lin1.jml[x];
        for (y=1; y<=lin1.jml[x]; y++)
        {
            system ("cls");

            cout<< "Pesanan ke : "<<y<<endl;
            kembali11:

            cout<< " 1. Makanan "<<endl;
            cout<< " 2. Minuman "<<endl;
            cout<< " Masukkan pilihan anda : ";cin>>lin2.sa[x][y];

            system ("cls");

            if (lin2.sa[x][y]==1)
            {
                kembali2 :

                daftar_menu1 ();

                cout<< "Masukan banyak menu makanan : "; cin>>lin1.jenis_menu[x][y];
                for (z=1; z<=lin1.jenis_menu[x][y]; z++)
                {
                    cout<< "Pesanan Makanan Anda Yang Ke:"<<z<<endl;
                    cout<< "Silakan Anda Memasukkan Pilihan makanan: ";cin>>lin3.kn[x][y][z];
                    if (lin3.kn [x][y][z]=='1')
                    {
                        cout<< "Anda Memilih Ayam Gebrek + Nasi"<<endl;
                        lin1.harga [x][y][z]=12000;
                        lin.jm[x][y][z]="Ayam Gebrek + Nasi";
                    }
                    else if (lin3.kn [x][y][z]=='2')
                    {
                        cout<< "Anda Memilih Ayam Camcam + Nasi "<<endl;
                        lin1.harga [x][y][z]=12000;
                        lin.jm[x][y][z]="Ayam Camcam  + Nasi";
                    }
                    else if (lin3.kn[x][y][z]=='3')
                    {
                        cout<< "Anda Memilih Ayam Rica-rica + Nasi"<<endl;
                        lin1.harga [x][y][z]=13000;
                        lin.jm[x][y][z]="Ayam Rica-rica + Nasi";
                    }
                    else if (lin3.kn[x][y][z]=='4')
                    {
                        cout<< "Anda Memilih Nasi Goreng Original + Sosis"<<endl;
                        lin1.harga [x][y][z]=12000;
                        lin.jm[x][y][z]="Nasi Goreng Original + Sosis";
                    }
                    else if (lin3.kn[x][y][z]=='5')
                    {
                        cout<< "Anda Memilih Nasi Goreng Rica-rica + Kentucki"<<endl;
                        lin1.harga [x][y][z]=17000;
                        lin.jm[x][y][z]="Nasi Goreng Rica-rica + Kentucki";
                    }
                    else if (lin3.kn[x][y][z]=='6')
                    {
                        cout<< "Anda Memilih Nasi Goreng Pedas + Dadar"<<endl;
                        lin1.harga [x][y][z]=15000;
                        lin.jm[x][y][z]="Nasi Goreng Pedas + Dadar";
                    }
                    else if (lin3.kn[x][y][z]=='7')
                    {
                        cout<< "Anda Memilih Donat"<<endl;
                        lin1.harga [x][y][z]=25000;
                        lin.jm [x][y][z]="Donat";
                    }
                    else if (lin3.kn[x][y][z]=='8')
                    {
                        cout<< "Anda Memilih Ayam Bakar Biasa + Nasi"<<endl;
                        lin1.harga [x][y][z]=20000;
                        lin.jm [x][y][z]="Ayam Bakar Biasa+ Nasi";
                    }
                    else
                    {
                        system ("cls");

                        cout<< "Maaf Menu Yang Anda Pilih Tidak Ada Dalam Daftar Menu Kami"<<endl;
                        cout<< "Apakah Anda Ingin Mengulangi Pemesanan [Y/T]";cin>>lin1.kembali2[x][y][z];
                        if (lin1.kembali2 [x][y][z]=='Y'||lin1.kembali2[x][y][z]=='y')
                        {
                            goto kembali2;
                        }
                        else
                        {
                            exit(0);
                        }

                    }
                    cout<< "Silakan Anda Memasukkan Jumlah Porsi Sesuai Yang Anda Pesan :";cin >>lin4.porsi[x][y][z];
                }
            }
            if (lin2.sa[x][y]== 2)

            {
                kembali3 :

                daftar_menu2 ();

                cout<< "Masukan banyak menu makanan : "; cin>>lin1.jenis_menu[x][y];
                for (z=1; z<=lin1.jenis_menu[x][y]; z++)
                {
                    cout<< "Pesanan Makanan Anda Yang Ke:"<<z<<endl;
                    cout<< "Silakan Anda Memasukkan Pilihan makanan: ";cin>>lin3.mn[x][y][z];
                    if (lin3.mn [x][y][z]=='1')
                    {
                        cout<< "Anda Memilih Es Lumut Bahagia "<<endl;
                        lin1.harga [x][y][z]=5000;
                        lin.jm[x][y][z]="Es Lumut Bahagia ";
                    }
                    else if (lin3.mn [x][y][z]=='2')
                    {
                        cout<< "Anda Memilih Es Kopi   "<<endl;
                        lin1.harga [x][y][z]=5000;
                        lin.jm[x][y][z]="Es Kopi  ";
                    }
                    else if (lin3.mn[x][y][z]=='3')
                    {
                        cout<< "Anda Memilih Es Jeruk "<<endl;
                        lin1.harga [x][y][z]=3000;
                        lin.jm[x][y][z]="Es Jeruk ";
                    }
                    else if (lin3.mn[x][y][z]=='4')
                    {
                        cout<< "Anda Memilih Es teh "<<endl;
                        lin1.harga [x][y][z]=3000;
                        lin.jm[x][y][z]="Es Teh";
                    }
                    else if (lin3.mn[x][y][z]=='5')
                    {
                        cout<< "Anda Memilih Jus Jeruk  "<<endl;
                        lin1.harga [x][y][z]=5000;
                        lin.jm[x][y][z]="Jus Jeruk  ";
                    }
                    else if (lin3.mn[x][y][z]=='6')
                    {
                        cout<< "Anda Memilih Jus Alpukat"<<endl;
                        lin1.harga [x][y][z]=10000;
                        lin.jm[x][y][z]="Jus Alpukat";
                    }
                    else if (lin3.mn[x][y][z]=='7')
                    {
                        cout<< "Anda Memilih Teh Hangat "<<endl;
                        lin1.harga [x][y][z]=2000;
                        lin.jm [x][y][z]="Teh Hangat ";
                    }
                    else if (lin3.mn[x][y][z]=='8')
                    {
                        cout<< "Anda Memilih Air Mineral Biasa   "<<endl;
                        lin1.harga [x][y][z]=4000;
                        lin.jm [x][y][z]="Air Mineral Biasa ";
                    }
                    else if (lin3.mn[x][y][z]=='9')
                    {
                        cout<< "Anda Memilih Air Mineral Dingin   "<<endl;
                        lin1.harga [x][y][z]=5000;
                        lin.jm [x][y][z]="Air Mineral Dingin ";
                    }
                    else
                    {
                        system ("cls");

                        cout<< "Maaf Menu Yang Anda Pilih Tidak Ada Dalam Daftar Menu Kami"<<endl;
                        cout<< "Apakah Anda Ingin Mengulangi Pemesanan [Y/T]:";cin>>lin1.kembali3[z][x][y];
                        if (lin1.kembali3 [x][y][z]=='Y'||lin1.kembali3[x][y][z]=='y')
                        {
                            goto kembali3;
                        }
                        else
                        {
                            exit(0);
                        }

                    }
                    cout<< "Silakan Anda Memasukkan Jumlah Porsi Sesuai Yang Anda Pesan :";cin >>lin4.porsi[x][y][z];
                }

             }


        }
    }

        system("cls");
        cout <<endl;
        garis();
        cout << "| jumlah    |         Nama         |         Pesanan         | Banyak |   Harga Satuan   |   Total Harga  | " <<endl;
        cout << "| Pelanggan |                      |                         | Porsi  |                  |                | " <<endl;
        garis();

        for (x=1; x<=jp; x++)
        {
            cout << "     " << x<<endl;
            cout << "\t\t" <<setiosflags(ios::left)<<setw(20)<< lin.nama[x];

            ttl = 0;
            for(y=1; y<=lin1.jml[x]; y++)
            {
                for(z=1; z<=lin1.jenis_menu[x][y]; z++)
                {
                    cout << "  \t"<<setiosflags(ios::left)<<setw(20)  << lin.jm[x][y][z];
                    cout << "   \t"<<setiosflags(ios::left)<<setw(5) << lin4.porsi[x][y][z];
                    cout << "   \t"<<setiosflags(ios::left)<<setw(5) << lin1.harga[x][y][z];
                    cout << "   \t"<<setiosflags(ios::left)<<setw(5) <<total_harga( lin4.porsi[x][y][z], lin1.harga[x][y][z]);
                    cout << endl;
                    cout << "\t\t\t\t";
                    ttl = ttl+total_harga( lin4.porsi[x][y][z], lin1.harga[x][y][z]);
                }
            }
            cout << "                                              ----------------------------------- +"<<endl;
            cout << "                                              Jumlah Total Harga    Rp "<<jum_hrg(ttl)<<endl;
            cout << "                                              Pajak 10%             Rp "<<pajak(jum_hrg(ttl))<<endl;
            cout << "                                              Total Pembayaran      Rp "<<total_pembayar(jum_hrg(ttl), pajak(jum_hrg(ttl)))<<endl;
            cout << endl;
            cout <<endl;
            garis();
            cout << "                                                      TERIMA KASIH :)            " <<endl;
            garis();
        }
        cout<<endl;
        myfile.open("sherly.txt");
        {

            garis();
            myfile << "| jumlah    |         Nama         |         Pesanan         | Banyak |   Harga Satuan   |   Total Harga  | " <<endl;
            myfile << "| Pelanggan |                      |                         | Porsi  |                  |                | " <<endl;
            garis();
            for (x=1; x<=jp; x++)
            {
                myfile  << "     " << x<<endl;
                myfile  << "\t\t" <<setiosflags(ios::left)<<setw(20)<< lin.nama[x];

                ttl = 0;
                for(y=1; y<=lin1.jml[x]; y++)
                {
                    myfile;for(z=1; z<=lin1.jenis_menu[x][y]; z++)
                    {
                        myfile  << "  \t"<<setiosflags(ios::left)<<setw(20)  << lin.jm[x][y][z];
                        myfile  << "   \t"<<setiosflags(ios::left)<<setw(5) << lin4.porsi[x][y][z];
                        myfile << "   \t"<<setiosflags(ios::left)<<setw(5) << lin1.harga[x][y][z];
                        myfile  << "   \t"<<setiosflags(ios::left)<<setw(5) <<total_harga( lin4.porsi[x][y][z], lin1.harga[x][y][z]);
                        myfile  << endl;
                        myfile  << "\t\t\t\t";
                        ttl = ttl+total_harga( lin4.porsi[x][y][z], lin1.harga[x][y][z]);
                    }
                }
                myfile  << "                                              ----------------------------------- +"<<endl;
                myfile  << "                                              Jumlah Total Harga    Rp "<<jum_hrg(ttl)<<endl;
                myfile  << "                                              Pajak 10%             Rp "<<pajak(jum_hrg(ttl))<<endl;
                myfile  << "                                              Total Pembayaran      Rp "<<total_pembayar(jum_hrg(ttl), pajak(jum_hrg(ttl)))<<endl;
                myfile  << endl;
                myfile  <<endl;
            }
            garis();
            myfile<< "                                                      TERIMA KASIH :)            " <<endl;
            garis();
            myfile.close();
        }
        getch();
}





3. Running

4. Akses File


5. Penjelasan Secara Umum

   baris 1-6 dari program tersebut adalah bagian liberary. Using namespace untuk mewakili penggunaan std sin dan cout. Baris 10-29 merupakan operasi struct identitas yang berisi tipe data . Objek struct berupa lin. Baris 32- 84 merupakan operasi fungsi. Operasi struct dapat berjalan jika tipe data atau variabel ditambahi dengan lin diawalnya. Baris 102 - 110 merupakan operasi untuk memasukkan data pembeli dan jumlah pesan.  Baris 111- 284 digunakan untuk menginputkan menu makan dan minum. Baris 293- 328 merupakan outputan program. Baris 330-369 merupakan file akses.




Tidak ada komentar:

Posting Komentar

Belajar Blog di Martikulasi MABA 2022

MARTIKULASI MABA 2022 Ini adalah pertama kali saya membuat blog, ini pengalaman yang sangat mengesankan untuk saya, karena saya bisa membu...