2.1 Pengertian Algoritma
Untuk dapat menyelesaikan persoalan-persoalan yang kita hadapai, maka kita perlu menyusun langkah-langkah atau strategi untuk memecahkan masalah tersebut. Misalnya: pada suatu saat, kita hendak makan, tetapi yang tersedia hanya nasi saja tanpa lauk, kemudian terpikir oleh kita untuk membuat telur dadar, maka kita segera menyusun langkah-langkah untuk membuat telur dadar. Pertama, kita ambil telur dan bumbu-bumbu yang diperlukan. Kedua, membuat bumbu dan mengocoknya bersama telur. Ketiga, menyiapkan perlengkapan masak. Keempat mulai menggoreng telur, dan kelima telur siap dihidangkan. Dalam dunia pemrograman pun demikian, untuk dapat menyelesaikan masalah (problem solving), harus disusun dahulu langkah-langkah penyelesaiannya yang dikenal dengan nama algoritma.
Algoritma berasal dari kata algorism, yaitu nama penulis buku Arab yang terkenal, Abu Ja’far Muhammad ibnu Musa al-Khowarizmi. Dalam bidang pemrograman, algoritma didefinisikan sebagai:
Algoritma adalah kumpulan instruksi-instruksi /perintah–perintah/langkah-langkah yang berhingga jumlahnya dan dituliskan secara sistematis digunakan untuk menyelesaikan masalah/ persoalan logika dan matematika dengan bantuan komputer.
Bila digambarkan, maka penyelesaian masalah sampai diperoleh pemecahannya adalah, sebagai berikut:
Gambar 2.1. Hubungan Masalah, Algoritma, dan Solusi
Algoritma pemrograman yang baik, harus memenuhi beberapa kriteria, yaitu:
1. Menggunakan langkah/metode yang tepat dalam pemecahan masalah
2. Menghasilkan output yang benar
3. Ditulis dengan menggunakan bahasa yang standar serta dengan format yang mudah dipahami
4. Operasi yang diperlukan sudah terdefinisi dengan jelas
5. Semua proses harus berakhir/berhingga, ada saat berhentinya.
Selain kriteria tersebut di atas, algoritma juga harus memenuhi ciri sebagai berikut:
1. Precise
2. Jumlah langkah/step berhingga dan tertentu
3. Efektif
4. Harus terminate
5. Output yang dihasilkan tepat
2.2 Penyajian Algoritma
Algoritma disajikan dengan tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu dan pseudocode, sedangkan yang disajikan dengan gambar, misalnya dengan flowchart program, data flow diagram, diagram chart, dan lain-lain.
Contoh 2.1:
Algoritma untuk mencari rata-rata dari 3 bilangan yang diinputkan
a. Algoritma dengan struktur bahasa Indonesia
1. Baca bilangan a, b, dan c
2. Jumlahkan ketiga bilangan tersebut
3. Bagi jumlahnya dengan 3
4. Tulis hasilnya
b. Algoritma dengan pseudocode
Input (a,b,c)
Jml a+b+c
Rerata Jml/3
Output (Rerata)
c Algoritma dengan flowchart program
Contoh kasus 2.2:
Algoritma untuk mencari luas lingkaran
a. Algoritma dengan struktur bahasa Indonesia
1. Beri nilai phi dengan 3.14
2. Masukkan jari-jari lingkaran
3. Kalikan phi dengan kuadrat dari jari-jarinya
4. Tulis hasilnya
b. Algoritma dengan pseudocode
phi 3.14
Input (R)
L phi * R^2
Output (L)
c Algoritma dengan flowchart program
Pseudocode
Pseudocode berasal dari kata pseudo (mirip/menyerupai) dan code, yang berarti kode yang mirip dengan kode program yang sebenarnya.
Sebagai contoh, algoritma yang ditulis dengan pseudocode untuk menyelesaikan permasalahan menukarkan isi dari dua nilai yang berbeda, yaitu A=10 dan B=20
C B
B A
A C
Output (A,B)
Flowchart (bagan alir)
Flowchart program adalah suatu bagan yang menggambarkan atau mempresentasikan suatu algoritma atau prosedur untuk menyelesaikan masalah.
Flowchart ada dua macam, yaitu flowchart system dan flowchart program.
Flowchart system
Yaitu bagan yang menggambarkan suatu prosedur dan proses suatu file dalam suatu media menjadi file dalam media yang lain dalam suatu sistem data.
Simbol yang digunakan :
Contoh :
: pita magnetik
: keyboard
: storage
: input/output
: proses
: magnetic tape
: arah proses
Flowchart program
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
Simbol yang digunakan :
: (terminal symbol), menunjukkan awal dan akhir dari program
: (preparation symbol), memberikan nilai awal pada suatu variabel atau counter
: (processing symbol), menunjukkan pengolahan aritmatika dan pemindahan data
: (input/output symbol), menunjukkan proses input atau output
: (decision symbol), untuk mewakili operasi perbandingan logika
: (predefined process symbol), proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi
: (connector symbol), penghubung pada halaman yang sama
: (off page connector symbol), penghubung pada halaman yang berbeda
: arah proses
2.3 Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut bisa berupa urutan aksi (kejadian/tindakan), pemilihan aksi, dan pengulangan aksi. Berikut adalah tiga struktur dasar algoritma, yaitu:
1. Sequence Structure (struktur runtunan)
Struktur runtunan adalah struktur dasar algoritma dimana instruksi akan dieksekusi secara berurutan.
Digunakan untuk program yang instruksinya sequential/urutan.
2. Selection Structure (struktur percabangan)
Struktur percabangan adalah struktur dasar algoritma dimana instruksi/pernyataan akan dieksekusi apabila memenuhi atau tidak suatu kondisi. Digambarkan sebagai berikut:
F
T
3. Repetition Structure (struktur perulangan)
Struktur perulangan adalah struktur dasar algoritma dimana instruksi akan dieksekusi secara berulang-ulang apabila memenuhi atau tidak suatu kondisi. Digambarkan sebagai berikut:
F
T
2.4 Soal dan Penyelesaian
1. Tulislah algoritma (pseudocode) untuk mencari rata-rata dari 2 bilangan yang diinputkan
Penyelesaian:
Input(x,y)
Z x + y
Rerata Z/2
Output(Rerata)
End
2. Tulislah algoritma (pseudocode) untuk mencari keliling dan luas suatu bola.
Penyelesaian:
Input(R)
phi 3.14
Kel 4*phi*R^2
Luas Kel*R/3
Output(Kel,Luas)
End
3. Tulislah algoritma (pseudocode) untuk menentukan apakah bilangan yang diinputkan adalah bilangan yang habis dibagi 7 atau tidak
Penyelesaian:
Input(bil)
IF bil MOD 7 = 0 THEN
Output(“bil tersebut habis dibagi 7”)
ELSE
Output(“bil tersebut tidak habis dibagi 7”)
ENDIF
End
4. Tulislah algoritma (pseudocode) untuk mencari keliling sebuah segitiga siku-siku, dimana inputnya adalah panjang dan tinggi segitiga siku-siku.
Penyelesaian:
Input(p,t)
Sisimiring (p^2 + t^2)^0.5
Kel p + t + Sisimiring
Output(Kel)
End