Welcome to my blog, hope you enjoy reading
RSS

Kamis, 03 September 2015

TUGAS PRAKTIKUM
LINGKED LIST





By:
*       Khusnul Khotimah       A1314029

 



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