PRAKTIKUM MANDIRI
SORTING dan SEARCHING
Nama : ISNI FACHRI RIZAL
NIM : F1D013049
A.
Tujuan
1. Pengimplementasian Bubble sort
dan sequensial search dalam pembuatan program, dengan penyimpanan link list
B.
Permasalahan
1.
Membuat program yang terdiri dari fungsi untuk sorting dan fungsi untuk
searching
C.
Gambar Desain Program
D.
Penjelasan Desain
No
|
OPERASI
|
DESKRIPSI
|
C/C++
|
1
|
CONSTRUCT
|
Membuat/membangun link list dengan membuerikn
nila 0 pada size, NULL pada head dan tail
|
Void bangun() {size=0;
head=NULL; tail=NULL;};
|
2
|
ADD
DATA
|
Untuk memasukan dan menambahkan data ke dalam
link list.
|
void LL::addback (double dt)
|
3
|
REMOVE
|
Untuk menghapus data yang terdapat
dalam link list.
|
void LL::remove (double dt)
|
4
|
SORTING
|
Untuk melakukan pengurutan
data yang terdapat pada link list
|
void LL::bubblesort()
|
5
|
SEARCHING
|
Untuk melakukan pencarian
data yang terdapat pada link list
|
void LL::sequensialsearch (double dt)
|
6
|
TAMPIL
|
Untuk menampilkan data yang
terdapat pada link list
|
void LL::tampil()
|
E.
Kode Program
#include <iostream>
#include <conio.h>
using namespace std;
class LL{
private:
struct node{
double data;
node*next;
node*back;
};
node*head;
node*tail;
int size;
public:
void bangun(){size=0;head=NULL;tail=NULL;};
void addback(double dt);
void remove(double dt);
void sequensialsearch(double dt);
void bubblesort();
void tampil();
};
void LL::addback(double dt){
node*tmp=new node;
tmp->data=dt;
tmp->next=NULL;
tmp->back=NULL;
if(size==0){
head=tmp;
tail=tmp;
size++;
}else{
tmp->back=tail;
tail->next=tmp;
tail=tmp;
size++;
}
}
void LL::remove(double dt){
bool cari;
node*tmp=head;
while(tmp!=NULL){
if(tmp->data==dt){
cari=true;
break;
}
tmp=tmp->next;
}
if(cari){
if(tmp==head){
head=head->next;
tmp->next=NULL;
head->back=NULL;
delete tmp;
}else if(tmp==tail){
tail=tail->back;
tail->next=NULL;
tmp->back=NULL;
delete tmp;
}else{
tmp->back->next=tmp->next;
tmp->next->back=tmp->back;
tmp->back=NULL;
tmp->next=NULL;
delete tmp;
}
}
}
void
LL::sequensialsearch(double dt){
node*tmp=head;
int a=NULL, b=1;
while(tmp!=NULL){
if(tmp->data==dt){
a=b;
break;
}
b++;
tmp=tmp->next;
}
cout<<"data yang anda cari adalah data yang
ke-"<<a<<endl;
}
void LL::bubblesort(){
int a=size;
node*p;
node*q;
node*r=new node;
for(int i=0;i<a;i++){
p=head;
q=p->next;
while(q!=NULL){
if(p->data>q->data){
r->data=p->data;
p->data=q->data;
q->data=r->data;
}
p=p->next;
q=q->next;
}
}
}
void LL::tampil(){
node*tmp=head;
if(size==0){
cout<<"KOSONG\n";
}else{
while(tmp!=NULL){
cout<<tmp->data<<" ";
tmp=tmp->next;
}
}
cout<<endl;
}
void main(){
LL a;
int b, c, d;
a.bangun();
do{
system("cls");
cout<<"data yang tersimpan\n";
a.tampil();
cout<<"\npilihlah operasi yang ingin anda
lakukan\n\n"
<<"1. Memasukan/Menambahkan data\n"
<<"2. Menghapus data\n"
<<"3. Mengurutkan data\n"
<<"4. Mencari data\n"
<<"5. Mengakhiri proses\n";
cin>>b;
switch(b){
case 1:
cout<<"masukan banyak data :
";cin>>d;
for(int i=0;i<d;i++){
cout<<"masukan data
ke-"<<i<<" : ";cin>>c;
a.addback(c);
}
break;
case 2:
cout<<"data yang ingin di hapus :
";cin>>c;
a.remove(c);
break;
case 3:
a.bubblesort();
break;
case 4:
cout<<"data yang dicari :
";cin>>c;
a.sequensialsearch(c);
getch();
break;
default:
cout<<"Tampilan isi data\n";
a.tampil();
}
}while(b!=5);
system ("pause");
}
|
F.
Tampilan Ketika Dijalankan
Tampilan ketika program pertama kali di jalankan
Tampilan ketika program meminta untuk memasukan
data
Tampilan ketika data yang dimasukan telah
disimpan
Tampilan program setelah melakukan sorting
Tampilan program setelah melakukan searching
Tampilan program ketika di akhiri
G.
Cara Kerja Program
Pertama program akan menampilkan menu pilihan kepada
pengguna untuk memilih jenis operasi yang dilakukan.
Kemudian program akan menjalankan selection switch-case untuk melakukan
penyeleksian jenis operasi yang ingin dilakukan oleh pengguna.
Jika pengguna memilih menu ke :
1. Maka program
akan memanggil fungsi addback pada kelas LL yang berfungsi untuk
memasukan/menambah isi data
2. Maka program
akan memanggil fungsi remove pada kelas LL yang berfungsi untuk melakukan
penghapusan terhadap data yang diinginkan oleh pengguna
3. Maka program
akan memanggil fungsi bubblesort pada kelas LL yang berfungsi untuk melakukan
pengueutan data
4. Maka program
akan memanggil fungsi sequensialsearch pada kelas LL yang berfungsi untuk
melakukan pencarian terhadap data diinginkan oleh pengguna
5. Maka program
akan menampilkan isi dari data yang terakhir kalinya dan kemudian mengakhiri
program.
Thanks zal ..
BalasHapussbg referensi sya untuk buat searching ..
lanjutkan terus zal :D
BalasHapus