Function (fungsi) adalah sekumpulan perintah yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya.
Searching(pencarian) merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data berdasarkan kunci pencarian. Pada pembahasan ini pencarian data hanya dilakukan pada array 1 dimensi.
Sorting(pengurutan) adalah proses mengatur sekumpulan data menurut urutan atau susunan tertentu.
Urutan data tersebut dapat menaik (ascending) maupun menurun (descending).
Disini saya akan memberikan contoh Program function searching dan sorting struktur data :
searching:
cout<<"==============Program Searching=============="<<endl;
cout<<" a).Sequential"<<endl;
cout<<" b).Binary"<<endl;
cout<<" c).Interpolation"<<endl;
cout<<"Masukan Pilihan Anda[a/b/c]: ";cin>>pilih;
if(pilih=='a'){
clrscr();
squential:
cout<<"============================================="<<endl;
cout<<"Squential Searching"<<endl;
cout<<"============================================="<<endl;
int A[10]={4,5,7,4,1,5,4,1,8,9};
int bil_cari;
int i;
int ketemu=0;
int jumlah=0;
cout<<"Inputkan Bilangan Yang Dicari : ";cin>>bil_cari;
for(i=0;i<10;i++){
if(bil_cari==A[i]){
ketemu = 1;
jumlah = jumlah + 1;
cout<<"Data Ditemukan Di Index ke-"<<i<<endl;
}
}
if(ketemu == 1){
cout<<"Data Ditemukan...."<<endl;
cout<<"Dengan Jumlah Data Yang Sama : "<<jumlah<<endl;
cout<<"==============================="<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto squential;
}else{
clrscr();
goto searching;
}
}else{
cout<<"Data Tidak Ditemukan..."<<endl;
cout<<"==============================="<<endl;
cout<<"Cari Ulang Y|T..? :";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto squential;
}else{
clrscr();
goto searching;
}
}
}else if(pilih=='b'){
clrscr();
binary:
cout<<"============================================="<<endl;
cout<<"Binary Searching"<<endl;
cout<<"============================================="<<endl;
int nilai[15]={1,3,4,5,7,9,11,15,17,20,21,23};
int n=12;
int awal = 0, akhir = n-1, tengah;
int bil_cari=0;
int ketemu=0;
int langkah=1;
cout<<" Bilangan yg dicari : ";cin>>bil_cari;
while( awal <= akhir && ketemu == 0){
cout<<"Langkah Ke-"<<langkah<<" : "<<endl;
tengah = (awal + akhir)/2;
cout<<" Data Tengah index ke-"<<tengah<<" : ";
cout<<nilai[tengah]<<endl;
if( nilai[tengah] == bil_cari ){
ketemu=1;
}else if(bil_cari > nilai[tengah]){
cout<<" Cari di Kanan.."<<endl;
awal = tengah + 1;
}else if(bil_cari < nilai[tengah]){
cout<<" Cari di Kiri"<<endl;
akhir = tengah - 1;
}
langkah = langkah + 1;
}
if(ketemu == 1){
cout<<" Bilangan Ditemukan......"<<endl;
cout<<"==============================="<<endl;
cout<<"Cari Ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto binary;
}else{
clrscr();
goto searching;
}
}else{
cout<<" Bilangan Tidak Ditemukan..."<<endl;
cout<<"==============================="<<endl;
cout<<"Cari Ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto binary;
}else{
clrscr();
goto searching;
}
}
}
else if(pilih=='c'){
clrscr();
inter:
int data[10]={3,4,7,9,11,12,14,15,17,19};
int N = 10;
int posisi = 0, awal = 0, akhir = N-1, ketemu = 0;
int cari = 0;
int langkah=1;
cout<<"============================================="<<endl;
cout<<"Interpolation Searching"<<endl;
cout<<"============================================="<<endl;
cout<<" Masukkan nilai yang akan anda cari : ";
cin>>cari;
while( cari >= data[awal] && cari <= data[akhir]){
cout<<" Langkah Ke-"<<langkah<<" : "<<endl;
posisi = awal + ((cari - data[awal]) * (akhir - awal)) / (data[akhir] - data[awal]);
cout<<" Posisi : "<<posisi<<endl;
if (data[posisi] == cari){
ketemu = 1;
break;
}else if (cari > data[posisi]){
cout<<" Cari Dikanan..."<<endl;
awal = posisi + 1;
}else if (cari < data[posisi]){
cout<<" Cari Dikiri..."<<endl;
akhir = posisi - 1;
}
langkah = langkah + 1;
}
if (ketemu == 1){
cout<<" Data Ditemukan..."<<endl;
cout<<"==============================="<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto inter;
}else{
clrscr();
goto searching;
}
}else{
cout<<" Data Tidak Ditemukan..."<<endl;
cout<<"==============================="<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto inter;
}else{
clrscr();
goto searching;
}
}
}else{
cout<<"=================================="<<endl;
cout<<"Menu yang anda pilih tidak ada.!!!"<<endl;
cout<<"Kembali ke menu utama Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto utama;
}else{
clrscr();
goto searching;
}
}
break;
case 3:
sorting:
cout<<"==============================="<<endl;
cout<<" Program Sorting "<<endl;
cout<<"==============================="<<endl;
cout<<" a).Bublesort"<<endl;
cout<<" 1.Asc"<<endl;
cout<<" 2.Desc"<<endl;
cout<<" b).Exchange Sort"<<endl;
cout<<" 1.Asc"<<endl;
cout<<" 2.Desc"<<endl;
cout<<"Masukan Pilihan Anda[a/b]: ";cin>>pilih;
if(pilih=='a'){
clrscr();
bubl :
cout<<"==============================="<<endl;
cout<<"===========Bublesort==========="<<endl;
cout<<"==============================="<<endl;
cout<<"pilih menu :"<<endl;
cout<<"1.Asc"<<endl;
cout<<"2.Desc"<<endl;
cout<<"Masukan Pilihan Anda[1/2] : ";cin>>pilih;
if(pilih=='1'){
ascb:
int i, k, j, jumlah, urut;
char nilai[20][20],temp[20][20];
clrscr();
cout<<" Masukan jumlah data : ";
cin>>jumlah;
//penginputan data
for(i = 0; i < jumlah; i++){
urut = i + 1;
cout<<"Data ke-"<<urut<<" : ";
cin>>nilai[i];
}
cout<<"Data sebelum di urut : ";
for(i = 0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
//proses pengurutan data
urut = 0;
for(i = 0; i < jumlah-1; i++){
urut = i + 1;
cout<<" Langkah "<<urut<<endl;
for(k = jumlah - 1; k > i; k--){
if(strcmp(nilai[k], nilai[k-1]) < 0){
strcpy(temp[0], nilai[k]);
strcpy(nilai[k], nilai[k-1]);
strcpy(nilai[k-1], temp[0]);
}
for(j = 0; j < jumlah; j++){
cout<<nilai[j]<<" ";
}
cout<<endl;
}
}
cout<<endl;
cout<<"Setelah di urut : ";
for(i=0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
cout<<"======================================="<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto ascb;
}else{
clrscr();
goto bubl;
}
}else if(pilih=='2'){
dscb:
int i, k, j, jumlah, urut, temp;
int nilai[100];
clrscr();
cout<<" Masukkan Jumlah Data : ";
cin>>jumlah;
//penginputan data
for(i=0; i < jumlah; i++){
urut = i + 1;
cout<<" Data ke-"<<urut<<" : ";
cin>>nilai[i];
}
cout<<" Data Sebelum Di Urut : ";
for(i=0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
//proses pengurutan data
urut=0;
for(i=0; i < jumlah -1; i++){
urut = i + 1;
cout<<" Langkah "<<urut<<endl;
for(k = jumlah - 1; k > i; k--){
if(nilai[k] > nilai[k-1]){
temp = nilai[k];
nilai[k] = nilai[k-1];
nilai[k-1] = temp;
}
for(j=0; j < jumlah; j++){
cout<<" "<<nilai[j]<<" ";
}
cout<<endl;
}
}
cout<<endl;
cout<<" Setelah di urut : ";
for(i=0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
cout<<"======================================="<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto dscb;
}else{
clrscr();
goto bubl;
}
}else{
cout<<endl;
cout<<"===================================="<<endl;
cout<<"Menu yang anda masukan tidak ada.!!!"<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto bubl;
}else{
clrscr();
goto sorting;
}
}
}else if(pilih=='b'){
clrscr();
exc :
cout<<"==============================="<<endl;
cout<<"==========Exchange Sort========"<<endl;
cout<<"==============================="<<endl;
cout<<"pilih menu : "<<endl;
cout<<"1.Asc"<<endl;
cout<<"2.Desc"<<endl;
cout<<"Masukan Pilihan Anda[1/2] : ";cin>>pilih;
if(pilih=='1'){
asc :
int i, k, j, jumlah, urut, temp;
int nilai[100];
clrscr();
cout<<" Masukan jumlah data : ";
cin>>jumlah;
//penginputan data
for(i = 0; i < jumlah; i++){
urut = i + 1;
cout<<" Data ke-"<<urut<<" : ";
cin>>nilai[i];
}
cout<<" Data sebelum di urut : ";
for(i = 0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
//proses pengurutan data
urut = 0;
for(i = 0; i < jumlah-1; i++){
urut = i + 1;
cout<<" Langkah "<<urut<<endl;
cout<<" Index Pivot : "<<i<<endl;
for(k = i + 1; k < jumlah; k++){
if(nilai[i] > nilai[k]){
temp = nilai[i];
nilai[i] = nilai[k];
nilai[k] = temp;
}
for(j = 0; j < jumlah; j++){
cout<<" "<<nilai[j];
}
cout<<endl;
}
}
cout<<endl;
cout<<" Setelah di urut : ";
for(i=0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
cout<<"======================================"<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto asc;
}else{
clrscr();
goto exc;
}
}else if(pilih=='2'){
dsc:
int i, k, j, jumlah, urut, temp;
int nilai[100];
clrscr();
cout<<" Masukan jumlah data : ";
cin>>jumlah;
//penginputan data
for(i = 0; i < jumlah; i++){
urut = i + 1;
cout<<" Data ke-"<<urut<<" : ";
cin>>nilai[i];
}
cout<<" Data sebelum di urut : ";
for(i = 0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
//proses pengurutan data
urut = 0;
for(i = 0; i < jumlah-1; i++){
urut = i + 1;
cout<<" Langkah "<<urut<<endl;
cout<<" Index Pivot : "<<i<<endl;
for(k = i + 1; k < jumlah; k++){
if(nilai[i] < nilai[k]){
temp = nilai[i];
nilai[i] = nilai[k];
nilai[k] = temp;
}
for(j = 0; j < jumlah; j++){
cout<<" "<<nilai[j];
}
cout<<endl;
}
}
cout<<" Setelah di urut : ";
for(i=0; i < jumlah; i++){
cout<<nilai[i]<<" ";
}
cout<<endl;
cout<<"======================================"<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto dsc;
}else{
clrscr();
goto exc;
}
}else{
cout<<endl;
cout<<"===================================="<<endl;
cout<<"Menu yang anda masukan tidak ada.!!!"<<endl; //asasasas
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto exc;
}else{
clrscr();
goto sorting;
}
}
}else{
cout<<endl;
cout<<"===================================="<<endl;
cout<<"Menu yang anda masukan tidak ada.!!!"<<endl;
cout<<"Cari ulang Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto sorting;
}else{
clrscr();
goto utama;
}
}
break;
Inilah rekomendasi Program Lengkap Function Searching dan Sorting Struktur Data semoga semua ini bermanfaat.