• Tidak ada hasil yang ditemukan

PERTEMUAN 5 PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL PENGULANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERTEMUAN 5 PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL PENGULANGAN"

Copied!
182
0
0

Teks penuh

(1)

PERTEMUAN 5

PENGEMBANGAN

PSEUDOCODE STRUKTUR

KONTROL PENGULANGAN

(2)

POKOK BAHASAN

1. Definisi Struktur Kontrol Pengulangan 2. Jenis Struktur Kontrol Pengulangan

3. Pseudocode Struktur Kontrol Pengulangan 4. Desk Checking Struktur Kontrol Pengulangan 5. Algoritma Dengan Struktur Kontrol

Pengulangan

(3)

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

(4)

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

(5)

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)

(6)

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

1. Leading Decision Loop

(lanjutan)

Input Proses Output

Baca n DO WHILE i <= n a= a+ 2 i = i + 1 Cetak a Enddo Cetak a

(7)

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

(8)

Desk Checking Data Masukan

Hasil yang diharapkan 2 4 6 8 10

1. Leading Decision Loop

(lanjutan)

Data

(9)

Tabel Desk Checking

1. Leading Decision Loop

(lanjutan)

i n i<=n a=a+2 i=i+1 Cetak a

1 5 Y 2 2 2 2 5 Y 4 3 4 3 5 Y 6 4 6 4 5 Y 8 5 8 5 5 Y 10 6 10 6 5 N - - -

(10)

2.

Trailing Decision Loop

Beberapa instruksi dieksekusi sekali sebelum kondisi diuji. Jika kondisi False, instruksi akan diulang sampai kondisi bernilai TRUE.

Perintah trailing decision loop adalah struktur REPEAT …. UNTIL.

Format Struktur Kontrol pengulangan REPEAT….UNTIL REPEAT instruksi_1 instruksi_2 ……. instruksi_n counter

(11)

Contoh Kasus :

Sebuah Bank membuat nomor antrian

berdasarkan bilangan ganjil. Jumlah antrian

maksimal 5. Berikan bilangan ganjil sesuai

jumlah antrian

(12)

Definisi Masalah

Input : jumlah antrian

Output : 5 deret bilangan ganjil

Proses : Jika i <= jumlah antrian lakukan pengulangan berikut cetak a

a = a+ 2 Outline Solusi

Input Proses Output

Baca n REPEAT Cetak a a= a+ 2 i = i + 1 UNTIL i>n Cetak a

(13)

Program Bilangan_Ganjil

{Menghasilkan bilangan ganjil sesuai dengan data yang diinput}

Deklarasi integer a= 1 integer i=1 integer n Deskripsi Baca n REPEAT Cetak a a= a+ 2 i=i+1 Until i<=n ENDDO END

(14)

Desk Checking Data Masukan

Hasil yang diharapkan 1 3 5 7 9

Data

n 5

(15)

Tabel Desk Checking

i n Cetak a a=a+2 i=i+1 i>n

1 5 1 3 2 N 2 5 3 5 3 N 3 5 5 7 4 N 4 5 7 9 5 N 5 5 9 11 6 N 6 5 - - - Y

(16)

3. Counted Loop

Pencacah pengulangan digunakan jika jumlah iterasi pengulangan sudah diketahui. Pelaksanaan loop dikendalikan oleh indeks pengulangan.

Perintah counted loop adalah struktur FOR Format Struktur Kontrol pengulangan FOR

FOR loop_index=nilai_awal to nilai_akhir Step n statement_1

statement_2

………

statement_n ENDFOR

(17)

Contoh Kasus :

Buatlah sebuah deret bilangan sebanyak 5 yang menampilkan angka 1, 4, 9, 14, 25

Definisi Masalah

Input : jumlah bilangan

Output : 5 deret bilangan akar kuadrat

Proses : Jika i <= jumlah bilangan lakukan pengulangan berikut

cetak a a = sqr(a)

(18)

Outline Solusi

Input Proses Output

Baca n For i = 1 to n Cetak a a= sqr(a) EndFor Cetak a

3. Counted Loop

(19)

Program Bilangan_Kuadrat

{Menghasilkan bilangan kuadrat sesuai dengan data yang diinput}

Deklarasi integer a integer i integer n Deskripsi Baca n For i = 1 to n Cetak a a= sqr(i) EndFor END

3. Counted Loop

(20)

Desk Checking Data Masukan

Hasil yang diharapkan 1 4 9 16 25

Data

n 5

(21)

Tabel Desk Checking

i n i<=n a=sqr(i) Cetak a i=i+1

1 5 Y 2 2 2 2 5 Y 4 4 3 3 5 Y 6 6 4 4 5 Y 8 8 5 5 5 Y 10 10 6 6 5 N - - -

3. Counted Loop

(22)

NESTED REPETION

Nested Repetion terjadi, jika di dalam pengulangan terdapat statement pengulangan yang lain.

Format Nested DO WHILE

DO WHILE kondisi k1 bernilai true

DO WHILE kondis k2 bernilai true statement_1 statement_2 ……… statement_n2 ENDDO statement_n1 ENDDO

(23)

CONTOH NESTED REPETION

Buatlah pseudocode untuk menampilkan output seperti berikut : 1 1 1

2 2 2 3 3 3

Jawaban :

Definisi Masalah

Input : jumlah baris dan jumlah kolom

Output : menampilkan angka sesuai baris dan kolom Proses : DO WHILE b <= 3 DO WHILE k <= 3 cetak k k=k+ 1 Enddo cetak b=b+1 Enddo

(24)

Outline Solusi

Input Proses Output

Baca b, k DO WHILE b <= 3 DO WHILE k <= 3 cetak k k=k+ 1 Enddo Cetak b=b+1 Enddo Cetak k

CONTOH NESTED REPETITION

(lanjutan)

(25)

Tabel Desk Checking b k b<=3 k<=3 Cetak b K=k+1 B=b+1 1 1 Y Y 1 2 2 Y 1 3 3 Y 1 4 N - - 2 2 1 Y Y 2 2 Y 2 3 Y 2 4 N - - 3

