Pengenalan Pemrograman (Lanjutan) Dasar Pemrograman (Data) Pertemuan 02
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 1
Overview • • • •
Deskripsi Tujuan Referensi Materi – – – –
Pemrograman Terstruktur Bahasa C++ Identifier Data
• Tutorial 01 (Data) Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 2
1
Deskripsi • Pada pertemuan ini akan dibahas mengenai pemrograman terstruktur, bahasa C/C++ sebagai tool pemrograman terstruktur, serta representasi data
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 3
Tujuan 1. 2. 3. 4.
Pemrograman Terstruktur I IF-UTAMA
Setelah mengikuti dan mempelajari materi ini mahasiswa diharapkan dapat : Mengetahui apa pemrograman terstruktur dan dapat membedakannya dengan pemrograman yang lain Mengetahui tahapan pembuatan program terstruktur Mengenal Bahasa C/C++ sebagai tool pemrograman terstruktur Mengetahui dan menggunakan Representasi data
Ver/Rev : 1/0
II - 4
2
Referensi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Pemrograman Terstruktur I IF-UTAMA
Sugiyono, Ir., “Pemrograman Terstruktur untuk Pelajar & Mahasiswa”, Panji Gumilang Press, Kuningan, 2005 Wahana Komputer, “Seri Buku Pintar – Menjadi Seorang Programmer Komputer” Andi, Yogyakarta, 2006 http://lecturer.ukdw.ac.id/anton/algoritmaTI.php, Tanggal Akses : 23 Agustus 2007 http://lecturer.ukdw.ac.id/anton/algostrukdat1.php, Tanggal Akses : 23 Agustus 2007 Herianto, “Presentasi Pemrograman Terstruktur.ppt”,Pertemuan 1 Mata Kuliah Pemrograman Terstruktur, Teknik Informatika, ITS http://www.lcusd.net/lchs/dclausen/,Tanggal Akses : 13 Agustus 2007 www.nvcc.edu/home/joney/CH01%20INTRODUCTION%20TO%20STRUCTURED% 20DESIGN.PPT, Tanggal Akses : 13 Agustus 2007 Yatini B., Indra;Nasution, Erliansyah, “Algoritma & Struktur Data dengan C++, Graha Ilmu,Yogyakarta, 2005 (bab 1) Deitel, H.M. and Deitel, P.J., “C++ How to Program, 2nd Edition”, Prentice Hall, 1994 (Bab 19) Deitel, H.M. and Deitel, P.J., “C How to Program, 4nd Edition”, Prentice Hall, 2004 (bab 10) Kadir, Abdul, “Pemrograman C++ Membahas Pemrograman Berorientasi Objek Menggunakan Turbo C++ dab Borland C++”, Andi, Yogyakarta, 2003 (bab 11) Shalahuddi, M.;A. S., Rosa, “ C++ dan Java dari Nol Menjadi Andal”, Informatika, 2007 [Bab 2] www.ilmukomputer.com Ver/Rev : 1/0
II - 5
Pemrograman Terstruktur
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 6
3
Definisi •
•
•
Pemrograman Terstruktur I IF-UTAMA
Pemrograman Terstruktur adalah program dimana jika suatu proses telah mencapai titik tertentu, maka proses selanjutnya tidak boleh kembali ke proses sebelumnya, kecuali untuk proses looping. A way of programming that uses only three basic patterns of logic (Simple sequence control structure, IF-THEN-ELSE control structure, and DO-WHILE control structure), referred to as control structures Deitel : a disciplined approach to writing a programs that are clearer than unstructured programs, easier to test and debug and easier to modify
Ver/Rev : 1/0
II - 7
Ide Dasar • •
Jumlah baris program semakin lama semakin besar Menghindari penggunaan GOTO untuk melompat ke bagian program tertentu. Untuk mengatasinya – Sequene program yang tidak memiliki lompatan. Baris program dijalankan secara normal (lurus) satu per-satu dari atas ke bawah – Selection program yang memiliki pilihan apakah harus menjalankan baris program sesuai dengan urutannya atau melompati sejumlah baris program tersebut – Looping program yang juga mengandung pilihan apakah akan mengulangi program yang sudah pernah dijalankan sebelumnya atau tidak
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 8
4
Tujuan •
To make computer programs – – – –
• • • • • Pemrograman Terstruktur I IF-UTAMA
Easier to read Easier to debug Easier to understand Easier to maintain
To allow programmers to work as a team To reduce testing time To increase programming productivity To increase clarity by reducing the programs complexity To decrease maintenance and effort Ver/Rev : 1/0
II - 9
Kriteria • • • • • • • •
Pemrograman Terstruktur I IF-UTAMA
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
Ver/Rev : 1/0
II - 10
5
The Process of Structured Programming
(Program Development Life Cycle – PDLC) 1. 2. 3. 4. 5. 6.
Analysis, Specification Algorithm Design User Interface Design Code the program Test the program
Input Output Processing
– Desk check – Run the program, using sample data – Debug the program (all paths) • Categorizing errors • Identifying and Correcting Errors 7. Interpretation 8. Documentation 9. Implement the New System 10. Evaluate the New System
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
Synatx Error Compiler Error Run Time Error Logic Error
II - 11
Bahasa C++
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 12
6
Sejarah
++ 1980 dibuat oleh Bjarrne Stroustrup 1998 distandarisasi oleh International Standard Organization (ISO) dan American National Standards Institute (ANSI)
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 13
Prinsip Kerja C++
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 14
7
Struktur Bahasa C++ #include
Preprocessor Directive
Fungsi lain()
Prototipe fungsi
Deklarasi variabel global;
Pendeklarasian variable global
<Tipe Data/void> main() { Deklarasi Variabel Lokal; Statemen-statemen; }
Fungsi/program utama
<Tipe Data/void> Fungsi Lain() { Deklarasi Variabel Lokal; Statemen-statemen; }
Fungsi lain
Pemrograman Terstruktur I IF-UTAMA
Pendeklarasian variable lokal Isi fungsi/program Utama
Pendeklarasian variable lokal Isi fungsi lain
Ver/Rev : 1/0
II - 15
Kelebihan • • • • • • •
Merupakan Compiler Banyak fasilitas untuk memanipulasi operator dan fungsi Tersedia hampir disemua jenis komputer Bersifat protabel Banyak fasilitas untuk memanipulasi operator dan fungsi Struktur penulisan bahasa yang terstruktur. Bahasa tingkat tinggi yang mempunyai kemampuan seperti bahasa tingkat rendah (seperti dapat memanipulasi data dalam bentuk bit). • Dibandingkan dengan bahasa tingkat tinggi lainya bahasa C++ mempunyai kecepatan eksekusi yang cepat. • Mendukung bahasa pemrograman berorientasi obyek • Kode yang ditulis menggunakan C++ bersifat reusable
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 16
8
Kekurangan • Karena bahasa ini sangat fleksibel maka bagi pemula bahasa C++ akan sangat membingungkan. • Bahasa C++ masih tergantung pada operating-sistemnya. Hal ini yang kemudian memicu terciptanya bahasa JAVA, bahasa multiplatform.
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 17
Identifier
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 18
9
Definisi • Suatu pengenal atau pengidentifikasi data yang kita deklarasikan agar kompiler dapat mengenalinya • Terdiri dari : – Konstanta – Variabel
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 19
Konstanta • Cara Pendeklarasian (kecuali karakter Escape) – const = ; – Tipe_data nama_konstanta = nilai konstanta; – # define ; • Bentuk : – Konstanta Numerik Integer (ex : 43, 123, -123, dll) – Konstanta Numerik Pecahan (ex : -123.0,0.75, 12.34e29, 12.34e-29, dll) – Konstanta Karakter (ex : ‘a’, ‘b’, dll) – Konstanta String (ex : “Danang”, “Keren”) – Konstanta Karakter Escape(next slide)
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 20
10
Konstanta Karakter Ecape
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 21
Variabel • •
Cara Pendeklarasian <Tipe_data> ; Lingkup Variabel – Variabel Lokal/Otomatis (dikenali/ hanya dapat digunakan di satu blok fungsi saja) – Variabel Global/Eksternal (dikenali/dapat digunakan di seluruh blok program) – Variabel Statis (Variabel yang menempati ruang memori komputer secara permanen), cara pendeklarasian : static tipe_data nama_variabel; – Variabel Register(Variabel biasa yang berada di memori komputer dan disimpan di register CPU), cara pendeklarasian : register tipe_data nama_variabel;
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 22
11
Aturan Penamaan Identifier •
• • • • •
Pemrograman Terstruktur I IF-UTAMA
Nama harus Interpretatif (mencerminkan nilai instrinsik atau fungsi yang dikandungnya). Cari nama yang sederhana untuk variabel yang digunakan dalam waktu singkat serta hindari salah ejaan dan imbuhan yang tidak berarti. Hindari memilih nama-nama lucu yang kurang berarti atau tidak berhubungan dengan permasalahan. Hindari memilih nama yang terlalu mirip Hindari menggunakan huruf ”I” kecil, ”L” kecil dan ”O” kecil, agar tidak rancu dengan penulisan angka 1 (satu) dan 0 (nol) C dan C++ bersifat Case sensitive (huruf besar dan kecil dibedakan) Harus dimulai dengan huruf alfabet dan tidak boleh berupa atau diawali angka, simbol dan kata kunci Tanda underscore “_” digunakan untuk memisahkan nama yang terdiri dari 2 kata atau lebih Panjang nama variabel & konstanta tidak dibatasi, namun hindari penamaan yang terlalu panjang untuk mempercepat proses pembuatan progam Ver/Rev : 1/0
II - 23
Tipe Data
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 24
12
Tipe Data Dasar
Angka
Bilangan Bulat
int, long int, short int, unsigned int, signed int, unsigned char
Bilangan Real
float, double, long double
Karakter
char
Huruf
Kata/String Logika bool Tanpa Nilai void Pemrograman Terstruktur I IF-UTAMA
char ….[jumlah huruf]
Ver/Rev : 1/0
II - 25
Tipe Data Dasar Tipe
Rentang
Format
1 byte
-128 s.d. 127
%c %s
2 byte
-32768 s.d. 32767
4 byte
-2147483648 s.d. 2147483648
float
4 byte
-3.4x10-38 s.d. 3.4x1038
%f
Bilangan real
double
8 byte
-1.7x10-308 s.d. 1.7x10308
%lf
Bilangan real
void
0
-
-
Tek bertipe
bool
1 byte
True/false
-
Tipe logika (C++ di atas versi 4.5)
char
int
Pemrograman Terstruktur I IF-UTAMA
Ukuran
Ver/Rev : 1/0
%d atau %e
Keterangan Karakter ASCI string Bilangan bulat Platform Win32
II - 26
13
Tipe Data Modifikasi (1) Tipe
Ukuran
Rentang
Format
long int
4 byte
-2147483648 s.d. 2147483648
%ld
Bilangan bulat
long double
10 byte
-3.4x10-4932 s.d. 3.4x104932
%Lf
Bilangan real
short int
1 byte
-128 s.d. 127
%hd
Bilangan bulat
signed char
1 byte
-128 s.d. 127
Bilangan bulat
-32768 s.d. 32767
Bilangan bulat
signed int/signed 2 byte short int
Pemrograman Terstruktur I IF-UTAMA
Keterangan
Ver/Rev : 1/0
II - 27
Tipe Modifikasi (2) Tipe
Ukuran
signed long 4 byte /signed long int unsigned char
1 byte
Rentang
Keterangan
-2147483648 s.d. 2147483687
Bilangan bulat
0 s.d. 255
Bilangan bulat
unsigned int 2 byte /unsigned short int
0 s.d. 65535
unsigned long 4 byte /unsigned long int
0 s.d. 429467295
Pemrograman Terstruktur I IF-UTAMA
Form at
Ver/Rev : 1/0
%u
Bilangan bulat Bilangan bulat
II - 28
14
Tipe Data Bentukan • Struktur/Record, Cara pendeklarasiannya adalah : struct{ ; ; ……… ; }; ex : struct {
int Hari; int Bulan; int Tahun; } Tanggal; Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 29
Tipe Data Bentukan • Union, cara pendeklarasiannya adalah : union{ ; ; ……… ; }; ex : union Tanggal {
int i; int j; }; Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 30
15
Tipe Data Bentukan • Struktur Bit-field, cara pendeklarasiannya adalah : struct{ int/unsigned : <panjang bit-field 1>; int/unsigned : <panjang bit-field 2>; ……… int/unsigned : <panjang bit-field n>; };
ex : struct { unsigned bit_0:1; unsigned bit_1:1; … unsigned bit_7:1; } Info_bit; Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 31
Tipe Data Bentukan • enum (Enumerasi), cara pendeklarasiannya adalah : enum{ data 1, data2, ………, data n } ; ex : enum{Senin,Selasa,Rabu,Kamis,Jum’at,Sabtu,Minggu} Hari; • Typedef, cara pendeklarasiannya adalah : typedef ; ex : typedef unsigned char Byte; typedef char[255] String; • Array (dibahas lebih lanjut pada pertemuan 6, 7 & 9) • File (dibahas lebih lanjut pada pertemuan 14 & 15) • List/Pointer (dibahas lebih lanjut pada Pemrograman II)
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 32
16
Operator
Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 33
Operator • Sifat Operator – Unary (Melibatkan sebuah operand, ex : -1) – Binary (Melibatkan dua buah operand, ex: 1+2) – Ternary (Melibatkan tiga buah atau lebih operand, ex (a>b)?a:b) • Jenis Operator – Operator Assigment (=) – Operator Aritmatika (*, /, %, +, -) – Operator Biner/Bitwise (<<, >>, &, |, ^, ~) – Operator Logika (&&, ||,!) – Operator Perbandingan/Relasi (==, !=, >, >=, <, <=) – Operator Unary (-,+, ++, --, ~, !, &, *, sizeof) – Operator Assigment Kombinasi/Majemuk (+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=) Pemrograman Terstruktur I IF-UTAMA
Ver/Rev : 1/0
II - 34
17