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.
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:
#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..
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 :
methode Selection sort dari terkecil berdasarkan nama : Hasil sort
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 denganmethode 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..
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
BalasHapusfor ( i=0; i<n; i++)
BalasHapus{
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...