Cara installasi Ubuntu 14.01 di VirtualBox

                Sebelum memulai menginstall Ubuntu pastikan kita sudah menginstall Virtual Boxnya terlebih dahulu dan langsung di jalankan. Jika virtual box sudah dijalankan maka hal yang pertama kita lakukan adalah mengklik New pada pilihan yang tersedia.



Maka selanjutnya akan tampil sebuah form yang akan memberi pilihan Sistem Operassi apa yang akan install. Kita tulis saja Ubuntu pada kotak nama maka secara otomatis kotak di bawahnya akan menyesuaikan.


Selanjutnya kita klik next. Maka akan kembali muncul sebuah kotak yang meminta kita untuk menentukan besar ram yang akan di gunakan. Kita pakai saja 1GB jika kita mempunyai memory ram yang besar, Lalu klik next.

Selanjutnya adalah menentukan pembuatan virtual disk yang akan digunakan untuk tempat instalasi

Kita biarkan saja seperti itu dan klik create.

Step selanjutnya adalah menentukan tipe drive yang akan di gunakan, kita biarkan saja seperti itu dan klik next.

 

Kita pilih saja Dynamicall allocated dan klik next.


Pada step ini kita akan menentukan berapa jumlah hardisk yang akan di gunakan, disini saya akan menggunakan hardisk sebesar 10GB dan klik create.


Pada persiapan awal kita telah selesai. Kini step selanjutnya adalah melakukan instalasi system operasi Ubuntu itu sendiri.



Di menu awal ini sekarang kita klik start



Pada pilihan itu klik gambar forlder dengan tanda panah ke atas dan pilih dimana file os Ubuntu itu berada. Dan proses instalasi pun akan segera di mulai

Pada proses awal kita akan di suguhkan beberapa pilihan dan langsung saja kita pilih Install Ubuntu

Selanjutnya kita akan disuguhkan sebuah pilihan bahasa yang akan kita gunakan, silahkan sesuikan dengan bahasa yang di inginkan.

Pada step ini kita bias langsung klik Continue atau boleh juga centang terlebih dahulu Install this third-party software



Pada step berikutnya kita plih yang Erase disk and install Ubuntu dan klik Install Now



Sebelum proses instalasi di mulai kita tentukan dulu zona waktu yang akan kita gunakan



Selanjutnya kita biarkan saja seperti ini pada pengaturan layout keyboardnya dan klik continue



Selanjutnya adalah pemberian identias, silahkan isi sesui dengan yang kita mau. Dan klik continue maka proses instalasi akan segera dimulai


Ini adalah proses instalasi kedalam hardisk tunggu saja sampai selesai


Jika proses instalasi sudah selesai maka kita di minta untuk merestart computer dan kita klik saja tombol Restart Now



Proses instalasi sudah selesai silahkan login dengan user name dan password yang telah di buat tadi.

Ini adalah tampilan desktop Ubuntu ketika pertama kali di gunakan.

Selamat kita sudah berhasil menginstall Ubuntu di virtual box!!

      Struktur data lainnya adalah queue yang agak berbeda dengan prinsip stack, dimana dalam manipulasi setiap node yang menggunakan konsep FIFO (first-in, first-out) seperti antrian biasa, dimana yang masuk terlebih dahulu, itulah yang keluar dari antrian. Antrian adalah suatu kumpulan data yang penambahan elemennya hanya bisa dilakukan pada suatu ujung (disebut dengan sisi belakang atau rear), dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain (disebut dengan sisi depan atau front). Kalau tumpukan dikenal dengan menggunakan prinsip LIFO (Last In First Out), maka pada antrian prinsip yang digunakkan adalah FIFO (First In First Out)
Antrian banyak dijumpai dalam kehidupan sehari-hari, misal kalau kita menonton bioskop maka kita harus antri untuk membeli tiketnya.
Contoh implementasi dalam coding :

