PEMROGRAMAN TERSTRUKTUR

29
PEMROGRAMAN TERSTRUKTUR Oleh Munawar Asikin

description

PEMROGRAMAN TERSTRUKTUR. Oleh Munawar Asikin. SISTEMATIKA MATERI. Konsep pemrograman secara umum : Perkembangan pemrograman komputer Sejarah bahasa pemrograman Jenis bahasa pemrograman Perbandingan bahasa pemrograman Ide Pemrograman terstruktur : Defenisi , Tujuan , Kriteria - PowerPoint PPT Presentation

Transcript of PEMROGRAMAN TERSTRUKTUR

Page 1: PEMROGRAMAN TERSTRUKTUR

PEMROGRAMAN TERSTRUKTUR

Oleh

Munawar Asikin

Page 2: PEMROGRAMAN TERSTRUKTUR

SISTEMATIKA MATERI• Konsep pemrograman secara umum :

Perkembangan pemrograman komputer Sejarah bahasa pemrograman Jenis bahasa pemrograman Perbandingan bahasa pemrograman

• Ide Pemrograman terstruktur : Defenisi, Tujuan, Kriteria

• Metoda dasar pemrograman terstruktur GOTOLess : Sekuensial, Selection, Looping

• Perbandingan bahasa pemrograman (Berdasarkan kriteria pemrograman terstruktur)

• Metoda desain pemrograman terstruktur Modular, TopDown,…

• OOP, Pemrograman berorientasi objek (Lebih terstuktur dari ide pemrograman terstruktur ?)

• Struktur pemrograman visual

Page 3: PEMROGRAMAN TERSTRUKTUR

Perkembangan (cara) mem-program komputer :

1. Pemrograman dengan mengatur/menyambung titik jumper di rangkaian komputer

2. Pemrograman dengan langsung menulis kode biner ke memory, direpresentasikan melalui kode hexa, kode biner disebut juga bahasa mesin komputer

3. Pemrograman dengan bahasa assembler : Perintah-perintahnya berkaitan langsung dengan struktur internal hardware

4. Pemrograman dengan bahasa tingkat tinggi/menengah : Perintah-perintahnya mirip dengan bahasa manusia/english

KONSEP PEMROGRAMAN

• Mem-program komputer, secara teknis bertujuan : Memasukkan/ menyusun sejumlah instruksi dan data ke memory, yang selanjutnya akan diambil satu persatu oleh CPU/Processor untuk dilaksanakan

Page 4: PEMROGRAMAN TERSTRUKTUR

CPU

Programmer Instruksi A

Instruksi D

Data D

Instruksi B

Data A

Instruksi C

Sejumlah Instruksi dan data

00011100

00000101

00111101

00010010

00101101

……….

……….

……….

……….

……….

0002

0100

0101

……….0001

0102

0103

Susunan instruksi dan data dalam memory

Mov A,05Mov B,12Add A,B

Assembly

A = 05 + 12

High/Medium Level

3C053D122D

Hexa

Tool

ILUSTRASI PEMROGRAMAN KOMPUTER

Page 5: PEMROGRAMAN TERSTRUKTUR

SEJARAH BAHASA PEMROGRAMAN

Page 6: PEMROGRAMAN TERSTRUKTUR

GENERASI DAN JENIS BAHASA PEMROGRAMAN

Generasi bahasa pemrograman:• Generasi I : machine language• Generasi II : assembly language :

Asssembler• Generasi III : high-level programming

language: C, PASCAL, dsb.• Generasi IV : 4 GL (fourth-generation

language): Prolog, SQL, Visual tool, dsb

Jenis bahasa pemrograman berdasarkan metodanya :

• Pemrograman tidak terstruktur : Basica, Fortran, …

• Pemrograman terstruktur : Pascal, C/C++, …

• Pemrograman berorientasi objek : C++, Java, …

• Pemrograman visual : VB, Delphi, …

Jenis bahasa pemrograman berdasarkan bentuk (corak kode) nya :

• Pemrograman prosedural : Pascal, C,

• Pemrograman fungsional : Lisp• Pemrograman deklaratif : Prolog• Pemrograman berorientasi objek :

Java• Pemrograman prosedural

sekaligus berorientasi objek : C++

Jenis bahasa pemrograman berdasarkan tujuan (hasil) :• Pemrograman stand-alone• Pemrograman client/server• Pemrograman web : HTML, Script• Pemrograman jaringan

Jenis bahasa pemrograman berdasarkan cara penterjemahan :• Interpreter : Basica, Foxpro, Matlab,

…• Compiler : Turbo Basic, Pascal, C/C+