CONTOH NESTED REPETION (lanjutan)

(26)

LATIHAN 6

1 = 1 1 + 2 = 3 1 + 2 + 3 = 6 1 + 2 + 3 + 4 = 10 1 + 2 + 3 + 4 + 5 = 15 1 = 1 1 * 3 = 3 1 * 3 * 5 = 15 1 * 3 * 5 * 7 = 105 1 * 3 * 5 * 7 * 9 = 945

(27)

LATIHAN 6

• 10 + 8 + 6 + 4 + 2 = 30 10 + 8 + 6 + 4 = 28 10 + 8 + 6 = 24 10 + 8 = 18 10 = 10 --- + 110

(28)

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).

(29)

PERTEMUAN 6

MODULARISASI &

KOMUNIKASI ANTAR

(30)

1. Konsep Pemrograman Modular

2. Komunikasi antar modul

3. Kohesi

4. Kopling

2

(31)

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

(32)

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.

(33)

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

(34)

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.

(35)

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.

(36)

CONTOH PEMROGRAMAN

MODULAR

Program Hitung_luasPP {menentukan luas persegi panjang berdasarkan data yang diinput}

Deklarasi

integer p, l {global data} Deskripsi Baca p Baca L Hitung luaspp(p,l) END Sub luaspp(integer pj, integer lb)

integer luas {local data} luas = pj * lb

Cetak luas EndSub

(37)

PARAMETER

Parameter Data

Parameter Status flag/boolean

Dalam merancang modul sebaiknya lebih

banyak menggunakan parameter data

Hindari menggunakan parameter status

sebanyak mungkin

(38)

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.

(39)

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.

(40)

KOMUNIKASI ANTAR MODUL (lanjutan)

Pemanggilan Dengan Nilai (Call By Value)

pemanggilan dengan nilai, nilai dari parameter aktual akan ditulis ke parameter formal. Dengan cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai parameter formal berubah.

Pemanggilan Dengan Acuan

Pemanggilan dengan reference merupakan upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu variabel diluar fungsi dengan melaksanakan pengubahan dilakukan didalam fungsi.

(41)

CONTOH KASUS MODULARISASI

Susunlah algoritma untuk mengurutkan

beberapa bilangan dengan urutan menaik

(ascending) dan tampilkan bilangan hasil

sort tersebut

(42)

CONTOH KASUS MODULARISASI

(lanjutan)

Input Proses Output

byk_data baca data_1, data_2, ...data_n data_1 data_1 sort data bilangan tersebut data_2 data_2 cetak hasil sort data_n data_n

A. Definisi Masalah

Input : banyaknya data, bilangan yang akan diurutkan

Output : Bilangan yang terurut

Proses : baca data_1, data_2…data_n sort data bilangan tersebut A. Outline Solusi

(43)
(44)

SUB SORTING_DATA

FOR I = 1 TO N

FOR J = N TO J>=I STEP -1

IF DATA[J] < DATA[J-1] THEN TUKAR_DATA(J,J-1) ENDIF

END FOR END FOR ENDSUB

SUB TUKAR_DATA(int a, int b)

INT TEMP TEMP = DATA[B]; DATA[B] = DATA[A]; DATA[A] = TEMP ENDSUB SUB INPUT_DATA FOR I = 1 TO N BACA DATA[I] END FOR ENDSUB SUB CETAK_DATA FOR I = 1 TO N BACA DATA[I] END FOR ENDSUB PROGRAM SORTING MAIN_SORTING INT N, J, DATA[10] BACA N INPUT_DATA SORTING_DATA CETAK_DATA END 16 HASIL MODULARISASI

(45)

KOHESI & KOPLING

Cohesion dan Coupling merupakan konsep

dasar dalam perancangan dan rekayasa perangkat lunak.

Membagi software/perangkat lunak menjadi modul-modul yang kecil bukan sekedar memisahkan kumpulan kode dari kumpulan kode lainnya. Tetapi memastikan bahwa modul yang dirancang menganut prinsip "Loose

(46)

KOHESI

Kohesi adalah keeratan hubungan elemen-elemen di dalam suatu modul.

Macam-macam Kohesi – Functional baik/kuat – Sequential – Communicational – Procedural – Temporal – Logical – Coincidental Jelek/lemah

(47)

KOHESI (lanjutan)

Perubahan pada modul dengan tingkat kohesi

tinggi tidak terlalu membawa dampak perubahan terhadap modul lain. Sehingga lebih mudah

dalam pemrograman, pengujian dan perawatan

Modul dengan tingkat kohesi tinggi, lebih mudah

dipahami dan didokumentasi

Pada modul dengan tingkat kohesi tinggi,

informasi lebih mudah disembunyikan, karena

(48)

KOHESI FUNCTIONAL

Mempunyai satu tugas

Menghasilkan satu hasil/satu parameter output Bisa satu atau lebih parameter input

(49)

KOHESI SEQUENTIAL

Mempunyai pekerjaan yang beruntun Kegiatan yang dilakukan lebih dari satu

Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya

(50)

KOHESI KOMUNIKASIONAL

Kegiatan lebih dari satu

Menggunakan data yang sama Dapat dijadikan Functional

Contoh: Sub Proses_perhitungan C = A + B D = A – 1 E = A * B F = A / B G = A mod B EndSub

(51)

KOHESI PROCEDURAL

Satu kegiatan dengan kegiatan lain tidak berhubungan Hubungan antara elemen yang satu dengan yang lainnya karena urutan statement

Dapat dipecahkan menjadi Functional Contoh:

Sub Baca_record_mhs_dan_total_usia_mhs set no_record to 0

set total_usia to 0 baca record_mhs DO WHILE not EOF

total_usia = usia + total_usia no_record = no_record + 1 ENDDO

print no_record, total_usia EndSub

(52)

KOHESI TEMPORAL

Elemen-elemen terlibat dalam berbagai kegiatan yang mempunyai hubungan dalam waktu

Urutan tidak penting Contoh:

Sub Initialisasi