#include<iostream>
#include <conio.h>
#include <cstdlib>

using namespace std;

typedef struct //Mendeklarasikan type struct
{
int data [6]; //Mendlerasikan varible
int kepala;
int ekor;
}

Queue;
Queue antrian;

void Create()//Membuat fungsi Antrian
{
antrian.kepala=antrian.ekor=-1;
//deklarasi bahwa antrian.kepala sama dengan antrian.ekor yaitu -1
}

int kosong()
{
if(antrian.ekor==-1)
return 1;
else
return 0;
//kondisi jika antrian.ekor sama dengan -1 maka kembali ke 1 jika yang lainnya maka kembali ke 0
}
int penuh()
{
if(antrian.ekor==6-1)
return 1;
else
return 0;
//kondisi dimana jika antrian ekor sama dengan 6-1 maka kembali ke 1 dan jika lainnya maka kembali ke 0
}
void Enqueue(int data) //membuat masukan queue
{
            if(kosong()==1) //kondisi jika kosong () sama dengan 1 maka antrian.kepala= antrian.ekor=0
            {
                        antrian.kepala=antrian.ekor=0;
                        antrian.data[antrian.ekor]=data;

                        void Tampil(); //membuat fungsi tampil
                        {
                                    if(kosong()==0)
                                    /*kondisi dimana jika kosong() sama dengan 0 maka untuk integer i = antrian.kepala; i lebih kecil sama dengan antrian ekor; kemudian melakukan penambahan pada i*/

                                    {
                                                for(int i=antrian.kepala;i<=antrian.ekor;i++)
                                                {
                                                            cout<<antrian.data[i];
                                                }
                                    }
                                    else
                                                cout<<"Data Anda Kosong !\n";
                                                //kondisi jika laiinya maka akan tampil seperti diatas.
                        }
            }
            else
            if(penuh()==0)
            //kodisi laiinya jika penuh () sama dengan 0 maka antrian.ekor ditambah 1
            {
                        antrian.ekor++;
                        antrian.data[antrian.ekor]=data;

            }
}
int Dequeue() //variabel mengeluarkan antrian
{
            int i;
            int e=antrian.data[antrian.kepala];

            for(i=antrian.kepala;i<=antrian.ekor-1;i++)
            /*kondisi untuk i=antrian.kepala; i lebih kecil sama dengan antrian.ekor dikurangi 1; i ditambah 1*/
            {
                        antrian.data[i]=antrian.data[i+1];
                        //antrian data[i] sama dengan antrian data i+1
            }
            antrian.ekor--;
            //antrian.ekor dikurangi 1
            return e;
            //kembali ke e
}
void hancur()
//membuat fungsi menghancurkan queue
{
antrian.kepala=antrian.ekor=-1;
cout<<"Data sudah dihancurkan";
}

void Tampil()
//membuat fungsi tampil
{
            if (kosong()==0)
            {
                        for (int i=antrian.kepala;i<=antrian.ekor; i++)
                        {
                                    cout<<antrian.data[i]<<" ";
                        }
            }
            else
            {
                        cout<<"Data Anda Kosong\n";
            }
}

