8/05/2016T8/05/2016

Materi Teknik Informatika Semester 1 Algoritma

// kode iklan */
// kode iklan
Materi Teknik Informatika Semester 1 Algoritma
ALGORITMA

2.1 Pengertian Algoritma

Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.
Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus logis, ini  berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua bejana, A dan B. Bejana A  berisi larutan yang berwarna merah, sedangkan bejana berisi air berwarna  biru. Kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.



Untuk mempertukarkan isi dua bejana, kita memerlukan sebuah bejana tambahan yang diperlukan sebagai tempat penampungan sementara. Sebut bejana tambahan tersebut bejana C. Dengan menggunakan bejana bantu C ini, algoritma mempertukarkan isi dua buah bejana yang benar adalah sebagai berikut ini:

Algoritma Tukar Isi Bejana:

Diberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukaran isi kedua bejana itu sedemikian sehingga bejana A berisi  larutan berwarna biru dan bejana B berisi larutan berwarna merah.

Deskripsi:
1.      Tuangkan larutan dari bejana A ke dalam bejana C.
2.      Tuangkan larutan dari bejana  B ke dalam bejana A.
3.      Tuangkan larutan dari bejana C ke dalam bejana B.

2.2 Tahapan Pelaksanaan Program Oleh Komputer


Keterangan:

Algoritma di translasikan menjadi program dalam bahasa tingkat tinggi. Selanjutnya, program dikompilasi dan diterjemahkan menjadi program dalam bahasa mesin dan di-link dengan berkas library. Instruksi dalam bahasa mesin diinterpretasikan oleh CPU. Operasi yang bersesuaian dengan setiap instruksi dilaksanakan.

2.3 Notasi Algoritma

Notasi algoritma dapat diterjemahkan  ke dalam berbagai bahasa pemrograman. Notasi algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat notasi algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliruan, ketaatan terhadap notasi perlu diperhatikan. Di bawah ini notasi yang umum digunakan dalam penulisan algoritma :

2.3.1  Notasi I: menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif

Algoritma EUCLIDEAN
Diberikan dua buah bilangan bulat tak-negatif m dan n (m ≥ n). carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.

Deskripsi:
  1. Jika n = 0 maka
m adalah jawabannya;
Stop.
Tetapi jika m ≠ 0, lanjutkan ke langkah 2
  1. Bagilah  m dengan n dan misalkan r adalah sisanya.
ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.

Dengan notasi bergaya kalimat ini, deskripsi setiap langkah dijelaskan dengan bahasa yang gambling. Proses diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengonversian notasi algoritma ke notasi bahasa pemrograman cenderung relative sukar.

2.3.2      Notasi II: menggunakan diagram alur (Flow chart)
Diagram alir popular pada awal-awal era pemrograman dengan computer (terutama dengan bahasa Basic, Fortran, dan Cobol). Diagram alir lebih menggambarkan aliran instruksi di dalam program secara visual disbanding memperlihatkan struktur program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sukar.

2.3.3   Notasi III: menggunakan Pseudo-code
Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Pascal dan C. Bahasa pemrograman umumnya mempunyai notasi yang hamper mirip untuk beberapa instruksi seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan sebagainya, sembarang versi Pseudo-code dapat diterima asalakan perintahnya tidak membingungkan pembaca. Keuntungan menggunakan notasi Pseudo-code adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespodensi antara setiap Pseudo-code dengan notasi bahasa pemrograman.


Algoritma EUCLIDEAN
{Dibaca dua buah bilangan bulat tak-negatif m dan n (m≥n). carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.}
DEKLARASI:
m, n : integer      {bilangan bulat yang akan dicari pbt-nya}
r   : integer      {sisa hasil bagi}
DESKRIPSI:
read (m,n)         {m ≥ n}
while n ≠ 0 do
r ß m MOD n   {hitung sisa hasil pembagian}
m ß n
n ß r
endwhile
{kondisi selesai pengulangan: n= 0, maka pbt(m,n) = m}
write(m)

 Kata-kata yang digarisbawahi menyatakan kata-kata kunci untuk setiap notasi pseudo-code yang digunakan.

 2.3       Proses, Instruksi, dan Aksi

Pada dasrnya, sebuah algoritma merupakan deskripsi pelaksanaan suatu proses. Tiap langkah instruksi tersebut mengerjakan suatu tindakan (aksi). Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi belum dimulai, dan keadaan pada saat aksi selesai dikerjakan.
Tahap-tahap penyususnan algoritma seringkali dimulai dari langkah yang global lebih dahulu. Langkah global ini diperhalus samapai langkah yang lebih rinci. Pendekatan desain algoritma seperti ini dinamakan Top-Down design. Cara pendekatan seperti ini sangant bermanfaat dalam membuat algoritma untuk masalah yang cukup rumit atau kompleks. Gagasan penghalusan langkah adalah memecah proses menjadi beberapa langkah. Tiap langkah diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan langkah terus berlanjut samapai tiap langkah sudah cukup rinci dan tepat untuk  dilaksanakan oleh pemroses.

2.3       Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:
1.    Runtunan (sequence).
2.    Pemilihan (selection).
3.    Pengulangan (repetition).

2..5.1  Runtunan
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Bila urutannya diubah, maka hasil akhir mungkin juga berubah.

