Algoritma Komputer

ALGORITMA

PENGERTIAN ALGORITMA

Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M.

- Algoritma adalah metode untuk menyelesaikan suatu permasalahan secara bertahap. Contoh sederhana suatu algoritma adalah resep suatu masakan. Pada resep suatu masakan terdapat langkah langkah penyelesaian untuk membuat masakan itu. Misalkan untuk membuat telur rebus, maka diperlukan langkah langkah:

1. Cuci bersih telur yang akan direbus.

2. Siapkan air pada panci.

3. Rebus air hingga mendidih.

4. Masukkan telur yang sudah dicuci kedalam air yang telah direbus.

5. Tunggu hingga matang dan sajikan

Komputer adalah suatu mesin. Untuk dapat melakukan pekerjaannya komputer membutuhkan instruksi yang diberikan pada komputer itu. Kumpulan instruksi umum untuk berbagai jenis komputer disebut algoritma.

- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998).

- Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.

- Algoritma adalah dasar dan pondasi untuk membuat suatu program komputer yang baik. Program komputer yang menggunakan algoritma dan flowchart akan menghasilkan program yang tersusun rapi. Tutorial berikut akan menjelaskan dasar dasar algoritma komputer.

KARAKTERISTIK ALGORITMA

Algoritma komputer memiliki beberapa karakteristik yang harus dipenuhi agar menjadi algoritma yang baik. Karakteristik itu antara lain:

· Presisi. Langkah langkah penyelesaian masalah dalam algoritma haruslah secara presisi (tepat) dinyatakan, tidak mengandung ambiguitas.

· Keunikan. Hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.

· Keterbatasan. Algoritma harus terbatas dan berhenti pada suatu titik setelah semua ekesekusi dilaksanakan.

· Input. Algoritma menerima input.

· Output. Algoritma menghasilkan output.

· General. Algoritma berlaku untuk suatu kumpulan input tertentu.

Contoh Algoritma dalam kehidupan nyata:

- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau kuenya jadi.

- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:

􀂾 Menulis surat

􀂾 Surat dimasukkan ke dalam amplop tertutup

􀂾 Amplop ditempeli perangko secukupnya.

􀂾 Pergi ke Kantor Pos terdekat untuk mengirimkannya.

Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien. Pelaksana algoritma adalah Komputer.

Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program. Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman. Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.

PENGANTAR ALGORITMA PEMROGRAMAN

Definisi Program/Pemrograman

Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program).

Paradigma Pemrograman

1. Pemrograman Prosedural

􀂾 Berdasarkan urutan-urutan, sekuensial

􀂾 Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur

merupakan kumpulan instruksi yang dikerjakan secara berurutan.

􀂾 Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah

diubah.

2. Pemrograman Fungsional

􀂾 Berdasarkan teori fungsi matematika

􀂾 Fungsi merupakan dasar utama program.

3. Pemrograman Terstruktur

􀂾 Secara berurutan dan terstrukrtur.

􀂾 Program dapat dibagai-bagi menjadi prosedur dan fungsi.

􀂾 Contoh: PASCAL dan C

4. Pemrograman Modular

􀂾 Pemrograman ini membentuk banyak modul.

􀂾 Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri

􀂾 Sebuah program dapat merupakan kumpulan modul-modul.

􀂾 Contoh: MODULA-2 atau ADA

5. Pemrograman Berorientasi Obyek

􀂾 Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki

data/variabel/property dan method/event/prosedur yang dapat dimanipulasi

􀂾 Contoh: C++, Object Pascal, dan Java.

6. Pemrograman Berorientasi Fungsi

􀂾 Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung

pada tujuan pembuatan bahasa pemrograman ini.

􀂾 Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.

7. Pemrograman Deklaratif

􀂾 Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada

memecahkan masalah dengan implementasi algoritma.

􀂾 Contoh: PROLOG

Struktur Sistem Komputer

Siklus Hidup Perangkat Lunak (Software)

Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman dan Struktur data menempati posisi dibagian software dan di bagian implementasi. Karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program).

Komputer

Sistem Operasi

Bhs. Pemrograman

Progam Aplikasi

Pemakai

