0
Cover Bahan Kuliah Teori : Pemrograman Terstruktur [email_address] Herianto
Sistematika Materi <ul><li>Sistematika Materi </li></ul><ul><li>Konsep pemrograman secara umum : </li></ul><ul><ul><li>Per...
Konsep Pemrograman <ul><li>Perkembangan (cara) mem-program komputer : </li></ul><ul><ul><li>Pemrograman dengan mengatur/me...
Ilustrasi  Pemrograman Komputer CPU Programmer Instruksi A Instruksi D Data D Instruksi B Data A Instruksi C Sejumlah Inst...
Sejarah bahasa Pemrograman
Generasi dan Jenis Bahasa Pemrograman <ul><li>Generasi bahasa pemrograman: </li></ul><ul><ul><li>Generasi I :  machine lan...
Perbandingan Bahasa Pemrograman (Umum) (Mc. Connell) Berdasarkan tujuan tertentu : Berdasarkan jumlah instruksi dibandingk...
Proses Pembuatan Aplikasi
Contoh Proses Pembuatan Aplikasi (1) : Permasalahan 1 : Si Upik selalu membeli buah apel untuk dibagikan ke beberapa orang...
Contoh Proses Pembuatan Aplikasi  (2) : Permasalahan 2 : Si Buyung kelas 2 SMU. Oleh guru matematik-nya ia sering diminta ...
Lanjutan <ul><li>AWAL : </li></ul><ul><li>Memasukkan nilai ke A </li></ul><ul><li>Memasukkan nilai ke B </li></ul><ul><li>...
Simbol-simbol untuk menggambarkan Flow Chart Digunakan untuk menunjukkan awal dan akhir program Digunakan untuk memberikan...
Contoh Flow Chart : Start Masukkan data jumlah apel ke var A Masukkan data jumlah anak ke var N C = A / N Tampilkan : Seti...
Ide Pemrograman terstruktur Pemrograman  yaitu aktivitas membuat program, yaitu menyusun sejumlah perintah yang dikenal ko...
Filosofis Terstruktur a b c d <ul><li>Mana yang susunannya terstruktur (teratur, …) </li></ul><ul><li>Mana yang lebih muda...
Metoda dasar pemrograman terstruktur <ul><li>Ide awal penerapan pemrograman terstruktur yaitu dengan menghindari penggunaa...
Beberapa bentuk logika terstruktur dengan flow chart 1. Struktur urut sederhana (Simple sequence) 2. Struktur 1 pilihan de...
Lanjutan : 4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF  4b. Struktur banyak pilihan dengan CASE
Lanjutan : 5. Struktur perulangan FOR  For 6. Struktur perulangan WHILE 7. Struktur perulangan UNTIL
Statemen kontrol terstruktur :  menyembunyikan  goto Kondisi Proses 1a IF-THEN true false Proses 1 Proses 2 Proses1 If {ko...
Lanjutan  menyembunykan goto Kondisi Proses 1b IF-THEN-ELSE true false Proses 1 Proses 2 Proses1 If {kondisi=true } then  ...
Lanjutan menyembunykan goto Kondisi1 Proses 2a IF-THEN-ELSE-IF true false Proses 1 Proses 2d Proses1 If {kondisi1=true }  ...
Lanjutan menyembunykan goto Looping : FOR I=1 Ulang : Proses1 Proses2 I=I+1 If I<=5 then goto  Ulang Proses3 For I=1 to 5 ...
Lanjutan menyembunykan goto Looping : WHILE Ulang : If {kondisi=true} then  Proses1 Proses2 goto  Ulang Proses3 While {kon...
Lanjutan menyembunykan goto Looping : UNTIL Ulang : Proses1 Proses2 If {kondisi=true} then goto  Ulang Proses3 do Proses 1...
Contoh flow chart dengan kontrol lengkap : C=2 C=C=1 C>12 end start
Contoh flow chart dengan beberapa lompatan tidak terstruktur : end start <ul><li>Lompatan tidak terstruktur : </li></ul><u...
Struktur Data dan Pemrograman terstruktur <ul><li>Bahasa pemrograman dengan kemampuan meng-ekspresi-kan semua kebutuhan st...
Tabel Perbandingan Bahasa Pemrograman   (Berdasarkan kriteria pemrograman terstruktur) 4=Baik sekali  3=Baik  2=Cukup  1=K...
Metoda Desain Pemrograman Terstruktur <ul><ul><li>Metode Perancangan Top-down </li></ul></ul><ul><ul><li>Metada Perancanga...
Metode Perancangan Top-down Sub Masalah A  Sub Masalah B  Sub Masalah C  Masalah Besar Sub Masalah A1 Sub Masalah A2 B A  ...
Contoh Top-down : Mahasiswa Dosen  Perkuliahan  Sistem Informasi Akademis Entry data Hapus data Laporan data Entry data Ha...
Metode Modular :  Implementasi Top-down …… .. Call A …… .. Call B …… .. Call C …… .. …… . Call A1 …… . Call A2 …… .. ……. …...
Diagram Chart Nassi-Schneiderman Statemen1 Statemen2 Stateme3 if ya tdk proses1 if ya tdk proses1 proses2 While kondisi pr...
Tabel Decision <ul><li>Langkah Pembuatan : </li></ul><ul><ul><li>Menentukan kondisi yang akan diseleksi </li></ul></ul><ul...
Konversi flow chart ini ke bahasa pemrograman : a.  Basic  atau  foxpro b.  Pascal  atau  C C=2, M=3 C=C+1 C>12 C>M For I=...
Upcoming SlideShare
Loading in...5
×

Pemrograman terstruktur

5,521

Published on

Pemrograman terstruktur RE-UPLOAD

Published in: Education
1 Comment
1 Like
Statistics
Notes
  • manencaro nyimpen ne neh????
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,521
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
308
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Pemrograman terstruktur"

  1. 1. Cover Bahan Kuliah Teori : Pemrograman Terstruktur [email_address] Herianto
  2. 2. Sistematika Materi <ul><li>Sistematika Materi </li></ul><ul><li>Konsep pemrograman secara umum : </li></ul><ul><ul><li>Perkembangan pemrograman komputer </li></ul></ul><ul><ul><li>Sejarah bahasa pemrograman </li></ul></ul><ul><ul><li>Jenis bahasa pemrograman </li></ul></ul><ul><ul><li>Perbandingan bahasa pemrograman </li></ul></ul><ul><li>Ide Pemrograman terstruktur : </li></ul><ul><li>Defenisi, Tujuan, Kriteria </li></ul><ul><li>Metoda dasar pemrograman terstruktur </li></ul><ul><li>GOTOLess : Sekuensial, Selection, Looping </li></ul><ul><li>Perbandingan bahasa pemrograman </li></ul><ul><ul><li>(Berdasarkan kriteria pemrograman terstruktur) </li></ul></ul><ul><li>Metoda desain pemrograman terstruktur </li></ul><ul><li>Modular, TopDown,… </li></ul><ul><li>OOP, Pemrograman berorientasi objek </li></ul><ul><ul><li>(Lebih terstuktur dari ide pemrograman terstruktur ?) </li></ul></ul><ul><li>Struktur pemrograman visual </li></ul>
  3. 3. Konsep Pemrograman <ul><li>Perkembangan (cara) mem-program komputer : </li></ul><ul><ul><li>Pemrograman dengan mengatur/menyambung titik jumper di rangkaian komputer </li></ul></ul><ul><ul><li>Pemrograman dengan langsung menulis kode biner ke memory, direpresentasikan melalui kode hexa, kode biner disebut juga bahasa mesin komputer </li></ul></ul><ul><ul><li>Pemrograman dengan bahasa assembler : Perintah-perintahnya berkaitan langsung dengan struktur internal hardware </li></ul></ul><ul><ul><li>Pemrograman dengan bahasa tingkat tinggi/menengah : Perintah-perintahnya mirip dengan bahasa manusia/english </li></ul></ul><ul><li>Mem-program komputer, secara teknis bertujuan : </li></ul><ul><ul><li>Memasukkan/ menyusun sejumlah instruksi dan data ke memory, yang selanjutnya akan diambil satu persatu oleh CPU/Processor untuk dilaksanakan </li></ul></ul>
  4. 4. Ilustrasi Pemrograman Komputer CPU Programmer Instruksi A Instruksi D Data D Instruksi B Data A Instruksi C Sejumlah Instruksi dan data Mov A,05 Mov B,12 Add A,B Assembly A = 05 + 12 High/Medium Level 3C 05 3D 12 2D Hexa Tool 00011100 00000101 00111101 00010010 00101101 ……… . ……… . ……… . ……… . ……… . 0002 0100 0101 ……… . 0001 0102 0103 Susunan instruksi dan data dalam memory
  5. 5. Sejarah bahasa Pemrograman
  6. 6. Generasi dan Jenis Bahasa Pemrograman <ul><li>Generasi bahasa pemrograman: </li></ul><ul><ul><li>Generasi I : machine language </li></ul></ul><ul><ul><li>Generasi II : assembly language : Asssembler </li></ul></ul><ul><ul><li>Generasi III : high-level programming language: C, PASCAL, dsb. </li></ul></ul><ul><ul><li>Generasi IV : 4 GL (fourth-generation language): Prolog, SQL, Visual tool, dsb </li></ul></ul><ul><li>Jenis bahasa pemrograman berdasarkan metodanya : </li></ul><ul><ul><li>Pemrograman tidak terstruktur : Basica, Fortran, … </li></ul></ul><ul><ul><li>Pemrograman terstruktur : Pascal, C/C++, … </li></ul></ul><ul><ul><li>Pemrograman berorientasi objek : C++, Java, … </li></ul></ul><ul><ul><li>Pemrograman visual : VB, Delphi, … </li></ul></ul><ul><li>Jenis bahasa pemrograman berdasarkan bentuk (corak kode) nya : </li></ul><ul><ul><li>Pemrograman prosedural : Pascal, C, … </li></ul></ul><ul><ul><li>Pemrograman fungsional : Lisp </li></ul></ul><ul><ul><li>Pemrograman deklaratif : Prolog </li></ul></ul><ul><ul><li>Pemrograman berorientasi objek : Java </li></ul></ul><ul><ul><li>Pemrograman prosedural sekaligus berorientasi objek : C++ </li></ul></ul><ul><li>Jenis bahasa pemrograman berdasarkan tujuan (hasil) : </li></ul><ul><ul><li>Pemrograman stand-alone </li></ul></ul><ul><ul><li>Pemrograman client/server </li></ul></ul><ul><ul><li>Pemrograman web : HTML, Script </li></ul></ul><ul><ul><li>Pemrograman jaringan </li></ul></ul><ul><li>Jenis bahasa pemrograman berdasarkan cara penterjemahan : </li></ul><ul><ul><li>Interpreter : Basica, Foxpro, Matlab,… </li></ul></ul><ul><ul><li>Compiler : Turbo Basic, Pascal, C/C++, … </li></ul></ul>
  7. 7. Perbandingan Bahasa Pemrograman (Umum) (Mc. Connell) Berdasarkan tujuan tertentu : Berdasarkan jumlah instruksi dibandingkan dengan assembler (Mc. Connell) Berdasarkan kriteria pemrograman terstruktur : Tabel ini akan dilengkapi selama perkuliahan berlangsung 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 Foxpro C Pascal Basic Bahasa Pemrograman Kriteria
  8. 8. Proses Pembuatan Aplikasi
  9. 9. Contoh Proses Pembuatan Aplikasi (1) : Permasalahan 1 : Si Upik selalu membeli buah apel untuk dibagikan ke beberapa orang anak yatim Ia kesulitan untuk membagi secara adil berapa buah apel setiap anak mendapatkan jika ia beli N buah. Karena sering ia lakukan, ia membutuhkan aplikasi untuk menghitung kebutuhan tersebut. Proses pemecahan : Permasalahan di atas dapat disederhanakan dengan menggambarkan bagaimana dialog di layar komputer yang diharapkan terjadi terhadap aplikasi yang dibutuhkan tersebut : Contoh dialog yang diharapkan : Aplikasi pembagian buah apel Ketik jumlah buah apel yang dibeli : … {ENTER} Ketik jumlah anak yang akan diberi : … {ENTER} Solusi : Setiap anak mendapatkan : … buah apel <ul><li>Dari gambaran tersebut dapat ditentukan bahwa program membutuhkan 2 input dan 1 output. </li></ul><ul><li>Misal kedua input yang dibutuhkan disebut A dan N dan output disebut C. </li></ul><ul><li>Maka secara matematis hubungan input dan output dapat dimodelkan dengan : </li></ul><ul><li>C = A / N </li></ul><ul><li>Contoh data : </li></ul><ul><li>Jika A = 25 dan N = 5, </li></ul><ul><li>maka secara manual dapat dihitung : </li></ul><ul><li>C = 25 / 5 </li></ul><ul><li>C = 5 </li></ul><ul><li>Urutan perhitungan tersebut (algoritma) jika dilakukan komputer adalah : </li></ul><ul><li>Memasukkan nilai ke A </li></ul><ul><li>Memasukkan nilai ke N </li></ul><ul><li>Menghitung C = A / N </li></ul><ul><li>Mencetak hasil C </li></ul>
  10. 10. Contoh Proses Pembuatan Aplikasi (2) : Permasalahan 2 : Si Buyung kelas 2 SMU. Oleh guru matematik-nya ia sering diminta menghitung soal-soal persamaan kuadrat yang jumlahnya lumayan banyak. Si Buyung memang jago matematik, tapi dia juga sedang mendalami pemrograman komputer. Dia tahu kalau masalah di atas dapat diatasi dengan membuatkan aplikasinya. Proses pemecahan : Permasalahan di atas juga dapat disederhanakan dengan menggambarkan bagaimana dialog di layar komputer yang diharapkan terhadap aplikasi tersebut : Contoh dialog yang diharapkan : Aplikasi menghitung persamaan kuadrat Masukkan nilai koefisien A : … {ENTER} Masukkan nilai koefisien B : … {ENTER} Masukkan nilai koefisien C : … {ENTER} Penyelesaian : Solusi merupakan 2 akar real yang berbeda Solusi 1 (X1) = … Solusi 2 (X2) = … Dari dialog tersebut diketahui bahwa program membutuhkan 3 input dan 2 output. Misal kedua input yang dibutuhkan disebut A, B dan C dan output disebut X1 dan X2. Maka secara matematis, dengan menggunakan rumus abc yang telah baku, proses mendapat X1 dan X2 dapat dihitung seperti berikut : X1 = (-b+  D)/2A X2 = (-b-  D)/2A Dimana D = b 2 – 4AC Sebelum menghitung X1 dan X2 perlu diselidiki apakah nilai A=0 atau tidak, sebab pada persamaan kuadrat nilai A tidak boleh 0 Juga harus dihitung terlebih dahulu nilai D, dan diselidiki : Jika D>0; Penyelesaian (X1 dan X2) merupakan nilai real dan berbeda Jika D = 0; penyelesaian (X1 dan X2) merupakan nilai real dan sama (X1=X2) Jika D<0; penyelesaian (X1 dan X2) merupakan nilai imajiner
  11. 11. Lanjutan <ul><li>AWAL : </li></ul><ul><li>Memasukkan nilai ke A </li></ul><ul><li>Memasukkan nilai ke B </li></ul><ul><li>Memasukkan nilai ke C </li></ul><ul><li>Selidiki apakah A=0, jika YA melompat ke AKHIR </li></ul><ul><li>Menghitung nilai D = b 2 – 4AC </li></ul><ul><li>Menyelidiki nilai D, </li></ul><ul><ul><li>Jika D>0 melompat ke REAL_BEDA </li></ul></ul><ul><ul><li>Jika D=0 melompat ke REAL_SAMA </li></ul></ul><ul><ul><li>JIKA D<0 melompat ke IMAJINER </li></ul></ul><ul><li>REAL_BEDA : </li></ul><ul><li>X1 = (-b+  D)/2A </li></ul><ul><li>X2 = (-b-  D)/2A </li></ul><ul><li>Mencetak hasilnya </li></ul><ul><li>Melompat ke AKHIR </li></ul><ul><li>REAL_SAMA : </li></ul><ul><li>X1 = -b / 2A </li></ul><ul><li>X2 = X1 </li></ul><ul><li>Mencetak hasilnya </li></ul><ul><li>Melompat ke AKHIR </li></ul><ul><li>IMAJINER : </li></ul><ul><li>D = absolute(D) </li></ul><ul><li>X1 = -b/2A +  D/2A i </li></ul><ul><li>X2 = -b/2A -  D/2A I </li></ul><ul><li>Mencetak hasilnya </li></ul><ul><li>AKHIR : </li></ul><ul><li>- Menanyakan apakah ingin menghitung lagi, jika YA melompat ke AWAL </li></ul>Proses pemecahan tersebut urutannya (algoritma) adalah : Pembuatan Kode Program : Setelah kita dapatkan algoritma dari permasalahan, maka langkah selanjutnya adalah membuat kode programnya Kode program permasalahan 1 Kode program dari permasalahan 1 di atas bersifat sekuensial murni. Artinya tidak membutuhkan perintah untuk melompat dari satu bagian program ke bagian program lain. Kode program seperti ini sangat mudah untuk membuatnya menggunakan bahasa pemrograman apa pun Kode Program permasalahan 2 Kode program dari permasalahan 2 tidak lagi bersifat sekuensial murni, karena membutuhkan perintah untuk melompat ke bagian program tertentu. Untuk melompat ke bagian program tertentu dapat menggunakan perintah GOTO atau dapat juga dengan menggunakan metoda PEMROGRAMAN TERSTRUKTUR
  12. 12. 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
  13. 13. Contoh Flow Chart : Start Masukkan data jumlah apel ke var A Masukkan data jumlah anak ke var N C = A / N Tampilkan : Setiap anak mendapat C apel end Start Masukkan nilai koefisien A ke var A Masukkan nilai koefisien B ke var B Masukkan nilai koefisien C ke var C A=0 Menanyakan apakah ingin menghitung lagi ? LG end D = b 2 – 4AC D>0 D=0 Hitung penyelesaian real Dengan akar berbeda Hitung penyelesaian real Dengan akar sama Hitung penyelesaian Bilangan imajiner Permasalahan 1 : Permasalahan 2 : LG=Ya
  14. 14. Ide Pemrograman terstruktur Pemrograman 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 Pemrograman Terstruktur berarti : ……………………………………………………… ……………………………………………………… 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 <ul><li>Kriteria pemrograman terstruktur : </li></ul><ul><li>Struktur programnya; jelas dan tegas </li></ul><ul><li>Fasilitas penulisan kode program; jelas dan tegas </li></ul><ul><li>Statemen untuk kebutuhan Selection dan Looping; lengkap </li></ul><ul><li>Fasilitas menyatakan berbagai type data (struktur data); lengkap dan tegas </li></ul><ul><li>Fasilitas pemberian komentar; lengkap </li></ul><ul><li>Fasilitas instruksi yang tersedia (operasi arithmatik/matematik, string, …); lengkap </li></ul><ul><li>Fasilitas modular (baik internal maupun eksternal); lengkap </li></ul><ul><li>Fasilitas debugging, mudah dan jelas </li></ul>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.
  15. 15. Filosofis Terstruktur a b c d <ul><li>Mana yang susunannya terstruktur (teratur, …) </li></ul><ul><li>Mana yang lebih mudah anda hafalkan </li></ul><ul><li>Jika akan ditambah satu batang lagi, dimana harus diletakkan agar posisinya dapat dinilai benar </li></ul><ul><li>Jika susunannya dirombak, mana yang lebih mudah untuk disusun kembali </li></ul>
  16. 16. Metoda dasar pemrograman terstruktur <ul><li>Ide awal penerapan pemrograman terstruktur yaitu dengan menghindari penggunaan GOTO untuk melompat ke bagian program tertentu </li></ul><ul><li>Kegunaan GOTO untuk melompat ke baris program tertentu, secara umum dapat dibagi ke dalam 2 kelompok : </li></ul><ul><ul><li>Melompat ke bagian bawah program dari posisi program saat ini </li></ul></ul><ul><ul><li>Melompat ke bagian atas program dari posisi program saat ini </li></ul></ul>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 <ul><li>Untuk itu dalam pemrograman terstruktur hanya dikenal 3 struktur : </li></ul><ul><ul><li>Sekuensial, yaitu program yang tidak memiliki lompatan. Baris program dijalankan secara normal (lurus) satu per-satu dari atas ke bawah </li></ul></ul><ul><ul><li>Selection, yaitu program yang memiliki pilihan apakah harus menjalankan baris program sesuai dengan urutannya atau melompati sejumlah baris program tersebut </li></ul></ul><ul><ul><li>Looping, yaitu program yang juga mengandung pilihan apakah akan mengulangi program yang sudah pernah dijalankan sebelumnya atau tidak </li></ul></ul>
  17. 17. 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
  18. 18. Lanjutan : 4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF 4b. Struktur banyak pilihan dengan CASE
  19. 19. Lanjutan : 5. Struktur perulangan FOR For 6. Struktur perulangan WHILE 7. Struktur perulangan UNTIL
  20. 20. Statemen kontrol terstruktur : menyembunyikan goto Kondisi Proses 1a IF-THEN true false Proses 1 Proses 2 Proses1 If {kondisi } then Proses1a End if Proses2 Proses1 If {kondisi=false } then goto lompat Proses1a Lompat: Proses2 Jika kondisi=true, urutan pelaksanaan : Proses1 Proses1a Proses2 Jika kondisi=false, urutan pelaksanaan : Proses1 Proses2 Analisa :
  21. 21. Lanjutan menyembunykan goto Kondisi Proses 1b IF-THEN-ELSE true false Proses 1 Proses 2 Proses1 If {kondisi=true } then Proses1b else proses1a end if Proses2 Proses1 If {kondisi=true } then goto lompat1 else goto lompat2 Lompat1: Proses1b goto lompat3 Lompat2: Proses1a Lompat3: Proses2 Jika kondisi=true, urutan pelaksanaan : Proses1 Proses1b Proses2 Jika kondisi=false, urutan pelaksanaan : Proses1 Proses1a Proses2 Analisa : Proses 1a
  22. 22. Lanjutan menyembunykan goto Kondisi1 Proses 2a IF-THEN-ELSE-IF true false Proses 1 Proses 2d Proses1 If {kondisi1=true } then Proses2a else if {kondisi2=true } then Proses2b else if {kondisi3=true } then Proses2c else Proses2d end if Proses3 Proses1 If {kondisi1=true } then goto lompat1 If {kondisi2=true } then goto lompat2 If {kondisi3=true } then goto lompat3 Goto lompat4 Lompat1: Proses2a goto habis Lompat2: Proses2b goto habis Lompat3: Proses2c goto habis Lompat4: proses2d Habis: proses3 Kondisi2 Kondisi3 Proses 2b Proses 2c Proses 3 Proses1 Case of var Kondisi1: Proses2a Kondisi2: Proses2b Kondisi3: Proses2c else Proses2d end case Proses3
  23. 23. Lanjutan menyembunykan goto Looping : FOR I=1 Ulang : Proses1 Proses2 I=I+1 If I<=5 then goto Ulang Proses3 For I=1 to 5 Proses 1 Proses 2 Next I Proses 3 Proses1 Proses2 FOR I=1 to 5 Proses3
  24. 24. Lanjutan menyembunykan goto Looping : WHILE Ulang : If {kondisi=true} then Proses1 Proses2 goto Ulang Proses3 While {kondisi=true} Proses 1 Proses 2 Wend Proses 3 While {kondisi} Proses1 Proses2 Proses3
  25. 25. Lanjutan menyembunykan goto Looping : UNTIL Ulang : Proses1 Proses2 If {kondisi=true} then goto Ulang Proses3 do Proses 1 Proses 2 Loop Until {kondisi=true} Proses 3 Proses1 Proses1 Until {kondisi} Proses3
  26. 26. Contoh flow chart dengan kontrol lengkap : C=2 C=C=1 C>12 end start
  27. 27. Contoh flow chart dengan beberapa lompatan tidak terstruktur : end start <ul><li>Lompatan tidak terstruktur : </li></ul><ul><li>Melompat ke bagian yang belum tentu dilewati </li></ul><ul><li>Melompat keluar dari daerah induknya </li></ul>
  28. 28. Struktur Data dan Pemrograman terstruktur <ul><li>Bahasa pemrograman dengan kemampuan meng-ekspresi-kan semua kebutuhan struktur data akan lebih mendukung pencapaian tujuan dari pemrograman terstruktur </li></ul><ul><li>Bahasa pemrograman yang tidak memiliki fasilitas untuk mengungkapkan struktur data tertentu cendrung mengarahkan kode program ke bentuk yang kurang teratur </li></ul><ul><li>Kemampuan struktur data suatu bahasa pemrograman ditentukan oleh kemampuan fasilitas type data yang dimilikinya </li></ul><ul><li>Type data secara umum terdiri dari : </li></ul><ul><ul><li>Type data dasar standar : Integer, real, string, charakter, dan logic </li></ul></ul><ul><ul><li>Type data dasar tidak standar : sub range, enumerate </li></ul></ul><ul><ul><li>Type data majemuk : set, array, record, file </li></ul></ul><ul><ul><li>Type data dinamis : pointer </li></ul></ul><ul><li>Type data pada Basic : </li></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><li>Type data pada Pascal : </li></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><li>Type data pada C : </li></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><li>Type data pada Foxpro : </li></ul><ul><ul><li>……………………………………………… . </li></ul></ul><ul><ul><li>……………………………………………… . </li></ul></ul>
  29. 29. Tabel Perbandingan Bahasa Pemrograman (Berdasarkan kriteria pemrograman terstruktur) 4=Baik sekali 3=Baik 2=Cukup 1=Kurang TOTAL Kelengkapan pesan (Syntex error, Compile error, Run-time error) Modular external (file kode terpisah) Fungsi-fungsi built-in (string, matematik, grafis, …) Komentar banyak baris Komentar di tengah baris Pointer Set, enumerate, array, record, file Ketegasan susunan deklarasi FOR UNTIL IF-THEN-ELSEIF IF-THEN-ELSE CASE WHILE Ketegasan penggunaan simbol (case sensitif – non case sensitif) Kemudahan memahami pesan kesalahan Modular internal (procedure, function) Operator aritmatik (+,-,*,/,^), operator relasi (<, <=, >, >=, <>),operator logika (AND, OR, NOT),assignment (=) Komentar 1 baris Type dasar (integer, real,char, string, boolean) IF-THEN Kelengkapan simbol untuk penulisan kode Kelengkapan deklarasi elemen program Sub kriteria Fasilitas debugging, mudah dan jelas Fasilitas modular (baik internal maupun eksternal); lengkap Fasilitas instruksi/operasi yang tersedia Fasilitas pemberian komentar; lengkap Fasilitas menyatakan berbagai type data Statemen untuk kebutuhan Selection dan Looping; lengkap Fasilitas penulisan kode program; jelas dan tegas Struktur programnya; jelas dan tegas Foxpro C Pascal Basic Bahasa Pemrograman Kriteria
  30. 30. Metoda Desain Pemrograman Terstruktur <ul><ul><li>Metode Perancangan Top-down </li></ul></ul><ul><ul><li>Metada Perancangan Modular </li></ul></ul><ul><ul><ul><li>Implementasi internal : Procedure/Subprogram, Function </li></ul></ul></ul><ul><ul><ul><li>Implementasi eksternal : file Unit/Header/Modul </li></ul></ul></ul><ul><ul><li>Diagram Nassi-Schneiderman </li></ul></ul><ul><ul><li>Tabel Decision </li></ul></ul>Untuk membantu dan menjamin dihasilkannya program yang terstruktur, dapat digunakan beberapa metoda/alat berikut :
  31. 31. Metode Perancangan Top-down Sub Masalah A Sub Masalah B Sub Masalah C Masalah Besar Sub Masalah A1 Sub Masalah A2 B A C A1 A2 Masalah utama Strategi umum dalam penyelesaian masalah besar; kompleks; rumit
  32. 32. Contoh Top-down : Mahasiswa Dosen Perkuliahan Sistem Informasi Akademis Entry data Hapus data Laporan data Entry data Hapus data Laporan data Entry data Hapus data Laporan data
  33. 33. Metode Modular : Implementasi Top-down …… .. Call A …… .. Call B …… .. Call C …… .. …… . Call A1 …… . Call A2 …… .. ……. ……. ……. ……. ……. ……. ……. ……. A B C A1 A2 Bagian Utama <ul><li>Dapat diterapkan secara : </li></ul><ul><ul><li>- Internal : sub program, procedure, function </li></ul></ul><ul><ul><li>- Eksternal : file unit, header, modul </li></ul></ul>
  34. 34. Diagram Chart Nassi-Schneiderman Statemen1 Statemen2 Stateme3 if ya tdk proses1 if ya 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 :
  35. 35. Tabel Decision <ul><li>Langkah Pembuatan : </li></ul><ul><ul><li>Menentukan kondisi yang akan diseleksi </li></ul></ul><ul><ul><li>Menentukan jumlah kejadian yang mungkin terjadi untuk di-isi pada bagian kondisi </li></ul></ul><ul><ul><li>Menentukan tindakan yang akan dilakukan untuk di-isi pada bagian aksi </li></ul></ul>Contoh : Jika nilai rata-rata >=85 dan jumlah kehadiran mencapai >=90% maka siswa tersebut akan mendapat bonus, jika nilai rata-rata<85 walaupun jumlah kehadiran mencapai >=90% maka siswa tersebut tidak mendapat bonus Latihan : Jika unit yang dipesan untuk barang tertentu sama dengan atau melebihi jumlah minimum dan pemesannya adalah agen, maka akan mendapat potongan. Sebaliknya jika kurang dari jumlah minimum, walaupun pemesannya adalah agen, maka tidak mendapat potongan. Jika persediaan di gudang mencukupi maka unit pesanan dikirim sepenuhnya. Jika persediaan di gudang tidak mencukupi jumlah pesanan, maka unit yang ada akan dikirim sedangkan kekurangannya akan dibuatkan catatan (back order) Aksi Kondisi 4 3 2 1 Rules x x x Tidak mendapat bonus N Y N Y Apakah jumlah kehadiran>=90% x Mendapat bonus N N Y Y Apakah nilai rata2>=85 4 3 2 1 Rules
  36. 36. Konversi flow chart ini ke bahasa pemrograman : a. Basic atau foxpro b. Pascal atau C C=2, M=3 C=C+1 C>12 C>M For I=M to C Next I M=M+1 (I*C)>M I > M C<=M C=M+1 M=C+1 P=C+M M=P+2 M=C+5 C=C+M end start C=C-M T F C=C*M Cetak C Cetak M F T F F T F T C = 37 M = 25
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×