tehnik pemograman
Embed Size (px)
description
Transcript of tehnik pemograman
-
PERTEMUAN 1
KONSEP PERANCANGAN
PROGRAM
-
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
-
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 ?
-
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).
-
PERMASALAHAN TERKAIT
PERANGKAT LUNAK (PROGRAM)
-
APA PROGRAM ?
Kumpulan instruksi / perintah yang
dirangkaian sehingga membentuk suatu proses untuk mengolah data.
-
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 .
-
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.
-
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
-
FAKTA DALAM PEMBANGUNAN
PROGRAM
-
METODOLOGI PERANCANGAN
PROGRAM
Prinsip dasar dalam pembangunan program
berdasarkan input data, proses dan output.
Beberapa pendekatan perancangan program :
1. Procedure-Driven
2. Event-Driven
3. Data-Driven
-
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
PROCEDURE-DRIVEN
-
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.
EVENT-DRIVEN
-
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.
DATA-DRIVEN
-
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
CONTOH DATA-DRIVEN
-
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.
-
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.
-
TEKNIK PEMROGRAMAN
(lanjutan)
1. Pemrograman Tidak Terstruktur
2. Pemrograman Terstruktur
3. Pemrograman Prosedural
4. Pemrograman Modular
5. Pemrograman Berorientasi Objek
-
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.
-
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.
-
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.
-
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.
-
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.
-
5. PEMROGRAMAN BERORIENTASI
OBJEK (lanjutan)
-
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.
-
TIGA FAKTOR PENTING DALAM
BAHASA PEMROGRAMAN
1. Sintaks
2. Semantik
3. Kebenaran Logika
-
SINTAKS
Sintaks adalah aturan penulisan suatu bahasa
pemograman (tata bahasanya).
Contoh :
#include
main()
{ pernyataan; }
Apabila terjadi kesalahan dalam penulisan sintaks
maka akan terjadi error pada saat kompilasi.
-
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.
-
KEBENARAN LOGIKA
Kebenaran logika adalah berhubungan dengan
benar tidaknya urutan statement.
Contoh :
main()
{int bil=1;
while(bil
-
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 diterjemahkan oleh translator bahasa
Contoh : Algol, Fortran, Pascal, Visual Basic, Oracle, dll.
-
PARADIGMA BAHASA
PEMROGRAMAN
-
.
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.
-
.
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.
-
.
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.
.
-
.
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
-
PERTEMUAN 2
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.
Sebuah program harus dirancang secara sistematis dan benar sebelumnya memulai coding. Perancangan
program dihasilkan dalam pembangunan algoritma.
-
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. Translasi
-
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)
-
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
END
-
CONTOH ALGORITMA YANG
TIDAK BAIK Program Cetak_Berulang
{Mencetak kata sebanyak i }
Deklarasi
integer i
Deskripsi
i = 0
While (i
-
CARA UNTUK MENYAJIKAN
ALGORITMA
1. Pseudocode
2. Flowchart
-
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 modul yang mempunyai nama.
-
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
Contoh : { Komentar }
-
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
-
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.
-
CONTOH FLOWCHART
-
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.
-
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.
-
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)
-
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.
Contoh : define phi 3.14 atau phi = 3.14.
-
ELEMEN-ELEMEN PROGRAM
A. Aturan leksikal
B. Tipe Data
C. Expression
D. Statement
E. Function & Procedure
-
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.
-
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++ komentar pada visual basic
-
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).
-
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.
-
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
-
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
-
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.
-
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
-
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.
-
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
-
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);
-
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
-
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. ForEndFor
-
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 parameter.
-
Latihan
Buatlah pseudocode & flowchart untuk
menghasilkan 1 liter air dengan menggunakan
tabung dengan ukuran 3 dan 5 liter.
-
Tugas
Buatlah pseudocode & flowchart untuk menghasilkan air
dengan menggunakan tabung dengan ukuran 3 dan 5 liter.
Air yang ingin dihasilkan:
a. 2 liter
b. 4 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).
-
PERTEMUAN 3
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
-
DISKUSI
1. Mengapa dibutuhkan tahapan dalam
perancangan program ?
2. Apa manfaat Desk Checking
Algoritma/pemeriksaan algoritma ?
3
-
4
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
-
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
-
6
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)
-
OUTLINE SOLUSI
Input Proses Output
Baca p Baca l Baca t
volume_bak = p x l x t Volume_bak
-
8
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.
-
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
-
10
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.
-
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 ?
-
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
12
-
PEMERIKSAAN ALGORITMA
Test Plan
Input Data
Output
Input Data 1 Data 2
p 3 2
l 1 1.5
t 2 1
Output Data 1 Data 2
Volume bak 6 3
-
TABEL DESK CHECK
Algoritma Data 1 Data 2
Baca p 3 2
Baca l 1 1.5
Baca t 2 1
Cetak volume_bak 6 3
-
15
MEMINDAHKAN ALGORITMA KE
DALAM BAHASA PEMROGRAMAN
Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat
dimulai dengan menggunakan bahasa
pemrograman yang dipilih.
-
16
MEMINDAHKAN ALGORITMA KE DALAM
BAHASA PEMROGRAMAN (lanjutan)
//Program Volume Bak
include
include
include
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); }
-
17
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
-
18
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)
-
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 20 cm2 / 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
cm x 30 cm. 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).
-
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PEMILIHAN
PERTEMUAN 4
-
POKOK BAHASAN
1. Definisi Struktur Kontrol Pemilihan
2. Pseudocode Struktur Kontrol Pemilihan
3. Desk Checking Struktur Kontrol
Pemilihan
4. Contoh Algoritma & Pseudocode
-
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
3
-
Kondisi berdasarkan perbandingan 2 item yang dinyatakan dengan salah satu operator relasi
berikut :
< lebih kecil dari
> lebih besar dari
= 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
STRUKTUR KONTROL PEMILIHAN
(lanjutan)
-
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 Simple Selection tanpa cabang
-
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
-
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 Total = Subtotal - Diskon
-
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)
-
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.
-
OUTLINE SOLUSI
Input Proses Output
Baca gaji total_penghasilan = gaji * 12
IF total_penghasilan
>=15600000 THEN
keterangan=Kena Pajak
keterangan
-
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
-
PEMERIKSAAN ALGORITMA
Test Plan
Input Data
Output Data
Input Data 1 Data 2
Gaji 900,000 3,500,000
Output Data 1 Data 2
Keterangan Tidak Kena Pajak Kena Pajak
-
TABEL DESK CHECK
Algoritma 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.
Ada dua jenis nested selection Linear Nested IF Non-Linear Nested IF
-
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
-
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
-
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
-
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
-
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.
-
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;
-
LATIHAN
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.
23
-
TUGAS 3
Buatlah 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
-
PERTEMUAN 5
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PENGULANGAN
1
-
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
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
-
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
-
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
-
Desk Checking
Data Masukan
Hasil yang diharapkan
2 4 6 8 10
1. Leading Decision Loop
(lanjutan)
Input Data
n 5
-
Tabel Desk Checking
1. Leading Decision Loop
(lanjutan)
i n i
-
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
UNTIL kondisi k true
-
Contoh Kasus :
Sebuah Bank membuat nomor antrian
berdasarkan bilangan ganjil. Jumlah antrian
maksimal 5. Berikan bilangan ganjil sesuai
jumlah antrian
2. Trailing Decision Loop
-
Definisi Masalah
Input : jumlah antrian
Output : 5 deret bilangan ganjil
Proses : Jika i n
Cetak a
2. Trailing Decision Loop
-
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
-
Desk Checking
Data Masukan
Hasil yang diharapkan
1 3 5 7 9
Input Data
n 5
2. Trailing Decision Loop
-
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
2. Trailing Decision Loop
-
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
-
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
-
Outline Solusi
Input Proses Output
Baca n For i = 1 to n
Cetak a
a= sqr(a)
EndFor
Cetak a
3. Counted Loop
-
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
-
Desk Checking
Data Masukan
Hasil yang diharapkan
1 4 9 16 25
Input Data
n 5
3. Counted Loop
-
Tabel Desk Checking
i n i
-
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
-
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
-
Outline Solusi
Input Proses Output
Baca b, k DO WHILE b
-
Tabel Desk Checking
b k b
-
LATIHAN
1 = 1
1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
1 + 2 + 3 + 4 + 5 = 15
-
PEMBAHASAN LATIHAN
Input : i=1, j=0, jum=0
Output : j dan jumlah
Proses :
do while i
-
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
-
1. Konsep Pemrograman Modular
2. Komunikasi antar modul
3. Kohesi
4. Kopling
2
POKOK BAHASAN
-
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
{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
-
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) 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.
-
CONTOH KASUS MODULARISASI
Susunlah algoritma untuk mengurutkan
beberapa bilangan dengan urutan menaik
(ascending) dan tampilkan bilangan hasil
sort tersebut
-
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_2data_n
sort data bilangan tersebut
A. Outline Solusi
-
Hierarchy Chart
-
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
-
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
Coupling, High Cohesion"
-
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
-
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
komunikasi antar modul diminimalkan
-
KOHESI FUNCTIONAL
Mempunyai satu tugas
Menghasilkan satu hasil/satu parameter output
Bisa satu atau lebih parameter input
-
KOHESI SEQUENTIAL
Mempunyai pekerjaan yang beruntun
Kegiatan yang dilakukan lebih dari satu
Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya
Dapat dipecah menjadi Functional
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
Global Data Elementer Variabel
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
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).