0% menganggap dokumen ini bermanfaat (0 suara)
149 tayangan12 halaman

Ringkasan Algoritma

Dokumen tersebut membahas pengertian algoritma dan komponen-komponen utamanya seperti input, proses, dan output. Juga dibahas mengenai kriteria algoritma yang baik seperti memiliki input dan output yang jelas serta harus memiliki proses yang terbatas.

Diunggah oleh

Fikri Kinul
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
149 tayangan12 halaman

Ringkasan Algoritma

Dokumen tersebut membahas pengertian algoritma dan komponen-komponen utamanya seperti input, proses, dan output. Juga dibahas mengenai kriteria algoritma yang baik seperti memiliki input dan output yang jelas serta harus memiliki proses yang terbatas.

Diunggah oleh

Fikri Kinul
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

BAB I

PENGANTAR ALGORITMA

Kompetensi Umum:
Dapat menjelaskan algoritma dan penggunaannya dalam
program komputer.
Kompetensi Khusus:
1. Dapat menjelaskan sistem komputer.
2. Dapat menjelaskan pengertian algoritma.
3. Dapat menjelaskan kriteria algoritma.

1 .1 SISTEM KOMPUTER
Sebuah sistem komputer terdiri atas hardware (perangkat keras), software
(perangkat lunak), dan brainware (pengguna komputer). Suatu sistem
komputer dapat bekerja karena ketiga komponen di atas bekerja sama
sehingga hardware dapat diakses oleh brainware menggunakan software,
terutama dengan menggunakan sistem operasi. Selain itu, dengan
menggunakan berbagai software aplikasi, brainware juga dapat
memanfaatkan sistem komputer untuk berbagai hal guna meningkatkan
produktivitasnya. Penggunaan software pembuat program juga dapat
membantu brainware, terutama programmer, untuk menciptakan
software aplikasi baru yang membuat sistem komputer semakin canggih
dan berdaya guna. Gambar hubungan antara hardware, software, dan
brainware adalah sebagai berikut:
2 Algoritma dan Pemrograman dengan Bahasa C

Perangkat Keras
Contoh :
BASIC
pASCAL
FORTRAN
COBOL
Perangkat Lunak

PROLOG
Brainware usp
ASSEMBLER
Dsb.

Gambar 1.1 Diagram


Hubungan antara Hardware, Software, dan Brainware

Karena algoritma berfokus pada software maka akan dibahas lebih detail
mengenai software (program). Program adalah kumpulan instruksi
tersendiri yang biasa disebut sebagai source code. Kumpulan instruksi ini
dibuat oleh programmer (pembuat program). Jadi, program adalah
kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga
mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) yang
sesuai dengan bahasa pemrograman yang digunakan dimana mempunyai
komponen input, proses, dan output. Contohnya pada sistem login, seperti
pada login situs jejaring sosial Facebook (www.facebook.com), input
berarti segala sesuatu yang dijadikan masukan ke dalam situs Facebook,
misalnya data nama pengguna, atau email dan password. Sedangkan
proses berarti segala sesuatu yang dikerjakan oleh sistem login Facebook
itu ketika sudah menerima data masukan dari pengguna, misalnya:
memvalidasi apakah email dan password yang dimasukkan sudah tepat dan
terdaftar di situs Facebook. Setelah itu, tahap yang terakhir, adalah output.
Jika valid maka proses akan memperbolehkan pengguna untuk masuk ke
halaman Home dan memberikan output berupa informasi yang
ditampilkan pada halaman Home itu. Namun jika tidak valid maka
pengguna akan diberi output berupa kesalahan yang terjadi dan mungkin
Pengantar Algoritma 3

akan diminta untuk memasukkan kembali email dan password secara


benar.

