Title: Algoritma dan Flowchart
1Algoritma dan Flowchart
- Ilmu Komunikasi
- Universitas Gunadarma
- Dr. Lily Wulandari
2Objectives
- Setelah menyelesaikan bab ini,
- anda diharapkan dapat
- Mengerti tentang algoritma.
- Membuat algoritma dari suatu permasalahan.
- Mengerti tentang flowchart.
- Membuat flowchart dari suatu
- permasalahan.
3 4Algoritma
- Adalah inti dari ilmu komputer.
- Algoritma adalah urutan langkah-langkah logis
penyelesaian masalah yang disusun secara
sistematis dan logis.
5Algoritma
- Kata logis merupakan kata kunci dalam algoritma.
- Algoritma adalah urutan-urutan dari instruksi
atau langkah-langkah untuk menyelesaikan suatu
masalah. - Urutan langkah logis, yang berarti algoritma
harus mengikuti suatu urutan tertentu, tidak
boleh melompat-lompat.
6Algoritma
- Alur pemikiran dalam menyelesaikan suatu
pekerjaan yang dituangkan secara tertulis. - ? Alur pikiran, sehingga algoritma
- seseorang dapat juga berbeda dari
- algoritma orang lain.
- ? Tertulis, yang artinya dapat berupa
- kalimat, gambar, atau tabel tertentu.
7Algoritma
- Langkah-langkah dalam algoritma harus dapat
ditentukan bernilai benar atau salah.
8Algoritma
- Algoritma adalah blueprint dari program.
- Sebaiknya disusun sebelum membuat program.
- Kriteria suatu algoritma
- Ada input dan output
- Efektif dan efisien
- Terstruktur
9Algoritma Dalam Kehidupan
- Algoritma adalah jantung ilmu komputer atau
informatika. Banyak cabang ilmu komputer yang
diacu dalam terminologi algoritma. - Algoritma juga digunakan dalam kehidupan
sehari-hari, contohnya resep makanan. Di dalam
resep makanan terdapat langkah-langkah yang
merupakan algoritma.
10Algoritma dalam Kehidupan
11Algoritma dalam Kehidupan
12Kriteria Algoritma
- Input algoritma dapat memiliki nol atau lebih
inputan dari luar. - Output algoritma harus memiliki minimal satu
buah output keluaran. - Definiteness(pasti) algoritma memiliki
instruksi-instruksi yang jelas dan tidak ambigu.
13Kriteria Algoritma
- Finiteness (ada batas) algoritma harus memiliki
titik berhenti (stopping role). - 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
14Jenis Proses Algoritma
- Sequence Process instruksi dikerjakan secara
sekuensial, berurutan. - Selection Process instruksi dikerjakan jika
memenuhi kriteria tertentu - Iteration Process instruksi dikerjakan selama
memenuhi suatu kondisi tertentu. - Concurrent Process beberapa instruksi dikerjakan
secara bersama.
15Sifat Algoritma (Umum)
- Tidak menggunakan simbol atau sintaks dari suatu
bahasa pemrograman - Tidak tergantung pada suatu bahasa pemrograman
- Notasi-notasinya dapat digunakan untuk seluruh
bahasa manapun
16Contoh Algoritma 1
- Mengirim surat kepada teman
- 1. Tulis surat pada secarik kertas surat.
- 2. Ambil sampul surat.
- 3. Masukkan surat ke dalam sampul.
- 4. Tutup sampul surat menggunakan perekat.
- 5. Jika kita ingat alamat teman tersebut, maka
- tulis alamat pada sampul surat.
- 6. Jika tidak ingat, lihat buku alamat, kemudian
- tulis alamat pada sampul surat.
- 7. Tempel perangko pada surat.
- 8. Bawa surat ke kantor pos untuk diposkan.
17Contoh Algoritma 2
- Mengupas Kentang untuk Makan Malam
- ? Ibu Tati mengambil kantong kentang dari rak
- ? Ibu Tati mengambil panci dari almari
- ? Ibu Tati mengupas kentang
- ? Ibu Tati mengembalikan kantong kentang dari rak
18Contoh Algoritma 2 (lanjt)
- Ada hal yang tergantungpada sesuatu
- Ibu Tati mengambil kantong kentang dari rak
- Ibu Tati mengambil panci dari almari
- Lakukan persiapan, gunakan celemek, pakaian
tergantung hari - ??Ibu Tati mengupas kentang
- ??Ibu Tati mengembalikan kantong kentang dari rak
19Kondisi dari Alg. 2
- Hari Sabtu
- ??Ibu Tati melihat bahwa bajunya tidak berwarna
muda karena itu ia tidak memakai celemek(berarti
tidak ada aksi memakai celemek) - Hari Minggu
- ??Ibu Tati melihat bahwa bajunya berwarna muda
karena itu ia memakai celemek
20Kondisi dari Alg. 2
- Jadi
- ? Ambil kantong kentang dari rak
- ? Ambil panci dari almari
- ? Depend on warna baju
- ? berwarna muda Pakai celemek
- ? tidak berwarna muda Tidak pakai celemek
- ? Kupas kentang
- ? Kembalikan kantong kentang ke rak
21Kondisi dari Alg. 2
- Karena dapat pesanan, maka kentang yg harus
dikupas 500 buah - ??tergantung pada jumlah kentang yang sudah
dikupas - ??belum cukup Kupas 1 kentang
- ??cukup selesai
- Atau
- ??while jumlah kentang terkupas belum cukup do
- ??Kupas 1 kentang
22Kondisi dari Alg. 2
- Bisa jadi pada saat mengupas kentang tergantung
pada kentangnya, jika rusak / busuk, buang, tidak
dikupas - Jadi
- ??Jika jumlah kentang terkupas belum cukup do
- ??Tergantung pada kondisi kentang
- ??Busuk buang dan cari kentang berikutnya,
tidak dihitung - ??Tidak Busuk kupas 1 kentang
23Contoh Algoritma 3
- Menentukan apakah suatu bilangan merupakan
- bilangan ganjil atau bilangan genap.
- Masukkan sebuah bilangan sembarang
- Bagi bilangan tersebut dengan bilangan 2
- Hitung sisa hasil bagi pada langkah 2.
- Bila sisa hasil bagi sama dengan 0 maka bilangan
itu adalah bilangan genap tetapi bila sisa hasil
bagi sama dengan 1 maka bilangan itu adalah
bilangan ganjil.
24Contoh 4
- Algoritma menghitung luas persegi panjang
- Masukkan panjang (P)
- Masukkan lebar (L)
- Luas ?P L
- Tulis Luas
25Pseudo Code
- Kode atau tanda yang menyerupai (pseudo) program
atau merupakan pejelasan cara menyelesaikan suatu
masalah. - Pseudo-code sering digunakan oleh manusia untuk
menuliskan algoritma
26Contoh
- Problemmencari bilangan terbesar dari dua
bilangan yang diinputkan - Contoh Algoritma
- Masukkan bilangan pertama
- Masukkan bilangan kedua
- Jika bilangan pertama gt bilangan kedua maka
kerjakan langkah 4, jika tidak, kerjakan langkah
5. - Tampilkan bilangan pertama
- Tampilkan bilangan kedua
27Contoh
- Contoh Pseudo-code
- Input a
- Input b
- If a gt b then kerjakan langkah 4
- print a
- print b
28Perbandingan
Algoritma Pseudo-code
Nilai A ditambah dengan 5 A ?A 5
Cetak nilai A bila lebih besar dari 10 IF A gt 10 THEN PRINT A
Dari dua bilangan A dan B, cari bilangan yang terbesar IF A gt B THEN PRINT A ELSE PRINT B
29Bagian Program
- Suatu program pada dasarnya terdiri dari 3
bagian - Input bisa ada, bisa tidak
- Proses
- Output minimal satu ouput.
30Langkah Pembuatan Program
- Mendefinisikan masalah
- Ini merupakan langkah pertama yang sering
dilupakan orang. - Menurut hukum Murphy (oleh Henry Ledgard)
- Semakin cepat menulis program, akan semakin
lama kita dapat menyelesaikannya. - Hal tersebut berlaku untuk permasalahan yang
kompleks. Tentukan masalahnya, apa saja yang
harus dipecahkan dengan menggunakan komputer, dan
apa inputan serta outputnya.
31Langkah Pembuatan Program
- Menemukan solusi
- Setelah masalah didefinisikan, maka langkah
berikutnya adalah menentukan solusi. Jika masalah
terlalu kompleks, maka ada baiknya masalah
tersebut dipecah menjadi modul-modul kecil agar
lebih mudah diselesaikan. - Contohnya masalah invers matriks, maka kita dapat
membagi menjadi beberapa modul - meminta masukkan berupa matriks bujur sangkar
- mencari invers matriks
- menampilkan hasil kepada pengguna
- Dengan penggunaan modul tersebut program utama
akan menjadi lebih singkat dan mudah dilihat.
32Langkah Pembuatan Program
- Memilih algoritma
- Pilihlah algoritma yang benar-benar sesuai dan
efisien untuk permasalahan tersebut - Menulis program
- Pilihlah bahasa yang mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah
dikuasai, memiliki tingkat kompatibilitas tinggi
dengan perangkat keras dan platform lainnya.
33Langkah Pembuatan Program
- Menguji program
- Setelah program jadi, silahkan uji program
tersebut dengan segala macam kemungkinan yang
ada, termasuk error-handlingnya sehingga program
tersebut akan benar-benar handal dan layak
digunakan. - Menulis dokumentasi
- Menulis dokumentasi sangat penting agar pada
suatu saat jika kita akan melakukan perubahan
atau membaca source code yang sudah kita tulis
dapat kita ingat-ingat lagi dan kita akan mudah
membacanya. Caranya adalah dengan menuliskan
komentar-komentar kecil tentang apa maksud kode
tersebut, untuk apa, variabel apa saja yang
digunakan, untuk apa, dan parameter-parameter
yang ada pada suatu prosedur dan fungsi.
34Langkah Pembuatan Program
- Merawat program
- Program yang sudah jadi perlu dirawat untuk
mencegah munculnya bug yang sebelumnya tidak
terdeteksi. Atau mungkin juga pengguna
membutuhkan fasilitas baru yang dulu tidak ada
35 36Flowchart
- Bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian suatu
masalah. - Merupakan cara penyajian dari suatu algoritma.
- Ada 2 macam Flowchart
- System Flowchart ? urutan proses dalam system
- dengan menunjukkan alat media input, output
serta - jenis media penyimpanan dalam proses
- pengolahan data.
- Program Flowchart ? urutan instruksi yang
- digambarkan dengan symbol tertentu untuk
- memecahkan masalah dalam suatu program.
37Flowchart
- Definisi
- Bentuk gambar/diagram yang mempunyai aliran satu
atau dua arah secara sekuensial - Kegunaan
- Untuk mendesain program
- Untuk merepresentasikan program
38Flowchart
- Maka, flowchart harus dapat merepresentasikan
komponen-komponen dalam bahasa pemrograman - Sebelum pembuatan program
- Mempermudah programmerdalam menentukan alur
logika program - Sesudah pembuatan program
- Menjelaskan alur program kepada orang lain
39Simbol-simbol Flowchart
- Flow Direction Symbols (Simbol penghubung alur)
- Processing Symbols (Simbol proses).
- Input-output Symbols (Simbol input-output)
40Flowchart
- Secara garis besar, unsur-unsur pemrograman
adalah Input ? Proses? Output. Semua bahasa
pemrograman, pasti mempunyai komponen-komponen
sebagai berikut - Input (scanf)
- Percabangan (if, switch)
- Perulangan (while, for, for each, loop)
- Output (printf)
41Simbol-simbol Flowchart
42Simbol-simbol Flowchart Cont.
43Simbol-simbol Flowchart Cont.
44Simbol-simbol Flowchart Cont.
45Simbol-simbol Flowchart Cont.
46Pembuatan Flowchart
- Tidak ada kaidah yang baku.
- Flowchart gambaran hasil analisa suatu masalah
- Flowchart dapat bervariasi antara satu pemrogram
dengan pemrogram lainnya. - Hindari pengulangan proses yang tidak
- perlu dan logika yang berbelit sehingga
- jalannya proses menjadi singkat.
- Jalannya proses digambarkan dari atas
- ke bawah dan diberikan tanda panah
- untuk memperjelas.
47Pembuatan Flowchart cont.
Selalu dimulai dengan BEGIN
Begin
Jangan lupa menggambar garis
End
48Pembuatan Flowchart cont.
Input / Output
Begin
Jangan lupa garis
Input/output
Mungkin anda ingin berkomunikasi dengan pemakai
49Pembuatan Flowchart cont.
Proses
Begin
Input
Anda dpt melakukan perhitungan di dlm proses
Proses
50Pembuatan Flowchart cont.
Begin
Input
Anda dapat menampilkan hasil di output
Proses
Output
End
51Contoh Flowchart
- Problem
- Menghitung luaspersegi panjang
- Algoritma
- Masukkanpanjang(p)2.Masukkanlebar(l)3.Hitungluas(
L), yaitupanjangkali lebar4.Cetakluas(L
52Flowchart bilangan ganjil 1 -100
53Contoh Flowchart
54(No Transcript)
55(No Transcript)
56(No Transcript)
57Exercise
- Bagaimana algoritma untuk menukar isi dari dua
gelas? - Menghitung usia berdasarkan tahun (saja) lahir
dan tahun (saja) sekarang - ??Input Tahun lahir (tl), Tahun sekarang (ts)
- ??Proses Umur ts tl
- ??Output Cetak Umur
58Exercise
- Buatlah flowchart untuk menampilkan deret
bilangan berikut - 1, 1, 2, 3, 5, 8, 13
- Buatlah flowchart untuk menghitung konversi suhu
dari fahrenheit ke celcius dan reamur dengan
nilai fahrenheit diinput.