buka file transaksi total_transaksi = 0 total_pen = 0 baris = 30 no = 0 hal = 0 EndSub

(53)

KOHESI LOGICAL

ELemen-elemen melakukan kegiatan dengan kategori yang sama Parameter masukan menentukan kegiatan yang dilaksanakan

Tidak semua kegiatan dikerjakan Contoh:

Read_all_files(file_code) CASE if file_code

1 : read customer_transaction record IF not EOF THEN

increment cust_trans_count 2 : read customer_master record IF not EOF THEN

increment cust_master_count 3 : read product_master record

IF not EOF THEN

increment product_master_count ENDIF

ENDCASE END

(54)

KOHESI KOINSIDENTAL

• Elemen-elemen tidak mempunyai hubungan • Contoh:

Sub File_Processing

Open employee updates file read employee record

print_page heading

open employee master file set page_count to one

set error_flag to false EndSub

(55)

KOPLING

Kopling adalah keeratan hubungan antar modul. Tingkat saling ketergantungan di antara dua modul.

Faktor yang mempengaruhi kopling: 1. Jumlah data yang disalurkan

2. Jumlah kontrol data yang disalurkan

3. Jumlah elemen data global yang digunakan bersama-sama oleh beberapa modul

(56)

JENIS-JENIS KOPLING

Data baik/lemah Stamp Kontrol External Common jelek/kuat Keterangan:

Makin baik kopling, makin rendah ketergantungan suatu modul terhadap modul lain

Modul dengan kopling yang baik adalah modul independence

(57)

KOPLING DATA

• Komunikasi diantara modul menggunakan

data. Diinginkan jumlah data minimal

• Parameter data yang disalurkan semakin

sedikit semakin baik

(58)

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

(59)

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

(60)
(61)

KOPLING KONTROL

• Dua modul melakukan passing parameter menggunakan data kontrol (flag/switch)

(62)
(63)

KOPLING EXTERNAL

Dua modul atau lebih menggunakan data global yang sama

Tidak ada parameter yang digunakan dari modul pemanggil ke subordinate dan sebaliknya

Global Data Elementer Variabel

(64)
(65)

KOPLING COMMON

Dua modul atau lebih menggunakan struktur data global yang sama

Struktur data global

(66)
(67)

LATIHAN 5

Buatlah pseudocode, plowchart dan program untuk menampilkan menu untuk menghitung luas bangun ruang seperti : persegi panjang, segitiga dan bujur sangkar

(68)

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.

(69)

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).

(70)

PERTEMUAN 1

KONSEP PERANCANGAN

PROGRAM

(71)

POKOK BAHASAN

1. Pendahuluan

2. Permasalahan Terkait Perangkat Lunak

(Program)

3. Program dan Faktor Kualitas Program

4. Software Development Life Cycle

5. Fakta Dalam Pembangunan Program

6. Metodologi Perancangan Program

7. Teknik Pemrograman

8. Paradigma Bahasa Pemrograman

9. Kriteria Bahasa Pemrograman

(72)

PENDAHULUAN

Kebutuhan informasi menjadi unsur utama dalam bisnis sehingga mendorong pertumbuhan industri software.

Nilai industri software di Indonesia sampai akhir tahun 2013 antara Rp 3.5 –5 Trilyun dengan nilai pertumbuhan 18-20% per tahun (Pratama, 2013).

Produk perangkat lunak dikembangkan (developed) atau direkayasa (engineered) sesuai dengan kebutuhan pemakai akhir (end user).

(73)

PERMASALAHAN TERKAIT

(74)

APA PROGRAM ?

Kumpulan instruksi / perintah yang

dirangkaian sehingga membentuk

suatu proses untuk mengolah data.

(75)

FAKTOR KUALITAS PROGRAM

1. Correctness : besarnya program dapat memuaskan spesifikasi dan objektivitas dari misi pelanggan.

2. Reliability : besarnya program dapat diharapkan memenuhi fungsi-fungsi yang dikehendaki.

3. Efficiency : jumlah sumber-sumber dan kode yang dibutuhkan program untuk menjalankan fungsi-fungsinya.

4. Integrity : besarnya pengontrolan pengaksesan oleh seorang yang tidak mempunyai otorisasi terhadap program dan data.

5. Usability : usaha yang dibutuhkan untuk mempelajari, mengoperasikan, menyiapkan input & menginterpretasikan output program .

(76)

FAKTOR KUALITAS PROGRAM

(lanjutan)

6. Maintability : usaha yang dibutuhkan untuk menempatkan & menetapkan kesalahan pada program. 7. Flexibility : usaha yang dibutuhkan untuk memodifikasi

program yang dibutuhkan.

8. Testability : usaha yang dibutuhkan untuk menguji program untuk menjamin program sesuai yang diharapkan.

9. Portability : usaha yang dibutuhkan untuk mnetransfer program dari lingkungan ke lingkungan lain.

10. Reusability : besarnya program dapat digunakan oleh aplikasi lain.

(77)

SOFTWARE DEVELOPMENT

LIFE CYCLE (SDLC)

SDLC adalah serangkaian aktivitas yang dilaksanakan oleh profesional dan pemakai sistem informasi untuk mengembangkan dan mengimplementasikan software (program).

Aktivitas atau proses standar yang digunakan untuk membangun program, yaitu :

• Analisa kebutuhan (spesifikasi) • Desain

• Coding • Pengujian

(78)

FAKTA DALAM PEMBANGUNAN

PROGRAM

(79)

METODOLOGI PERANCANGAN

PROGRAM

Prinsip dasar dalam pembangunan program berdasarkan input data, proses dan output. Beberapa pendekatan perancangan program :

1. Procedure-Driven 2. Event-Driven

(80)

Procedure-Driven

untuk

perancangan

program berdasarkan pada apa yang akan

dilakukan program (proses atau fungsi).

Strateginya

adalah

dengan

memecahkan setiap fungsi menjadi lebih

kecil dan lebih spesifik.

Contoh :

Program untuk persegi panjang dibagi

menjadi fungsi : hitung keliling dan hitung

luas persegi panjang

(81)

