Garuda didadaku

Selasa, 08 Januari 2013

Algoritma


ALGORITHMA
            Algorithma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata logis  merupakan kata kunci dalam algorithma. Langkah-langkah dalam algorithma dalam algorithma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algorithma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algortihma adalah, pertama algorithma harus benar. Artinya algorithma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang di berikan. Tidak perduli sebagus apapun algorithma, kalau memberikan keluaran yang salah, pastilah algorithma tersebut bukanlah algorithma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algorithma tersebut. Hal ini penting terutama pada algorithma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algorithma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algorithma, efisiensi algorithma dapat ditinjau dari 2 hal yaitu: efisiensi waktu dan memori. Meskipun algorithma memberikan keluaran yang benar (paling mendekati), tetapi jika ita harus menunggu berjam-jam untuk mendapatkan keluarannya, algorithma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algorithma tersebut. Dalam kenyataan, setiap orang bias membuat algorithma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algorithma, tentunya kita mengharapakan keluaran yang sama. Jika terjadi demikian, carilah algorithma yang paling efisien dan cepat.
ALGORITMA RUNTUNAN (SEQUENCE)
* tiap instruksi dikerjakan satu persatu
* tiap isntruksi dilaksanakan tepat satu kali, tidak ada instruksi yang diulang
* urutan instruksi yang dilaksanakan  prosesor sama dengan urutan aksi yang  tertulis dalam teks algoritma
* akhir dari instruksi terakhir merupakan  akhir algoritma.
 Pengaruh urutan instruksi:
Algoritma RUNTUNAN 1
{contoh algoritma yang menghasilkan keluaran  berbeda jika urutan instruksi  diubah}
DEKLARASI
A, B   :  integer
DESKRIPSI
A ← 10
A ← 2 * A
B ← A
write (B)
{nilai B yang dicetak ke piranti keluaran =  }
Algoritma RUNTUNAN 2
{contoh algoritma yang menghasilkan keluaran berbeda  jika urutan instruksi diubah}
DEKLARASI
A, B  : integer
DESKRIPSI
A ← 10
B ← A
A ← 2 * A
Write (B)
{nilai B yang dicetak ke piranti keluaran =  }7
Cth  gambar algorithma sequential
ALGORITMA PEMILIHAN ( SELECTION )
* aksi dilakukan jika memenuhi persyaratan / kondisi tertentu
Analisis kasus dari suatu masalah :
* tentukan kondisi boolean (true atau false)
tentukan aksi jika kondisi memenuhi.
Kondisi boolean = ekspresi relasional
z Contoh kondisi:
x  > 100
a +  b > 1
str = ‘uad’
aksi dapat berupa :
~ pengisian nilai (assignment)
~ kalkulasi
~ baca
~ tulis
dan sebagainya.
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah. Ini berbeda dengan manusia yang cepat lelah bila mengerjakan pekerjaan yang sama berulang-ulang. tidak hanya lelah, tetapi juga cepat bosan.

Sewaktu duduk di sekolah dasar anda mungkin pernah dihukum oleh guru anda untuk menuliskan sebuah kalimat sebanyak 500 kali. Misalnya karena anda nakal atau tidak membuat PR. Misalkan kalimat yang harus ditulis 500 kali tersebut adalah

"Saya berjanji tidak akan nakal dan malas lagi"

Bla pekerjaan menulis kalimat ini diserahkan kepada komputer, maka pemrogram mungkin menuliskannya sebagai berikut:

Algoritma menulis 500 kalimat

Menuliskan kalimat "saya berjanji tidak akan nakal dan malas lagi" sebanyak 500 kali.

Desktripsi:
1. Tulis kalimat "syaa berjanji tidak akan nakal dan malas lagi"
2. Tulis kalimat "saya berjanji tidak akan nakal dan malas lagi"
3. Tulis kalimat "saya berjanji tidak akan nakal dan malas lagi"
.
.
499. Tulis kalimat "saya berjanji tidak akan nakal dan malas lagi"
500. Tulis kalimat "saya berjanji tidak akan nakal dan malas lagi"

Tentu saja algoritma untuk menulis 500 buah kalimat seperti di atas tidak elegan, karena instruksi

tulis kalimat "sya berjanji tidak akan nakal dan malas lagi"

haur dibuat di dalam teks algoritma sebanyak 500 kali. Untuk mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan for-do sehingga algoritma menulis 500 buah kalimat dapat ditulis sebagai:

Algoritma menulis 500 kalimat

menuliskan kalimat "saya berjanji tidak akan nakal dan malas lagi" sebanyak 500 kali

Deskripsi:

for j dari 1 sampai 500 do
tulis kalimat "saya berjanji tidak akan nakal dan malas lagi"

J adalah pencacah pengulangan yang mencacah pengulangan dari 1 sampai 500. Komputer akan melaksanakan aksi tulis kalimat tersebut sebanyak 500 kali. Struktur pengulangan ini dapat ditulis secara umum sebagai

for pencacah pengulangan dari 1 sampai N do
aksi

Yang artinya adalah aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari 1n sampai N (yaitu sebanyak N kali). Pencacah pengulangan dapat di-set tidak hanya dari 1, tetapu juga dari sembarang nilai yang lain. Maka, kita dapat menulis struktur FOR lebih umum sebagai:

for pencacah pengulangan dari a sampai b do
aksi

Yang artinya adalah aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai b (yaitu sebanyak b-a+1 kali)

Struktur pengulangan yang kedua adalah REPEAT yang terdiri atas kata kunci repeat-until (repeat artinya "ulangi" dan until artinya "sampai" atau "hingga") yang mempunyai bentuk umum sebagai berikut:

repeat
aksi
until kondisi

Yang artinya adalah pengulangan aksi dilakukan hingga kondisi (persyaratan) berhenti terpenuhi.

Struktur pengulangan yang ketiga adalah WHILE dengan kata kunci while-do (while artinnya "selagi" atau "selama" dan do artinya "lakukan") yang mempunyai bentuk umum:

while kondisi do
aksi

Yang artinya adalah selama kondisi (persyaratan) pengulangan masih benar, maka aksi dikerjakan. Perbedaannya dengan repeat until, jika pada repeat-until kondisi pengulangan dievaluasi di akhir, maka pada while-do kondisi pengulangan dievaluasi di awal pengulangan.

Meskipun struktur repeat-until dan while-do mempunyai fungsi yang mirip sehingga pada beberapa kasus dapat saling menggantikan, namun secara umum penggunaannya bergantung pada spesifikasi masalah.


Contoh algorithma pengambilan uang di ATM

Tidak ada komentar:

Posting Komentar