Dokumen tersebut membahas tentang konsep pemrograman terstruktur, termasuk definisi, tujuan, kriteria, dan metode dasarnya seperti sekuensial, seleksi, dan looping.
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
OPTIMASI_PEMROGRAMAN_TERSTRUKTUR
1. Cover Bahan Kuliah Teori : Pemrograman Terstruktur [email_address] Herianto
2.
3.
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
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
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.
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. 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.
15.
16.
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. Lanjutan : 4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF 4b. Struktur banyak pilihan dengan CASE
19. Lanjutan : 5. Struktur perulangan FOR For 6. Struktur perulangan WHILE 7. Struktur perulangan UNTIL
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. 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. 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. 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. 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. 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
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.
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. 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.
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.
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