Event-Driven untuk perancangan program berdasarkan pada kejadian atau interaksi dari luar dapat menyebabkan perubahan dari satu kondisi ke kondisi lain.

Keadaan awal dari sebuah program

mengidentifikasikan seluruh pemicu yang mewakili kejadian untuk kondisi yang akan dihasilkan.

Contoh : apabila tombol mulai pada program stopwatch di klik maka program akan menghitung waktu yang berjalan sampai tombol stop di klik.

(82)

Data-Driven untuk perancangan program

berdasarkan struktur data.

Dimulai

dengan

analisis

data

dan

hubungan antara data, untuk menentukan

struktur data dasar. Setelah struktur data

telah

ditetapkan,

output

data

yang

diperlukan

diperiksa

dalam

rangka

menentukan proses apa yang diperlukan

untuk mengkonversi data input ke output.

(83)

Untuk membuat program menghitung bonus karyawan. Besar bonus masing-masing karyawan tergantung gaji pokok dan jenis tanggung-jawabnya.

Data Input : Data Profil Karyawan (seperti : nik, nama, jabatan, gaji pokok)

Data Output : Bonus karyawan Proses :

Ambil tanggung_jawab dari profil_karyawan If tanggung_jawab = “Sales manager”

Then bonus = gaji_pokok * 0.10 Else

If tanggung_jawab = “Senior salesman” Then bonus = gaji_pokok * 0.08 Else … dan seterusnya …

(84)

BELAJAR PEMROGRAMAN ?

Pemrograman adalah proses menulis,

menguji dan memperbaiki (debug), dan

memelihara

kode

yang

membangun

sebuah program komputer.

Belajar

pemrograman

adalah

belajar

tentang metodologi pemecahan masalah

kemudian menuangkannya dalam suatu

notasi yang mudah dibaca dan dipahami.

(85)

TEKNIK PEMROGRAMAN

Permasalahan

bisnis

yang

semakin

kompleks dan rumit sedangkan waktu

yang diberikan untuk pengembangan

program semakin cepat.

Dibutuhkan teknik pemrograman untuk

mengembangkan program yang kompleks

dan rumit dalam waktu yang cepat.

(86)

TEKNIK PEMROGRAMAN

(lanjutan)

1. Pemrograman Tidak Terstruktur

2. Pemrograman Terstruktur

3. Pemrograman Prosedural

4. Pemrograman Modular

(87)

1. PEMROGRAMAN TIDAK

TERSTRUKTUR

Pemrograman tidak terstruktur adalah suatu teknik pemrograman dimana penulisan instruksi tidak teratur dan sistematis sehingga sulit untuk dipahami.

Contoh : Penggunaan perintah GOTO yang banyak dalam program.

(88)

2. PEMROGRAMAN TERSTRUKTUR

Pemrograman terstruktur adalah suatu teknik pemrograman dimana penulisan instruksi secara sistematis, logis dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.

Prinsip pada pemrograman terstruktur jika suatu proses sudah sampai pada titik tertentu, maka proses selanjutnya tidak bisa melakukan proses pada baris sebelumnya.

(89)

3. PEMROGRAMAN PROSEDURAL

Pemrograman prosedural adalah suatu teknik pemrograman dimana penulisan instruksi yang sama dibuat dalam sub program tersendiri sehingga pembuatan program lebih cepat dan memudahkan perbaikan apabila terjadi kesalahan.

(90)

4. PEMROGRAMAN MODULAR

Pemrograman modular adalah suatu teknik pemrograman dimana prosedur dari fungsi umum dikelompokkan dalam modul-modul dan setiap modul menunjukkan fungsi dan tugas tunggal.

(91)

5.

PEMROGRAMAN

BERORIENTASI

OBJEK

Pemrograman berbasis obyek (OOP) mendasarkan pada konsep objek dan interaksinya.

Objek berasal dari tipe data abstrak.

Objek dapat menerima pesan (message), mengolah data, dan mengirimkan pesan ke object lain

membentuk interaksi antar object.

Objek bersifat independen: tiap object dapat dipandang sebagai sebuah entitas mandiri yang memiliki peran atau tanggung jawab tertentu.

(92)

5. PEMROGRAMAN BERORIENTASI

OBJEK (lanjutan)

(93)

BELAJAR BAHASA PEMROGRAMAN ?

Bahasa pemrograman merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Belajar bahasa pemrograman adalah belajar memakai suatu bahasa pemrograman sesuai dengan aturan tata bahasanya.

(94)

TIGA FAKTOR PENTING DALAM

BAHASA PEMROGRAMAN

1. Sintaks

2. Semantik

(95)

SINTAKS

Sintaks adalah aturan penulisan suatu bahasa pemograman (tata bahasanya).

Contoh :

#include<file-include> main()

{ pernyataan; }

Apabila terjadi kesalahan dalam penulisan sintaks maka akan terjadi error pada saat kompilasi.

(96)

SEMANTIK

Semantik adalah arti atau maksud yang terkandung didalam statement tersebut.

Contoh :

\n; arti semantiknya baris baru.

Printf(); arti semantiknya mencetak string ke layar.

Getch(); arti semantiknya membaca sebuah karakter.

(97)

KEBENARAN LOGIKA

Kebenaran logika adalah berhubungan dengan benar tidaknya urutan statement.

Contoh : main() {int bil=1; while(bil<=5) printf(" %d ",bil); getch();}

Output dari program di atas terjadi perulangan terus menerus yang tidak berakhir.

(98)

JENIS-JENIS BAHASA

PEMROGRAMAN

1. Bahasa Tingkat Rendah

Dirancang agar setiap instruksi langsung dikerjakan oleh komputer tanpa translator.

Contoh : Assembler 2. Bahasa Tingkat Tinggi

Bahasa Pemrograman yang dalam penulisan pernyataannya mudah dipahami secara langsung.

Perlu diterjamahkan oleh translator bahasa

Contoh : Algol, Fortran, Pascal, Visual Basic, Oracle, dll.

(99)

PARADIGMA BAHASA

PEMROGRAMAN

