Combinepdf
Combinepdf
ALGORITMA &
PEMROGRAMAN
POKOK BAHASAN
1. Pendahuluan
2. Tahapan Pembangunan Program
3. Pengenalan Algoritma
4. Cara Menyajikan Algoritma
5. Data Program
6. Elemen-Elemen Program
PENDAHULUAN
Perancangan program merupakan pengembangan
solusi terhadap identifikasi masalah dan menghasilkan
serangkaian instruksi yang membangun sebuah program
komputer untuk menghasilkan output.
BAHASA
PEMROGRAMAN
Kompilasi
KOMPUTER
TAHAPAN PEMBANGUNAN
PROGRAM
POKOK BAHASAN
1. Definisi Masalah
2. Outline Solusi
3. Pengembangan outline ke dalam
algoritma
4. Melakukan test terhadap algoritma
5. Pemeriksaan Algoritma
6. Memindahkan Algoritma Ke Dalam
Bahasa Pemrograman
DEFINISI MASALAH
Pada tahap ini memerlukan pemahaman
terhadap permasalah dengan membaca
berulang kali sampai dengan mengerti apa yang
dibutuhkan.
3
CONTOH KASUS
Sebuah toko peralatan mandi menjual bak mandi
plastik. Banyak customer yang bertanya volume air
yang dapat ditampung pada bak mandi tersebut. Oleh
karena itu dibutuhkan program untuk menghitung
volume air bak mandi sesuai dengan ukuran yang
diinput.
Definisi Masalah :
Input : panjang, lebar dan tinggi
Output : volume bak mandi
Proses : volume bak mandi = panjang x lebar x tinggi
OUTLINE SOLUSI
Setelah permasalahan didefinisikan,
permasalahan dapat di bagi ke dalam
tugas-tugas atau langkah langkah yang lebih
kecil dan menghasilkan outline solusi
7
PENGEMBANGAN OUTLINE KE DALAM
ALGORITMA (lanjutan)
Program Hitung_Volume_Bak
{menghitung volume bak mandi apabila input data tersebut
diberikan}
Deklarasi
float p, l, t, volume_bak
Deskripsi
Baca p
Baca l
Baca t
Hitung volume_bak = p x l x t
Cetak volume_bak
End
MELAKUKAN TEST TERHADAP
ALGORITMA
Tujuan utama dari melakukan test terhadap
algoritma adalah adalah untuk menemukan
kesalahan utama logik sejak awal, sehingga
akan lebih mudah diperbaiki.
9
DESK CHECKS VS TEST PLANS
Test Plan fokus pada nilai input dan output yang
dibutuhkan untuk menguji program tanpa
memperdulikan kinerja internal. Contoh : Apa
output yang benar dari sebuah input ?
Test Plan
− Input Data − Output
14
MEMINDAHKAN ALGORITMA KE DALAM
BAHASA PEMROGRAMAN (lanjutan)
//Program Volume Bak
include<stdio.h>
include<conio.h>
include<iostream.h>
Main() {
float p, l, t, volume_bak;
printf(”panjang :”);scanf (”%f”,p);
printf(”lebar :”);scanf (”%f”,l);
printf(”tinggi :”);scanf (”%f”,t);
Volume_bak = p* l * t;
Printf(”volume bak : %5.2f”,volume_bak); }
15
MENJALANKAN PROGRAM PADA
KOMPUTER
Setelah pengcodingan, maka program dapat
dijalankan pada komputer. Jika program sudah
didesain dengan baik, maka akan mengurangi
tingkat kesalahan dalam melakukan testing
program.
16
DOKUMENTASI DAN PEMELIHARAAN
PROGRAM
Dokumentasi melibatkan eksternal dokumentasi
(hierarchy chart, algoritma solusi, dan hasil data
test) dan internal dokumentasi (coding
program).
17
DISKUSI
1. Mengapa dibutuhkan tahapan dalam
perancangan program ?
18
LATIHAN 1
Sebuah sebidang tanah dengan ukuran 22 m x 15
m dibangun sebidang rumah dengan ukuran 8 m x
10 m. Sisa tanah yang tidak dibangun rumah
ditumbuhi rumput. Pemilik rumah berencana
memanggil tukang potong rumput untuk merapikan
rumput di halaman rumahnya. Tarif per jam tukang
rumput sebesar 100 ribu/jam. Berapa tarif yang
harus dibayar memotong rumput halaman rumah,
dengan rata-rata 2 m2 / menit.
19
LATIHAN 2
Seorang kontraktor sedang membangun sebuah
rumah dengan ukuran 8 m x 12 m. Rumah
tersebut akan dipasangkan ubin dengan ukuran 30
x 30. Setiap kardus memiliki ukuran 1 m2. Berapa
kardus ubin yang harus dibeli ? Buatlah
pseudocode & flowchart serta program hitung
kebutuhan ubin.
TUGAS 2
Buatlah pseudocode, flowchart dan program untuk :
1. Menentukan apakah suatu bilangan merupakan
bilangan prima atau bukan ?
2. Program untuk menentukan apakah tahun yang
diinputkan termasuk tahun kabisat/bukan.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 4. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 2 (tidak ada sistem susulan).
PERTEMUAN 4
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PEMILIHAN
POKOK BAHASAN
3
STRUKTUR KONTROL
PEMILIHAN (lanjutan)
Kondisi berdasarkan perbandingan 2 item yang
dinyatakan dengan salah satu operator relasi
berikut :
< lebih kecil dari
> lebih besar dari
= sama dengan
<= lebih kecil sama dengan
>= lebih besar sama dengan
<> tidak sama dengan
4
STRUKTUR KONTROL PEMILIHAN
(lanjutan)
Ada beberapa variasi dari struktur kontrol
selection yaitu:
1. Simple Selection
2. Combined / Multiple Selection
3. Nested Selection
a. Linear Nested IF Statement
b. Non-Linear IF Statement
4. Perintah Case
1. SIMPLE SELECTION
Simple selection terjadi jika harus memilih
diantara dua alternatif yang ada, tergantung dari
hasil kondisi apakah True atau false.
Test Plan
− Input Data
Data 1 Data 2
Gaji 900,000 3,500,000
− Output Data
Data 1 Data 2
Keterangan Tidak Kena Pajak Kena Pajak
TABEL DESK CHECK
Data 1 Data 2
Gaji 900,000 3,500,000
Cetak keterangan Tidak Kena Pajak Kena Pajak
2. COMBINED SELECTION
Combined Selection terjadi jika kondisi yang harus
diperiksa lebih dari satu. Kondisi tersebut dapat
dihubungkan dengan menggunakan AND atau OR.
Format Struktur Combined Selection
IF syarat1 operator logika syarat2 THEN
instruksi1
Else
instruksi2
ENDIF
Contoh :
IF ormik AND semot THEN
ket = ”LULUS”
ELSE
ket = ”GAGAL”
ENDIF
3. Nested Selection
Nested selection terjadi, jika di dalam IF terdapat
statement IF yang lain.
23
TUGAS 3
Buatlah program berikut sesuai dengan tahapan pembangunan
program :
1. Pseudocode untuk menghitung akar-akar persamaan kuadrat f(x) =
Ax2+Bx+C. Syarat A ≠ 0
D>0 punya dua akar real yang berbeda
D=0 akar kembar
D<0 akar kompleks
2. Program untuk menghitung ekivalensi bilangan dalam detik
menjadi berapa hari, jam berapa menit dan berapa detik.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan
bolpoint.
Tugas dikumpulkan pada saat pertemuan 5. Bagi mahasiswa yang
tidak mengumpulkan tugas maka tidak mendapat nilai tugas 3 (tidak
ada sistem susulan).
24
1
PERTEMUAN 5
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PENGULANGAN
POKOK BAHASAN
1. Definisi Struktur Kontrol Pengulangan
2
STRUKTUR KONTROL
PENGULANGAN
Struktur kontrol pengulangan digunakan untuk
melaksanakan sederetan instruksi berulang-ulang
sesuai dengan persyaratan yang ditetapkan.
Ada tiga cara penempatan keputusan pengulangan
:
1. Pada awal pengulangan (Leading decision loop)
2. Pada akhir pengulangan (trailing the decision
loop)
3. Menjumlahkan angka pada suatu
waktu(counted loop)
1. Leading Decision Loop
Kondisi diuji sebelum beberapa instruksi dieksekusi.
Perintah leading decision loop adalah struktur Do
WHILE.
Format Struktur Kontrol pengulangan DO WHILE
DO WHILE kondisi k bernilai true
instruksi_1
instruksi_2
……………
instruksi_n
counter
ENDDO
1. Leading Decision Loop
(lanjutan)
Contoh Kasus :
Sebuah hotel membuat penomoran kamar
yang dikelompokkan berdasarkan bilangan
genap. Jumlah kamar yang tersedia adalah
5 kamar. Berikan bilangan genap sesuai
dengan banyaknya kamar
1. Leading Decision Loop
(lanjutan)
Definisi Masalah
Input : jumlah kamar
Output : 5 deret bilangan genap
Proses : Jika I <= jumlah kamar lakukan pengulangan berikut
a = a+ 2
cetak a
Outline Solusi
Input Proses Output
Baca n DO WHILE i <= n Cetak a
a= a+ 2
i=i+1
Cetak a
Enddo
1. Leading Decision Loop
(lanjutan)
Program Bilangan_Genap
{Menghasilkan bilangan genap sesuai dengan data yang diinput}
Deklarasi
integer a= 0
integer i=1
integer n
Deskripsi
Baca n
DOWHILE i<=n
a= a+ 2
i=i+1
Cetak a
ENDDO
END
1. Leading Decision Loop
(lanjutan)
Desk Checking
Data Masukan
Data
n 5
Definisi Masalah
Input : jumlah bilangan
Output : 5 deret bilangan akar kuadrat
Proses : Jika i <= jumlah bilangan lakukan
pengulangan berikut
cetak a
a = sqr(a)
3. Counted Loop
Outline Solusi
Input Proses Output
Desk Checking
Data Masukan
Data
n 5
1 =1
1*3 =3
1*3*5 = 15
1*3*5*7 = 105
1*3*5*7*9 = 945
LATIHAN 6
• 10 + 8 + 6 + 4 + 2 = 30
10 + 8 + 6 + 4 = 28
10 + 8 + 6 = 24
10 + 8 = 18
10 = 10
---------- +
110
TUGAS 4
Buatlah pseudocode, flowchart dan program untuk membuat
tampilan berikut :
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan
bolpoint.
Tugas dikumpulkan pada saat pertemuan 6. Bagi mahasiswa yang
tidak mengumpulkan tugas maka tidak mendapat nilai tugas 4
(tidak ada sistem susulan).
PERTEMUAN 6
MODULARISASI &
KOMUNIKASI ANTAR
MODUL
POKOK BAHASAN
2
MODULARISASI
Modularisasi digunakan bila ada suatu
permasalahan yang kompleks, sehingga
langkah pertama adalah mengidentifikasikan
tugas utama, setelah itu baru di bagi kedalam
tugas yang lebih rinci.
Proses ini disebut juga dengan Top Down
Design
PEMROGRAMAN MODULAR
Memecahkan algoritma ke dalam algoritma yang lebih
kecil/modul.
Modul yang dibentuk mempunyai kesatuan tugas/fungsi
maupun kesatuan proses/prosedur.
Setiap modul harus mempunyai single entry dan single
exit secara beruntun dari atas ke bawah atau dari awal
ke akhir modul.
Memiliki main program dan sub program atau modul
PEMROGRAMAN MODULAR
(lanjutan)
Enam langkah dalam modular:
1. Definisi masalah: klasifikasikan dalam input, proses
dan output
2. Kelompokkan aktivitas ke dalam modul. Definisikan
kegiatan dari modul-modul yang ada
3. Buat bagan susun untuk menjelaskan hirarki dan
hubungan antar modul
4. Buat logika dari main program dengan pseudocode.
Terlebih dahulu inventarisasi apa saja yang dikerjakan
dalam main program
5. Buat logika untuk tiap tiap modul dengan pseudocode
6. Desk checking algoritma: mencek kebenaran algoritma
dengan data
JANGKAUAN DATA
Global Data adalah variabel yang dikenal
diseluruh program tersebut, dan dapat diakses
dari setiap modul di program tersebut.
Local Data adalah variabel yang didefinisikan
disebuah modul. Variabel ini hanya dikenal di
modul dimana variabel tersebut didefinisikan.
SIDE EFFECT
Side effect adalah sebuah bentuk komunikasi
antar modul dengan bagian lain dalam program.
Global Data (Data Global)
Perubahan nilai global data berdampak
terhadap nilai data tersebut di semua modul.
Local Data (Data Lokal)
Perubahan nilai local data hanya berdampak
terhadap nilai data pada modul secara lokal.
CONTOH PEMROGRAMAN
MODULAR
Program Hitung_luasPP Sub luaspp(integer pj,
{menentukan luas persegi integer lb)
panjang berdasarkan data integer luas {local data}
yang diinput} luas = pj * lb
Deklarasi Cetak luas
integer p, l {global data} EndSub
Deskripsi
Baca p
Baca L
Hitung luaspp(p,l)
END
PARAMETER
Parameter Data
Parameter Status flag/boolean
Dalam merancang modul sebaiknya lebih
banyak menggunakan parameter data
Hindari menggunakan parameter status
sebanyak mungkin
PARAMETER PASSING
Menyampaikan data dari modul pemanggil ke modul
yang dipanggil (subordinate).
Menyampaikan informasi dari subordinate ke modul
pemanggil.
Informasi/data yang dikirim atau diterima di passing 2
arah dari modul pemanggil ke subordinate maupun
sebaliknya.
KOMUNIKASI ANTAR MODUL
Parameter Aktual
Parameter yang disertakan pada saat prosedur
dipanggil untuk dilaksanakan.
Contoh : tukar (a,b); //a dan b adalah parameter
aktual
Parameter Formal
Parameter yang dituliskan pada definisi suatu
prosedur atau fungsi.
Contoh : Prosedur tukar(x, y);
KOMUNIKASI ANTAR MODUL (lanjutan)
HASIL MODULARISASI
SUB SORTING_DATA SUB INPUT_DATA
FOR I = 1 TO N FOR I = 1 TO N
BACA DATA[I]
FOR J = N TO J>=I STEP -1
END FOR
IF DATA[J] < DATA[J-1] THEN
ENDSUB
TUKAR_DATA(J,J-1)
ENDIF SUB CETAK_DATA
END FOR FOR I = 1 TO N
END FOR BACA DATA[I]
ENDSUB END FOR
ENDSUB
Keterangan:
Makin baik kopling, makin rendah
ketergantungan suatu modul terhadap modul
lain
Modul dengan kopling yang baik adalah modul
independence
KOPLING DATA
• Komunikasi diantara modul menggunakan
data. Diinginkan jumlah data minimal
• Parameter data yang disalurkan semakin
sedikit semakin baik
CONTOH KOPLING DATA
A. Process_record_pelanggan
…
…
hitung_pajak_penjualan (total_harga, pajak_penjualan)
…
…
END
B. Hitung_pajak_penjualan (long total, pajak)
IF total> 5000 THEN
pajak = total * 0.25
Else If total > 4000 THEN
pajak = total * 0.2
Else
pajak = total * 0.15
ENDIF
END
KOPLING STAMP
Dua modul melakukan pass struktur data non
global yang sama
Struktur data: record, array
Timbul bahaya bila modul memeriksa struktur
data tetapi hanya menggunakan sebagian
• current_record hanya berupa penunjuk nomor record sekarang
KOPLING KONTROL
• Dua modul melakukan passing parameter
menggunakan data kontrol (flag/switch)
• input_code berfungsi sebagai switch (berupa switch)
KOPLING EXTERNAL
Dua modul atau lebih menggunakan data global
yang sama
Tidak ada parameter yang digunakan dari modul
pemanggil ke subordinate dan sebaliknya
Modul A Modul B
• pajak_pen adalah variabel data global
KOPLING COMMON
Dua modul atau lebih menggunakan struktur
data global yang sama
Struktur data global
Modul A Modul B
• record_pelanggan adalah struktur data global
LATIHAN 5
Buatlah pseudocode, plowchart dan program
untuk menampilkan menu untuk menghitung
luas bangun ruang seperti : persegi panjang,
segitiga dan bujur sangkar
TUGAS 5
Buatlah program lengkap dengan pseudocode dan
flowchart untuk menampilkan
Bilangan fibonancii
Bilangan faktorial
Angka bilangan bulat dalam bentuk kalimat, contoh :
32,768 ditampilkan Tiga Puluh Dua Ribu Tujuh Ratus
Enam Puluh Delapan Rupiah.
TUGAS 5 (lanjutan)
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 9. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 5 (tidak ada sistem susulan).
PERTEMUAN 7
REVIEW/QUIZ
PERTEMUAN 9
ALGORITMA UNTUK
MASALAH BISNIS
POKOK BAHASAN
1. Struktur Program
2. Struktur Chart
3. Membuat Laporan Dengan Page Break
4. Contoh Algoritma Penyelesaian
STRUKTUR PROGRAM
Secara umum program yang dilakukan untuk memproses
data yang dibaca dari file dapat digambarkan sbb:
Sub Proses_record
Proses_inisialisasi
Baca record pertama
Do while not EOF
process_record_ini
Baca next record
ENDDO
Proses_final
END
STRUKTUR CHART
Algoritma di atas digambarkan dengan struktur chart
berikut:
• Tiga modul di atas dapat berisi statement yang
dibutuhkan untuk memproses data yang dibaca dari file
• Main program dari struktur chart sudah ada sehingga
dapat dikembangkan proses dari ketiga modul tersebut
MEMBUAT LAPORAN DENGAN PAGE
BREAK
Suatu laporan membutuhkan:
– Judul
– Baris judul
– Kolom judul
– Detail
– Total
Di samping itu suatu halaman laporan hanya
menampung beberapa baris record, sehingga harus
mengatur pemindahan ke halaman baru
Untuk itu dibutuhkan sebuah control break untuk
memeriksa kapan harus pindah ke halaman baru (page
break)
MEMBUAT LAPORAN DENGAN PAGE
BREAK (lanjutan)
1. Single-Level Control Break
2. Multiple-Level Control Break
CONTOH LAPORAN MULTI-LEVEL
BREAK
1. SINGLE-LEVEL BREAK
Single-Level Control Break adalah pemberhentian dalam
logika program (berhenti atau mengulang untuk
mencetak judul baru) berdasarkan nilai sebuah variabel.
Contoh : no departemen.
HIERARCHY CHART SINGLE-LEVEL BREAK
Produce_
Single_level
control_break
Proceduce_
multiple_level
control_break