1 .2 PENGERTIAN ALGORITMA
Sebelum membahas pengertian algoritma secara detail, berikut ini kasus
yang biasa terjadi di dunia nyata yang berkaitan dengan algoritma.
Misalkan ada seorang ibu bernama Titin yang akan memasak untuk makan
malam. Untuk makan malam kali ini Ibu Titin hendak menggoreng kentang.
Pada kejadian ini Ibu Titin akan menjalankan aksi menggoreng kentang.
Sebelum menggoreng kentang, ada beberapa hal yang harus diperhatikan
berkaitan dengan aksi tersebut, yaitu:
1. Apakah kentang yang akan digoreng sudah tersedia atau harus dibeli
terlebih dahulu?
2. Jika sudah dibeli, apakah kentang yang akan digoreng sudah dikupas
kulitnya?
3. Ada berapa buah kentang yang harus digoreng?
4. Apakah semua kentang memiliki mutu yang baik atau ada yang busuk?
5. Jika ada yang busuk, apakah kentang tersebut akan tetap dipakai atau
akan dibuang?
6. Jika kentang sudah selesai digoreng, bagaimana cara
menghidangkannya? Apakah menggunakan saus tomat ataukah tidak?
Input Proses
Output

Gambar 1.2 Komponen Utama Program

Permasalahan di atas dapat dianalogikan dalam pembuatan program


komputer. Semua kejadian di atas mengandung unsur input, proses, dan
output. Hubungan antara input, proses dan output dapat dilihat pada
gambar 1.2. Input pada kasus berupa kentang yang akan digoreng. Sebelum
menggunakan data kentang, juga harus dipikirkan apakah kentang yang
4 Algoritma dan Pemrograman dengan Bahasa C

akan digunakan sudah ada atau harus dibeli terlebih dahulu, yang berarti
ada batasan masalah data. Jika semua kentang siap digunakan sebagai
input, lalu apakah ada pra-premrosesan yang harus dilakukan seperti
misalnya apakah harus dikupas terlebih dahulu? Atau apakah ada kentang
yang busuk? Jika kentang busuk tidak dipakai, jika tidak busuk maka bisa
dipakai. Hal ini berarti ada tahap pemilihan kondisi. Tahapan tersebut
sering dilakukan dalam pembuatan program. Kadang data yang akan
dipakai tidaklah tepat (clean) seperti yang diinginkan, namun harus dipre-
processing terlebih dahulu.
Tahapan berikutnya adalah proses, yaitu proses menggoreng kentang.
Harus juga diperhatikan: ada berapa kentang yang harus digoreng?
Apakah cukup satu buah, lima buah, atau harus sampai berpuluh-puluh
buah karena akan ada pesta keluarga? Dalam hal ini harus dilakukan
perulangan kegiatan menggoreng sesuai dengan target yang diharapkan.
Pada pemrograman kadang programmer juga harus mengulang beberapa
bagian program karena kesamaan hal yang harus dilakukan. Hal yang
demikian mempermudah pemrograman yang dilakukan.
Pada akhirnya juga harus diperhatikan apakah kentang yang sudah
digoreng akan dihidangkan dengan cara bagaimana, apakah dengan saus
tomat atau saus sambal? Pada saat menampilkan output hasil pemrosesan
program, seringkali juga harus dilakukan pemfilteran terhadap tampilan
program agar lebih baik dan sesuai dengan kebutuhan pengguna. Pada
tahap ini juga dilakukan pemilihan kondisi.
Dari contoh di atas dapat diambil gambaran tentang apa itu algoritma.
Secara sederhana algoritma adalah urutan langkah yang logis untuk
menyelesaikan masalah tertentu. Secara definisi, algoritma adalah alur
pemikiran logis yang dapat dituangkan ke dalam bentuk tulisan. Yang
ditekankan pertama adalah alur pikiran. Gambar atau simbol-simbol dalam
algoritma sering disebut flowchart, yang akan dibahas pada bab-bab
selanjutnya.
Kata algoritma berasal dari nama Abu Ja'far Mohammed Ibn Musa
alKhwarizmi, ilmuan Persia yang menulis kitab Al Jabr W'al-muqabala
Pengantar Algoritma 5

(Rules of Restoration and Reduction) sekitar tahun 825 M, yang berasal


dari Iran. Algoritma masuk ke Indonesia bersamaan dengan masuknya
teknologi komputer ke Indonesia.

Gambar 1.3 Siklus Hidup Software

Pada gambar di atas dapat dilihat bahwa proses pembuatan software


