JOBSHEET 1 Algoritma Dan Flowchart
JOBSHEET 1 Algoritma Dan Flowchart
PEMROGRAMAN
A. Tujuan Praktikum
1. Peserta didik dapat menjelaskan tentang algoritma dan simbol-simbol flowchart
2. Peserta didik dapat menyelesaikan masalah matematis menggunakan algoritma dan
flowchart
B. Teori Singkat
A. Algoritma
Pemrograman komputer dan algoritma pemrograman adalah dua hal yang tidak
dapat dipisahkan karena pembuatan program komputer akan lebih sulit dan lama tanpa
mengetahui dengan pasti bagaimana algoritma penyelesaian masalahnya. Sebelum
mengetahui lebih lanjut apa yang dimaksud dengan algoritma pemrograman, kita bahas
dahulu apa yang dimaksud dengan pemrograman komputer atau program komputer.
Definisi program computer adalah sederetan perintah-perintah (instruksi) yang
harus dikerjakan oleh komputer untuk menyelesaikan masalah. Deretan perintah-
perintah tersebut tidak bisa kita tulis secara sembarangan atau semau kita tetapi harus
teratur agar komputer dapat memahami dan memprosesnya dengan baik sehingga
permasalahan yang ada dapat diselesaikan dengan baik pula.
Untuk itulah diperlukan algoritma karena definisi dari algoritma itu sendiri
menurut Microsoft Press Computer and Internet Dictionary (1998) 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 dan disusun secara sistematis. Sedangkan yang dimaksud
dengan langkah-langkah logis adalah kita harus dapat mengetahui dengan pasti setiap
langkah yang kita buat.
Menurut Sjukani (2005), algoritma adalah alur pemikiran dalam menyelesaikan
suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur
pikiran, sehingga algoritma seseorang dapat berbeda dari algoritma orang lain.
Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat,
gambar, atau tabel tertentu. Jadi dapat disimpulkan bahwa algoritma lebih merupakan
alur pemikiran untuk menyelesaikan suatu pekerjaan atau suatu masalah daripada
pembuatan program komputer. Algoritma inilah yang kemudian dijadikan landasan
(pedoman) untuk membuat program komputer.
Meskipun algoritma tidak dapat dipisahkan dengan pemrograman komputer
tetapi jika anda beranggapan bahwa algoritma identic dengan pemrograman komputer,
anda salah besar. Hal ini dikarenakan dalam kehidupan sehari-haripun seringkali kita
berhadapan dengan masalah-masalah yang kalau kita cermati mengikuti kaidah-kaidah
penyelesaian secara algoritma. Misalkan saja cara-cara memasak mie instan, membuat
kopi atau teh, memasak makanan yang dinyatakan dalam bentuk resep, dan masih
banyak lagi yang semuanya itu dapat kita sebut sebagai algoritma. Pada mie instan
misalnya, biasanya pada bungkusnya terdapat urutan langkahlangkah bagaimana cara
memasak atau menyajikannya. Bila langkah-langkah tersebut tidak logis, maka dapat
dipastikan bahwa kita akan
memperoleh hasil yang tidak sesuai dengan yang diharapkan. Kita harus membaca
satu demi satu langkah-langkah pembuatannya kemudian mengikutinya agar
memperoleh hasil yang baik. Yang harus diingat disini adalah kita tidak harus mengikuti
langkahlangkah yang sudah diberikan, tetapi kita dapat memodifikasinya atau bahkan
membuat resep atau cara baru yang lebih baik tetapi menghasilkan hal yang sama
(mempunyai tujuan yang sama), yaitu dapat menikmati hasil masakan. Demikian juga
dengan pemrograman komputer, kita juga tidak harus mengikuti algoritma yang sudah
ada, tetapi kita dapat menambah ataupun mengurangi bahkan membuat algoritma yang
baru asalkan permasalahan yang ada dapat terpecahkan dengan baik.
B. Ciri Algoritma
Oleh karena algoritma digunakan untuk memecahkan suatu permasalahan maka
algoritma tersebut harus menghasilkan suatu jawaban atas permasalahan tersebut.
Dengan kata lain algoritma harus memiliki paling tidak satu keluaran. Sedangkan
masukan dari algoritma dapat nol (tidak ada) atau banyak masukan (data). Yang
dimaksud dengan nol masukan adalah jika algoritma itu hanya untuk menampilkan
suatu informasi saja. Misalnya output “Hello World” yang sering kita temukan pada
tutorial-tutorial saat kita baru belajar membuat program dari suatu Bahasa
pemrograman tertentu.
Kedua hal diatas, memiliki paling sedikit satu keluaran dan dapat memiliki nol
atau banyak masukan, merupakan dua dari beberapa ciri algoritma. Tugas algoritma
dikatakan selesai kalau algoritma tersebut sudah menghasilkan satu atau lebih jawaban
atas permasalahan yang ada. Dengan demikian setelah mengerjakan langkah-langkah
penyelesaian masalah, maka algoritma tersebut harus berhenti tidak melakukan proses
apapun. Berhenti di sini artinya adalah jika diterjemahkan ke dalam bentuk program dan
program dijalankan, maka setelah menghasilkan suatu output, program dapat langsung
berhenti atau menunggu instruksi lebih lanjut dari pengguna program seperti
mengulang perhitungan lagi, keluar program (menghentikan program), dan lain
sebagainya. Dengan demikian ciri ketiga dari algoritma adalah setelah selesai
mengerjakan langkah-langkah penyelesaian masalah, algoritma harus berhenti.
Ciri keempat dari algoritma adalah setiap langkah yang dibuat harus dibuat
sesederhana mungkin tetapi efektif agar dapat dipahami oleh pemroses (manusia
maupun komputer) sehingga dapat diselesaikan dalam waktu yang singkat serta masuk
akal. Sedangkan ciri yang terakhir adalah setiap langkah dalam algoritma harus
didefinisikan dengan tepat dan jelas sehingga tidak berarti-dua (ambiguitas) sehingga
menimbulkan kesalahan dalam penafsiran oleh pemroses.
C. Penerapan Algoritma
Berikut adalah contoh pemecahan masalah (algoritma) yang diambil dari
permasalahan yang mungkin sering kita hadapi dalam kehidupan kita sehari-hari.
Diketahui dua buah ember A dan B dimana ember A berisi air dan ember B berisi
minyak tanah. Jika diinginkan isi kedua ember itu saling ditukar sehingga ember A berisi
minyak tanah dan ember B berisi air, bagaimanakah caranya? Apakah cukup dengan
cara (membuat algoritma), tuangkan isi ember A ke ember B dan kemudian tuangkan isi
ember B ke ember A? Apakah permasalahan dapat diselesaikan dengan cara
(algoritma) tersebut? Jawabannya adalah tidak, karena algoritma tersebut tidak logis
dan hasilnyapun tidak sesuai dengan yang diinginkan karena algoritma tersebut akan
menghasilkan ember A akan berisi campuran air dan minyak tanah sedangkan ember B
akan kosong.
Bagaimanakah cara (algoritma) yang benar dari permasalahan tersebut?
Algoritma yang benar adalah pindahkan dahulu isi ember A ke ember lain (misal ember
C), kemudian setelah ember A kosong pindah isi ember B ke ember A. Langkah terakhir
adalah mengisi ember B dengan minyak tanah yang ada di ember C. Inilah algoritma
yang paling logis dan menghasilkan jawaban yang benar atas permasalahan tersebut.
Seperti yang telah dikemukakan sebelumnya, setiap orang mempunyai cara
pemecahan sendiri-sendiri sehingga setiap orang dimungkinkan mempunyai algoritma
yang berbeda-beda untuk memecahkan suatu permasalahan yang sama. Contohnya
adalah permasalahan di atas. Langkah pertama bisa saja yang dipindah bukan isi
ember A ke ember C dulu, tetapi isi ember B yang dipindahkan ke dalam ember C
terlebih dahulu. Setelah itu baru memindahkan isi ember A ke dalam ember B dan
terakhir memindah isi ember C ke ember A. Algoritma ini sedikit berbeda tetapi tetap
menghasilkan jawaban yang sama atas persoalan yang ada.
D. Notasi Algoritma
Algoritma mempunyai aturan penulisan sendiri yang disebut dengan notasi
algoritma. Notasi algoritma ini tidak tergantung dari spesifikasi bahasa pemrograman
tertentu dan komputer yang mengeksekusinya. Hal ini dikarenakan notasi algoritma
bukanlah notasi Bahasa pemrograman. Notasi algoritma merupakan bahasa universal
yang dapat diterima oleh semua Bahasa pemrograman yang ada. Oleh sebab itu
algoritma yang baik harus dapat diterjemahkan ke dalam bentuk source code dari
semua Bahasa pemrograman yang ada. Untuk membuat algoritma dari suatu
permasalahan, biasanya digunakan salah satu dari tiga buah notasi algoritma yang
dikenal, yaitu uraian kalimat eskriptif, flow chart, atau pseudo code.
Sebagai contoh permasalahan, jika diinginkan sebuah program komputer yang
dapat mengetahui bilangan terbesar dari tiga buah bilangan yang dimasukkan.
Bagaimanakah algoritmanya?
E. Deskriptif Algoritma
Algoritma dengan uraian kalimat deskriptif adalah notasi algoritma yang paling
sederhana karena algoritma ini menggunakan Bahasa sehari-hari. Untuk permasalahan
yang sederhana penggunaan notasi ini sangatlah mudah, akan tetapi untuk
permasalahan yang lebih komplek dan rumit, penggunaan notasi ini akan lebih sulit dan
sering kali terjadi ambigu dalam langlahlangkah penyelesaian masalah. Oleh karena
itulah untuk kasus-kasus yang lebih komplek, penggunaan notasi ini jarang sekali
bahkan tidak digunakan. Permasalahan di atas, yaitu mencari bilangan terbesar dari
tiga buah bilangan yang dimasukkan, tergolong permasalahan yang sederhana, jadi
algoritmanya masih mudah dan dapat dijelaskan dengan uraian kalimat deskriptif
sebagai berikut:
1. Masukkan sembarang bilangan sebanyak tiga buah.
2. Ambil bilangan pertama dan set maksimum‐nya sama dengan bilangan pertama.
3. Ambil bilangan kedua dan bandingkan dengan maksimum.
4. Apabila bilangan kedua lebih besar dari maksimum maka ubah maksimum‐nya
menjadi sama dengan bilangan kedua.
5. Ambil bilangan ketiga dan bandingan dengan maksimum.
6. Apabila bilangan ketiga lebih besar dari maksimum maka ubah lagi maksimum‐ nya
menjadi sama dengan bilangan ketiga.
7. Variabel maksimum akan berisi bilangan yang terbesar dan tampilkan hasilnya.
Algoritma dengan uraian kalimat deskriptif seperti di atas sudah jarang sekali kita
temukan karena kadang kala agak sulit untuk memahaminya. Yang paling banyak kita
temukan adalah algoritma (dengan uraian kalimat deskriptif) yang ditulis secara lebih
sistematis dan efisien sehingga lebih mudah untuk memahaminya.
1. Masukkan a, b, dan c.
2. mak a.
3. Jika b > mak, kerjakan langkah ke‐4. Jika tidak, kerjakan langkah ke‐5.
4. mak b.
5. Jika c > mak, kerjakan langkah ke‐6. Jika tidak, kerjakan langkah ke‐7.
6. mak c.
7. Tulis mak.
F. Flow Chart
Notasi algoritma yang paling banyak digunakan adalah flow chart karena
bentuknya yang sederhana dan mudah dipahami. Flow chart (diagram alir) adalah
penggambaran secara grafik dari langkah-langkah pemecahan masalah yang harus
diikuti oleh pemroses. Flow chart terdiri atas sekumpulan symbol dimana masing-
masing simbol menggambarkan suatu kegiatan tertentu.
Flow chart diawali dengan penerimaan masukan (input), pemrosesan masukan,
dan diakhiri dengan menampilkan hasilnya (output). Adapun simbol-simbol yang sering
digunakan untuk menyusun flow chart (dalam microsoft visio) adalah sebagai berikut :
1) Masukan
Masukan merupakan kegiatan penerimaan data yang disimbolkan dengan
jajaran genjang. Kita dapat menuliskan masukan yang diperlukan pada suatu
waktu secara satu per satu maupun secara keseluruhan, akan tetapi untuk
alasan efisiensi ruang gambar biasanya masukan dituliskan bersamaan secara
keseluruhan.
5) Percabangan
Yang dimaksud dengan percabangan disini adalah suatu kegiatan untuk
mengecek atau memeriksa suatu keadaan apakah memenuhi suatu kondisi
tertentu atau tidak. Jadi dalam percabangan ini, kita harus menuliskan kondisi
apa yang harus dipenuhi oleh suatu keadaan. Hasil dari pemeriksaan keadaan
ini adalah YA atau TIDAK. Jika pemeriksaan keadaan menghasilkan kondisi
yang benar, maka jalur yang dipilih adalah jalur yang berlabel YA, sedangkan
jika pemeriksaan keadaan menghasilkan kondisi yang salah, maka jalur yang
dipilih adalah jalur yang berlabel TIDAK. Berbeda dengan aturan pada simbol-
simbol sebelumnya, penulisan kondisi harus dilakukan secara satu per satu
(satu notasi percabangan untuk satu kondisi).
6) Sub rutin
Sub rutin adalah suatu bagian dalam program yang dapat melakukan
(atau diberi) tugas tertentu. Jadi sub rutin merupakan “program kecil” yang
menjadi bagian dari suatu program yang besar. Sub rutin ada dua macam, yaitu
prosedur (procedure) dan fungsi (function). Perbedaan antara keduanya adalah
setelah dipanggil prosedur tidak mengembalikan suatu nilai sedangkan fungsi
selalu mengembalikan suatu nilai.
Dalam bahasa C++ kedua sub rutin tersebut dijadikan satu yaitu function,
sedangkan untuk Java menggunakan class dimana keduanya bisa diatur untuk
dapat mengembalikan nilai atau tidak dapat mengembalikan nilai. Sub rutin ini
akan didiskusikan pada bab tersendiri. Sub rutin memiliki suatu flow chart yang
berdiri sendiri diluar flow chart utama.
Jadi dalam simbol sub rutin, kita cukup menuliskan nama sub rutinnya
saja, sama seperti jika kita melakukan pemanggilan terhadap suatu sub rutin
pada program utama (main program) yang akan anda pelajari pada bagian atau
bab lain pada buku ini. Aturan penulisan simbol sub rutin sama dengan simbol
percabangan, yaitu penulisan nama sub rutin dilakukan secara satu per satu.
Gambar 6. Simbol sub rutin
7) Arah aliran
Arah aliran merupakan jalur yang harus diikuti dan merupakan garis
penghubung yang menghubungkan setiap langkah pemecahan masalah yang
ada dalam flow chart. Arah aliran ini disimbolkan dengan anak panah
8) Terminator
Terminator berfungsi untuk menandai titik awal dan titik akhir dari suatu
flow chart. Simbol terminator ini diberi label MULAI untuk menandai titik awal
dari flow chart dan label SELESAI untuk menandai titik akhir dari flow chart. Jadi
dalam sebuah flow chart harus ada dua symbol terminator, yaitu symbol
terminator untuk MULAI dan SELESAI.
10) Dokumen
Dokumen merupakan tampilan data secara fisik yang dapat dibaca oleh
manusia. Data ini biasanya merupakan hasil pemecahan masalah (informasi)
yang telah dicetak (print out).
Algoritma bilangan_terbesar
Deklarasi
a,b,c,mak : integer
deskripsi
read(a,b,c)
mak a
if (mak<b)
mak b
else if(mak<c)
mak c
end if
write(mak)
Dalam pseudo code, garis bawah harus digunakan untuk kata algoritma (yang
diikuti oleh judul dari algoritma), kata deklarasi, kata deskripsi, tipe data, read,
write, if, else, end if, for, end for, while, end while, do while, dan end do while
2. Menemukan solusi
Setelah mendefinisikan masalah, maka langkah berikutnya adalah
menentukan solusinya. Jika permasalahan terlalu komplek, maka ada baiknya
masalah tersebut dipecah menjadi beberapa modul kecil dapat berupa
prosedure, fungsi, atau class sehingga akan lebih mudah untuk diselesaikan.
Penggunaan modul ini akan membuat program utamanya menjadi lebih singkat,
mudah untuk dilihat dan dianalisis untuk tujuan debuging serta untuk
pengembangan dari program.
3. Memilih algoritma
Pilihlah (atau buatlah) algoritma yang benar-benar sesuai dan efisien
untuk permasalahan yang diberikan.
4. Memilih bahasa pemrograman dan menulis source code program
Bahasa pemrograman yang digunakan hendaknya Bahasa yang memang
sudah anda kuasai dengan baik. Atau jika masih dalam tahap belajar, pilihlah
bahasa pemrograman yang mudah dipelajari dan digunakan serta memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan platform (sistem
operasi) lainnya.
5. Menguji program
Setelah selesai menulis source code (program sudah jadi), ujilah program
tersebut dengan segala macam kemungkinan yang ada, termasuk error-
handling, sehingga program tersebut benar-benar handal dan layak untuk
digunakan.
6. Menulis dokumentasi
Dokumentasi sangatlah penting agar pada suatu saat jika kita ingin
mengembangkan program, kita tidak mengalami kesulitan dalam membaca
source code yang sudah kita tulis. Cara paling mudah dan sederhana dalam
membuat suatu dokumentasi adalah dengan menuliskan komentar-komentar
kecil pada suatu baris (atau suatu bagian dari source code) tentang apa maksud
dari kode-kode tersebut dan apa kegunaannya, kemudian variabel apa saja yang
digunakan dan untuk apa, serta parameterparameter yang ada pada suatu
prosedur dan fungsi.
7. Merawat program
Program yang sudah jadi sebaiknya juga dilakukan perawatan untuk
mencegah munculnya bug yang sebelumnya tidak terdeteksi. Selain itu juga
berguna untuk menambah fasilitas-fasilitas baru yang dahulu sewaktu dibuat
belum ada. Pada bab ini kita hanya focus pada langkah pertama sampai dengan
langkah keempat saja. Sedangkan untuk dapat menerjemahkan notasi algoritma
yang telah dibuat ke dalam bentuk source code suatu Bahasa pemrograman,
seharusnya kita memahami terlebih dahulu Bahasa pemrograman yang akan kita
gunakan, seperti aturan tata bahasanya, intruksi-instruksi yang digunakan, tipe
data, dan masih banyak lagi. Semua itu akan kita pelajari satu persatu dibagian
lain pada buku ini.
Oleh karena kita baru akan mempelajari Bahasa pemrograman yaitu C++
atau program lainnya seperti java, maka untuk mempermudah pemahaman
tentang algoritma akan diberikan contoh-contoh permasalahan sederhana yang
sering dijumpai dalam pemrograman, bagaimana algoritmanya dalam bentuk tiga
notasi algoritma yang telah diberikan, dan kemudian bagaimana
mengimplementasikan atau menerjemahkan algoritma tersebut ke dalam bentuk
source code Bahasa pemrograman C++ atau program lainnya seperti java.
Untuk membantu penerjemahan algoritma kita juga harus memperhatikan jenis-
jenis proses yang biasanya kita temukan dalam algoritma. Dalam algoritma ada
empat jenis proses yang dikenal, yaitu :
1. Sequence Process, merupakan instruksi yang dikerjakan secara sekuensial
(berurutan).
2. Selection Process, adalah instruksi yang dikerjakan jika memenuhi suatu
kriteria atau kondisi (keadaan) tertentu.
3. Iteration Process, yaitu instruksi yang dikerjakan selama memenuhi suatu
kriteria atau kondisi (keadaan) tertentu.
4. Concurrent Process, beberapa instruksi dikerjakan secara bersama.
E. Langkah Kerja
1. Berdoa sebelum memulai praktikum
2. Persiapkan alat dan bahan
3. Catat penggunaan PC / Laptop pada kartu penggunaan PC / Laptop dengan lengkap
4. Nyalakan PC / Laptop
5. Pastikan PC / Laptop booting dengan baik hingga masuk ke sistem windows
6. Catat dan laporkan apabila ada kerusakan PC/ Laptop
7. Kerjakan tugas yang diberikan oleh tenaga pendidik dan buatlah laporannya lalu
kumpulkan
8. Apabila selesai pemakaian, matikan PC / Laptop dan rapihkan kembali posisi PC /
Laptop seperti semula
9. Berdoa setelah praktikum
10. Bersihkan ruangan dari sampah dan kotoran
G. Tugas Siswa
TUGAS :
1. Buatlah algoritma program dan flow chart dari permasalahan mengisi gelas dengan air
dari keran.
2. Buatlah algoritma untuk menghitung luas dan keliling lingkaran. Dengan masukan
berupa jari-jari.
3. Buatlah flowchart dari algoritma pada soal no 2 diatas.