Hardware

Software

Brainware

Requirement Desain Implementasi Testing

Kriteria Algoritma Menurut Donald E. Knuth

1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.

2. Output: algoritma harus memiliki minimal satu buah output keluaran.

3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.

4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).

5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif.

Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1

Namun ada beberapa program yang memang dirancang untuk unterminatable contohnya Sistem Operasi.

Jenis Proses Algoritma

1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.

2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu

3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.

4. Concurrent Process: beberapa instruksi dikerjakan secara bersama.

Contoh Algoritma

Algoritma menghitung luas persegi panjang:

1. Masukkan panjang (P)

2. Masukkan lebar (L)

3. L ← P * L

4. Tulis L

Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.

Definisi Pseudo-code

Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.

Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan

Contoh Pseudo-code:

1. Masukkan bilangan pertama

2. Masukkan bilangan kedua

3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.

4. Tampilkan bilangan pertama

5. Tampilkan bilangan kedua

Contoh Algoritma

1. Masukkan bilangan pertama (a)

2. Masukkan bilangan kedua (b)

3. if a > b then kerjakan langkah 4

4. print a

5. print b

Contoh Lain Algortima dan Pseudo-code:e Algoritma

Nilai A ditambah dengan 5 A ← A + 5

Cetak nilai A bila lebih besar dari 10 IF A > 10 THEN PRINT A

Dari dua bilangan A dan B, cari

bilangan yang terbesar

IF A > B THEN PRINT A ELSE PRINT B

Langkah-langkah dalam pemrograman komputer

1. Mendefinisikan masalah

Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard):

“Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya.

2. Menemukan solusi

Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan. Contohnya masalah invers matriks, maka kita dapat membagi menjadi beberapa

modul:

􀂾 meminta masukkan berupa matriks bujur sangkar

􀂾 mencari invers matriks

􀂾 menampilkan hasil kepada pengguna

Dengan penggunaan modul tersebut program utama akan menjadi lebih singkat dan mudah dilihat.

3. Memilih algoritma

Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut

4. Menulis program

Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika

sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya.

5. Menguji program

Setelah program jadi, silahkan uji program tersebut dengan segala macam

kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan.

6. Menulis dokumentasi

Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan melakukan

perubahan atau membaca source code yang sudah kita tulis dapat kita ingat ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.

7. Merawat program

Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang

sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak ada.

SOAL ALGORITMA

1. Buatlah algoritma untuk menghitung konversi suhu.dari Celcius menjadi Reamur dan

Farenheit.

Input: suhu dalam Celcius

Proses: R = 4/5 * C dan F = 9/5 * C + 32

Output: suhu dalam Reamur dan Farenheit

2. Buatlah algoritma untuk mencari sisi miring dari suatu segitiga siku-siku, jika diketahui

panjang sisi yang membentuk sudut siku-siku.

Input: a dan b, yaitu panjang sisi pembentuk sudut siku-siku

Proses: c = a2 + b2

Ouput: sisi miring (c)

3. Buatlah algoritma untuk menentukan suatu bilangan genap atau ganjil

Input: suatu bilangan

Ouput: genap / ganjil

4. Buatlah algoritma untuk menentukan suatu bilangan adalah bilangan prima atau bukan.

5. Buatlah algoritma untuk untuk menghitung akar-akar persamaan kuadrat dengan rumus D = B2 – 4 * A * C

Jika D < 0 maka didapat akar imajiner

Jika D = 0 maka X1 = X2 yang didapat dari D = -B / (2 * A)

Jika D > 0 maka ada dua akar X1 = −B + D/ 2 * A dan X 2 = −B D/ 2 * A

Algoritma adalah dasar dan pondasi untuk membuat suatu program komputer yang baik. Program komputer yang menggunakan algoritma dan flowchart akan menghasilkan program yang tersusun rapi. Tutorial berikut akan menjelaskan dasar dasar algoritma komputer.

Contoh algoritma:

Input: n

Output: 1/1 + 1/2+ ... +1/n
1. jumlah = 0

2. i= 0

3. i=i+1

4. jumlah = jumlah + 1/i

