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