int main()
{
int pil;
int data;
Create();

 do
/*kondisi dimana program akan terus berjalan
 jika kondisi bernilai true dan program akan berhenti jika kondisi bernilai false.*/
{
system("cls");
cout<<"\n======== MENU ========\n";
cout<<"1. Enqueue\n";
cout<<"2. Dequeue\n";
cout<<"3. Tampil\n";
cout<<"4. Destroy\n";
cout<<"5. Keluar\n";
cout<<"======================\n";
cout<<"Masukkan Pilihan Anda : ";
cin>>pil; //inputan variabel pil bertipe integer

switch(pil)
//membuat switch pada plihan
{
            case 1:
                        cout<<"Masukan Data : ";
                        cin>>data;
                        Enqueue(data);
                        break;
                        //jika memilih 1 maka akan memasukan data antrian

            case 2:
                        cout<<"Elemen yang keluar : "<< Dequeue();
                        break;
                        /*jika memilih 2 maka akan menuju ke fungsi dequeue
                        atau dengan kata lain akan mengeluarkan 1 data pada elemen queue*/

            case 3:
                        Tampil();
                        /* jika memilih 3 maka akan menuju fungsi tampil,
                        maka data pada queue akan ditampilkan oleh program*/
                        break;

            case 4:
                        hancur();
                        // jika memilih 4 maka semua data pada queue akan dihancurkan.
                        break;
            case 5:
                        system("cls");
                        // jika memlih 5 maka akan menghapus layar dan keluar dari program.
                        break;
}
getch();
} while(pil!=5);
//akan melakukan operasi selama pilihannya tidak sama dengan 5

return 0;
}

Jika di compile maka akan tampil seperti gambar berikut:


 Sumber  : Buku Konsep dan Implementasi Struktur Data dengan C++
Oleh        : Lamhot dan David J.M Sembiring
Penerbit  : Andi


Stack merupakan bentuk khusus dari suatu struktur data, dimana node yang ditambahkan ke dalam list dan diambil dari list hanya pada kepalanya atau dengan kata lain prinsip pengolahannya dalah last-in first-out (LIFO). Dengan demikian, pada struktur ini hanya ada dua fungsi utama yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari stack). Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolah-olah diletakkan di atas data yang lain. Kita Bisa menambah (menyisipkan) data dan mengambil (menghapus) data melalui ujung yang sama yang disebut sebagai ujung atas tumpukan. Sebagai contohnya misalkan kita mempunyai 2 buah kotak yang ditimpuk sehingga kotak yang satu akan diatas kotak yang lainnya. Jika kemudian tumpukan 2 kotak tadi, ditambah kotak ketiga, keempat, kelima dan seterusnya, maka akan diperoleh sebuah tumpukan kotak yang terdiri dari N kotak.
Secara sederhana sebuah tumpukan bisa diilustrasikan sebagai gambar berikut :

Dari gambar diatas bisa di lihat bahwa kotak B terletak di atas kotak A dan di bawah kotak C. Gambar diatas menunjukan bahwa dalam tumpukan dalam tumpukan hanya bisa menambah atau mengambil sebuah kotak lewat satu ujung yaitu bagian atas. Bisa dilihat juga yang menjadi ujung atas tumpukan adalah kotak F. Jadi jika ada kotak lain yang akan di sisipkan, akan diletakkan di ats kotak F, dan jika ada kotak yang akan diambil, maka kotak F yang akan pertama diambil. 
Operasi Pada Tumpukan.
Ada 2 operasi dasar yang bisa dilaksanakan pada sebuah tumpukan yaitu operasi menyisipkan data (push) dan operasi menghapus data (pop).
Operasi push
Perintah push digunakan untuk memasukkan data ke dalam tumpukan. Conthnya misalkan kita mempuyai data-data 3, 25, dan 9 dalam tumpukan dengan posisi 3 paling bawah dan 9 paling atas. Dan kita akan memasukkan data 34 ke dalam tumpukan tersebut. Tentu saja data 34 akan diletakkan di atas data 9.


Operasi Pop
Operasi Pop adalah operasi untuk menghapus elemen yang yang terletak pada posisi paling atas dari sebuah tumpukan. Sama halnya dengan operasi push. Pertanyaanya sekarang bagaimana kalau tumpukan itu kosong. Cara untuk melihat kosong tidaknya suatu tumpukan adalah dengan membuat suatu fungsi yang menghasilkan suatu data yang bertipe Boolean. Cara ini lebih disarankan karena dengan mengetahui nilai fungsi tersebut kita bisa tahu kosong tidaknya suatu tumpukan.
Contoh Implementasinya Kedalam Koding:
#include <iostream>
#include <conio.h>
#include <cstdlib>

