Selasa, 06 Maret 2018

METODE SORTING (BUBBLE SORT, SELECTION SORT,INSERTION SORT


1. Bubble Sort
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
                        Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.
Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen
array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma
ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan.  Elemen-elemen “4 2 5 3 9”. Proses yang akan terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut.

Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)

Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma bubblesort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut.


2 SELECTION SORT
Selection Sort merupakan salah satu algoritma pengurutan yang sederhana. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:
  1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
  2. Menukarkan nilai ini dengan elemen pertama list
  3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua
Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.
3 Insertion sort

Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. Inde algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.
Penganalogian Insertion Sort dengan pengurutan kartu
Berikut menjelaskan bagaimana algoritma Insertion Sort bekerja dalam pengurutan kartu, Anggaplah kita ingi mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar.
1. Dimulai dengan posisi tangan kosong, dan semua kartu berada diatas meja. Dan anggaplah kita akan menyusun kartu ke tangan kiri kita.
2. Mengamil kartu pertama dari meja dan meletakannya ke tangan kiri.
3. Mengambil kartu kedua dan membandingkannya dengan kartu yang sudah ada di tangan kiri.
4. Jika kartu yang diambil dari meja memenuhi syarat perbandingan, maka kartu tersebut akan diletakan didepan kartu yang dibandingkan, serta kartu yang lain yang telah dibandingkan akan bergeser mundur (ke belakang).
Proses ini akan berlangsung sampai semua kartu akan terurutkan dengan benar sesuai criteria pengurutannya.

Demikian juga halnya dalam pengurutan data.
Jika data sudah ada, maka pengurutan dimulai dengan mengambil satu data dan membandingkannya dengan data-data yang ada didepannya. Jika data yang diambil memenuhi syarat perbandingan, maka data yang diambil tersebut akan diletakan di depan data yang dibandingkan, kemudian data-data yang dibandingkan akan bergeser mundur.
Catatan : Dalam hal pengurutan data dengan metode insertion sort ini, data yang diambil pertama adalah data kedua, kemudian data yang diambil akan dibandingkan dengan data – data yang ada disebelah kiri / data sebelumnya (data-data sebelum data yang diambil).
Jika proses tersebut selesai, maka akan dilanjutkan dengan data-data selanjutnya (data ke-3, data ke-4… dan seterusnya). Proses akan berlangsung sampai data – data terurutkan dengan benar.

METODE SEARCHING SEQUENSIAL SEARCH DAN BIANRY SEARCH



1 SEQUENSIAL SEARCH
                Sequential search adalah metode searching yang membandingkan data di array dari 0 sampai data (n – 1) biar makin jelas  contohnya di bawah
x [77,34,21,87,120,12]
Dari data diatas kita coba mencari data 34 menggunakan metode sequnsial search.

Pseudecode
1.       Indeks = 0
2.       Input kriteria
3.       While kriteria tidak sama dengan X[Indeks]
4.       Indeks ++;
5.       Output ketemu =X[indeks]

Nah kita akan mulai mencari datanya step pertama;
Kriteria = 34
X[77,34,21,87,120,12]
1.       Apakah kriteria =34 sama dengan x[0](77) tidak maka indeks ++
2.       Apakah kriteria = 34 sama dengan x[2](34) sama
Maka ketemu =x[1] (34)

Nah kurang lebih seperti itu sequnsial search..
Sekarang lanjut ke binary search.

2 BINARY SEARCH
               Binary search adalah metode yang ideal dalam hal pencarian data secara beruntun dengan membandingkan nilai tengah dari sebuah array ok kita langsung ke contohnya aja.

x [15,35,55,70,89,93,121]

Dari data di atas kita akan mencari data 89 dengan merode binary search.
Dalam mencari Data dengan metode binary search kita haru stahu letah tengah dengan menggunakan rumus berikut.
(indeks awal + indeks ahir) / 2=
(0+6)/2= 3
Dari cara diatas ditemukan indeks ke -3 merupakam indeks tengah dari array diatas

x [15,35,55,70,89,93,121]
awal         tengah           akhir

kita buat pseudecode dulu.
1.       Tengah = (indeks awal = indeks akhir )/2
2.       Input criteria
3.       Jika kriteria > tengah maka nilai awal = tengah +1
4.       Jika kriteria < Tengah maka nilai akhir = tengah -1
5.       Jika kriteria = tengah, ketemu sudah