5. ulangi langkah 3 dan 4 sehingga i==n

Algoritma pada contoh adalah algoritma untuk menghitung

algoritma-1.JPG

Pada langkah 1, nilai 0 diisikan pada variabel jumlah. jadi jumlah pada langkah pertama bernilai 0. Tanda = adalah operator penugasan dengan makna “kopikan 0 kepada jumlah” atau ” gantikan nilai tertentu jumlah dengan 0″.Langkah 2 juga menunjukkan hal yang sama namun dengan nama variabel yang berbeda. Langkah 3 menunjukkan instruksi “kopikan jumlah antara isi variabel i dan 1 kepada variabel i”. Langkah 4 menunjukkan instruksi “kopikan jumlah antara isi variabel jumlah dengan 1/isi variabel i pada variabel jumlah”. Langkah 5 menunjukkan instruksi untuk mengulangi langkah langkah 3 dan 4 sehingga terpenuhi syarat i = = n. Operator = = disebut operator equalitas yang bermakna benar dan salah. Jika i sama dengan n maka nilainya benar dan jika i tidak sama dengan n maka nilainya salah.

Algoritma ini dikatakan presisi karena tiap langkahnya didefinisikan secara tepat dan tidak mengandung pemahaman yang ambigu ketika instruksi instruksinya dilaksanakan semua orang atau mesin. Misalkan ada instruksi “jumlahkan i”. Instruksi ini mengandung ambigu karena tidak terdapat keterangan penjumlahnya. Algoritma ini dikatakan unik karena hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.Misalkan pada langkah 3. Langkah 3 akan menghasilkan nilai tertentu jika nilai i telah diketahui. Pada proses pertama nilai i adalah hasil keluaran dari langkah 2 yaitu bernilai 0 sehingga nilai keluaran i pada proses pertama langkah 3 adalah 1. Algoritma ini dikatakan terbatas karena dimulai dari langkah 1 dan diakhiri jika syarat i = = n bernilai benar. Algoritma ini input berupa nilai yang dimasukkan pada variabel n dan memiliki output yang berupa hasil dari operasi 1/1 + 1/2+ … +1/n. Algoritma ini dikatakan general karena algoritma ini dapat diterapkan untuk setiap nilai real yang dimasukkan pada variabel n.

ATURAN PENULISAN DAN STRUKTUR DASAR KOMPUTER

I. Pendahuluan

Algoritma dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.

Algoritma dapat ditulis dalam bahasa natural/bahasa sehari-hari (seperti bahasa

Indonesia, bahasa Inggris, dan lain-lain), contohnya adalah sebagai berikut :

Algoritma memilih bilangan terbesar dari 3 buah bilangan :

1. Ambil bilangan pertama dan simpan nilai bilangan pertama tersebut ke variabel maks.

2. Ambil bilangan kedua dan bandingkan nilainya dengan maks. Jika bilangan kedua

lebih besar dari maks, simpan nilai bilangan kedua ke variabel maks.

3. Ambil bilangan ketiga dan bandingkan nilainya dengan maks. Jika bilangan ketiga

lebih besar dari maks, simpan nilai bilangan ketiga ke variabel maks.

4. Tampilkan nilai dari variabel maks (yang merupakan bilangan terbesar).

Catatan :

Variabel adalah tempat yang digunakan untuk menampung suatu nilai.

Kelemahan penulisan algoritma dalam bahasa natural adalah sering membingungkan

(ambiguous). Cara penulisan algoritma yang lain adalah dengan menggunakan flowchart

(diagram alir) seperti berikut :

start

finish

maks bil-1

bil-2

> maks ?

bil-3

> maks ?

maks bil-2

maks bil-3

ya

ya

tidak

tidak

read bil-1, bil-2, bil-3

write maks

Penulisan algoritma dengan flowchart cukup bagus secara visual tetapi akan menjadi

repot dan tidak praktis kalau algoritmanya panjang.

Cara penulisan yang lain adalah menggunakan pseudo-code (kode semu). Penulisan

dengan cara ini sudah lebih dekat ke bahasa pemrograman, namun sulit dipahami oleh

orang yang tidak mengerti bahasa pemrograman.