(100)

.

KRITERIA BAHASA

PEMROGRAMAN

1. Clarity, simplicity dan unity

Kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi yang membantu programer mengembangkan suatu algoritma. 2. Orthogonality

Merupakan suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan.

(101)

.

KRITERIA BAHASA

PEMROGRAMAN (lanjutan)

3. Kewajaran untuk aplikasi

Bahasa pemrograman harus mempunyai struktur data, operasi-operasi, struktur kontrol dan sintaks yang tepat untuk memecahkan suatu masalah.

4. Mendukung Abstraksi

Abstraksi merupakan suatu hal yang substansial bagi programer untuk membuat suatu solusi dari masalah yang dihadapi.

(102)

.

KRITERIA BAHASA PEMROGRAMAN

(lanjutan)

5. Kemudahan untuk verifikasi program

Dengan verifikasi data yang mudah, maka suatu program akan dengan mudah dibangun dan dikembangkan.

6. Lingkungan pemrograman

Lingkungan pemrograman dapat berarti editor yang digunakan, dokumentasi yang baik, fasilitas debugging, user interface yang baik ataupun tools lain yang dapat digunakan untuk memudahkan pekerjaan programer.

(103)

.

KRITERIA BAHASA PEMROGRAMAN

(lanjutan)

7. Portabilitas program

Kemudahan program untuk dipakai di berbagai jenis komputer.

8. Biaya penggunaan

Biaya eksekusi program Biaya kompilasi program

Biaya penciptaan, testing dan penggunaan program

Biaya pemeliharaan program .

(104)

DISKUSI

1. Apa penyebab terjadinya permasalahan

dalam perangkat lunak (program) yang

dihasilkan.

2. Dalam

mempelajari

bahasa

pemrograman apa yang pertama kali

harus

dipelajari

sehingga

dapat

melakukan pemrograman ?

(105)

PERTEMUAN 2

ALGORITMA &

PEMROGRAMAN

(106)

POKOK BAHASAN

1. Pendahuluan

2. Tahapan Pembangunan Program

3. Pengenalan Algoritma

4. Cara Menyajikan Algoritma

5. Data Program

(107)

PENDAHULUAN

Perancangan program merupakan pengembangan solusi terhadap identifikasi masalah dan menghasilkan serangkaian instruksi yang membangun sebuah program komputer untuk menghasilkan output.

Sebuah program harus dirancang secara sistematis dan benar sebelumnya memulai coding. Perancangan program dihasilkan dalam pembangunan algoritma.

(108)

PERANAN ALGORITMA DALAM PROGRAM ALGORITMA BAHASA PEMROGRAMAN KOMPUTER Kompilasi

Interpretasi oleh CPU untuk Menjalankan operasi pada mesin komputer sesuai dengan intruksi bahasa pemrograman.

Program komputer adalah perwujudan atau implementasi dari algoritma yang di tulis dalam bahasa pemrograman.

(109)

APAKAH ALGORITMA ?

Algoritma berisi langkah-langkah yang dibutuhkan untuk menyelesaikan sebuah tugas. Sebuah algoritma harus:

– Memiliki masukkan (input)

– Menghasilkan keluaran (output) – Terdefinisi jelas (definiteness)

– Memiliki kondisi akhir (finiteness)

– Memberi solusi yang diharapkan (effectiveness)

– Berlaku untuk setiap himpunan input sesuai dengan masalah yang diberikan (generality)

(110)

CONTOH ALGORITMA

Program Hitung_Kembali

{menghitung uang kembali apabila input data tersebut diberikan}

Deklarasi

long sisa, uang_bayar, total_bayar Deskripsi

Baca total_bayar

Hitung sisa = uang_bayar - total_bayar Cetak sisa

(111)

CONTOH ALGORITMA YANG TIDAK

BAIK

Program Cetak_Berulang {Mencetak kata sebanyak i } Deklarasi

integer i Deskripsi i = 0

While (i <= 5)

cetak ”Bina Sarana Informatika” END

(112)

CARA UNTUK MENYAJIKAN

ALGORITMA

1. Pseudocode

2. Flowchart

(113)

1. PSEUDOCODE

Pseudocode merupakan salah satu cara untuk menuliskan algoritma

Karakteristik Pseudocode:

– Statement / Perintah di tulis dalam bahasa Inggris / Indonesia sederhana.

– Setiap perintah di tulis dalam baris terpisah

– Keyword digunakan untuk menjelaskan control structure tertentu.

– Setiap set/bagian instruksi memiliki awal dan akhir – Pengelompokkan statement bisa membentuk satu

(114)

STRUKTUR PSEUDOCODE

Algoritma terdiri dari tiga bagian yaitu :

Judul (Header) : mendefinisikan nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.

Deklarasi : mendefinisikan nama variabel, nama konstanta, nama prosedur, nama fungsi yang akan digunakan dalam algoritma.

Deskripsi : mendefinisikan langkah-langkah penyelesaian masalah mulai dari input, proses dan ouput.

Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap bagian tersebut dituliskan diantara tanda kurung kurawal

(115)

CONTOH PSEUDOCODE

Program Luas_Lingkaran

{menghitung luas sebuah lingkaran apabila jari-jari lingkaran tersebut diberikan}

Deklarasi

inisialisasi konstanta phi = 3.14 inisialisasi r, luas_lingkaran

Deskripsi

Baca data r

luas_lingkaran = phi * r * r cetak luas_lingkaran

(116)

2. FLOWCHART

Flowchart adalah suatu alat yang menunjukkan langkah-langkah yang harus dilaksanakan dalam menyelesaikan suatu permasalahan untuk komputasi dengan cara mengekspresikan ke dalam serangkaian simbol-simbol grafis.

(117)
(118)

SIMBOL-SIMBOL FLOWCHART

PROGRAM

Simbol Keterangan

TERMINAL

Digunakan untuk menggunakan awal dan akhir dari suatu kegiatan.

DECISION

Digunakan untuk menggambarkan proses pengujian suatu kondisi yang ada.

PREPARATION