Mari kita caei datanya
1.       Tengah =x[3]
2.       Kriteria =89
3.       89>70
Awal =tengah +1
    [89,93,121]
Awal          akhir
4.       Tengah =(4+6)/2=5
       [89,93,121]
Awal akhir tengah
5.       89 <93
Akhir =tengah -1
[89]
Tengah
Oh iya jika datanya tinggal satu maka otomatis data tersebut lah yang kita cari
6.       89 =89
Ketemu =x[4](89)


Nah mungkin samapai disini dulu pembahasan saya mohon maaf jika ada salah atau kekurangan lkainnya mahon tulis kritik di komentar...

Neested loop atau perulangan dalam perularang




Ok kita akan membahas tentang nested loop 
ok kita akan mulai dengan contoh di bawah ,,,,

for(i=0; i<=3; i++){
     for(k=0; k<=5; k++){
         write ( i+','+k)
     }
}

di atas dapat di definisikan sebagi berikut:
i = 0 , apakah i lebih kecil sama dengan 3 ?
jika ya kerjakan perintah k = 0 apakah k lebih kecil sama dengan 5 ? Jika ya tulis i , k
perulangan akan terus berulang hingga kondisi perulangan k false, dan menghasilkan data sebagai berikut

i=0, dan j=0 hasilnya 0,0
i=0, dan j=1 hasilnya 0,1
i=0, dan j=2 hasilnya 0,2
i=0, dan j=3 hasilnya 0,3
i=0, dan j=4 hasilnya 0,4
i=0, dan j=5 hasilnya 0,5

 perulangan berjalan lagi


i=1, dan j=0 hasilnya 1,0

i=1, dan j=1 hasilnya 1,1
i=1, dan j=2 hasilnya 1,2
i=1, dan j=3 hasilnya 1,3
i=1, dan j=4 hasilnya 1,4
i=1, dan j=5 hasilnya 1,5

perulangan berjalan lagi

i=2, dan j=0 hasilnya 2,0
i=2, dan j=1 hasilnya 2,1
i=2, dan j=2 hasilnya 2,2
i=2, dan j=3 hasilnya 2,3
i=2, dan j=4 hasilnya 2,4
i=2, dan j=5 hasilnya 2,5

dan yang terakhir

i=3, dan j=0 hasilnya 3,0
i=3, dan j=1 hasilnya 3,1
i=3, dan j=2 hasilnya 3,2
i=3, dan j=3 hasilnya 3,3
i=3, dan j=4 hasilnya 3,4
i=3, dan j=5 hasilnya 3,5



mari kita coba membuat perhitungan dengan perulangan di bawah ini 

for(int i=0; i<=3; i++)
     {
       for(int j=0; k<=2; k++){ 

             x(i,k) = i - k;
        }
    }

hasil datanya adalah :

perulangan i pertama
i=0, dan j=0 hasilnya 0-0  
i=0, dan j=1 hasilnya 0-1
i=0, dan j=2 hasilnya 0-2
perulangan i kedua
i=1, dan j=0 hasilnya 1-0  
i=1, dan j=1 hasilnya 1-1
i=1, dan j=2 hasilnya 1-2
perulangan i ketiga
i=2, dan j=0 hasilnya 2-0  
i=2, dan j=1 hasilnya 2-1
i=2, dan j=2 hasilnya 2-2
perulangan i keempat
i=3, dan j=0 hasilnya 3-0  
i=3, dan j=1 hasilnya 3-1
i=3, dan j=2 hasilnya 3-2

dari data di atas kita dapat dengan mudah membuat matriknya dengan menjadikan satu perulangan menjadi sebuah baris, dan perulangan selanjutnya menjadi kolom 



menjadi seperti ini 





baris 0 = perulangan 1 
baris 1 = perulangan 2
baris 2 = perulangan 3 
baris 3 = perulangan 4

Tugas Rekayasa Perangkat Lunak (Kelas SP4.2)

1.Tahapan Pengembangan RPL a.Rekayasa sistem dan Analisis (Sistem Engineering and Analysis) Karena perangkat lunak adalah bagian dari siste...