Pada dasarnya tidak ada notasi yang baku dalam penulisan algoritma. Setiap orang dapat

membuat aturan penulisan dan notasinya sendiri. Notasi yang digunakan dalam menulis

algoritma disebut dengan notasi algoritmik.

II. Contoh Penulisan Algoritma dengan Kode Semu (Pseudo-Code)

Berikut ini adalah salah satu contoh penulisan algoritma :

const pi = 3.1415926535897932384626433832795

function luas_lingkaran(r)

{Algoritma yang menghasilkan luas suatu lingkaran apabila diberikan jari-jarinya r}

l pi*r*r

return l

procedure tukar_nilai(a, b)

{Algoritma yang mempertukarkan isi a dan isi b}

c a

a b

b c

Algoritma yang ditulis dengan cara seperti di atas sering disebut dengan kode semu

(pseudo-code). Kode semu pun tidak memiliki bentuk yang baku, masing-masing orang

bisa menuliskan kode semu dalam bentuk yang berbeda.

Dari contoh di atas tampak bahwa suatu algoritma dapat dinyatakan sebagai sebuah

fungsi (function) atau prosedur (procedure). Perbedaan fungsi dan prosedur adalah fungsi

menghasilkan suatu nilai kembali sedangkan prosedur tidak. Fungsi maupun prosedur

seringkali mempunyai parameter yang dapat digunakan untuk melewatkan suatu nilai

ke/dari fungsi/prosedur. Pada kedua contoh di atas r, a, maupun b merupakan contoh

parameter.

Pada contoh di atas fungsi luas_lingkaran akan menghasilkan nilai kembali 25 jika nilai

parameter masukan r adalah 5. Sedangkan prosedur tukar_nilai sama sekali tidak

menghasilkan nilai kembali, tetapi prosedur tersebut akan mempertukarkan nilai dari

variabel-variabel yang dijadikan parameternya. Misalnya variabel x pada awalnya

bernilai 10 dan variabel y bernilai 7, maka setelah dilakukan prosedur tukar_nilai(x, y)

maka variabel x menjadi bernilai 7 dan variabel y menjadi bernilai 10. Suatu fungsi

ditandai dengan adanya kata return.

Pada contoh di atas terdapat kata const, kata const merupakan salah satu contoh dari apa

yang dinamakan deklarasi. Deklarasi adalah bagian dari algoritma yang mendefinisikan

nama-nama yang akan digunakan pada algoritma.

Deklarasi ada bermacam-macam, antara lain :

1. Deklarasi konstanta

Konstanta memiliki nilai yang tetap, tidak dapat diubah di bagian manapun dari

algoritma. Contoh deklarasi konstanta :

{deklarasi konstanta}

const pi = 3.1415926535897932384626433832795

function luas_lingkaran(r)

{Algoritma yang menghasilkan luas suatu lingkaran apabila diberikan jari-jarinya r}

l pi*r*r

return l

{deklarasi konstanta}

const e = 2.7182818284590452353602874713527

Catatan :

Bagian yang berada di dalam kurung kurawa {} disebut dengan komentar. Fungsi

komentar adalah untuk memberikan penjelasan pada algoritma. Komentar bukan

termasuk dari langkah-langkah algoritma yang akan dieksekusi. Bahkan komentar

dapat dibuang begitu saja tanpa mempengaruhi kebenaran algoritma.

2. Deklarasi tipe

Tipe yang dimaksud di sini adalah tipe-tipe data yang digunakan di dalam algoritma. Ada

dua jenis tipe data yaitu tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang tidak

perlu dideklarasikan lagi, biasanya sudah dikenal secara umum dan didukung langsung

oleh perangkat keras komputer. Tipe bentukan adalah tipe yang perlu dideklarasikan,

biasanya belum dikenal secara umum dan tidak mendapat dukungan langsung dari

perangkat keras. Contoh tipe dasar antara lain integer, real, char, dan boolean. Contoh

tipe bentukan adalah record, enumerasi, array, dan lain lain.

Berikut ini adalah contoh deklarasi suatu tipe bentukan :

{deklarasi tipe}