Digunakan untuk menggambarkan persiapan harga awal, dari proses yang akan dilakukan.

FLOW LINE

Digunakan untuk menggambarkan hubungan proses dari satu proses ke proses lainnya.

(119)

SIMBOL-SIMBOL FLOWCHART

PROGRAM

Simbol Keterangan

INPUT/OUTPUT

Digunakan untuk menggambarkan proses memasukan data yang berupa pembacaan data dan sekaligus proses keluaran yang berupa pencetakan data.

SUBROUTINE

Digunakan untuk menggambarkan proses pemanggilan sub program dari main program (recursivitas).

CONNECTOR

Digunakan untuk menghubungkan alur proses ke dalam satu halaman atau halaman yang sama.

OFF-PAGE CONNECTOR

Digunakan untuk menghubungkan alur proses dalam halaman yang berbeda atau ke halaman berikutnya.

(120)

DATA PROGRAM

• Program ditulis untuk memproses data, dibutuhkan pemahaman yang baik terhadap sifat dan struktur dari data yang sedang diproses.

• Data dalam program mungkin dapat berupa variabel tunggal (seperti : integer, karakter), atau kelompok (seperti : array, file)

(121)

Variabel & Konstanta

Variabel adalah nama yang diberikan kepada kumpulan sel memori untuk menyimpan item data tertentu yang nilainya dapat berubah pada program dieksekusi.

Contoh : namamhs, tgl_lahir, alamat1, dll.

Konstanta adalah item data dengan nama dan nilai yang tetap sama selama program di eksekusi.

(122)

ELEMEN-ELEMEN PROGRAM

A. Aturan leksikal

B. Tipe Data

C. Expression

D. Statement

(123)

1. Token

Token (Kata) yaitu elemen terkecil pada bahasa

pemrograman yang memiliki arti penting bagi compiler.

Yang termasuk token antara lain: identifier,

keywords(reserved words), operator, dan

sebagainya.

Token yang satu dengan yang lain dipisahkan dengan satu atau lebih spasi, tabulasi, baris baru, atau komentar.

(124)

2. Komentar

Digunakan untuk memberikan suatu keterangan yang akan menjelaskan isi dari program secara singkat.

Komentar hanya sebuah tulisan pada program dan tidak akan diproses oleh komputer.

Bertindak sebagai dokumentasi.

Notasi komentar pada setiap bahasa pemrograman berbeda-beda.

Contoh :

− {komentar pada pascal} − //komentar pada c++

(125)

3. IDENTIFIER

Identifier adalah token yang merepresentasikan nama sesuatu seperti : variabel/konstanta, field/atribut, prosedur/fungsi, dan lain-lain.

Aturan pemberian nama identifier:

a. Karakter pertama harus berupa huruf.

b. Karakter kedua dan selanjutnya dapat berupa huruf/angka/underscore.