aplikasi membutuhkan 4 tahapan, yaitu:
1. Requirement, yaitu tahap mencari tahu kebutuhan klien/user, bisa
dilakukan dengan wawancara, bertemu secara langsung, atau dengan
melihat program yang pernah ada.
2. Design, yaitu tahap membuat prototype/bentuk program interface
(tampilan program) yang bakal dibuat namun belum fungsional.
3. Implementation, yaitu tahap di mana programmer melakukan
pengkode-an program secara nyata hingga semua fungsionalitasnya
terpenuhi dan benar.
4. Testing, yaitu tahap setelah program jadi. Program dites apakah semua
fungsionalitasnya benar-benar sesuai dengan requirement yang sudah
ditetapkan sebelumnya.
Sebenarnya masih ada satu tahapan lagi, yaitu tahap maintenance, yaitu
tahap di mana setelah program valid maka program harus dipelihara, dapat
di-update, di-backup, atau mungkin ditingkatkan versinya, di-patch, dan
Iain-lain sampai suatu jangka waktu tertentu.

1 .3 KRITERIA ALGORITMA
Menurut Donald E. Knuth, algoritma yang baik memiliki kriteria sebagai
berikut:
1. Input
Dari Sisi input, minimal program harus memiliki nol input atau lebih
dari pengguna. Program pasti memiliki input. Yang dimaksud memiliki
6 Algoritma dan Pemrograman dengan Bahasa C

nol input berarti program tidak mendapatkan masukan data dari


pengguna secara langsung, namun semua data yang akan digunakan
oleh program sudah dideklarasikan di dalam kode program yang akan
dieksekusi. Jadi tidak perlu di-input-kan dari luar. Sedangkan jika
mendapat input dari pengguna, data bisa dimasukkan melalui tampilan
program, misalnya melalui textbox, ataupun melalui file/basis data
yang terdapat di suatu tempat/server tertentu.
2. Output
Dari Sisi output, minimal program harus memiliki 1 output. Program
pasti menghasilkan output karena program dibuat untuk tujuan
tertentu. Tujuan itulah output-nya. Ouput program bisa ditampilkan ke
layar (screen), ditulis ke file, atau disimpan di clipboard untuk
kemudian dipakai di program lain atau disimpan dalam basis data.
3. Finite (Terbatas)
Program harus pasti dan berhenti, bukan tak terhingga. Suatu program
yang dieksekusi haruslah berhenti dan selesai, bukan berjalan terus
menerus hingga hang up atau not responding, dan akhirnya harus di-
kill (dimatikan) dengan paksa. Suatu program dapat mengalami infinite
(tak pernah berhenti) karena kesalahan programmer, mungkin karena
kurang teliti atau karena tidak ada kondisi yang bisa membuatnya
berhenti, atau mungkin karena ada error yang tidak terduga/tidak
tertangani dengan baik, misalnya file tidak ada namun program
mencarinya terus-menerus.
Memang ada program yang seolah-olah tidak pernah mati (terminate),
misalnya sistem operasi, namun sebenarnya sistem operasi juga pasti
akan berhenti, yaitu ketika sistem operasi tersebut di-shutdown.

4. Definite (Pasti)
Program harus jelas arah dan tujuannya. Suatu program harus jelas
kapan mulai dan kapan berakhir, apa tujuannya, dan memiliki logika
yang jelas agar dapat menghasilkan output yang sesuai dengan yang
diharapkan.
Pengantar Algoritma 7

5. Efisien
Artinya, program harus efisien, tidak memakan banyak memori, tidak
melakukan hal-hal yang tidak perlu. Suatu operasi/kegiatan yang tidak
perlu, misalnya adalah x = 5 + O atau y = 100 * O. Mengapa operasi
tersebut tidak efisien, karena setiap operasi pasti membutuhkan waktu
eksekusi, padahal operasi tersebut jelas tidak berguna, karena
berapapun bilangan yang ditambah dengan nol pasti bilangan itu sendiri
dan bilangan apa pun dikalikan dengan nol pasti no'. Nah, mengapa
harus dihitung lagi? Berarti program tidak efisien.

1 .4 BENTUK-BENTUK DASAR ALGORITMA