type kompleks = record

nyata: real

imajiner: real

function norma_kompleks(c: kompleks)

{Algoritma yang menghasilkan norma dari suatu bilangan kompleks}

n c.nyata*c.nyata + c.imajiner*c.imajiner

return n

type person = record

name: string

age: integer

male: boolean

type tab = array [1..50] of integers

type gender = enum {male, female}

type matriks = array [1..20, 1..20] of integers

type pointerperson = person

Kadang-kadang suatu tipe dideklarasikan hanya sebagai nama alias dari tipe yang lain :

type bilanganbulat = integers

type jeniskelamin = gender

3. Deklarasi variabel

Variabel adalah tempat yang digunakan untuk menampung suatu nilai. Setiap variabel

memiliki tipe tertentu. Berbeda dengan konstanta, nilai dari variabel dapat diubah di

berbagai bagian dari algoritma.

Contoh deklarasi variabel adalah sebagai berikut :

type kompleks = record

nyata: real

imajiner: real

{deklarasi variabel}

a: kompleks

b: kompleks

procedure tukar

{Algoritma untuk menukar isi a dan b}

temp: real {deklarasi variabel}

temp a.nyata

a.nyata b.nyata

b.nyata temp

temp a.imajiner

a.imajiner b.imajiner

b.imajiner temp

const n = 250

{deklarasi variabel}

i: integer

f: real

c: char

b: booelan

s: string

r: array [1..30] of integers

v: array [1..n] of integers

array u[1..100]

array w[1..n]

t: tab

l: gender

m: matriks

Deklarasi variabel dapat dilakukan di sebarang tempat. Variabel yang dideklarasikan di

dalam suatu fungsi/prosedur disebut sebagai variabel lokal sedangkan variabel yang

dideklarasikan tidak di dalam fungsi/prosedur disebut variabel global. Variabel lokal

dikenali hanya di dalam fungsi yang bersangkutan dan tidak akan dikenali di luar fungsi

tersebut. Varibel global dapat dikenali di sebarang tempat dari algoritma. Dalam banyak

kasus, deklarasi variabel tidak selalu harus dilakukan. Kadang-kadang notasi algoritmik

menjadi lebih sederhana dan lebih jelas apabila variabel-variabel yang ada pada algoritma

tidak dideklarasikan terlebih dahulu.

4. Deklarasi fungsi/prosedur

Pada contoh di atas, setiap algoritma mengandung sebuah fungsi/prosedur yang dapat

disebut sebagai fungsi/prosedur utama. Kadang-kadang fungsi/prosedur utama

memanggil sebuah fungsi/prosedur yang lain. Maka fungsi/prosedur yang dipanggil

tersebut juga harus dideklarasikan di dalam algoritma. Contoh algoritma yang memiliki

lebih dari satu fungsi :

const pi = 3.1415926535897932384626433832795

function luas_lingkaran(r)

l pi*r*r

return l

function isi_silinder(r, t)

{Algoritma yang menghasilkan volume silinder apabila diberikan jari-jari alas r dan

tinggi t}

a luas_lingkaran(r)

v a*t

return v

Moh Edi Wibowo

7

Berikut ini adalah contoh algoritma yang cukup rumit penulisannya :

const N = 100

type tabs = array [1..N] of integers

T: tabs

procedure isi_data

for i 1 to N do

T[i] random(10*N)

function isi_dan_cari_minimum

{Algoritma untuk mengisi elemen-elemen T secara random kemudian mencari nilai

minimum dari elemen-elemen T tersebut}

isi_data

min T[1]

for i 2 to N do

if T[i] < min then

min T[i]

return min

III. Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut

ditulis dalam bentuk instruksi-instruksi di dalam fungsi atau prosedur. Sekelompok

instruksi dapat membentuk sebuah blok instruksi. Sebuah blok instruksi dapat dianggap

sebagai satu kesatuan yang tidak terpisah. Instruksi-instruksi yang tergabung dalam

sebuah blok ditulis menjorok untuk membedakan dengan instruksi-instruksi di dekatnya

yang tidak termasuk sebagai anggota blok.