using namespace std;

struct STACK
{
    int data[5];
   int atas;
};

STACK tumpuk;

int main()
{
    system("cls");
   int pilihan,baru,i;
   tumpuk.atas=-1;
   do
   {
       system("cls");
      cout<<"1.Push Data"<<endl;
      cout<<"2.Pop Data"<<endl;
      cout<<"3.Print Data"<<endl;
      cout<<"4.Keluar"<<endl;
      cout<<endl;
      cout<<"Pilihan : ";
      cin>>pilihan;
      switch(pilihan)
      {
          case 1 :
         {
             if(tumpuk.atas==5-1)
            {
                cout<<"Tumpukan penuh";
               getch();
            }
            else
            {
                cout<<"Data yang akan di Push :";
               cin>>baru;
               tumpuk.atas++;
               tumpuk.data[tumpuk.atas]=baru;
            }
            break;
         }
         case 2 :
         {
             if(tumpuk.atas==-1)
            {
                cout<<"Tumpuk kosong";
               getch();
            }
            else
            {
                cout<<"Data yang akan di Pop ="<<tumpuk.data[tumpuk.atas]<<endl;
               tumpuk.atas--;
               getch();
            }
            break;
         }
         case 3 :
         {
             if (tumpuk.atas==-1)
             {
                 cout<<"Tumpukan kosong "<<endl;
                getch;
             }
         else
             {
                 cout<<"Data= " <<endl;
                for(i=0;i<=tumpuk.atas;i++)
                {
                    cout<<tumpuk.data[i]<<" ";
                }
         case 4:
            {
                exit(1);
            }

            getch();
         }
         break;
      }
      default:
      {
          cout<<"Tidak ada dalam pilihan"<<endl;
      }
   }
}
    while(pilihan>=1 && pilihan<=3);
    getch();
    return 0;
}
Jika dicompile maka akan tampak seperti gambar berikut:

Sumber  : Konsep dan Implementasi Struktur Data dengan C++
Oleh       : Lamhot Sitorus dan David J.M. Sembiring
Penerbit  : Andi

Dalam program C++ biasanya dipergunakan variable dan konstanta untuk mendefinisikan sebuah nilai. Variabel dalam program digunakan untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat diubah-ubah selama eksekusi program berlangsung. Variabel yang akan digunakan dalam program harus di deklarasi terlebih dahulu.
Deklarasi Variabel.
Pengertian deklarasi berarti memesan memori dan menentukan jenis data yang dapat disimpan di dalamnya.
Bentuk umum pendeklarasian variable adalah :
Tipe daftar-variabel ;
 Pada pendeklarasian variable, daftar-variabel dapat berupa sebuah variable atau beberapa variable yang dipisahkan dengan tanda koma.
Contoh :
Int jumlah ;
Float harga_per_satuan, total_harga;  
Dari contoh di atas tanda koma digunakan sebagai pemisah antara variabel harga_per_satuan dan total_harga. Pernyataan deklarasi yang pertama menyatakan bahwa jumlah adalah variabel bertipe int (integer = digunakan untuk menyimpan bilangan bulat), sedangkan pernyataan kedua menyatakan bahwa harga_per_satuan dan total_harga bertipe float (untuk menyimpan bilangan pecahan)

 Contoh implementasinya kedalam koding:

 #include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int ls, pj, lb;
    cout<<"Masukan Nilai Lebar: ";
    cin>>lb;
    cout<<endl;
    cout<<"Masukan Nilai Panjang: ";
    cin>>pj;
    cout<<endl;
    ls = pj*lb;
    cout<<"Luasnya Adalah: "<<ls;

    getch();
    return 0;
}

