Modul PRODAS
Modul PRODAS
ALGORITMA PEMROGRAMAN
Komputer adalah alat elektronik untuk mengolah data dengan menggunakan program
tertentu untuk menghasilkan informasi.
Fungsi komputer adalah untuk pengolahan data (data processing), sehingga komputer
juga disebut sebagai pengolah data elektronik. Proses dari pengolahan data dengan
menggunakan komputer disebut sebagai Pengolahan Data Elektronik (EDP atau Electronic
Data Processing).
Di dalam komputer, terdapat bagian yang disebut sebagai Software (Perangkat Lunak).
Perangkat lunak ini merupakan program-program yang diperlukan untuk menjalankan
bagian dari komputer yang disebut sebagai Hardware (Perangkat Keras).
Algoritma yang baik harus bersifat efisien waktu dan penggunaan memori komputer. Hasil
akhir fase penyelesaian masalah adalah penyelesaian dalam bentuk algoritma.
Tujuan algoritma adalah memberikan petunjuk tentang langkah-langkah logika
penyelesaian masalah dalam bentuk yang mudah dipahami nalar manusia sebagai acuan
yang membantu dalam mengembangkan program komputer. Pemahaman terhadap
algoritma akan mencegah sejak dini kemungkinan terjadinya kesalahan logika pada
program komputer yang dikembangkan.
4. Syarat-syarat yang harus dipenuhi oleh suatu algoritma:
Logika prosedur pada algoritma harus cukup mudah dipahami nalar manusia
Validitas prosedur pada algoritma dapat ditelusuri dengan mudah
Tidak menimbulkan kerancuan interpretasi bagi orang lain
Prosedur pada algoritma harus cukup mudah dikonversi ke program komputer
Prosedur pada algoritma tidak terpengaruh atau tergantung pada bahasa pemrograman
apa pun
B. PROGRAM TERSTRUKTUR & ALGORITMA
Program terstruktur memberikan beberapa keuntungan, antara lain :
Penulisan program menjadi lebih teratur
Program tersusun secara sistematis
Program tersusun secara terstruktur
Lebih mudah dipahami
Urutan atau alur proses dalam program menjadi
sederhana dan mudah dipahami
Contoh bahasa pemrograman terstruktur adalah Visual basic,C, C++.
Pengelompokan struktur proses dalam algoritma:
Proses urutan (sequence)
Prosedur proses dalam algoritma yang dilakukan secara urut langkah demi langkah.
Sebuah urutan terdiri dari satu atau lebih instruksi. Tiap instruksi dilaksanakan secara
berurutan sesuai dengan urutan pelaksanaan, artinya suatu instruksi akan dilaksanakan
setelah instruksi sebelumnya telah selesai dilaksanakan.
Proses penyeleksian (selection)
Instruksi dikerjakan jika suatu kondisi tertentu dipenuhi. Dengan adanya proses ini maka
ada kemungkinan beberapa jalur aksi yang berbeda berdasarkan kondisi yang ada.
Proses pengulangan (looping)
Proses melakukan eksekusi suatu program secara berulang-ulang pada suatu blok instruksi
tertentu yang terkendali.
C. NOTASI ALGORITMA
Notasi algoritma bukan merupakan notasi bahasa pemrograman, namun notasi ini dapat
diterjemahkan ke dalam berbagai bahasa pemrograman. Meskipun notasi algoritma tidak
berbentuk baku seperti notasi bahasa pemrograman, namun konsistensi terhadap notasi
perlu diperhatikan untuk menghindari terjadinya kekeliruan.
Bentuk notasi algoritma:
1. Uraian Deskriptif
Dengan notasi bergaya uraian, deskripsi setiap langkah dijelaskan dengan bahasa yang
gamblang. Proses diawali dengan kata kerja seperti baca atau membaca, hitung atau
menghitung, bagi atau membagi, ganti atau membagi, dan sebagainya, sedangkan
pernyataan kondisional dinyatakan dengan jika ... maka ....
Contoh _ menghitung luas dan keliling suatu lingkaran
Algoritma Hitung_Luas_dan_Keliling_Lingkaran
DESKRIPSI:
Masukkan jari-jari lingkaran (r)
Hitung luas lingkaran dengan rumus L = * r2
Hitung keliling lingkaran dengan rumus K = 2 * * r
Tampilkan luas lingkaran
Tampilkan keliling lingkaran
2. Diagram Alir (flowchart)
Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam
suatu program, yang menyatakan arah alur program tersebut.
Contoh : menghitung luas dan keliling lingkaran
Simbol-simbol dalam diagram alir:
3. Pseudocode
Notasinya yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Bahasa
Visual basic dan C.
Contoh : menghitung luas dan keliling suatu lingkaran
Algoritma Hitung_Luas_dan_Keliling_Lingkaran
{ Dimasukkan nilai jari-jari lingkaran (r). Hitung & cetak luas &
keliling lingkaran dengan rumus L=phi*r*r dan K=2*phi*r }
DEKLARASI:
const phi = 3.14
r, L, K = real
DESKRIPSI:
read(r)
L phi * r * r
K 2 * phi * r
write(Luas lingkaran = ,L)
write(Keliling lingkaran = ,K)
Summary
Algoritma merupakan himpunan angkah-langkah atau prosedur-prosedur logika yang
harus dilaksanakan untuk menyelesaikan suatu masalah yang berorientasi pada
pemrograman komputer.
Notasi uraian deskriptif bagus jika digunakan dalam algoritma yang pendek, akan tetapi
jika digunakan dalam algoritma yang besar, notasi ini tidak efisien. Selain itu,
perkonversian notasi algoritma ke dalam notasi bahasa pemrograman akan relative sukar.
Diagram alir lebih menggambarkan aliran instruksi di dalam program secara visual
daripada memperlihatkan struktur program.
Penggunaan notasi pseudocode memberikan kemudahan konversi atau translasi ke dalam
notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudocode
dengan notasi bahasa pemrograman.
BAB III
TEKS ALGORITMA
Teks algoritma yang dimaksud di sini adalah teks pseudocode yang dianggap perlu
untuk menjembatani keragaman dan kompleksitas bahasa sehingga dapat dilakukan
abstraksi Teks ini lebih berorientasi kepada detail design dibandingkan coding
(merupakan rancangan secara prosedural yang selanjutnya dengan mudah dapat ditranslasi
menjadi salah satu program dalam bahasa tertentu)
Contoh bahasa pemrograman yang digunakan adalah Bahasa Visual basic. Jadi dalam
pembahasan berikutnya, translasi teks Algoritma adalah ke dalam teks program Bahasa
visual basic.
Bagian-bagian (blok) dalam teks algoritma:
JUDUL (header) algoritma
DEKLARASI algoritma
DESKRIPSI algoritma
Algoritma NAMA_ALGORITMA
{ Penjelasan mengenai algoritma, yang berisi uraian singkat
mengenai apa yang dilakukan oleh algoritma }
DEKLARASI
{ Semua nama yang dipakai, meliputi nama tipe, nama tetapan,
nama
peubah, nama prosedur dan nama fungsi didefinisikan di sini
}
DESKRIPSI :
{ Semua langkah atau aksi algoritma dituliskan di sini }
Keterangan:
Pasangan tanda kurung kurawal ({ dan }) digunakan untuk memberikan komentar
(untuk memperjelas maksud teks yang dituliskan).
Judul Algoritma
Terdiri dari nama dan penjelasan (spesifikasi) algoritma.
Nama yang digunakan sebaiknya singkat (namun cukup informatif).
Biasanya di bawah nama diberi spesifikasi algoritma.
Algoritma yang akan ditulis nantinya harus sesuai dengan spesifikasi yang
didefinisikan.
Algoritma LUAS_PERSEGI_PANJANG
{ Menghitung luas persegi panjang dengan masukan ukuran panjang dan ukuran lebar, lalu
mencetak hasil luas persegi panjang ke piranti keluaran }
Deklarasi
Merupakan tempat untuk mendefinisikan berbagai macam nama, yaitu:
nama tipe
nama konstanta
nama peubah (nama variabel)
nama fungsi, sekaligus spesifikasinya
nama prosedur, sekaligus spesifikasinya
Semua nama tersebut baru dapat digunakan jika telah didefinisikan di dalam
DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI sebaiknya
dikelompokkan menurut jenis nama tersebut.
Ketentuan-ketentuan dalam pendefinisian nama-nama:
nama peubah belum terdefinisi harganya ketika didefinisikan.
Pendefinisian konstanta sekaligus juga memberikan harganya.
Pendefinisian nama fungsi sekaligus juga dengan domain dan range serta
spesifikasinya.
Pendefinisian nama prosedur sekaligus juga dengan pendefinisian parameter (jika
ada) dan spesifikasi prosedur (kondisi awal, kondisi akhir dan proses yang
dilakukan).
DEKLARASI
{ Nama tipe, hanya untuk tipe yang bukan tipe dasar }
type Titik : <X:real,Y:real> { koordinat pada sumbu
kartesian }
{ Nama konstanta, harus menyebutkan nilai }
const phi = 3.14
{ Nama peubah (variabel), menyebutkan tipe }
P : Titik { Titik dalam derajat kartesian }
jmlh : integer { Jumlah suatu elemen }
ketemu : boolean { Keadaan hasil pencarian }
{ Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan
range }
function Konversi_Real_Ke_Integer(input i:real)integer
{ Mengkonversi harga i yang bertipe real menjadi harga
ekivalen yang
bertipe integer }
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi
awal, kondisi
akhir dan proses }
procedure Tukar(input/output A:integer, input/output
B:integer)
{ Kondisi awal : A dan B terdefinisi, A=a dan B=b }
{ Kondisi akhir : A=b dan B=a }
{ Proses : Mempertukarkan nilai A dan B }
Deskripsi
Merupakan bagian inti dari algoritma.Komponen di dalam teks algoritma dapat berupa:
Instruksi dasar seperti input/output, assignment
Urutan (sequence)
Pemilihan
Pengulangan
DESKRIPSI:
read(a)
ba mod 2
if b = 0 then
write(bilangan genap)
else
write(bilangan ganjil)
endif
TRANSLASI TEKS ALGORITMA KE DALAM TEKS PROGRAM BAHASA
VISUAL BASIC
Struktur program Visual basic juga terdiri dari tiga bagian:
1. Judul Program sifatnya opsional dan tidak signifikan. Dapat digunakan untuk
memberi nama program dan sifatnya sebagai dokumentasi saja. Judul program dituliskan
pada awal program dan diakhiri dengan titik koma (;).
2. Bagian Deklarasi digunakan bila di dalam program menggunakan pengenal
(identifier). Identifier dapat berupa label, konstanta, tipe, peubah, prosedur dan fungsi. Jika
suatu program menggunakan identifier, Bahasa Visual basic menuntut supaya identifier
tersebut dikenalkan/dideklarasikan terlebih dahulu sebelum digunakan.
3. Bagian Deskripsi menunjukkan suatu tindakan yang dikerjakan oleh program.
Tindakan yang dilakukan oleh program tergantung pada instruksi-instruksi yang diberikan.
Instruksiinstruksi yang akan diberikan untuk dikerjakan ditulis di antara kata cadangan
Begin dan End. Akhir penulisan dari End diakhiri dengan tanda baca titik (.). Setiap
instruksi per barisnya diakhiri dengan tanda baca titik koma (;).
Translasi
Algoritma Visual basic
Algoritma NAMA_ALGORITMA Private sub commandbutton1_click();
{Penjelasan mengenai {tidak ada judul pada premrograman visual
algoritma, yang berisi basic}
uraian singkat mengenai (* DEKLARASI *)
apa yang dilakukan oleh [const]
algoritma} {semua nama tetapan dan harga tetapannya
DEKLARASI didefinisikan di sini}
{Semua nama yang dipakai, [type]
meliputi nama tipe, nama {semua nama tipe bentukan didefinisikan di
tetapan, nama peubah, sini}
nama prosedur dan nama [var]
fungsi didefinisikan di {semua nama peubah global didefinisikan
sini} di
DESKRIPSI : sini}
{Semua langkah atau aksi {deklarasi prosedur dan fungsi didefinisikan
algoritma dituliskan di di sini}
sini} (* DESKRIPSI *)
{semua instruksi program dituliskan di sini}
End sub.
Beberapa hal penting tentang bahasa visual basic:
1. Bahasa Visual basic tidak membedakan nama yang ditulis dalam huruf besar ataupun
huruf kecil (tidak bersifat case sensitive).
Misal:
I sama saja dengan i
penambahan_satu sama saja dengan PENAMBAHAN_SATU
2. Komentar ditulis di antara tanda { dan } atau di antara (* dan *)
3. Program visual basic tidak mengenal aturan penulisan di kolom tertentu, jadi boleh
dituliskan mulai kolom ke berapapun.
4. Penulisan instruksi-instruksi yang menjorok masuk beberapa kolom tidak memiliki
pengaruh apapun di dalam proses. Hal ini hanya dimaksudkan untuk mempermudah
pembacaan atau dokumentasi program, sehingga akan lebih terlihat bagianbagiannya.
Tabel Translasi Notasi Algoritma Ke Dalam Notasi Bahasa Visual Basic
Kelompok Algoritma Visual basic ket
1. Tipe Dasar boolean Boolean True dan false
integer integer Tipe data untuk bilangan bulat
Real Single Tipe data untuk bilangan decimal
atau pecahan
Char String Tipe data untuk huruf
String String Tipe data untuk teks
2. Operator
a. Aritmatika + + Penjumlahan
Pengurangan
* * Perkalian
/ / Pembagian (hasil pecahan)
div div Pembagian (hasil bulat)
mod mod Sisa pembagian
b. Perbandingan < < Lebih kecil
<= Lebih kecil atau sama dengan
> > Lebih besar dari
>= Lebih besar atau sama dengan
= = Sama dengan
<> Tidak sama dengan
c. Logika not not Tidak
and and Dan
or or Atau
3. Komentar { komentar } { komentar }
(* komentar *)
4. Lain-lain const const
type type
true true
false false
Table Translasi Notasi Algoritma Pengisian Nilai, Pembacaan Dan Penulisan Ke
Dalam Notasi Bahasa Visual Basic
Kelompok Algoritma Visual basic
Penugasan =
Pembacaan dan Penulisan Read,Write Write
write : Menulis keluaran ke layar
Table Translasi Notasi Algoritma Struktur Pemilihan ke dalam Notasi Bahasa Visual
basic
Struktur Algoritma Visual Basic
IF THEN If <kondisi> then If <kondisi> then
Aksi Aksi
End if End if
IF THEN-ELSE If <kondisi> then If <kondisi> Then
Aksi1 Aksi1
Else Else
Aksi 2 Aksi2
End if End If
CASE case nama Select Case <variable>
<kondisi1> : aksi1 Case 0:
<kondisi2> : aksi2 <Proses untuk keadaan
. variabel=0>
. Case 1:
<kondisiN> : aksiN <Proses untuk keadaan
[otherwise aksiX] variabel=1>
endcase .
.
Case N:
<Proses untuk keadaan
variabel=N>
End Select
Table Translasi Notasi Algoritma Struktur Pengulangan ke dalam Notasi Bahasa
Visual basic
Struktur Algoritma Visual Basic
For For menaik For menaik
For pencacah nilai_awal to For variabel = nilai_awal To nilai_akhir
nilai_akhir do [Step langkah]
aksi <Proses dalam pengulangan>
endfor Next variable
For menurun
For menurun: For variabel = nilai_akhir To nilai_awal
for pencacahb downto a do [Step langkah]
aksi <Proses dalam pengulangan>
endfor Next variable
BAB IV
PENYELEKSIAN
If kondisi then
Aksi1
Else
If kondisi then
Aksi2
Else
Aksi3
Endif
Contoh Penyeleksian Kondisi tiga Kasus
Algoritma lampu_lalu_lintas
{ Menentukan apakah sebuah bilangan bulat yang dibaca dari
piranti masukan merupakan bilangan genap }
DEKLARASI
warna : string
DESKRIPSI :
read(warna)
if warna = hijau then
write(jalan)
else
if warna = kuning then
write(hati-hati)
else
write (berhenti)
endif
D. Struktur CASE
Struktur CASE dapat digunakan untuk menganalisis penyeleksian dua kasus atau lebih
dan bentuknya adalah lebih sederhana daripada struktur IF-THEN-ELSE yang memiliki
bentuk bertingkat-tingkat.
Kondisi1, kondisi2, ...kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa
nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang benar:
Jika kondisi ke-k benar, maka aksi ke-k dilaksanakan, selanjutnya keluar dari struktur
CASE
Aksi yang dipasangkan dengan kondisi ke-k dapat lebih dari satu, karena itu ia berupa
Runtunan.
Jika tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise (optional)
dikerjakan.