Bentuk instruksi yang sering ditemui adalah :

a b

Bentuk tersebut merupakan instruksi untuk mengisi variabel a dengan nilai (isi) dari

variabel b. Bentuk yang mirip dengan instruksi di atas adalah :

a b + c

Bentuk tersebut merupakan instruksi untuk mengisi variabel a dengan hasil penjumlahan

dari isi variabel b dengan isi variabel c. Simbol seperti dan + sering disebut sebagai

operator. Operator disebut sebagai operator penugasan (assignment) dan operator +

disebut sebagai operator penjumlahan. Suatu operator bertugas melakukan operasi,

operator akan melakukan operasi penugasan sedangkan operator + akan melakukan

operasi penjumlahan. Data yang dikenai operasi oleh operator disebut sebagai operand,

dengan demikian a, b, atau c pada contoh di atas disebut sebagai operand. Satu atau

gabungan beberapa operasi sering disebut dengan ekspresi. Jadi ekspresi terdiri dari satu

atau lebih operator maupun operand.

Bentuk-bentuk instruksi yang lain masih banyak, begitu pula dengan jenis-jenis operasi

dan operator. Setiap orang boleh membuat instruksi, operasi, dan operatornya sendiri asal

mudah dipahami dan dimengerti oleh orang lain.

Langkah-langkah yang ada di dalam algoritma membentuk tiga buah struktur dasar,

yaitu :

a. runtutan (sequence)

b. pemilihan (selection)

c. pengulangan (repetition)

a. Runtutan

Runtutan adalah instruksi-instruksi yang dikerjakan secara berurutan. Berurutan di sini

berarti sesuai dengan urutan penulisannya, yakni sebuah instruksi dijalankan setelah

instruksi sebelumnya selesai dikerjakan. Contoh algoritma yang hanya terdiri dari

runtutan adalah sebagai berikut :

procedure menampilkan_tiga_kata

write(’Aku’)

write(’Cinta’)

write(’Indonesia’)

ekspresi

a + b c

operator operand

Moh Edi Wibowo

9

const pi = 3.1415926535897932384626433832795

function luas_lingkaran(r)

l pi*r*r

return l

b. Pemilihan

Pemilihan terjadi ketika suatu instruksi dikerjakan apabila suatu kondisi terpenuhi.

Misalnya instruksi A dikerjakan karena kondisi X terpenuhi (yang juga berarti instruksi A

tidak dikerjakan bila kondisi X tidak terpenuhi). Dalam kasus yang lain instruksi A

dikerjakan bila kondisi X terpenuhi, atau instruksi B yang dikerjakan bila kondisi X tidak

terpenuhi. Contoh algoritmanya adalah sebagai berikut :

procedure tampilkan_kalimat(i)

if i = 0 then

write(’Aku ’)

write(’Cinta ’)

write(’Indonesia’)

Pada contoh di atas, bila i bernilai 2 maka kondisi dari if (yaitu i = 0) tidak terpenuhi

sehingga kalimat tidak akan ditampilkan.

procedure pilih_kalimat(i)

if i = 0 then

write(’Aku ’)

write(’Cinta ’)

write(’Indonesia ’)

else

write(’Aku ’)

write(’Cinta ’)

write(’Malaysia’)

Pada contoh di atas, bila i bernilai 2 maka kondisi dari if tidak terpenuhi sehingga kalimat

yang ditampilkan adalah

Aku Cinta Malaysia

Moh Edi Wibowo

10

procedure pilih_dari_tiga_kalimat(i)

if i = 0 then

write(’Aku ’)

write(’Cinta ’)

write(’Indonesia’)

else if i = 1 then

write(’Aku ’)

write(’Cinta ’)

write(’Malaysia’)

else

write(’Aku ’)

write(’Cinta ’)

write(’Timor Leste’)

Pada contoh di atas, bila i bernilai 2 maka kondisi dari if yang pertama tidak terpenuhi

sehingga dilanjutkan ke bagian else yang pertama. Pada bagian else yang pertama

ditemui if yang kedua. Kondisi dari if yang kedua juga tidak terpenuhi sehingga kalimat

yang ditampilkan adalah