c. Tidak boleh menggunakan karakter simbol (@ # $ % & *, dll) kecuali underscore.

d. Tidak boleh menggunakan kata kunci (keywords/ reserved words).

(126)

3. IDENTIFIER (lanjutan)

e. Huruf besar/kecil dianggap berbeda (khusus C++)

f. Tidak boleh ada spasi.

g. Nama identifier sebaiknya disesuaikan dengan kebutuhan atau sesuai objek yang akan diberi nama.

Contoh penamaan identifier yang benar : idcust, tgl_lahir, telp1, dll.

Contoh penamaan identifier yang tidak benar : @kdbrg, double, nama-depan, 3erat_badan, dll.

(127)

4. Keywords/Reserved Words

Keywords atau reserved words merupakan

kata-kata yang telah ada/didefinisikan oleh bahasa pemrograman yang bersangkutan.

Kata-kata tersebut telah memiliki definisi yang sudah tetap dan tidak dapat diubah.

Karena telah memiliki definisi tertentu, maka katakata ini tidak dapat digunakan sebagai identifier.

Contoh Keyword : break, switch, continue, repeat, until, function dll

(128)

5. OPERATOR

Merupakan simbol-simbol khusus yang digunakan untuk mengoperasikan suatu nilai data (operand).

Operator yang digunakan dalam pemrograman: − Arithmetic operator − Assignment operator − Logical operator − Relational operator − Pointer operator − Bitwise operator

(129)

B. TIPE DATA

Tipe data digunakan untuk menentukan jenis nilai yang dapat ditampung oleh suatu variabel.

Pada suatu bahasa pemrograman umumnya telah menyediakan tipe-tipe data yang sederhana (simple) maupun yang terstruktur dan apabila kita membutuhkan tipe data yang belum tersedia, kita dapat mendefinisikan sendiri tipe data baru, yang disebut enumerated type.

(130)

B. TIPE DATA (lanjutan)

Tipe data terstruktur yaitu tipe data yang dapat menampung lebih dari satu nilai, sbb:

1. Array adalah tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama.

2. Record adalah tipe data yang digunakan untuk merepresentasikan kumpulan (set) elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute

(131)

C. Expression

Expression (ekspresi) yaitu suatu pernyataan yang menghasilkan suatu nilai.

Expression tersusun dari operator dan operand yang digunakan untuk menghitung atau memberi suatu nilai suatu variable atau identifier.

Expression yang paling sederhana yaitu nama variable. Expression yang lebih kompleks akan melibatkan operator-operator, maupun pemanggilan function atau procedure.

(132)

D. Statement

Statement merupakan bagian program yang berisi

perintah yang akan dieksekusi / dijalankan. Karena itu, statement-statement ini menentukan bagaimana jalannya program dan bagaimana suatu nilai variable dimanipulasi/berubah.

Statement dapat dikelompokan menjadi antara lain: 1. Simple Statement

2. Compound Statement

(133)

1. Simple Statement

Yang digolongkan ke dalam simple statement (statement sederhana) yaitu statement yang tidak berisi statement lainnya, sebagai berikut :

Assignment Statement yaitu statement yang digunakan untuk memberikan nilai ke suatu variable, contohnya :

a := 10; b := a * 2; c := c * b;

Statement untuk pemanggilan function atau procedure yaitu statement yang memanggil function atau procedure yang telah didefinisikan pada program. Contoh :

Calculate (a,b); Cetak (a,b);

(134)

1. Simple Statement (lanjutan)

Jump Statement yaitu statement yang digunakan untuk melompati statement-statement lain. Contoh :

Melompat ke statement tertentu goto Keluar dari iterative statement break

(135)

2. Compound Statement

Compound statement (kumpulan statement) adalah

sekumpulan statement yang terdiri dari statement-statement lain, termasuk juga selection statement dan interaction.

Selection statement digunakan untuk melakukan pemilihan

sekumpulan statement (compound statement). Contoh :

a. If ……Then b. Perintah Case

Iteration statement digunakan untuk melakukan perulangan sekumpulan statement (compound statement). Contoh :

a. Do While

b. Repeat …….Until c. For……EndFor

(136)

E. Function dan Procedure

• Procedure dan Function disebut juga

subroutine, merupakan blok statement yang dapat dipanggil dari lokasi yang berbeda di dalam program.

• Yang membedakan antara function dan

procedure yaitu: suatu function jika

dijalankan/dipanggil akan mengembalikan suatu nilai.

• Ketika procedure atau function dipanggil, kita dapat melewatkan suatu nilai ke dalam function atau procedure tersebut.

• Nilai yang dilewatkan disebut juga argument atau

(137)

TUGAS 1

Buatlah pseudocode & flowchart untuk menghasilkan 1 liter air dengan menggunakan tabung dengan ukuran 3 liter dan 5 liter.

Catatan Tugas :

Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.

Tugas dikumpulkan pada saat pertemuan 3. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak mendapat nilai tugas 1 (tidak ada sistem susulan).

(138)

PERTEMUAN 3

TAHAPAN PEMBANGUNAN

PROGRAM

(139)

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

(140)

3

DEFINISI MASALAH

Pada tahap ini memerlukan pemahaman terhadap permasalah dengan membaca berulang kali sampai dengan mengerti apa yang dibutuhkan.

Permasalahan dibagi kedalam tiga komponen: – Input / Masukan

– Output / Keluaran – Proses

(141)

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

(142)

5

OUTLINE SOLUSI

Setelah permasalahan didefinisikan,

permasalahan dapat di bagi ke dalam tugas-tugas atau langkah langkah yang lebih

kecil dan menghasilkan outline solusi Outline solusi awal dapat terdiri dari:

– Proses utama – Subtask utama – Struktur Kontrol

– Variabel dan struktur record – Logic utama (mainline)

(143)

OUTLINE SOLUSI

Input Proses Output

Baca p Baca l Baca t

(144)

7

PENGEMBANGAN OUTLINE KE

DALAM ALGORITMA

Outline solusi pada langkah kedua

dikembangkan menjadi algoritma yaitu

sebuah set langkah yang menggambarkan

tugas yang akan dikerjakan dan urutan

pengerjaannya.

(145)

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

(146)

9

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.

Data test diperlukan untuk melakukan test terhadap algoritma ini.

(147)

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 ?

Desk Check menekankan pada nilai variabel

dan logika. Contoh : Berapakah nilai variabel x setelah pernyataan; Apa pernyataan berikutnya yang akan dieksekusi ?

(148)

TAHAPAN PENGECEKAN

ALGORITMA

1. Pilih data sederhana yang valid. Dua atau tiga data biasanya sudah mencukupi.

2. Tentukan hasil output yang diharapkan untuk setiap set data.

3. Buatlah tabel yang nama variabel yang ada pada algoritma di sebuah kertas

4. Jalankan test satu persatu mengikuti algoritma yang ada, mulai dari perintah / statement pertama sampai dengan selesai

5. Ulangi langkah tersebut menggunakan set data yang lain.

6. Cek apakah hasil dari langkah 5, sesuai dengan hasil yang diharapkan di langkah kedua

(149)

PEMERIKSAAN ALGORITMA

Test Plan − Input Data − Output Data 1 Data 2 p 3 2 l 1 1.5 t 2 1 Data 1 Data 2 Volume bak 6 3

(150)

TABEL DESK CHECK

Data 1 Data 2 Baca p 3 2 Baca l 1 1.5 Baca t 2 1 Cetak volume_bak 6 3

(151)

14

MEMINDAHKAN ALGORITMA KE

DALAM BAHASA PEMROGRAMAN

Setelah ke-empat langkah sebelumnya

dilakukan,

maka

pencodingan

dapat

dimulai dengan menggunakan bahasa

pemrograman yang dipilih.

(152)

15

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;

(153)

16

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.

Langkah ini perlu dilakukan beberapa kali, sehingga program yang dijalankan dapat berfungsi dengan benar

(154)

17

DOKUMENTASI DAN PEMELIHARAAN

PROGRAM

Dokumentasi melibatkan eksternal dokumentasi (hierarchy chart, algoritma solusi, dan hasil data test) dan internal dokumentasi (coding program).

Pemeliharaan program meliputi perubahan yang dialami oleh program (perbaikan ataupun penambahan modul, dll)

(155)

DISKUSI

1. Mengapa dibutuhkan tahapan dalam

perancangan program ?

2. Apa

manfaat

Desk

Checking

Algoritma/pemeriksaan algoritma ?

(156)

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.

(157)

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.

(158)

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).

(159)

PENGEMBANGAN

PSEUDOCODE STRUKTUR

KONTROL PEMILIHAN

(160)

POKOK BAHASAN

1. Definisi Struktur Kontrol Pemilihan

2. Pseudocode Struktur Kontrol Pemilihan

3. Desk Checking Struktur Kontrol

Pemilihan

(161)

STRUKTUR KONTROL

PEMILIHAN

Struktur kontrol pemilihan dalam pseudocode digunakan untuk menggambarkan:

Pilihan antara dua atau lebih tindakan, tergantung pada apakah kondisi yang diberikan. Contoh :

IF jumlah orang > 10 THEN pintu dibuka

ELSE dibatalkan karena kurang peminatnya. Kondisi bernilai True atau False

Contoh :