+, …

Page 7: PEMROGRAMAN TERSTRUKTUR

Jenis Program Bahasa Terbaik Bahasa Terburuk

Data terstruktur ADA, C /C++, PASCAL Assembler, BASIC

Proyek cepat BASIC PASCAL, ADA, Assembler

Eksekusi cepat Assembler, C BASIC, Intrepreter Language

Kalkulasi matematika FORTRAN  PASCAL

Menggunakan memori dinamis PASCAL, C BASIC

 Lingkungan bermemori terbatas BASIC, Assembler, C FORTRAN

Program real-time ADA, Assembler, C BASIC, FORTRAN

Manipulasi string BASIC, PASCAL C

Program mudah dikelola PASCAL, ADA C, FORTRAN

Bahasa Rasio

Assembler 1: 1

ADA 1 : 4.5

Quick / Turbo / Basic 1 : 5

C 1 : 2.5

FORTRAN  1 : 3

PASCAL 1 : 3.5

Berdasarkan tujuan tertentu :

Berdasarkan jumlah instruksi dibandingkan dengan assembler

PERBANDINGAN BAHASA PEMROGRAMAN (UMUM)

Page 8: PEMROGRAMAN TERSTRUKTUR

PROSES PEMBUATAN APLIKASI

Page 9: PEMROGRAMAN TERSTRUKTUR

SIMBOL-SIMBOL UNTUK MENGGAMBARKAN FLOW CHART

Digunakan untuk menunjukkan awal dan akhir program

Digunakan untuk memberikan nilai awal (inisial) pada suatu variabel atau counter

Digunakan untuk proses, pengolahan arithmatik, dan pemindahan data

Digunakan untuk mewakili operasi perbandingan logika yang dibutuhkan pada Selection dan Looping

Digunakan untuk proses yang detailnya dijelaskan terpisah, misalkan untuk menyatakan prosedur, atau sub program

Digunakan untuk hubungan arus proses yang terputus masih di halaman yang sama

Digunakan untuk hubungan arus proses yang terputus di halaman yang berbeda

Digunakan untuk menghubungan antar simbol/elemen yang lain dan sekaligus menyatakan arah aliran

Digunakan untuk menyatakan operasi memasukkan data/input dan menampilkan data/output

Page 10: PEMROGRAMAN TERSTRUKTUR

IDE PEMROGRAMAN TERSTRUKTURPemrograman yaitu aktivitas membuat program, yaitu menyusun sejumlah perintah yang dikenal komputer

Terstruktur dapat berarti terpola, bentuk yang mengikuti aturan tertentu, juga berarti sesuatu yang sistematis

Orang pertama yang mencetuskan ide pemrograman terstruktur adalah Profesor Edsger W. Dijkstra dari University of Eindhoven, Nederland. Ide utamanya adalah bahwa statemen GOTO sebaiknya tidak digunakan di dalam pemrograman terstruktur, sebab bisa membuat program menjadi ruwet.

Ide ini ditanggapi oleh HD Milis, yang beranggapan bahwa pemrograman terstruktur semestinya tidak hanya dihubungkan dengan tanpa penggunaan GOTO, tetapi yang lebih utama adalah struktur program itulah yang menentukan apakah suatu pemrograman terstruktur atau tidak

Kriteria pemrograman terstruktur :- Struktur programnya; jelas dan tegas - Fasilitas penulisan kode program; jelas

dan tegas - Statemen untuk kebutuhan Selection dan

Looping; lengkap - Fasilitas menyatakan berbagai type data

(struktur data); lengkap dan tegas - Fasilitas pemberian komentar; lengkap - Fasilitas instruksi yang tersedia (operasi

arithmatik/matematik, string, …); lengkap

- Fasilitas modular (baik internal maupun eksternal); lengkap

- Fasilitas debugging, mudah dan jelas

Ide pemrograman terstruktur muncul karena jumlah baris program semakin lama semakin besar, tentu saja hal ini terjadi karena diinginkan aplikasi yang lengkap dan lebih berkualitas

Dengan ide pemrograman terstruktur diharapkan dapat membantu manajemen source code (kode program) sehingga program mudah untuk dikelola bagi kepentingan selanjutnya

Tujuan utama pemrograman terstruktur adalah : agar program-program besar menjadi lebih mudah ditelusuri alur logikanya, mudah untuk dimodifikasi (dikembangkan) dan mudah pula untuk ditemukan bagian yang salah ketika program sedang diuji.

Page 11: PEMROGRAMAN TERSTRUKTUR

FILOSOFIS TERSTRUKTUR

a b c d