2.3.2      Pemilihan
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Kondisi adalah persyaratan yang dapat bernilai benar atau salah.  Dalam pemilihan dikenal beberapa struktur pemilihan, yaitu:
  • If - then
Aksi hanya akan dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak akan dilaksanakan.
Struktur Umum:          if  kondisi then
                                                Aksi
Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan) dipenuhi (bernilai benar), dan tidak memberikan pilihan aksi lain bila kondisi bernilai salah.
  • If-then-else
Struktur pemilihan ini memberikan dua buah aksi yang akan dikerjakan tergantung pada nilai kondisinya. Struktur umumnya:

if  kondisi then
                        aksi 1
else
            aksi 2 

Else artinya ”kalau tidak”. Bila kondisi benar, aksi 1 yang akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan.
Contoh:
If  x  >  y  then
   Tulis x sebagai bilangan terbesar
Else
   Tulis y sebagai bilangan terbesar

Contoh diatas adalah untuk menentukan nilai terbesar dari dua buah bilangan bulat, x dan y (andaikan x ≠ y)
  • If-then-else if
Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pilihannya menjadi lebih rumit, biasanya untuk pemilihan seperti ini disebut pemilihan bersarang.
Contoh: menentukan bilangan terbesar dari tiga buah bilangan: x, y, z:
If  x  >  y  then
            If  x  >  z  then
                  Tulis x  sebagai bilangan terbesar
            Else
                  Tulis z  sebagai bilangan terbesar
Else
            If  y  >  z  then
                  Tulis y  sebagai bilangan terbesar
            else
                  Tulis z  sebagai bilangan terbesar
 Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinakan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada.

2.3.2      Pengulangan
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memungkinkan pengerjaan beberapa kali perintah tetapi penulisan perintah tersebut hanya satu kali.

Struktur pengulangan yang umum digunakan antara lain:
  • Pernyataan for
Pernyataan pengulangan for digunakan jika kita sudah tahu berapa kali kita akan mengulang satu atau beberapa pernyataan. Bentuk umum pernyataan for adalah sbb:
For pencacah := nilai_awal to nilai_akhir do
         Aksi
Aksi akan dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari nilai_awal sampai nilai_akhir

  • Pernyataan repeat-until
Pernyataan repeat-until akan melakukan pengulangan aksi hingga kondisi (persyaratan) berhenti terpenuhi. Bentuk umum pernyataan repeat-until adalah sbb:
Repeat
Aksi
Until kondisi

Tidak seperti pada  struktur for-do yang jumlah pengulangannya diketahui sebelum pengulangan dilaksanakan, maka untuk struktur repeat-until digunakan jika jumlah pengulangan tidak dapt diketahui di awal. Namun yang pasti, pengulangan aksi akan terus dilakukan sampai kondisi berhenti dipenuhi.

  • Pernyataan while-do
Sama seperti pada pernyataan repeat-until, pada pernyataan while-do ini digunakan untuk pengulangan yang belum diketahui pasti jumlah pengulangannya.berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi, maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan. Bentuk umum pernyataan while-do adalah sebagai berikut:
While kondisi do
Aksi
Catatan:
Pada pernyataan repeat-until dan while-do, pada dasarnya hampir sama yaitu digunakan jika jumlah pengulangan belum dapat ditentukan. Tetapi terdapat perbedaan yaitu pada pengecekan kondisi. Jika pada pernyataan while, kondisi dicek pada awal blok pengulangan, pada pernyataan repeat-until, kondisi dicek pada akhir blok pengulangan.
Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi masih terpenuhi, pernyataan repeat-until mengulang pernyataan selama kondisi belum terpenuhi.

Latihan:
1.    Buatlah algoritma dengan notasi deskriftif dengan masalah sbb:
Seorang pemuda berada di tepi sebuah sungai, pemuda tersebut membawa seekor kambing, seekor serigala, dan sekeranjang sayur. Mereka bermaksud menyebrang sungai. Pemuda tersebut menemukan sebuah perahu kecil yang hanya dapat memuat satu bawaan setiap kali menyebrang. Situasi dipersulit dengan dengan kenyataan bahwa serigala tidak dapt ditinggal berdua dengan kambing (karena serigala akan memangsa kambing) atau kambing tidak dapt ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur). Buatlah algoritma untuk menyebrangkan pemuda dan seluruh bawaannya itu sehingga mereka sampai ke seberang sungai dengan selamat.
2.    Buatlah algoritma untuk meminta masukan tiga bilangan dari pengguna kemudian menampilkan bilangan terkecil di antara ketiga bilangan tersebut.
3.    Sebuah tabel terdiri atas kolom NIM, Nama, alamat, dan Nomor Telepon. Tabel tersebut sudah berisi data utama sekumpulan mahasiswadi sebuah Perguruan Tinggi. Tuliskan algoritma dalam notasi pseudo-code jika kita ingin mengetahui alamat dan nomor telepon mahasiswa dengan NIM tertentu pada tabel tersebut.

==================

Referensi:

Antony Pranata, Algoritma dan Pemrograman, J & J Learning, Yogyakarta, 2000

Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung, 2002

Sumber:http://www.hanivinside.net/
// kode iklan

jangan lupa iklannya diklik ya, to "Materi Teknik Informatika Semester 1 Algoritma"

Post a Comment