Rabu, 30 Oktober 2013


Buatlah sebuah program utama yang berisi :
  1. Menu, Menu berisi beberapa pilihan yang memberi kesempatan kepada pengguna untuk memilih fungsi/prosedur yang ada di soal 2 dan 3
  2. Pilihan pengguna terhadap menu
  3. Penanganan pilihan pengguna, dengan memanggil fungsi/prosedur di soal 2 dan 3


Bonus nilai diberikan jika :
  1. Membuat menu yang bisa ditampilkan berulang-ulang sampai pengguna memilih keluar dari aplikasi
  2. Membuat file header yang berisi kumpulan fungsi dan prosedur

Ganti koding yang berbentuk . . . . . . dengan koding yang benar  dan panggil kedua fungsi  ini dari program utama di soal 1
Fungsi ke-1
float HitungDiskon(float harga, int diskon)
//menghitung jumlah pembayaran setelah dikurangi diskon
{
    . . . . . . . bayar,totaldis;
    totaldis = (diskon/100)*harga;
    bayar = harga - totaldis;
    return bayar;
}


 Fungsi ke-2
int TampilKodepos(char kota[10])
//menampilkan kode pos sebuah kota
{
    . . . . . . . kode;
    if (strcmp(kota,"Padang")==0)
    {
        kode=25000;
    }
    else if (strcmp(kota,"Bandung")==0)
    {
        kode=40100;
    }
    else if (strcmp(kota,"Solo")==0)
    {
        kode=51000;
    }
    else if (strcmp(kota,"Denpasar")==0)
    {
        kode=72000;
    }
    else if (strcmp(kota,"Palu")==0)
    {
        kode=92300;
    }
    return kode;
}



Function tampilSkorTAK(input jenjang:string) -->integer
{fungsi mengeluarkan skor TAK berdasarkan masukan jenjang. Ketentuan ada di tabel di bawah ini}

Jenjang
Skor
D3 reguler kelas pagi
45
D4 reguler kelas pagi
60
D3 reguler kelas karyawan
30
D4 reguler kelas karyawan
40
D4 lanjut jenjang
15

# include <stdio.h>
# include <string.h>
# include <conio.h>
# include <stdlib.h>
float HitungDiskon(float harga, int diskon);
int TampilKodepos(char kota[10]);
int tampilSkorTAK(char jenjang[30]);

int main()
{
    //deklarasi
    int n, diskon;
    float harga;
    char y = 'y';
    char kota[10];
    char jenjang[30];

    //untuk membuat menu agar program bisa berulang-2 sampai yang di inginkan
    while (y=='y')
    {

        // Untuk membersihkan / menghapus layar
        system ("cls");

        //menampilkan menu pilihan
        printf("1. mencari diskon");
        printf("\n2. tampil kode pos");
        printf("\n3. mencari scor dari jenjang");

        //membaca menu pilihan
        printf("\nmasukkan Pilihan Menu :"); scanf("%d", &n);

        //melakukan percabangan dari menu yang telah di pilih
        switch(n)
        {
            //memanggil fungsi jumlah hari dan menampilkannya
            case 1 :
                {
                printf("Masukkan harga:"); scanf("%f", &harga);
                printf("Masukkan diskon:"); scanf("%d", &diskon);
                printf("\njumlah yang haru di bayar adalah : %.2f", HitungDiskon(harga, diskon)); break;
                }

            //memanggil fungsi durasi dan menampilkannya
            case 2 :
                {
                    fflush(stdin);
                    printf("masukkan nama kota :"); gets(kota);
                    printf("\nkode pos dari kota ini adalah %d", TampilKodepos(kota)); break;
                }

            //memanggil fungsi fungsi tampilSkorTAK dan menampilkannya
            case 3 :
                {
                    fflush(stdin);
                    printf("Masukkan jenjang :"); gets(jenjang);
                    printf("skor dari jengang ini adalah %d", tampilSkorTAK(jenjang));break;
                }

            //memberikan informasi jika menu belum tersedia
            default : printf("silahkan pilih menu yang di sediakan!!!"); break;
        }

        //membersihkan bufer di memory
        fflush(stdin);

        //memberikan informasi untuk melakukan pengulangan atau tidak
        printf("\napakah anda ingin mengulangi transaksi y/n?"); scanf("%c", &y);
    }

getch();
return 0;
}


float HitungDiskon(float harga, int diskon)
//menghitung jumlah pembayaran setelah dikurangi diskon
{
    //deklarasi
    float bayar,totaldis;

    //algoritma menghitung diskon
    totaldis = harga*diskon/100 ;

    //mengitung nilai yang harus di bayar
    bayar = harga - totaldis;

    //mengembalikan nilai dari bayar
    return bayar;
}


//menghitung selisih J2 dan J1
int TampilKodepos(char kota[10])

//menampilkan kode pos sebuah kota
{
int kode;
    //menentukan kodepos dari kota dengan percabangan
    if (strcmp(kota,"Padang")==0)
        {kode=25000;}
    else if (strcmp(kota,"Bandung")==0)
        {kode=40100;}
    else if (strcmp(kota,"Solo")==0)
        {kode=51000;}
    else if (strcmp(kota,"Denpasar")==0)
        {kode=72000;}
    else if (strcmp(kota,"Palu")==0)
        {kode=92300;}

    //mengembalikan nilai dari kodepos
    return kode;
}


//fungsi tampil skor
int tampilSkorTAK(char jenjang[30])
{
    //deklarasi
    float skor;

    //menentukan skor dari jenjang  dengan percabangan
    if(strcmp(jenjang,"D3 reguler kelas pagi")==0) skor = 45;
    else if(strcmp(jenjang,"D4 reguler kelas pagi")==0) skor = 60;
    else if(strcmp(jenjang,"D3 reguler kelas karyawan")==0) skor = 30;
    else if(strcmp(jenjang,"D4 reguler kelas karyawan")==0) skor = 40;
    else if(strcmp(jenjang,"D4 lanjut jenjang")==0) skor = 15;

    //mengembalikan nilai dari hasil konversi
    return skor;
}

Tidak ada komentar:

Posting Komentar