- Mana yang susunannya terstruktur (teratur, …)

- Mana yang lebih mudah anda hafalkan

- Jika akan ditambah satu batang lagi, dimana harus diletakkan agar posisinya dapat dinilai benar

- Jika susunannya dirombak, mana yang lebih mudah untuk disusun kembali

Page 12: PEMROGRAMAN TERSTRUKTUR

METODA DASAR PEMROGRAMAN TERSTRUKTUR

Ide awal penerapan pemrograman terstruktur yaitu dengan menghindari penggunaan GOTO untuk melompat ke bagian program tertentu

Kegunaan GOTO untuk melompat ke baris program tertentu, secara umum dapat dibagi ke dalam 2 kelompok :

1.Melompat ke bagian bawah program dari posisi program saat ini

2.Melompat ke bagian atas program dari posisi program saat ini

Dengan pemrograman terstruktur;Jika ada kebutuhan melompat ke bagian bawah, dapat digantikan dengan perintah Selection (If, Case, Select, Switch,…)Jika ada kebutuhan melompat ke bagian atas, dapat digantikan dengan perintah Looping (for, While, repeat-until,…)

Prinsip utamanya adalah, program tidak boleh melompat ke atas, kecuali untuk keperluan pengulangan

Untuk itu dalam pemrograman terstruktur hanya dikenal 3 struktur :

1. Sekuensial, yaitu program yang tidak memiliki lompatan. Baris program dijalankan secara normal (lurus) satu per-satu dari atas ke bawah

2. Selection, yaitu program yang memiliki pilihan apakah harus menjalankan baris program sesuai dengan urutannya atau melompati sejumlah baris program tersebut

3. Looping, yaitu program yang juga mengandung pilihan apakah akan mengulangi program yang sudah pernah dijalankan sebelumnya atau tidak

Page 13: PEMROGRAMAN TERSTRUKTUR

BEBERAPA BENTUK LOGIKA TERSTRUKTUR DENGAN FLOW CHART

1. Struktur urut sederhana (Simple sequence)

2. Struktur 1 pilihan dengan IF-THEN

3. Struktur 2 pilihan dengan IF-THEN-ELSE

Page 14: PEMROGRAMAN TERSTRUKTUR

4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF

4b. Struktur banyak pilihan dengan CASE

LANJUTAN :

Page 15: PEMROGRAMAN TERSTRUKTUR

5. Struktur perulangan FOR

LANJUTAN :

For

6. Struktur perulangan WHILE

7. Struktur perulangan UNTIL

Page 16: PEMROGRAMAN TERSTRUKTUR

STATEMEN KONTROL TERSTRUKTUR : MENYEMBUNYIKAN GOTO

Kondisi

Proses 1a

IF-THEN

true

false

Proses 1

Proses 2

Proses1If {kondisi } then Proses1aEnd if

Proses2

Proses1If {kondisi=false } then goto lompat Proses1aLompat:Proses2

Jika kondisi=true, urutan pelaksanaan :Proses1Proses1aProses2

Jika kondisi=false, urutan pelaksanaan :Proses1Proses2

Analisa :

Page 17: PEMROGRAMAN TERSTRUKTUR

LANJUTAN MENYEMBUNYKAN GOTO

Kondisi

Proses 1b

IF-THEN-ELSE

true

false

Proses 1

Proses 2

Proses1If {kondisi=true } then Proses1b else proses1aend if Proses2

Proses1If {kondisi=true } then goto lompat1 else goto lompat2 Lompat1: Proses1b goto lompat3Lompat2: Proses1aLompat3: Proses2

Jika kondisi=true, urutan pelaksanaan :Proses1Proses1bProses2

Jika kondisi=false, urutan pelaksanaan :Proses1Proses1aProses2

Analisa :

Proses 1a

Page 18: PEMROGRAMAN TERSTRUKTUR

LANJUTAN MENYEMBUNYKAN GOTO

Kondisi1

Proses 2a

IF-THEN-ELSE-IF

true

false

Proses 1

Proses 2d

Proses1If {kondisi1=true } then Proses2a else if {kondisi2=true } then Proses2b else if {kondisi3=true } then Proses2c else Proses2dend ifProses3

Proses1If {kondisi1=true } then goto lompat1 If {kondisi2=true } then goto lompat2If {kondisi3=true } then goto lompat3Goto lompat4Lompat1: Proses2a goto habis Lompat2: Proses2b goto habis Lompat3: Proses2c goto habis Lompat4: proses2dHabis: proses3

Kondisi2

Kondisi3

Proses 2b

Proses 2c

Proses 3