Jika di compile maka akan tampak seperti gambar di bawah ini:
Sumber  : Buku Pemrograman C++
Oleh       : 
Penerbit  :

Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada sekumpulan data yang sudah diurutkan terlebih dahulu. Prinsip dari binary search terhadap N elemen dapat dijelaskan seperti berikut:
    1.      Tentukan posisi awal = 0 dan posisi akhir = N-1.
    2.      Hitung posisi tengah = (posisi awal + posisi akhir)/2.
    3.      Bandingkan data yang dicari dengan elemen posisi tengah.
-       -     Jika sama maka catat posisi dan cetak kemudian berhenti.
-       -    Jika lebih besar maka akan dilakukan pencarian kembali kebagian kanan dengan posisi awal =        
p      posisi tengah +1 dan posisi akhir tetap kemudian ulangi mulai poin 2.
-       -   Jika lebih kecil maka akan di lakukan pencarian kembali ke bagian kiri dengan nilai posisi awal 
t       tetap dan nilai posisi akhir  = posisi tengah-1 kemudian ulangi mulai poin 2.
Misalkan kita mempunyai sederatan data dalam array nilai sebanyak 10 elemen dan akan dilakukan pencarian data 87 terhadap array.
Nilai[0..9] = 12,45,23,87,90,55,15,25,40,21
Urutkan elemen array secara menaik, sehingga diperoleh:
Nilai[0..9] = 12,15,21,23,25,40,45,55,87,90
Data yang akan dicari = 87(bilangan)
Tentukan nilai awal = 0, akhir = N-1=9
Hitung tengah = (9+0)/2=4
Bandingkan Bilangan < Nilai[tengah]->87=25->false
Bandingkan Bilangan < Nilai[tengah]->87<25->false
Bandingkan Bilangan < Nilai[tengah]->87>25->true maka pencarian dilakukan ke sebelah kanan dengan nilai awal = tengah+1 = 5
Karena awal masih lebih kecil dari akhir maka ulangi kembali mulai menghitung tengah
Hitung tengah = (9+5)/2=7
Bandingkan Bilangan  < Nilai[tengah] ->87=55->false
Bandingkan Bilangan < Nilai[Tengah]->87<55->false
Bandingkan Bilangan < Nilai[tengah]->87>55->true maka pencarian dilakukan ke sebelah kanan dengan nilai awal = tengah+1 = 8
Karena awal masih lebih kecil dari akhir maka ulangi kembali mulai menghitung tengah
Hitung tengah = (9+8)/2 = 8
Bandingkan Bilangan < Nilai[tengah]->87=87->true
Karena sudah di tentukan hasilnya maka proses pencarian berhenti.
Contoh implementasinya kedalam koding:

 #include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;

int main()
{
    //Pendeklarassian variabel
    int nilai[20];
    int i,j,n;
    int temp, awal, akhir, tengah, bilangan;

    //Proses penginputan data
    cout<<"Banyak Bilangan: ";
    cin>>n;
    for(i=0;i<n;i++)
    {
        cout<<"Elemen ke-"<<i<<" =";
        cin>>nilai[i];
    }
    cout<<"\n\nElemen sebelum diurut  = ";
    for(i=0;i<n;i++)
    {
        cout<<setw(3)<<nilai[i];
    }

    //Proses pengurutan data
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(nilai[i]>nilai[j])
            {
                temp = nilai[i];
                nilai[i]=nilai[j];
                nilai[j]=temp;
            }
        }
    }

    cout<<"\nElemen Setelah Di Urut = ";
    for(i=0;i<n;i++)
    {
        cout<<setw(3)<<nilai[i];
    }

    cout<<"\nIndeks Elemen           =";
    for(i=0;i<n;i++)
    {
        cout<<setw(3)<<i;
    }

    cout<<"\n\nMasukan data Yang Akan Anda Cari: ";
    cin>>bilangan;

    //Proses pencarian data
    awal = 0;
    akhir =n-1;

    do
    {
        tengah = (akhir+awal)/2;
        if(bilangan < nilai[tengah])
        {
            akhir = tengah -1;
        }
        else
        {
            awal = tengah +1;
        }
    }

    while((akhir>=awal)&&(nilai[tengah] !=bilangan));
    {
        if (nilai[tengah]==bilangan)
        {
            cout<<"\nData "<<bilangan<<" Ada dalam Array";
            cout<<"Pada posisi "<<tengah;
        }
        else
        {
            cout<<"\nData "<<bilangan<<" tidak ada dalam array\n";
        }
    }

    getch();
    return 0;
}


