410 likes | 1.23k Views
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
E N D
PEMROGRAMAN TERSTRUKTUR Oleh MunawarAsikin
SISTEMATIKA MATERI • Konseppemrogramansecaraumum : • Perkembanganpemrogramankomputer • Sejarahbahasapemrograman • Jenisbahasapemrograman • Perbandinganbahasapemrograman • IdePemrogramanterstruktur : Defenisi, Tujuan, Kriteria • Metodadasarpemrogramanterstruktur GOTOLess: Sekuensial, Selection, Looping • Perbandinganbahasapemrograman • (Berdasarkankriteriapemrogramanterstruktur) • Metodadesainpemrogramanterstruktur Modular, TopDown,… • OOP, Pemrogramanberorientasiobjek • (Lebihterstukturdariidepemrogramanterstruktur ?) • Strukturpemrograman visual
KonsepPemrograman • Mem-program komputer, secarateknisbertujuan : • Memasukkan/ menyusunsejumlahinstruksidan data ke memory, yang selanjutnyaakandiambilsatupersatuoleh CPU/Processor untukdilaksanakan Perkembangan (cara) mem-program komputer : • Pemrogramandenganmengatur/menyambungtitik jumper dirangkaiankomputer • Pemrogramandenganlangsungmenuliskodebinerke memory, direpresentasikanmelaluikodehexa, kodebinerdisebutjugabahasamesinkomputer • Pemrogramandenganbahasa assembler : Perintah-perintahnyaberkaitanlangsungdenganstruktur internal hardware • Pemrogramandenganbahasatingkattinggi/menengah : Perintah-perintahnyamiripdenganbahasamanusia/english
Ilustrasi Pemrograman Komputer 0001 ………. 0002 ………. ………. 00011100 0100 00000101 0101 00111101 0102 00010010 0103 00101101 ………. ………. ………. Susunan instruksi dan data dalam memory Instruksi A Programmer Data D Instruksi D Tool Instruksi B Instruksi C Data A Sejumlah Instruksi dan data CPU High/Medium Level Hexa Assembly 3C 05 3D 12 2D Mov A,05 Mov B,12 Add A,B A = 05 + 12
GenerasidanJenisBahasaPemrograman • Generasibahasapemrograman: • 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 • Jenisbahasapemrogramanberdasarkanbentuk (corakkode) nya : • Pemrogramanprosedural : Pascal, C, • Pemrogramanfungsional : Lisp • Pemrogramandeklaratif : Prolog • Pemrogramanberorientasiobjek : Java • Pemrogramanproseduralsekaligusberorientasiobjek : C++ • Jenisbahasapemrogramanberdasarkanmetodanya : • Pemrogramantidakterstruktur : Basica, Fortran, … • Pemrogramanterstruktur : Pascal, C/C++, … • Pemrogramanberorientasiobjek : C++, Java, … • Pemrograman visual : VB, Delphi, … • Jenisbahasapemrogramanberdasarkantujuan (hasil) : • Pemrograman stand-alone • Pemrograman client/server • Pemrograman web : HTML, Script • Pemrogramanjaringan • Jenisbahasapemrogramanberdasarkancarapenterjemahan : • Interpreter : Basica, Foxpro, Matlab,… • Compiler : Turbo Basic, Pascal, C/C++, …
Jenis Program Bahasa PerbandinganBahasaPemrograman(Umum) Bahasa Terbaik Rasio Bahasa Terburuk Data terstruktur Assembler ADA, C /C++, PASCAL 1: 1 Assembler, BASIC ADA Proyek cepat BASIC 1 : 4.5 PASCAL, ADA, Assembler Eksekusi cepat Quick / Turbo / Basic Assembler, C 1 : 5 BASIC, Intrepreter Language Kalkulasi matematika C FORTRAN 1 : 2.5 PASCAL FORTRAN Menggunakan memori dinamis PASCAL, C 1 : 3 BASIC Lingkungan bermemori terbatas PASCAL BASIC, Assembler, C 1 : 3.5 FORTRAN Program real-time ADA, Assembler, C BASIC, FORTRAN Manipulasi string BASIC, PASCAL C Program mudah dikelola PASCAL, ADA C, FORTRAN Berdasarkan tujuan tertentu : Berdasarkanjumlahinstruksidibandingkandengan assembler
Simbol-simboluntukmenggambarkan Flow Chart Digunakanuntukproses yang detailnyadijelaskanterpisah, misalkanuntukmenyatakanprosedur, atau sub program Digunakan untuk menunjukkan awal dan akhir program Digunakanuntukmemberikannilaiawal (inisial) padasuatuvariabelatau counter Digunakanuntukhubunganarusproses yang terputusmasihdihalaman yang sama Digunakan untuk proses, pengolahan arithmatik, dan pemindahan data Digunakanuntukhubunganarusproses yang terputusdihalaman yang berbeda Digunakan untuk mewakili operasi perbandingan logika yang dibutuhkan pada Selection dan Looping Digunakanuntukmenghubunganantarsimbol/elemen yang lain dansekaligusmenyatakanarahaliran Digunakan untuk menyatakan operasi memasukkan data/input dan menampilkan data/output
Ide Pemrograman terstruktur Idepemrogramanterstrukturmunculkarenajumlahbaris program semakin lama semakinbesar, tentusajahaliniterjadikarenadiinginkanaplikasi yang lengkapdanlebihberkualitas Denganidepemrogramanterstrukturdiharapkandapatmembantumanajemensource code(kode program) sehingga program mudahuntukdikelolabagikepentinganselanjutnya Tujuanutamapemrogramanterstrukturadalah : agar program-program besarmenjadilebihmudahditelusurialurlogikanya, mudahuntukdimodifikasi (dikembangkan) danmudah pula untukditemukanbagian yang salahketika program sedangdiuji. Pemrogramanyaituaktivitasmembuat program, yaitumenyusunsejumlahperintah yang dikenalkomputer Terstrukturdapatberartiterpola, bentuk yang mengikutiaturantertentu, jugaberartisesuatu yang sistematis Orangpertama yang mencetuskanidepemrogramanterstrukturadalahProfesorEdsger W. Dijkstradari University of Eindhoven, Nederland. Ideutamanyaadalahbahwastatemen GOTO sebaiknyatidakdigunakandidalampemrogramanterstruktur, sebabbisamembuat program menjadiruwet. Ideiniditanggapioleh HD Milis, yang beranggapanbahwapemrogramanterstruktursemestinyatidakhanyadihubungkandengantanpapenggunaan GOTO, tetapi yang lebihutamaadalahstruktur program itulah yang menentukanapakahsuatupemrogramanterstrukturatautidak • Kriteriapemrogramanterstruktur : • Strukturprogramnya; jelasdantegas • Fasilitaspenulisankode program; jelasdantegas • Statemenuntukkebutuhan Selection dan Looping; lengkap • Fasilitasmenyatakanberbagai type data (struktur data); lengkapdantegas • Fasilitaspemberiankomentar; lengkap • Fasilitasinstruksi yang tersedia (operasiarithmatik/matematik, string, …); lengkap • Fasilitas modular (baik internal maupuneksternal); lengkap • Fasilitas debugging, mudahdanjelas
Filosofis Terstruktur a b c d • Mana yang susunannyaterstruktur (teratur, …) • Mana yang lebihmudahandahafalkan • Jikaakanditambahsatubatanglagi, dimanaharusdiletakkan agar posisinyadapatdinilaibenar • Jikasusunannyadirombak, mana yang lebihmudahuntukdisusunkembali
Metoda dasar pemrograman terstruktur • Ideawalpenerapanpemrogramanterstrukturyaitudenganmenghindaripenggunaan GOTO untukmelompatkebagian program tertentu • Kegunaan GOTO untukmelompatkebaris program tertentu, secaraumumdapatdibagikedalam 2 kelompok : • Melompatkebagianbawah program dariposisi program saatini • Melompatkebagianatas program dariposisi program saatini • Untukitudalampemrogramanterstrukturhanyadikenal 3 struktur : • Sekuensial, yaitu program yang tidakmemilikilompatan. Baris program dijalankansecara normal (lurus) satu per-satudariataskebawah • Selection, yaitu program yang memilikipilihanapakahharusmenjalankanbaris program sesuaidenganurutannyaataumelompatisejumlahbaris program tersebut • Looping, yaitu program yang jugamengandungpilihanapakahakanmengulangi program yang sudahpernahdijalankansebelumnyaatautidak Denganpemrogramanterstruktur; Jikaadakebutuhanmelompatkebagianbawah, dapatdigantikandenganperintah Selection (If, Case, Select, Switch,…) Jikaadakebutuhanmelompatkebagianatas, dapatdigantikandenganperintah Looping (for, While, repeat-until,…) Prinsiputamanyaadalah, program tidakbolehmelompatkeatas, kecualiuntukkeperluanpengulangan
Beberapa bentuk logika terstruktur dengan flow chart 1. Struktur urut sederhana (Simple sequence) 3. Struktur 2 pilihan dengan IF-THEN-ELSE 2. Struktur 1 pilihan dengan IF-THEN
Lanjutan : 4b. Struktur banyak pilihan dengan CASE 4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF
Lanjutan : 5. Struktur perulangan FOR 6. Struktur perulangan WHILE For 7. Struktur perulangan UNTIL
Statemen kontrol terstruktur : menyembunyikan goto IF-THEN Proses1 If {kondisi=false } then goto lompat Proses1a Lompat: Proses2 Proses 1 Kondisi true Proses1 If {kondisi } then Proses1a End if Proses2 false Proses 1a Proses 2 Analisa : Jika kondisi=true, urutan pelaksanaan : Proses1 Proses1a Proses2 Jika kondisi=false, urutan pelaksanaan : Proses1 Proses2
Lanjutan menyembunykan goto Proses1 If {kondisi=true } then goto lompat1 else goto lompat2 Lompat1: Proses1b goto lompat3 Lompat2: Proses1a Lompat3: Proses2 IF-THEN-ELSE Proses 1 Kondisi true Proses1 If {kondisi=true } then Proses1b else proses1a end if Proses2 false Proses 1b Proses 1a Proses 2 Analisa : Jika kondisi=false, urutan pelaksanaan : Proses1 Proses1a Proses2 Jika kondisi=true, urutan pelaksanaan : Proses1 Proses1b Proses2
Lanjutan menyembunykan goto IF-THEN-ELSE-IF 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 Proses1 If {kondisi1=true } then Proses2a else if {kondisi2=true } then Proses2b else if {kondisi3=true } then Proses2c else Proses2d end if Proses3 Proses 1 Kondisi1 true Proses 2a false Kondisi2 Proses 2b Proses1 Case of var Kondisi1: Proses2a Kondisi2: Proses2b Kondisi3: Proses2c else Proses2d end case Proses3 Kondisi3 Proses 2c Proses 2d Proses 3
Lanjutan menyembunykan goto Looping : FOR For I=1 to 5 Proses 1 Proses 2 Next I Proses 3 FOR I=1 to 5 Proses1 Proses2 I=1 Ulang : Proses1 Proses2 I=I+1 If I<=5 then goto Ulang Proses3 Proses3
Lanjutan menyembunykan goto Looping : WHILE While {kondisi=true} Proses 1 Proses 2 Wend Proses 3 While {kondisi} Proses1 Ulang : If {kondisi=true} then Proses1 Proses2 goto Ulang Proses3 Proses2 Proses3
Lanjutan menyembunykan goto Looping : UNTIL do Proses 1 Proses 2 Loop Until {kondisi=true} Proses 3 Proses1 Proses1 Ulang : Proses1 Proses2 If {kondisi=true} then goto Ulang Proses3 Until {kondisi} Proses3
Contoh flow chart dengan kontrol lengkap : start C=2 C=C=1 C>12 end
Contoh flow chart dengan beberapa lompatan tidak terstruktur : • Lompatan tidak terstruktur : • Melompat ke bagian yang belum tentu dilewati • Melompat keluar dari daerah induknya start end
Struktur Data danPemrogramanterstruktur • Bahasapemrogramandengankemampuanmeng-ekspresi-kansemuakebutuhanstruktur data akanlebihmendukungpencapaiantujuandaripemrogramanterstruktur • Bahasapemrograman yang tidakmemilikifasilitasuntukmengungkapkanstruktur data tertentucendrungmengarahkankode program kebentuk yang kurangteratur • Kemampuanstruktur data suatubahasapemrogramanditentukanolehkemampuanfasilitas type data yang dimilikinya • Type data secaraumumterdiridari : • Type data dasarstandar : Integer, real, string, charakter, dan logic • Type data dasartidakstandar : sub range, enumerate • Type data majemuk : set, array, record, file • Type data dinamis : pointer
MetodaDesainPemrogramanTerstruktur Untuk membantu dan menjamin dihasilkannya program yang terstruktur, dapat digunakan beberapa metoda/alat berikut : • Metode Perancangan Top-down • Metada Perancangan Modular • Implementasi internal : Procedure/Subprogram, Function • Implementasi eksternal : file Unit/Header/Modul • Diagram Nassi-Schneiderman • Tabel Decision
Metode Perancangan Top-down Masalah Besar Sub Masalah A Sub Masalah B Sub Masalah C Sub Masalah A2 Sub Masalah A1 Masalah utama B C A A1 A2 Strategi umum dalam penyelesaian masalah besar; kompleks; rumit
Metode Modular : Implementasi Top-down Bagian Utama A A1 ……. Call A1 ……. Call A2 …….. ……. ……. …….. Call A …….. Call B …….. Call C …….. B A2 ……. ……. ……. ……. C ……. ……. • Dapat diterapkan secara : • - Internal : sub program, procedure, function • - Eksternal : file unit, header, modul
Diagram Chart Nassi-Schneiderman Statemen1 While kondisi Statemen2 proses2 Stateme3 proses2 Until kondisi Contoh : if ya tdk Mulai Masukkan Nilai koefisien A proses1 Masukkan Nilai koefisien B Masukkan Nilai Koefisien C D = B*B-4*A*C if ya tdk D<0 ya tdk proses1 proses2 D=0 ya tdk Imajiner Real berbeda Real sama
TERIMA KASIH • munawar@stis.ac.id