[Fs4] Fillestar4

4 out of 5 dentists recommend this WordPress.com site

Kategori: Algoritma Pemrograman c++

Contoh Sorting Dengan Menggunakan Bubble Sort + Struct

Sebelumnya kita telah membahas secara sederhana penggunakan metode sorting ‘Bubble Sort’. Nah sekarang saya akan memberikan contoh yang lebih kompleks lagi, yaitu mengkombinasikan ‘Bubble Sort’ dengan ‘Struct’.
Seperti apa contoh programnya?
ni saya berikan contoh program yang menggunakan kombinasi ‘Bubble Sort’ dan ‘Struct’
//Sorting Dengan Metode Bubble Sort
#include
#include
#include
#include
main()
{
    struct mhs {
        int nrp;
        char nama[30];
        int uts, uas, praktek, na;
    };
    struct mhs data_mhs[5];
    struct mhs temp;
    int a, b, c, d, x, y;
    char lihat, e;
    cout << "Data Nilai Mahasiswa Matakuliah AP2"<<endl;
    cout << "==================================="<<endl;
    cout << "Masukkan Jumlah Data Mahasiswa yang Akan di Input: ";
    cin >> c;
    clrscr();
    cout << "Inputkan Data Mahasiswa!\n"<<endl;
    for (a=0;a<c;a++)
    {
        cout << "No ["<<a+1<<"]"<<endl;
        cout << "NRP\t\t: ";
        cin >> data_mhs[a].nrp;
        cout << "Nama\t\t: ";
        gets (data_mhs[a].nama);
        cout << "Nilai UTS\t: ";
        cin >> data_mhs[a].uts;
        cout << "Nilai UAS\t: ";
        cin >> data_mhs[a].uas;
        cout << "Nilai Praktek\t: ";
        cin >> data_mhs[a].praktek;
        data_mhs[a].na=((25*data_mhs[a].uts)+(50*data_mhs[a].uas)+(25*data_mhs[a].praktek))/100;
        cout << "Nilai Akhir\t: "<<data_mhs[a].na;
        cout << "\n\n";
    }
    clrscr();
    lihat:
    cout << "Lihat Data:\n";
    cout << "[1] Belum Terurut\n";
    cout << "[2] Berdasarkan Urutan NRP\n";
    cout << "[3] Berdasarkan Urutan Nilai Akhir\n";
    cout << "Masukan Pilihan: ";
    cin >> lihat;
    if (lihat==’1′)
    {
        clrscr();
        for (a=0;a<c;a++)
        {
            cout << "NRP\t\t: "<<data_mhs[a].nrp<<endl;
            cout << "Nama\t\t: "<<data_mhs[a].nama<<endl;
            cout << "Nilai UTS\t: "<<data_mhs[a].uts<<endl;
            cout << "Nilai UAS\t: "<<data_mhs[a].uas<<endl;
            cout << "Nilai Praktek\t: "<<data_mhs[a].praktek<<endl;
            cout << "Nilai Akhir\t: "<<data_mhs[a].na;
            cout << "\n\n";
        }
        lagi:
        cout << "Lihat Lagi [Y/N]: ";
        cin >> e;
        if (e==’Y’||e==’y’)
        {
            clrscr();
            goto lihat;
        }else if (e==’N’||e==’n’)
        {
            clrscr();
            cout << "SELESAI";
        }else{
            clrscr();
            cout << "Kode Salah!!!";
            goto lagi;
        }
    }else if (lihat==’2′)
    {
        clrscr();
        for (a=1;a<c;a++)
        {
            for (b=0; b<c-a; b++)
            if (data_mhs[b].nrp>data_mhs[b+1].nrp)
            {
                temp.nrp=data_mhs[b].nrp;
                data_mhs[b].nrp=data_mhs[b+1].nrp;
                data_mhs[b+1].nrp=temp.nrp;
                strcpy(temp.nama, data_mhs[b].nama);
                strcpy(data_mhs[b].nama, data_mhs[b+1].nama);
                strcpy(data_mhs[b+1].nama, temp.nama);
                temp.uts=data_mhs[b].uts;
                data_mhs[b].uts=data_mhs[b+1].uts;
                data_mhs[b+1].uts=temp.uts;
                temp.uas=data_mhs[b].uas;
                data_mhs[b].uas=data_mhs[b+1].uas;
                data_mhs[b+1].uas=temp.uas;
                temp.praktek=data_mhs[b].praktek;
                data_mhs[b].praktek=data_mhs[b+1].praktek;
                data_mhs[b+1].praktek=temp.praktek;
                temp.na=data_mhs[b].na;
                data_mhs[b].na=data_mhs[b+1].na;
                data_mhs[b+1].na=temp.na;
            }
            for (a=0;a<c;a++)
            {
                cout << "NRP\t\t: "<<data_mhs[a].nrp<<endl;
                cout << "Nama\t\t: "<<data_mhs[a].nama<<endl;
                cout << "Nilai UTS\t: "<<data_mhs[a].uts<<endl;
                cout << "Nilai UAS\t: "<<data_mhs[a].uas<<endl;
                cout << "Nilai Praktek\t: "<<data_mhs[a].praktek<<endl;
                cout << "Nilai Akhir\t: "<<data_mhs[a].na;
                cout << "\n\n";
            }
        }
        goto lagi;
    }else if (lihat==’3′)
    {
        clrscr();
        for (a=1;a<c;a++)
        {
            for (b=0; b<c-a; b++)
            if (data_mhs[b].na<data_mhs[b+1].na)
            {
                temp.nrp=data_mhs[b].nrp;
                data_mhs[b].nrp=data_mhs[b+1].nrp;
                data_mhs[b+1].nrp=temp.nrp;
                strcpy(temp.nama, data_mhs[b].nama);
                strcpy(data_mhs[b].nama, data_mhs[b+1].nama);
                strcpy(data_mhs[b+1].nama, temp.nama);
                temp.uts=data_mhs[b].uts;
                data_mhs[b].uts=data_mhs[b+1].uts;
                data_mhs[b+1].uts=temp.uts;
                temp.uas=data_mhs[b].uas;
                data_mhs[b].uas=data_mhs[b+1].uas;
                data_mhs[b+1].uas=temp.uas;
                temp.praktek=data_mhs[b].praktek;
                data_mhs[b].praktek=data_mhs[b+1].praktek;
                data_mhs[b+1].praktek=temp.praktek;
                temp.na=data_mhs[b].na;
                data_mhs[b].na=data_mhs[b+1].na;
                data_mhs[b+1].na=temp.na;
            }
            for (a=0;a<c;a++)
            {
                cout << "Nilai Akhir\t: "<<data_mhs[a].na<<endl;
                cout << "NRP\t\t: "<<data_mhs[a].nrp<<endl;
                cout << "Nama\t\t: "<<data_mhs[a].nama<<endl;
                cout << "Nilai UTS\t: "<<data_mhs[a].uts<<endl;
                cout << "Nilai UAS\t: "<<data_mhs[a].uas<<endl;
                cout << "Nilai Praktek\t: "<<data_mhs[a].praktek<<endl;
                cout << "\n\n";
            }
        }
        goto lagi;
    }else{
        clrscr();
        cout << "Kode Salah!!!"<<endl;
        goto lihat;
    }
}