Aku Cinta Timor Leste

Bentuk if yang bersarang (ada if di dalam if) seperti pada contoh algoritma yang terakhir,

kadang-kadang dapat dituliskan dalam bentuk lain seperti berikut :

procedure pilih_dari_tiga_kalimat(i)

case i = 0 :

write(’Aku ’)

write(’Cinta ’)

write(’Indonesia’)

i = 1 :

write(’Aku ’)

write(’Cinta ’)

write(’Malaysia’)

else

write(’Aku ’)

write(’Cinta ’)

write(’Timor Leste’)

Moh Edi Wibowo

11

c. Pengulangan

Pengulangan terjadi ketika ada suatu instruksi yang dilakukan terus-menerus selama

suatu kondisi terpenuhi. Bentuk pengulangan yang sering dijumpai ditampilkan pada

contoh-contoh di bawah ini :

procedure tampilkan_n_kata(n)

for i 1 to n do

write(’contoh’)

procedure tampilkan_n_nomor(n)

for i 1 to n do

write(’Nomor ’)

write(i)

procedure tampilkan_n_kata(n)

repeat n times

write(’contoh lain’)

procedure tampilkan_n_nomor(n)

for i n downto 1 do

write(’Nomor ’, i)

Algoritma-algoritma di atas melakukan penulisan sebanyak n putaran. Pada setiap

putaran algoritma-algoritma tersebut menuliskan kata maupun nomor. Putaran pada

pengulangan sering disebut dengan iterasi. Jadi algoritma-algoritma di atas melakukan n

kali iterasi, mulai dari iterasi pertama sampai iterasi ke-n.

Pada contoh-contoh di atas juga tampak adanya suatu kesamaan, yaitu jumlah

pengulangan telah diketahui lebih dahulu yaitu sebanyak n kali.

Contoh yang lain adalah sebagai berikut :

procedure tampilkan_nomor(n)

for i 3 to n step 2 do

write(i)

Algortima di atas melakukan pengulangan sebanyak ((n - 3) ¸ 2)+ 1kali. Jika n diberi

nilai 15 maka algoritma di atas menampilkan angka-angka

3 5 7 9 11 13 15

Contoh yang lain lagi adalah sebagai berikut :

procedure tampilkan_nomor(n)

C {1, 3, 5, 7, 9}

for each i Î C do

write(i)

Catatan :

Bagian yang ada di antara tanda kurung kurawa {} apada algoritma di atas bukanlah

komentar, tetapi menyatakan himpunan (set).

procedure tampilkan_nomor(n)

for each i bilangan ganjil di antara 0 dan 10 do

write(i)

Kedua algortima di atas berfungsi untuk menampilkan angka ganjil di antara 0 dan 10.

Untuk pengulangan yang jumlah iterasinya belum diketahui, biasanya digunakan bentuk

while dan repeat.

procedure tampilkan_beberapa_kali

i random(10)

while i ¹ 5 do

write(’contoh’)

i random(10)

Algoritma di atas menggunakan pengulangan bentuk while. Sebelum melakukan

pengulangan, dilakukan pengecekan terlebih dahulu pada kondisi dari while. Bila kondisi

terpenuhi maka iterasi dimulai, dan bila kondisi tidak terpenuhi maka pengulangan tidak

akan pernah dilakukan. Setiap kali akan memasuki iterasi baru (pada awal iterasi),

dilakukan pengecekan lagi pada kondisi. Iterasi dilanjutkan jika kondisi masih terpenuhi

dan pengulangan berakhir ketika kondisi tidak terpenuhi. Algoritma di atas mungkin

akan menampilkan kata contoh sebanyak 1 kali, 100 kali, 60 kali, atau bahkan tidak

menampilkan kata contoh sama sekali.

procedure tampilkan_lebih_dari_sekali

repeat

write(’contoh’)

i random(10)

until i ¹ 5

Algoritma di atas menggunakan pengulangan bentuk repeat. Pada bentuk repeat,

pengulangan langsung memasuki iterasi yang pertama. Pada akhir iterasi, dilakukan

