12/06/2017

contoh program sorting C++ part 1

haloo...pada kesempatan kali ini saya akan mencoba share source kode program sorting (dalam bahasa c++). nahh buat yang belum tau sorting itu apa? akan saya sertakan juga definisi dari setiap jenis sorting yang saya tau.

definisi sorting

sorting adalah sebuah proses untuk mengatur beberapa data/objek sesuai aturan tertentu. urutannya ada yang menaik(ascending) dan menurun(descending), atau bisa disebut "dari data terbesar ke data terkecil" dan begitu juga sebaliknya.

jenis-jenis sorting

1.selection sort (pengurutan maksimun-minimum/minimum-maksimum)
2.bubble sort (pengurutan gelembung)
3.insertion sort (pengurutan sisip)

nahhh kira-kira itu definisi singkat dari sorting, untuk kali ini saya akan share source kode program dengan menggunakan selection sort(ascending/pengurutan dari data terbesar) untuk menentukan nilai siswa apakah dia diterima,cadangan atau,ditolak pada suatu tes. dengan menginput nama dan nilai.

berikut adalah soal dari source kode dibawah:
10. Buatlah struktur data of struct berpointer untuk 100 siswa SMK dengan daftar item
data sebagai berikut :

Nama string 40 karakter,
Hasil-Test Integer,
KET string 20 karakter,

Kemudian entrykan 20 data teman2 sekelas anda !!, dapat dilakukan dgn inputan
data (C input/cin), atau inisialisasikan/letakan langsung dalam deklarasi struct
berpointer : yang tampilan Input data : 1 to n
Data -1 : Entry Data

Nama : .........
Hasil-Test : .............
Keterangann : ......
Sampai Data-n

Untuk Keterangann bila menginput hasil test Tekan enter nilai keterangann akan
muncul, bila hasil-test >=80 ket “DITERIMA”, bila hasil-test >=70 and hasil-test <
80 ket “CADANGAN”, bila hasil-test < 70 ket “DITOLAK”. Dan tampilkan semua isi
data struct tsb dalam tabel, berikut :

DAFTAR SELEKSI ANGGOTA PMR SMA TARUNA
   No. Nama HASIL-TEST KETERANGAN
.... ....... ........... .......
Kemudian urutkan data yang tersimpan dalam struct berpointer tsb dengan
methode Selection sort dari terkecil berdasarkan nama : Hasil sort

DAFTAR SELEKSI ANGGOTA PMR SMA TARUNA
No. Nama HASIL-TEST KETERANGANN
.... ....... ........... .......
dan inilah source kode untuk menjawab soal diatas:

#include<iostream>
#include<conio.h>
#include<iomanip>

using namespace std;
struct mahasiswa
{
   
    string nama[40];
    int hasiltes[20];


};

main()
{
    int n,tmp,i;
   
    mahasiswa mhs;
//    input array
    cout<<"masukkan banyak data : ";
    cin>>n;
    for (int i=0; i<n; i++)
    {
        cout<<" Nama         : ";cin>>mhs.nama[i];
        cout<<" hasil Tes     = ";cin>>mhs.hasiltes[i];

        cout<<endl;
    }
//   
//    selection sort rumus


    for ( i=0; i<n; i++)
               {
                       for (int j=i+1;j<n; j++)
                       {
                           if (mhs.hasiltes[i]< mhs.hasiltes[j])
                           {
                               mhs.nama[i].swap (mhs.nama[j]);
                              
                            tmp=mhs.hasiltes[i];
                            mhs.hasiltes[i]=mhs.hasiltes[j];
                            mhs.hasiltes[j]=tmp;
                       
                        }
                       }   
                }
//   

//    output setelah disort           
            cout<<" --------------------------------------------------------------------------"<<endl;
            cout<<" |"<<setw(5)<<" NAMA "<<setw(3)<<"|"<<setw(15)<<"         HASIL TES"<<setw(20)<<"|"<<setw(10)<<"KETERANGAN"<<setw(10)<<"|";
            cout<<" \n --------------------------------------------------------------------------";
           
            for(int i=0; i<n; i++)
                  {
                     
                     
                       if(mhs.hasiltes[i]>=80 && mhs.hasiltes[i]<=100)
                    {
                    cout<<"\n |"<<setw(5)<<mhs.nama[i]<<setw(6)<<"|"<<setw(15)<<mhs.hasiltes[i]<<setw(27)<<"|"<<setw(10)<<"DITERIMA"<<setw(10)<<"|";
                    cout<<" \n --------------------------------------------------------------------------";
                    }
                   
                    if(mhs.hasiltes[i]>=70 && mhs.hasiltes[i]<80)
                    {
                    cout<<"\n |"<<setw(5)<<mhs.nama[i]<<setw(6)<<"|"<<setw(15)<<mhs.hasiltes[i]<<setw(27)<<"|"<<setw(10)<<"CADANGAN"<<setw(10)<<"|";
                    cout<<" \n --------------------------------------------------------------------------";
                    }
                   
                    if(mhs.hasiltes[i]<70)
                    {
                    cout<<"\n |"<<setw(5)<<mhs.nama[i]<<setw(6)<<"|"<<setw(15)<<mhs.hasiltes[i]<<setw(27)<<"|"<<setw(10)<<"DITOLAK"<<setw(10)<<"|";
                    cout<<" \n --------------------------------------------------------------------------";
                    }
                }
           
   
}

berikut adalah output dari program sorting diatas


silahkan di copy dan paste pada compiler kalian(lebih baik diketik ulang supaya kalian mengerti) dan jika ada pertanyaan silahkan bertanya pada kolom komentar. terimakasihh..


2 komentar:

  1. bang itu swap itu sebuah perintah ya pada c++? fungsinya buat apa? dan rumus swap penggunanya gimana? itu fungsi dari file header apa? makasih.. kalo boleh minta di email ya penjelasannya ke email ane ismailal636@gmail.com

    BalasHapus
  2. for ( i=0; i<n; i++)
    {
    for (int j=i+1;j<n; j++)
    {
    if (mhs.hasiltes[i]< mhs.hasiltes[j])
    {
    mhs.nama[i].swap (mhs.nama[j]); <<bagian ini!!

    tmp=mhs.hasiltes[i];
    mhs.hasiltes[i]=mhs.hasiltes[j];
    mhs.hasiltes[j]=tmp;

    }
    }
    }

    yang di bagian ini gan...

    BalasHapus