Jika di compile maka akan tampak seperti gambar di bawah ini:


Sumber  :  Buku konsep dan implementasi struktur data dengan C++
Oleh       : Lamhot Sitorus dan David J.M Sembiring
Penerbit : Andi
Metode Insertion Sort merupakan metode pengurutan dengan cara menyisipkan elemen array pada posisi yang tepat. Pencarian yang dapat dilakukan dengan melakukan pencarian beruntun didalam array. Selama pencarian posisi yang tepat dilakukan pergeseran elemen array. Algoritma pengurutan ini tepat untuk persoalan menyisipkan elemen baru ke dalam array yang sudah terurut. Misalnya dalam permainan kartu, kartu yangdicabut biasanya disisipkan oleh pemain pada posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu tetap terurut.
            Misalkan kita memilii suatu array dengan N maka pengurutan secara menaik dengan metode insertion sort sebagai berikut:
-          Langkah -1: elemen pertama Nilai[0] diasumsikan telah sesuai tempatnya.
-          Langkah -2: ambil elemen ke dua (Nilai[1]), cari lokasi yang tepat pada Nilai[0..0] untuk Nila[1]. Lakukan pergeseran ke kanan jika Nilai[0..1] lebih besar (untuk urut menaik) atau lebih kecil (untuk urut menurun) dari Nilai[1]. Misalnya posisi yang tepat adalah j, maka sisipkanlah Nilai[1] pada Nilai[j].
-          Langkah -3: ambil elemen ke tiga (Nilai[2]), cari lokasi yang tepat pada Nilai[0..1]untuk Nilai[2]. Lakukan pergeseran ke kanan jika Nilai[0..2] lebih besar (untuk urut yang menaik) atau lebih kecil (untuk urut yang menurun) dari Nilai[2]. Misalnya posisi yang tepat adalah j, maka sisipkanlah Nilai[2] pada Nilai[j].
-          Langkah -4: ambil elemen ke N (Nilai[3]), cari lokasi yang tepat pada Nilai[0..3] untuk Nilai Nilai[3]. Lakukan pergeseran ke kanan jika Nilai[0..2] lebih besar (untuk urut menaik) atau lebih kecil (untuk urut menurun) dari Nilai[3]. Misalnya posisis yang tepat adalah j, maka sisipkanlahNilai[3] pada Nilai[j].
-          Langkah –N: ambil elemen ke N (Nilai[N]), cari lokasi yang tepat pada Nilai[0…N-1] untuk Nilai Nilai[N]. Lakukan pergeseran ke kanan jika Nilai[0..2] lebih besar (untuk urut menaik) atau lebih kecil (untuk urut menurun) dari Nilai[N]. Misalnya posisi yang tepat adalah j, maka sisipkanlah Nilai[N] pada Nilai[j]. 

      Contoh kodingnya adalah seperti berikut:


      # include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    //Mendeklarasikan array dengan 7 buah elemen
    //Yang bertipe integer
    int A[7];

    //Mendeklarasikan variable-variabel bantu
    //Yang diperlukan
    int i,j,c,temp;

    //Memasukan Nilai array
    cout<<"Menginputkan Nilai Kedalam Elemen Array!!"<<endl;
    cout<<"========================================="<<endl;
    for(c=0;c<7;c++)
    {
        cout<<"A["<<c<<"] :";
        cin>>A[c];
    }

    cout<<endl<<endl;

    //Menapilkan Elemn Array Sebelum Di Urutkan
    cout<<"Elemen Array Sebelum Di Urutkan"<<endl;
    cout<<"==============================="<<endl;
    for(c=0;c<7;c++)
    {
        cout<<"A["<<c<<"]: "<<A[c]<<endl;
    }

     cout<<endl<<endl;

    //Melakukan pengurutan Elemen Array
    //Dengan metode Insertion sort

   for(c=1;c<7;c++)
   {
       temp=A[c];
      j=c-1;
      while(A[j]>temp && j>=0)
      {
           A[j+1]=A[j];
         j--;
      }
      A[j+1]=temp;
   }

    //Menampilkan Nilai array setelah di urutkan
    cout<<"Nilai Elemen Array Setalah Diurutkan!!"<<endl;
    cout<<"======================================"<<endl;
    for(c=0;c<7;c++)
    {
        cout<<"A["<<c<<"]: "<<A[c]<<endl;
    }

    getch();
    return 0;
}