pengecekan pada kondisi dari repeat. Iterasi dilanjutkan jika kondisi terpenuhi dan

pengulangan berakhir jika kondisi tidak terpenuhi. Algoritma di atas akan menampilkan

kata contoh sedikitnya 1 kali.

Kadang-kadang diperlukan untuk mengakhiri pengulangan tanpa menghiraukan jumlah

iterasi yang sudah ditempuh maupun kondisi yang ada pada suatu saat. Pengulangan

dapat dipaksa berakhir dengan menggunakan instruksi break.

procedure tampilkan_nomor

for i 1 to 10 do

write(i)

if i = 5 then

break

Pengulangan pada algoritma di atas akan berakhir setelah memasuki iterasi ke-5 sehingga

yang angka-angka yang ditampilkan adalah

1 2 3 4 5

procedure tampilkan_nomor

i 1

while i < 10 do

write(i)

if i = 5 then

break

i i + 1

Algoritma di atas juga menampilkan angka-angka

1 2 3 4 5

Selain instruksi break juga terdapat instruksi continue yang berfungsi untuk melanjutkan

pengulangan langsung menuju ke iterasi selanjutnya dengan mengabaikan instruksiinstruksi

yang terletak setelah instruksi continue.

procedure tampilkan_nomor_dan kuadratnya

for i 1 to 6 do

write(i)

if i > 3 then

continue

write(i*i)

Algoritma di atas akan menampilkan angka-angka

1 1 2 4 3 9 4 5 6

About these ads

11 responses to “Algoritma Komputer

  1. salam kenal,

    nama saya nuridin, saya karyawan dan juga mahasiswa si teknik industri , saya mempunyai beberapa pertanyaan mengenai simulasi dan algoritma karena ada tugas simulasi komputer:

    1 dalam buku simulation based algorithms for markov decision process terbitan springer, pada bab 5 judul on-line control methode vis simulation, apa yang dimaksud pada judul tsb, mohon dijelaskan

    2. bagaimana kita mengontrolnya.

    3, apakah on-line control methode vis simulationdapat diterapkan di indonesia

    terimakasih

  2. aslamualaikum….mas tolong kasih jawaban SOAL ALGORITMA pceudo ncode n flow chart no 1 sampai 5
    tadi ya saya gunakan untuk belajar n mendalami tentang algoritma tsb…
    makasih sebelumnya

  3. Pak, trimaksh ats informasinya…
    Ada beberapa hal yang mau saya tanyakan, saya coba memecahkan masalah ini. tlg sudah benar apa belum.

    Pertanyaan:
    1. Buat sebuah permasalahan
    2. Buat dalam Algoritma(pseudocode)
    3. Buat dalam implementasi Bahasa C

    Jawab :
    1. Permasalahan

    Masalah yang diambil ialah bagaimana menghitung luas bujur sangkar. Rumus luas bujur sangkar ialah L=S x S.

    2. Pseudocode
    procedure CariLuasBujurSangkar (input s : integer,
    output luas : integer)
    { Mencari luas sebuah bujur sangkar dengan rumus sisi dikali sisi
    Masukan: s
    Keluaran: Luas
    }
    Deklarasi
    s : integer

    Algoritma:
    Luas <– s*s
    endif
    endfor

    3. Implementasi dengan bahasa C

    #include
    #include
    main()
    {
    int s,Luas;
    printf(“Masukkan berapa panjang sisi bujur sangkar = “);
    scanf(“%d”,&s);
    Luas = s*s;
    printf(“Sisi bujur sangkar ialah %d, maka luasnya ialah %d \n”,s,Luas);
    getch();
    }

    Itu jawabannya sdh benar apa blm?

    Kemudian yang kedua yaitu, saya mencoba memecahkan permasalahan menghitung luas permukaan Prisma dgn alas segiempat, Adakah solusi yang bisa bapak berikan kepada saya?

    thx

  4. Pingback: rosalia@komputer&teknologi informatika » Blog Archive » KONTRIBUSI MATEMATIKA DALAM ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

  5. Pingback: Ambar Sulistyaningsih@komputer & TI » Blog Archive » KONTRIBUSI MATEMATIKA DALAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s