Sekilas Tentang Algoritma & Pemrograman


Agoritma dan pemrograman….hhhmmmm !

Algoritma merupakan cara menyelesaikan suatu masalah dengan urutan langkah logis. Pemrograman berasal dari kata program, dengan begitu pemrograman merupakan proses untuk membuat program atau program komputer atau software komputer menggunakan bahasa pemrograman. Algoritma dan pemrograman biasanya diajarkan kepada mahasiswa jurusan teknik informatika semeseter 1. Algoritma dan pemrograman penting untuk dipelajari dan merupakan dasar bagi yang ingin menjadi programmer (pembuat program) atau system analyst (orang yang merancang sistem komputer) handal.


Agar komputer dapat berfungsi sesuai keinginan user dibutuhkan sistem komputer. Sistem komputer terdiri dari hardware (perangkat keras), software (perangkat lunak), dan brainware (manusia). Software dikelompokkan menjadi 3, yaitu: operating system software (program sistem operasi, contoh windows xp, windows vista, linux suse, dll ), programming language software (program bahasa pemrograman, contoh: program turbo pascal, program visual basic, dll) dan aplication program software (program aplikasi, contoh: program microsoft word, excel, dll). Dan dengan mempelajari dan menguasai materi Algoritma dan pemrograman diharapkan dapat memahami prinsip kerja program, dan cara berpikir komputer sehingga dapat melakukan perintah yang diberikan serta dapat menggambarkan secara tertulis logika urutan kerja program dengan algortima (pseudo code), dilengkapi dengan diagram alir (flow chart), dan mengimplementasikannya dengan bahasa pemrograman tertentu.

Program
Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan. (Menurut P. Insap Santosa). Kumpulan instruksi atau perintah tersebut biasanya disebut source code.

Algoritma
Kata algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuwan persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825M. Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, artinya algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat (dari Microsoft Press Computer and Internet Dictionary 1997, 1998).

Pemrograman
Pemrograman adalah proses untuk membuat program menggunakan bahasa pemrograman atau proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan bahasa pemrograman.

Iklan

Metode Pengurutan(Sorting) dalam Algoritma


Bubble Sort


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.
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.

-Kelebihan Bubble Sort:
1. Metode Buble Sort merupakan metode yang paling simpel
2. Metode Buble Sort mudah dipahami algoritmanya

-Kelemahan Bubble Sort:
Meskipun simpel metode Bubble sort  merupakan metode pengurutanyang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.

Selection Sort




Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1.
Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut:
1. Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
2. Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos
dengan data di posisi i jika k.
3. Ulangi langkah 1 dan 2 dengan j = j+i sampai dengan j = N-1, dan seterusnya
sampai j = N – 1.

Bila diketahui data awal berupa: 44 55 12 42 94 18 6 67, maka langkah per
langkah pengurutan dengan metode selection sort adalah sebagai berikut:


Insertion Sort

Metode pengurutan selection sort sering dipakai oleh orang saat bermain kartu bridge dalam mengurutkan kartunya, yaitu dengan cara menyisip kartu yang lebih kecil ke urutan sebelum posisi kartu yang dibandingkannya. Perhatikan tabel berikut. :


Masih ada beberapa metode sorting yang lain, yang belum sempat saya tulis disini.

tunggu update-an nya ya…


Rekursif vs Iterasi


Dua hal menarik yang membuat saya terkesan memahami istilah perulangan adalah Rekursif dan Iterasi.

pengertian iterasi terlebih dahulu,

Iterasi merupakan suatu teknik perulangan yang digunakan pada penulisan program. Perulangan yang dimaksud adalah seperti perintah-perintah while .. do ataupun for .. do. Perulangan akan terus terjadi selama kondisinya terpenuhi. Yah, perulangan yang umum kita gunakan seperti pada program deret fibonanci, prima, genap, ganjil atau lainnya.

Lalu apa itu Fungsi rekursif ? 

Rekursif sebenarnya merupakan teknik perulangan juga, namun dalam konteks yang berbeda. Fungsi refursif adalah fungsi yang dapat memanggil dirinya sendiri. Maksudnya fungsi tersebut menggunakan dirinya sendiri untuk proses perulangan.

Lalu mengapa ada fungsi rekursif jika sudah ada teknik perulangan itu sendiri? Memang antara iterasi dan rekrusif itu sama-sama digunakan untuk proses perulangan. Namun ada beberapa masalah yang akan lebih mudah jika dipecahkan menggunakan fungsi rekursif. Disamping itu kode program yang menggunakan fungsi rekursif akan lebih mudah dipahami dari pada versi iterasinya.

Untuk lebih jelasnya mengenai perbandingan dari rekursif dan interasi tersebut, mari kita lihat pada tabel berikut ini.

Rekursif

Iterasi

Kode program lebih ringkas dan mudah dipahami

Kode program lebih panjang, untuk beberapa kasus solusi iteratif lebih sulit diterapkan

Membutuhkan alokasi memori yang besar

Relatif lebih kecil alokasi memorinya

Tidak cocok ketika kinerja tinggi diperlukan, karena terjadi overhead pemanggilan fungsi dalam jumlah yang relatif besar

Cocok diterapkan ketika kinerja aplikasi harus diterapkan (hanya ada satu kali pemanggilan fungsi)

Bersambung…