Breaking News

Advertising

Flickr

Latest Reviews

Facebook

Jumat, 30 Oktober 2015

Teknik Pemrogramman

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<file-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<=5)
     printf(" %d ",bil);
getch();}

Output  dari  program  di  atas  terjadi  perulangan
terus menerus yang tidak berakhir. 
 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 <= 5)
     cetak ”Bina Sarana Informatika”
END 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. For……EndFor
 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

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 kecil sama dengan
 >= lebih besar sama dengan
 <> tidak sama dengan
4
STRUKTUR KONTROL
PEMILIHAN (lanjutan)   Ada  beberapa  variasi  dari  struktur  kontrol
selection yaitu: 
1. Simple Selection
2. Combined / Multiple Selection 
3. Nested Selection 
a. Linear Nested IF Statement
b. Non-Linear IF Statement 
4. Perintah Case
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”; 

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<stdio.h>
include<conio.h>
include<iostream.h>

Main() {
float p, l, t, volume_bak;
printf(”panjang :”);scanf (”%f”,p);
printf(”lebar :”);scanf (”%f”,l);
printf(”tinggi :”);scanf (”%f”,t);
Volume_bak = p* l * t;
Printf(”volume bak : %5.2f”,volume_bak); }
 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)

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 <= 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 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  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<=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  -  -  - 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 <= 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
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<=n
ENDDO
END
2. Trailing Decision Loop  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 <= jumlah bilangan lakukan
pengulangan berikut
    cetak a
    a = sqr(a)

3. Counted Loop  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<=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 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 <= 3
      DO WHILE k <= 3
        cetak k
        k=k+ 1
      Enddo
      cetak 
      b=b+1
    Enddo 
          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)  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)
 Lanjutkan untuk desk checking berikutnya 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<=5
  do while j <=i
    jum = jum + i  
    if j < i then 
      cetak j + ”+”
    else
      cetak j + ”=”
      cetak jum
    endif 
    j = j+1 
  enddo
i= i+1
cetak baris baru

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_2…data_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

Tidak ada komentar:

Posting Komentar

Designed By