Jika di Compile koding di atas akan tampak seperti gambar di bawah ini:

Sumber  : Buku Konsep dan Implementasi Struktur Data Dengan C++
Oleh       : Lamhot Sitorus dan David J.M. Sembiring
Penerbit  : Andi
Selection sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikut sampai ke elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan langsung ditukar.
Misalkan ada data-data sebagai berikut :
5
34
32
1
Daftar bilangan diatas masih belum urut dari kecil ke besar. Kita ingin melakukan pengurutan dari yang terkecil sampai yang terbesar dari 3 data tersebut.
Langkah pertama , membandingkan satu persatu sampai dengan yang terkakhir. Langkah-langkahnya sebagai berikut :
Langkah pertama :
Pembanding                            Posisi
5<34                                        1
5<32                                        1
5<1                                          4
Tukar data pada posisi 1 dengan data posisi 4
Hasil sementara : 1, 34,32,5
Langkah Kedua :
Pembanding                            Posisi
34>32                                      3
32<5                                        4
Tukar data pada posisi 2 dengan data posisi 4
Hasil akhir : 1, 5, 32, 34
Proses pengurutan data di atas memerlukan 2 kali perulangan.
Contoh Implementasi kodingnya:

 #include <iostream>
#include <conio.h>

using namespace std;

int data[100];
int n;

void tukar(int a, int b)
{
    int t;
   t=data[b];
   data[b]=data[a];
   data[a]=t;
}

int main()
{
    //Pendeklarasian variabel
    int i,j,temp;

    cout<<"Menetukan Jumlah Indeks Array Maksimal 100"<<endl;
    cout<<"=========================================="<<endl;
    cout<<"Masukan Jumlah Data Array: ";
    cin>>n;
    cout<<endl;

    cout<<"Menginputkan Nilai Kedalam Indeks Array"<<endl;
    cout<<"======================================="<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"Masukan Nilai Untuk Indeks ke- "<<i<<" : ";
        cin>>data[i];
    }
    cout<<endl;

    cout<<"Menampilkan Nilai Array Sebelum Di Urutkan"<<endl;
    cout<<"=========================================="<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
    }
    cout<<endl;
    cout<<"Menampilkan Nilai Setelah Di Urutkan!!"<<endl;
    cout<<"======================================"<<endl;

   for(i=0;i<n-1;i++)
   {
       temp=i;
      for(j=i+1;j<n;j++)
      {
          if(data[j]<data[temp])temp=j;
      }
      if(temp!=i)
      {
          tukar(temp,i);
      }
   }
   for(int i=0;i<n;i++)
   {
       cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
   }
 getch();
 return 0;
}

 Jika Di Compile maka akan tampak seperti gambar di bawah ini:

Sumber  : Buku Konsep dan Implementasi Struktur Data dengan C++
Oleh      : Lamhot Sitorus dan David J.M Sembiring
Penerbit : Andi