Dan hasil outputnya akan seperti ini ;
bs_2a

Di sini saya mengambil contoh jumlah data mahasiswa yang akan diinputkan adalah sebanyak 2 buah.
Maka tampilan berikutnya adalah seperti ini :

bs_2b

Di sini saya menginputkan data mahasiswa pertama dengan,
NRP : 123
Nama : Mr. Xyz
dan nilai UTS, UAS dan Praktek : 90;
untuk Nilai akhir, akan secara otomatis muncul, sehingga kita tidak perlu menginputkannya, karena di dalam syntaxnya sendiri sudah ada rumus perhitungannya,
Sementara itu untuk data mahasiswa kedua anda bisa lihat sendiri bagaimana perbedaannya.
Dan hasil output berikutnya akan seperti ini :

bs_2c

Nah kita bisa lihat digambar, ada tiga pilihan menu, jika kita memilih menu [1], maka program akan mengoutputkan data-data mahasiswa yang belum terurut. Dan jika anda memilih menu [2], program akan menampilkan data-data mahasiswa yang sudah terurut berdasarkan NRP (dari angka terkecil ke yang terbesar), dan menu [3] program akan menampilkan data-data mahasiswa berdasarkan Nilai Akhir (dari yang terbesar ke yang terkecil)
Berikut ini adalah contoh gambarnya :

;
bs_2d  

bs_2e

bs_2f

SELAMAT MENCOBA !!!

Pemilihan Nilai

#include
main()
{
    int nilai;

    cout << "masukan nilai = ";
    cin >> nilai;

    if((nilai >=85) && (nilai <=100)){
         cout << "mutu A";
    }else if((nilai >=70) && (nilai <=84)){
         cout << "mutu B";
    }else if((nilai >=60) && (nilai <=69)){
         cout << "mutu C";
    }else if((nilai >=50) && (nilai <=59)){
         cout << "mutu D";
    }else if((nilai >=0) && (nilai <=49)){
         cout << "mutu E";
    }
}

program simulasi penjualan

// program simulasi penjualan
#include
#include
main()
{
    int kode,jumlah,harga;
    float total_harga,diskon;
    char nama_barang [30];

    cout << "kode barang : ";
    cin >> kode;
    cout << "Nama Barang : ";
    gets (nama_barang);
    cout << "harga        : ";
    cin >> harga;
    cout << "jumlah     : ";
    cin >> jumlah;
    total_harga=jumlah*harga;
    cout << "total     = " << total_harga;

    if(jumlah > 10 ){
        diskon=0.1 * total_harga;
    }else if(jumlah > 30){
        diskon=0.2 * total_harga;
    }else if(jumlah >50){
        diskon=0.3 * total_harga;
    }else{
        diskon=0 * total_harga;
    }
    cout << endl;
    cout << "jumlah bayar = " << total_harga -diskon;
    if(total_harga>=100000){
        //diskon=total_harga-10000;
    }else{
        diskon=0;
    }
    cout << endl;
}