Friday, July 7, 2017

Kupas Tuntas Algoritma Pengurutan Apung (Bubble Sort)

Algoritma pengurutan Apung (bubble sort) diinspirasi oleh gelembung sabun yang berada diatas permukaan air. Untuk mendapatkan data larik yang terurut menaik, loka dari algoritma pengurutan apung secara global sebagai berikut:

Untuk setiap pass i = 1, 2, … , n-1, lakukan :
mulai dari elemen k = n, n-1, …, i+1, lakukan :

     - Bandingkan L[k] dengan L[k-1]
     - Pertukarkan L[k] dengan L[k-1] jika L[k] < L[k-1]Logika Rincian setiap pass sebagai berikut:
  • Pass 1    : mulai dari elemen ke-k = n,n-1,…,2, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan     L[k] dengan L[k-1], sehingga L[1] berisi harga minimum pertama
  • Pass 2    : mulai dari elemen ke-k = n,n-1,…,3, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan     L[k] dengan L[k-1], sehingga L[2] berisi harga minimum kedua.
  • Pass 3    : mulai dari elemen ke-k = n,n-1,…,4, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan     L[k] dengan L[k-1], sehingga L[3] berisi harga minimum ketiga
lakukan sampai ke

  • .Pass n-1: mulai dari elemen ke-k = n, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1], pertukarkan L[k]     dengan L[k-1], pada akhir pass n-1, elemen L[n-1] berisi nilai minimum ke (n-1) dan larik L[1..n-1]     terurut menaik.
Algortimanya pengurutan apung/bubblesort dari kecil ke besar(ascending) bisa dituliskan sebagai berikut :


    procedure bubblesort1(input/output L: larikint, input n : integer)
    DEKLARASI
        i : integer
        k : integer
        temp : integer
    ALGORITMA
        for  i = 1 to n - 1 do
            for k =  n downto I + 1  do
                 if L[k] < L[k-1] then
                   temp = L[k]
                    L[k] = L[k-1]
                    L[k-1] = temp
                 endif
            endfor
        endfor


Algortimanya pengurutan apung/bubblesort dari besar ke kecil(descending) bisa dituliskan sebagai berikut :

    procedure bubblesort2(input/output L:larikint, input n:integer)
    DEKLARASI
        I : integer
        k : integer
        temp : integer
    ALGORITMA
        for  I = 1 to n - 1 do
            for k = n downto I + 1  do
                 if L[k] > L[k-1] then
                   temp = L[k]
                    L[k] = L[k-1]
                    L[k-1]= temp
                 endif
            endfor
        endfor


Untuk lebih mudah bisa diilustrasikan sebagai berikut :
klik 2x untuk memperbesar gambar
Pada gambar diatas pengecekan mulai dari data yang paling akhir, kemudian dibandingkan dengan data yang didepannya. Jika data didepannya lebih besar maka akan tukar tempat.

klik 2x untuk memperbesar gambar
 Pada proses kedua, proses dilakukan sampai data yang ke dua,  karena data pertama pasti sudah yang paling kecil yang merupakan hasil dari proses pertama.

klik 2x untuk memperbesar gambar

klik 2x untuk memperbesar gambar


Mudah-mudahan bisa dipahami.

Wednesday, July 5, 2017

Metodologi Pengembangan Sistem perangkat lunak : Waterfall

Metodologi pengembangan perangkat lunak waterfall dimulai dengan perancangan, menganalisis sistem, analisis desain perangkat lunak, pengkodean, pengujian dan pemeliharaan. Berikut adalah bagian yang digunakan dalam perancangan yang terdiri dari :
  1. Perancangan Sistem  (System Enginering)
  2. Perancangan sistem sangat diperlukan, karena piranti lunak biasanya merupakan bagian dari suatu sistem yang lebih besar. Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan mencari apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan di terapkan kedalam piranti lunak yang di buat.
  3. Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis)
  4. Merupakan proses pengumpulan kebutuhan piranti lunak. Untuk memahami dasar dari program yang akan dibuat, seorang analisis  harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka pemakai piranti lunak tersebut.
  5. Perancangan (Design)
  6. Perancangan piranti lunak merupakan proses bertahap yang  memfokuskan pada empat bagian penting, yaitu: Struktur data, arsitektur piranti lunak, detil prosedur, dan karakteristik antarmuka pemakai.
  7. Pengkodean  (Coding)
  8. Pengkodean piranti lunak merupakan proses penulisan bahasa program agar piranti lunak tersebut dapat dijalankan oleh mesin.
  9. Pengujian (Testing)
  10. Proses ini akan menguji kode program yang telah dibuat dengan memfokuskan pada bagian dalam piranti lunak. Tujuannya untuk memastikan bahwa semua pernyataan telah diuji dan memastikan juga bahwa input yang digunakan akan menghasilkan output yang sesuai. Pada tahap pengujian ini dibagi menjadi dua bagian, pengujian internal  pengujian eksternal. Pengujian internal bertujuan menggambarkan bahwa semua statement sudah dilakukan pengujian, sedangkan pengujian   eksternal bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan.
  11. Pemeliharaan  (Maintenance)
  12. Proses ini dilakukan setelah piranti lunak telah digunakan oleh pemakai atau konsumen. Perubahan akan dilakukan jika terdapat kesalahan, oleh karena itu piranti lunak harus disesuaikan lagi untuk menampung perubahan kebutuhan yang diinginkan konsumen. 
 Pengembangan model  Waterfall oleh Roger S. Pressman