Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 1
Pengenalan Pemrograman (Lanjutan)
Dasar Pemrograman (Data)
Pertemuan 02
Overview
• Deskripsi
• Tujuan
• Referensi
• Materi
– Pemrograman Terstruktur
– Bahasa C++
– Identifier
– Data
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 3
Deskripsi
• Pada
pertemuan
ini
akan
dibahas
mengenai
pemrograman
terstruktur,
bahasa
C/C++
sebagai
tool
pemrograman
terstruktur,
serta
representasi data
Tujuan
Setelah mengikuti dan mempelajari materi ini
mahasiswa diharapkan dapat :
1. Mengetahui apa pemrograman terstruktur dan
dapat membedakannya dengan pemrograman
yang lain
2. Mengetahui
tahapan
pembuatan
program
terstruktur
3. Mengenal
Bahasa
C/C++ sebagai
tool
pemrograman terstruktur
4. Mengetahui dan menggunakan Representasi
data
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 5
Referensi
1. Sugiyono, Ir., “Pemrograman Terstruktur untuk Pelajar & Mahasiswa”, Panji Gumilang Press, Kuningan, 2005
2. Wahana Komputer, “Seri Buku Pintar – Menjadi Seorang Programmer Komputer” Andi, Yogyakarta, 2006
3. http://lecturer.ukdw.ac.id/anton/algoritmaTI.php, Tanggal Akses : 23 Agustus 2007
4. http://lecturer.ukdw.ac.id/anton/algostrukdat1.php, Tanggal Akses : 23 Agustus 2007
5. Herianto, “Presentasi Pemrograman
Terstruktur.ppt”,-6. Pertemuan 1 Mata Kuliah Pemrograman Terstruktur, Teknik Informatika, ITS 7. http://www.lcusd.net/lchs/dclausen/,Tanggal Akses : 13 Agustus 2007
8. www.nvcc.edu/home/joney/CH01%20INTRODUCTION%20TO%20STRUCTURED% 20DESIGN.PPT, Tanggal Akses : 13 Agustus 2007
9. Yatini B., Indra;Nasution, Erliansyah, “Algoritma & Struktur Data dengan C++, Graha Ilmu,Yogyakarta, 2005 (bab 1)
10. Deitel, H.M. and Deitel, P.J., “C++ How to Program, 2nd Edition”, Prentice Hall, 1994 (Bab 19)
11. Deitel, H.M. and Deitel, P.J., “C How to Program, 4nd Edition”, Prentice Hall, 2004 (bab 10)
12. Kadir, Abdul, “Pemrograman C++ Membahas Pemrograman Berorientasi Objek Menggunakan Turbo C++ dab Borland C++”, Andi, Yogyakarta, 2003 (bab 11) 13. Shalahuddi, M.;A. S., Rosa, “ C++ dan Java dari Nol Menjadi Andal”, Informatika,
2007 [Bab 2] 14. www.ilmukomputer.com
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 7
Definisi
• 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
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 Ver/Rev : 1/0 IF-UTAMA
II - 9
Tujuan
•
To make computer programs
–
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
Kriteria
• 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
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 11
The Process of Structured Programming
(
Program Development Life Cycle – PDLC
)
1. Analysis, 2. Specification 3. Algorithm Design 4. User Interface Design 5. Code the program 6. Test the program
– 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
Input Output Processing
Synatx Error Compiler Error Run Time Error Logic Error
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 13
Sejarah
1980 dibuat oleh Bjarrne Stroustrup 1998 distandarisasi oleh International Standard Organization (ISO) dan American National Standards Institute (ANSI)
++
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 15
Struktur Bahasa C++
Fungsi lain
Pendeklarasian variable lokal Isi fungsi lain
<Tipe Data/void> Fungsi Lain() {
Deklarasi Variabel Lokal; Statemen-statemen; }
Fungsi/program utama
Pendeklarasian variable lokal Isi fungsi/program Utama <Tipe Data/void> main()
{
Deklarasi Variabel Lokal; Statemen-statemen; }
Pendeklarasian variable global Deklarasi variabel global;
Prototipe fungsi Fungsi lain() Preprocessor Directive #include<header file>
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 Ver/Rev : 1/0 IF-UTAMA
II - 17
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 Ver/Rev : 1/0 IF-UTAMA
II - 19
Definisi
• Suatu pengenal atau pengidentifikasi
data yang kita deklarasikan agar
kompiler dapat mengenalinya
• Terdiri dari :
– Konstanta
– Variabel
Konstanta
• Cara Pendeklarasian (kecuali karakter Escape)
– const <tipe_data> <nama_konstanta> = <nilai
konstanta>;
– Tipe_data nama_konstanta = nilai konstanta;
– # define <nama_konstanta> <nilai konstanta>;
• 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 Ver/Rev : 1/0 IF-UTAMA
II - 21
Konstanta Karakter Ecape
Variabel
• Cara Pendeklarasian
<Tipe_data> <nama_variabel>; • 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 :
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 23
Aturan Penamaan Identifier
• 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
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 25
Tipe Data Dasar
Angka
Bilangan Bulat
Bilangan Real
int, long int, short int, unsigned int, signed int, unsigned char float, double, long double
Huruf
Karakter
Kata/String
char
char ….[jumlah huruf]
Logika
bool
Tanpa Nilai
void
Tipe Data Dasar
Platform Win32 -2147483648 s.d. 2147483648 4 byte Bilangan real %lf -1.7x10-308 s.d. 1.7x10308 8 byte double Bilangan real %f -3.4x10-38 s.d. 3.4x1038 4 byte float Bilangan bulat %d atau %e -32768 s.d. 32767 2 byte int Karakter ASCI string %c %s -128 s.d. 127 1 byte char Keterangan Format Rentang Ukuran Tipe
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 27
Tipe Data Modifikasi (1)
Bilangan real %Lf -3.4x10-4932 s.d. 3.4x104932 10 byte long double Bilangan bulat -32768 s.d. 32767 2 byte signed int/signed short int Bilangan bulat -128 s.d. 127 1 byte signed char Bilangan bulat %hd -128 s.d. 127 1 byte short int Bilangan bulat %ld -2147483648 s.d. 2147483648 4 byte long int Keterangan Format Rentang Ukuran Tipe
Tipe Modifikasi (2)
Bilangan bulat -2147483648 s.d. 2147483687 4 byte signed long /signed long intBilangan bulat 0 s.d. 429467295 4 byte unsigned long /unsigned long int
Bilangan bulat %u 0 s.d. 65535 2 byte unsigned int /unsigned short int
Bilangan bulat 0 s.d. 255 1 byte unsigned char Keterangan Form at Rentang Ukuran Tipe
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 29
Tipe Data Bentukan
• Struktur/Record, Cara pendeklarasiannya adalah :
struct{
<tipe data 1> <nama data 1>;
<tipe data 2> <nama data 2>;
………
<tipe data n> <nama data n>;
}<nama struktur>;
ex :
struct {
int Hari;
int Bulan;
int Tahun;
} Tanggal;
Tipe Data Bentukan
• Union, cara pendeklarasiannya adalah :
union{
<tipe data 1> <nama data 1>;
<tipe data 2> <nama data 2>;
………
<tipe data n> <nama data n>;
}<nama union>;
ex : union Tanggal
{
int i;
int j;
Pemrograman Terstruktur I Ver/Rev : 1/0 IF-UTAMA
II - 31
Tipe Data Bentukan
• Struktur Bit-field, cara pendeklarasiannya adalah :
struct{
int/unsigned <nama data 1> : <panjang bit-field 1>; int/unsigned <nama data 2> : <panjang bit-field 2>; ………
int/unsigned <nama data n> : <panjang bit-field n>; }<nama bit-field>; ex : struct { unsigned bit_0:1; unsigned bit_1:1; … unsigned bit_7:1; } Info_bit;
Tipe Data Bentukan
• enum (Enumerasi), cara pendeklarasiannya adalah :
enum{ data 1, data2, ………, data n } <nama enum>;
ex :
enum{Senin,Selasa,Rabu,Kamis,Jum’at,Sabtu,Minggu} Hari;
• Typedef, cara pendeklarasiannya adalah :
typedef <tipe data> <nama alias>;
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 Ver/Rev : 1/0 IF-UTAMA II - 33
Operator
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 (&&, ||,!)