Algoritma secara umum memiliki beberapa bentuk dasar, yaitu:
1. Algoritma Sekuensial
Algoritma sekuensial banyak dijumpai pada kehidupan sehari-hari,
misalnya pada kasus "mengirimkan surat”. Pada kasus tersebut
terdapat langkah-langkah yang harus dilakukan, yaitu:
a. Membeli amplop
b. Membeli perangko
c. Memasang perangko ke amplop
d. Menuliskan alamat pengirim dan alamat tujuan
e. Pergi ke kantor pos atau memasukkan surat iłu ke dałam kotak
surat
f. Surat terkirim
Pada contoh di atas dapat dilihat bahwa langkah harus dilakukan secara
runtut dan ada yang tidak boleh dibolak-balik urutannya. Misalnya,
amplop harus dipasangi perangko terlebih dahulu baru kemudian
dikirim ke kantor pos.
8 Algoritma dan Pemrograman dengan Bahasa C

Algoritma sekuensial juga muncul pada kasus lbu Titin yang hendak
memasak kentang. Langkah-langkah yang dilakukannya adalah sebagai
berikut;
a. lbu Titin mengambil kantong kentang dari dałam rak.
b. lbu Titin mengambil panci dari almari.
c. lbu Titin mengupas kentang.
d. lbu Titin mengembalikan sisa kentang dałam kantong ke dałam rak.
e. lbu Titin memasak kentang.
lbu Titin menghidangkan kentang yang sudah masak.
Pada prinsipnya algoritma sekuensial adalah alur pemikiran yang
terstruktur, terurut, pasti, dan jelas untuk menyelesaikan masalah.
Dalam algoritma ini kadang ada langkah-langkah yang tidak boleh
ditukar urutannya.

2. Algoritma Percabangan
Pada contoh kasus algoritma sekuensial "mengirimkan surat” dapat
dilihat bahwa pada langkah ke-5, yang mana surat yang sudah şiap
dikirim dapat dikirimkan dengan pergi ke kantor pos atau dengan
memasukkannya ke dalam kotak pos. Pada langkah tersebut terdapat
kata ATAU, yang berarti pemilihan solusi. Ada dua solusi yang bisa
dipilih, tetapi tidak keduanya. Algoritma untuk memilih salah satu dari
beberapa pilihan yang ada disebut algoritma percabangan/pemilihan.
Yang perlu diperhatikan pada algoritma ini adalah solusi pilihan akan
dilakukan jika kondisinya terpenuhi, dalam arti kondisinya
menghasilkan nilai benar (TRUE).
Pada contoh kedua tentang Ibu Titin, jika kita tambahkan langkah
berikut:

a. Ibu Titin mengambil kantong kentang dari dalam rak.


b. Ibu Titin mengambil panci dari almari.
Pengantar Algoritma 9

c. Menurut kebiasaan lbu Titin, pada hari biasa Ibu Titin


menggunakan baju warna cerah sehingga dia harus menggunakan
celemek. Pada hari Sabtu dan Minggu dia menggunakan baju warna
hitam. Maka perlu diperhatikan, sebelum mengupas kentang,
apakah Ibu Titin memakai celemek atau tidak, bergantung pada
hari apa saat itu.
d. Ibu Titin mengupas kentang.

e. 'bu Titin mengembalikan Sisa kentang dalam kantong ke dalam rak.


f. Ibu Titin memasak kentang.

g. Ibu Titin menghidangkan kentang yang sudah masak.


Pada langkah ke-3 (c) di atas juga terdapat algoritma pemilihan: jika hari
Senin — Jumat, sebelum langkah mengupas kentang, lbu Titin harus
memakai celemek untuk melindungi bajunya. Selain itu, jika hari Sabtu
dan Minggu, 'bu Titin tidak perlu menggunakan celemek karena warna
bajunya tidak mudah kotor. Berarti algoritma percabangan adalah
algoritma di mana programmer harus memilih langkah yang harus dia
lakukan berdasarkan kondisi tertentu.
3. Algoritma Perulangan
Berdasarkan contoh lbu Titin sebelumnya akan ditambahkan kasus
baru, yaitu lbu Titin mendapatkan pesanan masak untuk katering
kentang, sehingga dia wajib mengupas kentang cukup banyak. Jumlah
kentang harus disesuaikan dengan jumlah pesanan, misalnya 50 buah
kentang. Berdasarkan kasus baru ini akan diformulasikan kembali
langkah-langkah yang harus dilakukan lbu Titin, yaitu:
a. lbu Titin mengambil kantong kentang dari dalam rak.
b. lbu Titin mengambil panci dari almari.
c. Menurut kebiasaan lbu Titin, pada hari biasa lbu Titin
menggunakan baju warna cerah sehingga dia harus menggunakan
celemek, sedangkan pada hari Sabtu dan Minggu dia menggunakan
10 Algoritma dan Pemrograman dengan Bahasa C