Proses1Case of varKondisi1: Proses2aKondisi2: Proses2bKondisi3: Proses2celse Proses2dend caseProses3

Page 19: PEMROGRAMAN TERSTRUKTUR

LANJUTAN MENYEMBUNYKAN GOTO

Looping : FOR

I=1Ulang : Proses1 Proses2 I=I+1If I<=5 then goto UlangProses3

For I=1 to 5 Proses 1 Proses 2 Next IProses 3

Proses1

Proses2

FOR I=1 to 5

Proses3

Page 20: PEMROGRAMAN TERSTRUKTUR

LANJUTAN MENYEMBUNYKAN GOTO

Looping : WHILE

Ulang :If {kondisi=true} then Proses1 Proses2goto UlangProses3

While {kondisi=true} Proses 1 Proses 2 WendProses 3

While {kondisi}

Proses1

Proses2

Proses3

Page 21: PEMROGRAMAN TERSTRUKTUR

LANJUTAN MENYEMBUNYKAN GOTO

Looping : UNTIL

Ulang : Proses1 Proses2If {kondisi=true} then goto UlangProses3

do Proses 1 Proses 2 Loop Until {kondisi=true}Proses 3Proses1

Proses1

Until {kondisi}

Proses3

Page 22: PEMROGRAMAN TERSTRUKTUR

CONTOH FLOW CHART DENGAN KONTROL LENGKAP :

C=2

C=C=1

C>12

end

start

Page 23: PEMROGRAMAN TERSTRUKTUR

CONTOH FLOW CHART DENGAN BEBERAPA LOMPATAN TIDAK TERSTRUKTUR :

end

start Lompatan tidak terstruktur :

a. Melompat ke bagian yang belum tentu dilewati

b. Melompat keluar dari daerah induknya

Page 24: PEMROGRAMAN TERSTRUKTUR

STRUKTUR DATA DAN PEMROGRAMAN TERSTRUKTUR

• Bahasa pemrograman dengan kemampuan meng-ekspresi-kan semua kebutuhan struktur data akan lebih mendukung pencapaian tujuan dari pemrograman terstruktur

• Bahasa pemrograman yang tidak memiliki fasilitas untuk mengungkapkan struktur data tertentu cendrung mengarahkan kode program ke bentuk yang kurang teratur

• Kemampuan struktur data suatu bahasa pemrograman ditentukan oleh kemampuan fasilitas type data yang dimilikinya

• Type data secara umum terdiri dari :

- Type data dasar standar : Integer, real, string, charakter, dan logic

- Type data dasar tidak standar : sub range, enumerate

- Type data majemuk : set, array, record, file

- Type data dinamis : pointer

Page 25: PEMROGRAMAN TERSTRUKTUR

METODA DESAIN PEMROGRAMAN TERSTRUKTUR

Metode Perancangan Top-down

Metada Perancangan Modular Implementasi internal : Procedure/Subprogram, Function

Implementasi eksternal : file Unit/Header/Modul

Diagram Nassi-Schneiderman

Tabel Decision

Untuk membantu dan menjamin dihasilkannya program yang terstruktur, dapat digunakan beberapa metoda/alat berikut :

Page 26: PEMROGRAMAN TERSTRUKTUR

METODE PERANCANGAN TOP-DOWN

Sub Masalah A Sub Masalah B Sub Masalah C

Masalah Besar

Sub Masalah A1 Sub Masalah A2

B

A

CA1

A2

Masalah utama

Strategi umum dalam penyelesaian masalah besar; kompleks; rumit

Page 27: PEMROGRAMAN TERSTRUKTUR

METODE MODULAR : IMPLEMENTASI TOP-DOWN

……..Call A……..

Call B……..

Call C……..

…….Call A1 …….

Call A2……..

…….…….

…….…….

…….

…….

…….

…….

A

B

C

A1

A2

Bagian Utama

Dapat diterapkan secara :

- Internal : sub program, procedure, function

- Eksternal : file unit, header, modul

Page 28: PEMROGRAMAN TERSTRUKTUR

Statemen1Statemen2Stateme3

ifya tdk

proses1

ifya tdk

proses1

proses2

While kondisi

proses2

proses2

Until kondisi

Mulai

Masukkan Nilai koefisien A

Masukkan Nilai koefisien B

Masukkan Nilai Koefisien C

D = B*B-4*A*C

D<0

Imajiner

Real sama

Real berbeda

D=0

ya tdk

ya tdk

Contoh :

DIAGRAM CHART NASSI-SCHNEIDERMAN

Page 29: PEMROGRAMAN TERSTRUKTUR

TERIMA KASIH [email protected]