BAB I
PENDAHULUAN
1.1
Tujuan PercobaanMempelajari dan memahami tentang fungsi dan cara penggunaan dari algoritma
1.2 Teori Dasar
Definisi 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. (Dari Algoritma
dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
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.
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: contoh 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.
Ciri-ciri Algoritma
Ciri-ciri
dari algoritma yang baik adalah
1.
Ada Output
Output
yang dihasilkan harus solusi dari masalah bukan malah menimbulkan masalah baru
2.
Efektif dan efisien
Jika
output yang didapat adalah solusi dari masalah atau tepat guna maka algoritma
tersebut efektif dan jika waktu proses singkat dengan memori yang
sedikit maka algoritma dikatakan efisien
3.
Jumlah Instruksi berhingga
Instruksi
yang digunakan harus sesuai dengan pemecahan masalah sehingga dapat meminimkan
waktu proses dan pemanfaatan memori
4.
Berakhir
Proses
algoritma harus berakhir. Ada solusi, tidak ada solusi algoritma harus
berakhir. Jika proses akan berakhir bila ditemukan solusi maka proses tersebut
bukan algoritma melainkan SEMI ALGORITMA.
5.
Terstruktur
Langkah
kegiatan dalam algoritma harus terstruktur dimana setiap langkah harus saling
berhubungan sehingga memudahkan dalam evaluasinya.
Jadi
sebenarnya algoritma itu adalah suatu prosedur(deretan instruksi) yang harus
menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat
dan penggunaan memori yang relatif sedikit (efisien) dengan jumlah langkah yang
berhingga dan terstruktur serta berakhir baik ada solusi maupun tidak.
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
Flowchart
Flowchart adalah
serangkaian bagan-bagan yang menggambarkan alir program. Flowchart atau diagram
alir memiliki bagan-bagan yang melambangkan fungsi tertentu.
Flowchart selalu
diawali dan diakhiri oleh bagan terminator. Aliran selalu dari atas ke bawah,
satu demi satu langkah. Tidak ada proses yang dikerjakan bersamaan, semua
dikerjakan satu persatu.
Proses yang dilakukan
komputer sebenarnya hanya ada 3 proses: input, proses data dan output. Dengan
demikian, ketika ada suatu masalah yang akan diselesaikan dengan suatu
software, maka hal yang perlu diidentifikasi adalah input, proses data dan
output.
Misal Masalah 1:
bagaimana menentukan bahwa suatu bilangan itu adalah bilangan genap atau
ganjil?
Input : bilangan,
bilangan bulat.
Proses : menentukan
bilangan ganjil atau genap dengan melakukan pembagian bilangan dengan bilangan
2. Jika sisa pembagian NOL maka bilangan tersebut genap, sebaliknya ganjil.
Output : Bilangan
Ganjil atau Bilangan Genap
Gambaran penyelesaian
dengan Flowchart :
FLOWCHART SKEMATIK
Flowchart Skematik
mirip dengan Flowchart Sistem yang menggambarkan suatu sistem atau prosedur.
Flowchart Skematik ini bukan hanya menggunakan simbol-simbol flowchart standar,
tetapi juga menggunakan gambar-gambar komputer, peripheral, form-form atau
peralatan lain yang digunakan dalam sistem.
Flowchart Skematik
digunakan sebagai alat komunikasi antara analis sistem dengan seseorang yang
tidak familiar dengan simbol-simbol flowchart yang konvensional. Pemakaian
gambar sebagai ganti dari simbol-simbol flowchart akan menghemat waktu yang
dibutuhkan oleh seseorang untuk mempelajari simbol abstrak sebelum dapat
mengerti flowchart.
Gambar-gambar ini
mengurangi kemungkinan salah pengertian tentang sistem, hal ini disebabkan oleh
ketidak-mengertian tentang simbol-simbol yang digunakan. Gambar-gambar juga
memudahkan pengamat untuk mengerti segala sesuatu yang dimaksudkan oleh analis,
sehingga hasilnya lebih menyenangkan dan tanpa ada salah pengertian.
FLOWCHART PROGRAM
Flowchart Program
dihasilkan dari Flowchart Sistem. Flowchart Program merupakan keterangan yang
lebih rinci tentang bagaimana setiap langkah program atau prosedur sesungguhnya
dilaksanakan. Flowchart ini menunjukkan setiap langkah program atau prosedur
dalam urutan yang tepat saat terjadi. Programmer menggunakan flowchart program
untuk menggambarkan urutan instruksi dari program komputer. Analis Sistem
menggunakan flowchart program untuk menggambarkan urutan tugas-tugas pekerjaan
dalam suatu prosedur atau operasi.
FLOWCHART SISTEM
Flowchart Sistem
merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di
dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur
yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi
secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk
suatu sistem.
Flowchart Sistem
terdiri dari data yang mengalir melalui sistem dan proses yang
mentransformasikan data itu. Data dan proses dalam flowchart sistem dapat
digambarkan secara online (dihubungkan langsung dengan komputer) atau offline
(tidak dihubungkan langsung dengan komputer, misalnya mesin tik, cash
register atau kalkulator).
Bagan, nama dan
fungsinya seperti yang disajikan pada tabel berikut :
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:
0 komentar:
Posting Komentar