baju warna hitam. Oleh sebab itu perlu diperhatikan apakah


sebelum mengupas kentang, lbu Titin harus memakai celemek atau
tidak, yang bergantung pada hari apa saat itu.
d. lbu Titin mengupas kentang. Karena harus mengupas sebanyak 50
buah kentang maka langkah ini akan diulangi sebanyak 50 kali.
e. Setelah 50 kali mengupas kentang, lbu Titin mengembalikan Sisa
kentang dalam kantong ke dalam rak.
lbu Titin memasak kentang.
g. lbu Titin menghidangkan kentang yang sudah masak.
Algoritma perulangan berarti terdapat satu atau lebih
kejadian/tindakan yang harus diulang terus-menerus sampai
kondisinya tidak terpenuhi lagi.
Dari ketiga algoritma di atas, sangat mungkin terjadi kombinasi,
misalnya kita lihat pada contoh lbu Titin lagi. Pada saat lbu Titin
mengupas kentang sebanyak 50 buah, bisa jadi tidak semua kentang
yang dikupas baik mutunya, mungkin ada yang busuk. Jika kentang
busuk maka tidak ikut dihitung dan dibuang. Namun jika kentangnya
baik dan bermutu, maka akan dihitung dan digunakan untuk dimasak.
Karena itu akan dilakukan pengubahan algoritma sebagai berikut:

a. lbu Titin mengambil kantong kentang dari dalam rak.


b. lbu Titin mengambil panci dari almari.
c. Menurut kebiasaan lbu Titin, pada hari biasa lbu Titin
menggunakan baju warna cerah sehingga dia harus menggunakan
celemek, sedangkan pada hari sabtu dan minggu dia menggunakan
baju warna hitam. Maka sebelum mengupas kentang perlu
diperhatikan apakah lbu Titin harus memakai celemek atau tidak,
yang bergantung pada hari apa saat itu.

d. lbu Titin mengupas kentang. Karena harus mengupas sebanyak 50


buah maka langkah ini akan diulangi 50 kali.
Pengantar Algoritma 11

e. Periksa kentang: jika mutunya baik maka akan dihitung, tetapi jika
tidak maka akan dibuang dan tidak dihitung.

f. Setelah selesai mengupas 50 kentang, lbu Titin mengembalikan Sisa


kentang dalam kantong ke dalam rak.
g. lbu Titin memasak kentang.
h. lbu Titin menghidangkan kentang yang sudah masak.
Pada contoh terakhir ini dapat dilihat bahwa algoritma lbu Titin
mengandung semua bentuk algoritma, yaitu sekuensial, percabangan,
dan perulangan.

1 .5 CONTOH KASUS
1. Program Winamp (music player) dapat di-download versi terbarunya
pada alamat http://www.winamp.com, secara kontinu. Misalnya,
ketika buku ini ditulis, winamp sudah mencapai versi 5.57. Pada
website-nya juga bisa dilihat perubahan apa saja yang terjadi pada versi
5.57 tersebut. Konsep apakah Yang digunakan Oleh program Winamp
bila ditinjau dari siklus hidup software-nya?
Pengantar Algoritma

V Search for Add-ons, Help and More

Homely Media Player• Skins• Plug-ins. Online Services. Music. Community.


E

Player

Winamp

Gambar 1.4 Situs Winamp

2. Sebutkanlah contoh aplikasi/program yang sering Anda temui pada


sistem operasi Windows yang menggunakan konsep perulangan dan
pemilihan kondisi! Jelaskan!
3. Menurut Anda, apa saja yang harus diperhatikan agar suatu program
bisa laku dijual dan banyak dipakai orang atau perusahaan?
4. Berikan contoh nyata dari setiap kriteria algoritma menurut Donald
E. Knuth!
5. Apakah algoritma bersifat statis dan tidak perlu berubah/diperbarui?
Kenapa? Sebutkan contoh nyatanya!

Anda mungkin juga menyukai