TUGAS PRAKTIKUM
LINGKED LIST
By:

PROGRAM STUDI TEKNIK INFORMATIKA
POLITEKNIK NEGERI TANAH LAUT
TAHUN AJARAN 2014/2015
1.
Sorting atau
pengurutan data adalah proses yang sering harus dilakukan dalam pengolahan
data. Sort dalam hal ini
diartikan mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan
urutan tertentu baik urut menaik (ascending)
dari nilai terkecil sampai dengan nilai terbesar, atau urut menurun (descending) dari nilai terbesar
sampai dengan nilai terkecil.
Sorting bisa
didefinisikan sebagai suatu pengurutan data yang sebelumnya disusun secara
acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu. Sorting
yang kita terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya
lebih mudah.
Pada umumnya metode yang digunakan untuk sorting
adalah :
a)
Buble\Exchange
sort
b)
Selection
sort
c)
Insertion
sort
a)
Bubble\exchange
sort
Bubble sort adalah
proses pengurutan sederhana yang bekerja dengan cara berulang kali
membandingkan dua elemen data pada suatu saat dan menukar elemen data yang
urutannya salah. Ide dari Bubble sort adalah
gelembung air yang akan "mengapung" untuk table yang terurut
menaik (ascending). Elemen
bernilai kecil akan "diapungkan" (ke indeks terkecil), artinya
diangkat ke "atas" (indeks terkecil) melalui pertukaran.
Karena algoritma ini melakukan pengurutan dengan cara membandingkan elemen - elemen
data satu sama lain, maka bubble sort termasuk
ke dalam jenis algoritma comparison-based
sorting.
Teknik Sort yg bekerja dgn menggunakan
prinsip gelembung (bubble) udara yg akan bergerak naik ke atas secara satu per
satu.
Contoh Program
1). Bubble Sort Ascending
Ø Coding
#include
<iostream>
#include
<conio.h>
using
namespace std;
int
data[10],data2[10];
int n;
void
tukar(int a,int b)
{
int t;
t =
data[b];
data[b]
= data[a];
data[a]
= t;
}
void
Input()
{
cout<<"Masukkan
jumlah data = ";cin>>n;
cout<<"--------------------------------------"<<endl;
for(int
i=0;i<n;i++)
{
cout<<"Masukkan
data ke-"<<(i+1)<<" = ";cin>>data[i];
data2[i]
= data[i];
}
cout<<endl;
}
void
Tampil()
{
for(int
i=0;i<n;i++)
{
cout<<data[i]<<"
";
}
cout<<endl;
}void
bubble_sort()
{
for(int
i=1;i<n;i++)
{
for(int
j=n-1;j>=i;j--)
{
if(data[j]<data[j-1])
tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<"\t*-------------------------------------*"<<endl;
cout<<"\t*
Selamat datang di aplikasi *"<<endl;
cout<<"\t*
Bubble Sort *"<<endl;
cout<<"\t*-------------------------------------*"<<endl;
Input();
cout<<"Proses
Bubble Sort,,,,,,,"<<endl;
cout<<"-------------------------------------"<<endl;
Tampil();
bubble_sort();
cout<<"-------------------------------------"<<endl;
cout<<"
TERIMA KASIH "<<endl;
cout<<"-------------------------------------"<<endl;
getch();
}
|
Ø
Hasil Bubble sort (Ascending)
Ø Hasil Bubble sort (Descending)
Perbedaan
pengurutan secara Ascending dan Descending adalah hanya terletak pada Variabel
( if(data[j]<data[j-1]) tukar(j,j-1); ) Pada tanda < maka akan terjadi
ascending apabila > maka akan terjadi Discending.
2.
Insertion
Sort
Insertion sort adalah sebuah algoritma pengurutan yang
membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen
data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah
diurutkan. Ide dari algoritma ini dapat
dianalogikan seperti mengurutkan kartu. Algoritma insertion sort pada
dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum
diurutkan (meja pertama) dan yang sudah diurutkan (meja kedua).
Prinsip dasar Insertion adalah secara berulang-ulang
menyisipkan / memasukan setiap elemen. ke dalam posisinya / tempatnya yg benar.
Contoh Program
1). Insertion Sort Ascending
Ø Coding
#include
<iostream>
#include
<conio.h>
#include
<stdio.h>
#include
<windows.h>
using
namespace std;
main()
{
int x,a[14],i,t,j,k;
cout<<"====NILAI UNAS
MTK==="<<endl;
cout<<"Masukkan jumlah siswa
=";cin>>x;
for (i=1;i<=x;i++)
{
cout<<"\n nilai siswa
ke-"<<i<<" : ";cin>>a[i];
}
cout<<"\n\n data sebelum
diurutkan :";
for(i=1;i<=x;i++)
{
cout<<"
"<<a[i];
}
cout<<endl;
for (i=1;i<=x;i++)
{
for(j=1;j<=i;j++)
{
if (a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
cout<<"\n # "<<i<<"
: ";
for (k=1;k<=i;k++)
{
cout<<"
"<<a[k];
}
}
cout<<"\n\n Hasil Pengurutan :
";
for(i=1;i<=x;i++)
{
cout<<"
"<<a[i];
}
getch();
}
|
Ø
Hasil
Insertion Sort (Ascending)
Ø
Hasil
Insertion Sort (Discending)
Sama seperti sebelumnya, perbedaan dari Ascending dan Discending hanya
lah pada urutan besar atau kecilnya huruf. Yaitu terdapat pada sorce code ( if
(a[i]>a[j])
3.
Selection
Sort
Ide
utama dari algoritma selection sort adalah memilih elemen dengan nilai
paling rendah dan menukar elemen yang terpilih dengan elemen ke-i.
Nilai dari i dimulai dari 1 ke n, dimana n adalah
jumlah total elemen dikurangi 1.
Prinsip Kerja dari Teknik Selection Sort ini adalah :
1.
Pengecekan dimulai data ke-1 sampai dengan data ke-n
2.
Tentukan bilangan dengan Index terkecil dari data
bilangan tersebut
3.
Tukar bilangan dengan Index terkecil tersebut dengan
bilangan pertama ( I = 1 ) dari data bilangan tersebut
4.
Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I=
I+1 ) sampai didapatkan urutan yg optimal.
Contoh Program
1). Selection Sort Ascending
Ø Coding
#include <cstdlib>
#include <iostream>
#include <conio.h>
using namespace std;
int main ( )
{
int data [] = { 7, 3, 9, 2, 5}; //Kondisi
awal:Unsorted list = data
int tmp; //Sorted list = kosong
cout<<"\tSELECTION
SORT\n\n";
cout << "Data yang akan di
urutkan \t:";
for( int i = 0; i < 5; i++)
cout << data[i]
<< " ";
cout << endl;
for (int i = 0; i < 5 -1; i++)
for (int j = i+1; j < 5;
j++)
//1. Pengecekan dimulai data ke-1
sampai dengan data ke-n
if (data[i] >
data[j])
{
//2. Tentukan bilangan dengan
Index terkecil dari data bilangan tersebut
tmp =
data[i];
//3. Tukar
bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1 ) dari data bilangan
tersebut
data[i] =
data[j];
data[j] =
tmp;
}
//4.
Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai
didapatkan urutan yg optimal.
cout<<"\nData yang telah di
urutkan \t:";
for( int i = 0; i < 5; i++)
cout << data[i]
<< " ";
cout << endl;
getch();
return 0;
}
|
Ø
Hasil Selection (Ascending)
Ø
Hasil Selection (Discending)
0 komentar:
Posting Komentar