Program Lengkap Function Searching dan Sorting Struktur Data - Siapa yang tidak tahu tentang program, dalam setiap kegiatan kita sehari-hari kita tidak lepas dengan sebuah program. Program adalah sebuah intruksi yang sering digunakan dalam sebuah komputer ataupun gadget. dalam hal ini komputer atau gadget tidak akan bisa berjalan jika program itu tidak ternaman didalamnya.
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.
Pada umumnya dikenal tiga metode searching, antara lain :
- Sequensial Search.
- Binary Search.
- Interpolation Search.
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 :
Ini Programnya :
#include <iostream.h>
#include <conio.h>
#include <windows.h>
void main()
{
utama:
char yt;
char pilih;
int pilihan;
float panjang,lebar,luas,searching,sorting;
cout<<"MEMBUAT PROGRAM TUGAS AKHIR"<<endl;
cout<<"================Nama Kelompok=============="<<endl;
cout<<"==================Lab. Struktur Data================"<<endl;
cout<<" ============bunglende.com========="<<endl;
cout<<"============================================="<<endl;
cout<<" MENU PROGRAM "<<endl;
cout<<"============================================="<<endl;
cout<<"1. Function"<<endl;
cout<<"2. Searching"<<endl;
cout<<" a).Sequential"<<endl;
cout<<" b).Binarry"<<endl;
cout<<" c).Interpolation"<<endl;
cout<<"3. Sorting"<<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<<"============================================="<<endl;
cout<<"Masukan Pilihan Anda[1/2/3]: ";
cin>>pilihan;
clrscr();
switch(pilihan){
case 1 :
function :
cout<<"============Function==========="<<endl;
cout<<"Menghitung Luas Persegi Panjang"<<endl;
cout<<"Input Panjang = ";
cin>>panjang;
cout<<"Input Lebar = ";
cin>>lebar;
luas = panjang * lebar;
cout<<"Luas = "<<luas<<endl;
cout<<"==============================="<<endl;
cout<<"Kembali ke menu utama Y|T..? : ";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto utama;
}else{
clrscr();
goto function;
}
break;
case 2 :
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;
default:
cout<<"Pilihan yang anda masukkan salah" <<endl;
cout<<"==============================="<<endl;
cout<<"Kembali ke menu utama Y|T..? :";cin>>yt;
if(yt=='Y'||yt=='y'){
clrscr();
goto utama;
}else{
cout<<"Terima Kasih Anda Telah Menggunakan Program Kami"<<endl;
Sleep(0);
}
break;
}
getch();
}
Tampilan Menu Program :
Inilah rekomendasi Program Lengkap Function Searching dan Sorting Struktur Data semoga semua ini bermanfaat.
0 Comments:
Posting Komentar