Introduction To Programming & Software Engineering Inggriani Liem (Revisi: Tim Pengajar IF2030 sem 1 2009-2010)
IL- Intro to Programming and Software Engineering
1
Ikhtisar • • • • •
Paradigma Pemrograman Pemrograman dan Bahasa Pemgrograman Pemroses Bahasa Pemrograman dan SW Engineering Alur pengajaran pemrograman di STEI
IL- Intro to Programming and Software Engineering
2
Paradigma Pemrograman • Paradigma : sudut pandang penyelesaian persoalan dengan [program] • Paradigma yang ada : – – – –
Fungsional Prosedural Deklaratif Event driven
- Object Oriented - Relasional - Konkuren - Real time
IL- Intro to Programming and Software Engineering
3
Area Pemrograman • • • • •
Tekstual versus Visual Desktop based versus Internet based Client Server - N-Tier Online versus Batch program Program-program yang berinteraksi dengan "device”, device driver
IL- Intro to Programming and Software Engineering
4
Lingkungan Pemrograman • Lingkungan : editor, kompilasi/interpretasi, run time environment. Mulai dari editor teks sederhana sampai dengan IDE. • Program : source code • Lingkungan pemrograman: – Textual Programming – Visual Programming
IL- Intro to Programming and Software Engineering
5
Pemrograman [1] • Programming tidak sekedar coding • Programming : membuat spesifikasi, implementasi, debugging, testing • Belajar pemrograman tidak sama dengan belajar bahasa pemrograman. Analogi : belajar [tatabahasa, kosa kata] Indonesia dengan belajar menulis makalah ilmiah dalam bahasa Indonesia • Programming : art or science ? IL- Intro to Programming and Software Engineering
6
Pemrograman [2] • Kegiatan dalam pemrograman : – – – –
utak atik, simulasi mencari solusi analisis, pembuatan spesifikasi program writing (coding) Program execution (observation, debugging, testing) – program reading – program correctness & complexity analysis IL- Intro to Programming and Software Engineering
7
Contoh-contoh kesalahan program • 1992, Mary (104 y.o.) from Minnesota received an invitation to attend a kindergarten • A supermarket was fined $1000 for having meat 1 day too long, on Feb 29, 1988. (1988 was a leap year) • 1991 Gulf War, a Scud missile penetrated the patriot antimissile shield and struck a barrack near Dhahran, Saudi Arabia, 28 were killed & 29 wounded. Problem: a cumulative time fault
IL- Intro to Programming and Software Engineering
8
Analogi dengan bidang lain • Pemrograman dengan musik, menyopir mobil, … • Software engineering adalah salah satu bidang engineering yang muda. Akan diceritakan perbandingannya misalnya dengan Civil Engineering, Mechanical Engineering, Electrical Engineering … dan di mana posisi “program” IL- Intro to Programming and Software Engineering
9
Skala dan Kompleksitas Program • Skala Program : relatif – Program kecil (1 file, 50 LoC, ….) – Program Sedang – Program Besar
• Selain skala, perlu diperhatikan kompleksitas program (algoritma kompleks, teknik pemecahan persoalan lanjut : Dynamic Programming, Branch and Bound, Advanced Searching, Advanced Data structure, ..) • Di IF ITB, akan diajar secara berjenjang IL- Intro to Programming and Software Engineering
10
Macam-Macam programmer • End user programmer, coder, component user • Designer (small/medium/large scale SW, enterprise wide) • Frame work and Component provider • CASE Tools programmer • System programmer • Tester IL- Intro to Programming and Software Engineering
11
Bahasa-bahasa Pemrograman • • • • •
Fortran, Cobol, PL/1 LISP, Scheme Prolog Pascal, Basic, C, Ada Simula, Eiffel, Java, C++, C# • VB, Delphi-Pascal • Visual C++
• • • • •
Javascript, VBScript HTML, XML, ASP, PHP, SQL Perl, Phyton B, Z, OZ, TCOZ
Tahukah anda, bahwa ada lebih dari 500 bahasa pemrograman di dunia ???
IL- Intro to Programming and Software Engineering
12
Pemroses Bahasa • Compiler : menghasilkan object code, yang kemudian di link oleh linker menjadi executable code • Interpreter : menerjemahkan dan melaksanakan instruksi demi instruksi • Masing-masing punya kelebihan dan kekurangan.
IL- Intro to Programming and Software Engineering
13
SW Engineering [IEEE std 610.12-1990] 1) The application of a systematic disciplined, quantifiable approach to the development, operation and maintenance of software (2) The study of approached as in (1)
IL- Intro to Programming and Software Engineering
14
Software Engineering • Aplikasi dari proses engineering terhadap "program". Biasanya program skala "besar". Analogi: civil engineering, mechanical engineering, chemical engineering…. • Program (source code) tidak sama dengan "software". Analogi: rumah & pencakar langit • Software product : source code dengan dokumentasi [analisis, rancangan, implementasi, testing, versi, pengelolaan projek]
IL- Intro to Programming and Software Engineering
15
Software Life Cycle • Penentuan kebutuhan [requirement] • Analisis, rancangan program • Cancangan implementasi [dalam suatu environment, tools tertentu] • Coding & debugging • Testing • Integration [untuk program skala besar] • Maintenance IL- Intro to Programming and Software Engineering
16
Alur Pengajaran Pemrograman Di udinus Dasar Pemrograman Algoritma dan Pemrograman Struktur Data
Pemrograman berorientasi object
Kuliah-kuliah lain
Rekayasa Perangkat Lunak
Strategi Dan Analisa Algoritma
Alur Khusus Alur Umum
1
Pertanyaan???
IL- Intro to Programming and Software Engineering
18