IF member THEN Diskon = 20% * Harga

(162)

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)

(163)

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

STRUKTUR KONTROL PEMILIHAN

(lanjutan)

(164)

1. SIMPLE SELECTION

Simple selection terjadi jika harus memilih diantara dua alternatif yang ada, tergantung dari hasil kondisi apakah True atau false.

Keyword yang digunakan adalah : IF, THEN, ELSE, dan ENDIF

Simple Selection ada 2 macam – Simple selection bercabang

(165)

A. SIMPLE SELECTION BERCABANG

Simple selection bercabang terjadi ketika pilihan dibuat dua jalur alternatif, tergantung pada hasil dari suatu kondisi bernilai benar atau salah

Format Struktur Simple Selection Bercabang IF syarat THEN instruksi1 ELSE instruksi2 ENDIF Contoh IF Saldo > 3000000 THEN bunga = 0.05 * Saldo ELSE bunga = 0.01 * Saldo ENDIF

(166)

B. SIMPLE SELECTION TANPA CABANG

Simple selection tanpa cabang digunakan ketika instruksi yang dilakukan hanya ada kondisi benar saja.

Format Struktur Simple Selection Tanpa Cabang IF syarat THEN instruksi Contoh: Diskon = 0 IF Subtotal > 100000 THEN diskon = 0.1 * Subtotal ENDIF

(167)

CONTOH KASUS SIMPLE

SELECTION

Buatlah pseudocode & flowchart untuk

menentukan apakah penghasilan per

bulan yang dimasukkan kena pajak

atau

tidak.

(kena

pajak

jika

penghasilan setahun lebih besar sama

dengan Rp. 15.600.000)

(168)

JAWABAN KASUS SIMPLE

SELECTION

Input : penghasilan per bulan Output : keterangan

Proses : 1. total_penghasilan = penghasilan x 12 bulan

2. Jika total_penghasilan >= 15600000 maka keterangan kena pajak.

(169)

OUTLINE SOLUSI

Input Proses Output

Baca gaji total_penghasilan =

gaji * 12 IF total_penghasilan >=15600000 THEN keterangan=”Kena Pajak” keterangan

(170)

PENGEMBANGAN OUTLINE KE DALAM ALGORITMA (lanjutan)

Program Kena_Pajak

{Menentukan kena pajak atau tidak apabila input data tersebut diberikan}

Deklarasi string keterangan long gaji Deskripsi Baca gaji total_penghasilan = gaji * 12 IF total_penghasilan >=15600000 THEN keterangan=”Kena Pajak” ELSE

Keterangan = ”Tidak Kena Pajak” Cetak keterangan

ENDIF END

(171)

PEMERIKSAAN ALGORITMA

Test Plan − Input Data − Output Data Data 1 Data 2 Gaji 900,000 3,500,000 Data 1 Data 2

(172)

TABEL DESK CHECK

Data 1 Data 2

Gaji 900,000 3,500,000

(173)

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

(174)

3. Nested Selection

Nested selection terjadi, jika di dalam IF terdapat statement IF yang lain.

Ada dua jenis nested selection Linear Nested IF

(175)

A. Linear Nested IF

Linear Nested IF terjadi jika satu kondisi di cek untuk beberapa nilai.

Format Struktur Linear Nested IF Statement IF syarat1 THEN

instruksi1

ELSE IF syarat2 THEN instruksi2

ELSE

instruksi3 ENDIF

(176)

A. Linear Nested IF (lanjutan)

Contoh Struktur Linear Nested IF Statement IF ukuran = ’s’ THEN

harga = 35000

ELSE IF ukuran = ’m’ THEN harga = 50000

ELSE

harga = 70000 ENDIF

(177)

B. Non-Linear Nested IF

Non-Linear Nested IF terjadi jika beberapa kondisi

harus diperiksa sebelum suatu statement

dikerjakan.

Format Struktur Non Linear Nested IF Statement IF syarat1 THEN IF syarat2 THEN instruksi2a ELSE instruksi2b ENDIF ELSE Instruksi 1b ENDIF

(178)

B. Non-Linear Nested IF Statement

(lanjutan)

Contoh Struktur Non Linear Nested IF Statement IF a > b THEN IF a > c THEN Cetak a ELSE Cetak c ENDIF ELSE IF b > c THEN Cetak b ELSE Cetak c ENDIF

(179)

4.

Perintah Case

Perintah case digunakan

sebagai instruksi

pemilihan dimana aksi

yang akan dilakukan

hanya tergantung pada nilai dari satu macam variabel.

Perintah case

memungkinkan memiliki banyak nilai dan setiap nilainya berkaitan dengan satu macam aksi.

(180)

4.

Perintah Case (lanjutan)

Format Struktur Perintah Case pada bahasa C switch (variabel_syarat)

case nilai-1 : aksi-1 case nilai-2 : aksi-2 default : aksi n

Contoh : switch (gol)

case ’A’: terapi =” jus strawbery”; break; case ’B’ : terapi =”jus sirsak”; break; case ’C’ : terapi =”jus wortel ”;break; case ’D’ : terapi =”jus tomat” ;break;

default : terapi =”Terapi untuk golongan tersebut tidak ditemukan”;

(181)

LATIHAN 3

Dibaca sebuah bilangan bulat yang mewakili pengukuran suhu air (dalam 0C) pada tekanan atmosfir, harus dituliskan wujud air pada temperatur dan tekanan tersebut.

Ketentuan

Beku jika suhu ≤ 0

Cair jika 0 < suhu ≤ 100 Uap jika suhu > 100

Buatlah pseudocode, flowchart dan program dari masalah di atas.

Gambar

Tabel Desk Checking
Tabel Desk Checking
Tabel Desk Checking
Tabel Desk Checking   b  k  b&lt;=3  k&lt;=3  Cetak b  K=k+1  B=b+1  1  1  Y  Y  1  2  2  Y  1  3  3  Y  1  4  N  -  -  2  2  1  Y  Y  2  2  Y  2  3  Y  2  4  N  -  -  3
+3

Referensi

Dokumen terkait