Pengenalan Pemrograman (Lanjutan) Dasar Pemrograman (Data) Pertemuan 02 II - 1 Overview Deskripsi Tujuan Referensi Materi Pemrograman Terstruktur Bahasa C++ Identifier Data Tutorial 01 (Data) II - 2 1
Deskripsi Pada pertemuan ini akan dibahas mengenai pemrograman terstruktur, bahasa C/C++ sebagai tool pemrograman terstruktur, serta representasi data II - 3 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 II - 4 2
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 II - 5 Pemrograman Terstruktur II - 6 3
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 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 II - 8 4
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 II - 9 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 II - 10 5
The Process of Structured Programming (Program Development Life Cycle PDLC) 1. Analysis, Input 2. Specification 3. Algorithm Design Output 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 Processing Synatx Error Compiler Error Run Time Error Logic Error II - 11 Bahasa C++ II - 12 6
Sejarah ++ 1980 dibuat oleh Bjarrne Stroustrup 1998 distandarisasi oleh International Standard Organization (ISO) dan American National Standards Institute (ANSI) II - 13 Prinsip Kerja C++ II - 14 7
Struktur Bahasa C++ #include<header file> Fungsi lain() Deklarasi variabel global; <Tipe Data/void> main() { Deklarasi Variabel Lokal; Statemen-statemen; } <Tipe Data/void> Fungsi Lain() { Deklarasi Variabel Lokal; Statemen-statemen; } Preprocessor Directive Prototipe fungsi Pendeklarasian variable global Fungsi/program utama Pendeklarasian variable lokal Isi fungsi/program Utama Fungsi lain Pendeklarasian variable lokal Isi fungsi lain 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 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. II - 17 Identifier II - 18 9
Definisi Suatu pengenal atau pengidentifikasi data yang kita deklarasikan agar kompiler dapat mengenalinya Terdiri dari : Konstanta Variabel II - 19 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) II - 20 10
Konstanta Karakter Ecape II - 21 Variabel Cara Pendeklarasian <Tipe_data> <nama_variabel>; Lingkup Variabel Variabel Lokal/Otomatis (dikenali/ digunakan di satu blok fungsi saja) hanya dapat 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 pendeklarasian : disimpan di register CPU), cara register tipe_data nama_variabel; II - 22 11
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 II - 23 Tipe Data II - 24 12
Angka Tipe Data Dasar Bilangan Bulat Bilangan Real Karakter Huruf Kata/String Logika bool Tanpa Nilai void char int, long int, short int, unsigned int, signed int, unsigned char float, double, long double char.[jumlah huruf] II - 25 Tipe Data Dasar int Tipe char float double void bool Ukuran 1 byte 2 byte 4 byte 4 byte 8 byte 0 1 byte Rentang -128 s.d. 127-32768 s.d. 32767-2147483648 s.d. 2147483648-3.4x10-38 s.d. 3.4x10 38-1.7x10-308 s.d. 1.7x10 308 True/false - Format %c %s %d atau %e %f %lf - - Keterangan Karakter ASCI string Bilangan bulat Platform Win32 Bilangan real Bilangan real Tek bertipe Tipe logika (C++ di atas versi 4.5) II - 26 13
Tipe Data Modifikasi (1) long int long double short int Tipe signed char signed int/signed short int Ukuran 4 byte 10 byte 1 byte 1 byte 2 byte Rentang -2147483648 s.d. 2147483648-3.4x10-4932 s.d. 3.4x10 4932-128 s.d. 127-128 s.d. 127-32768 s.d. 32767 Format %ld %Lf %hd Keterangan Bilangan bulat Bilangan real Bilangan bulat Bilangan bulat Bilangan bulat II - 27 Tipe Modifikasi (2) Tipe signed long /signed long int unsigned char unsigned int /unsigned short int unsigned long /unsigned long int Ukuran 4 byte 1 byte 2 byte 4 byte Rentang -2147483648 s.d. 2147483687 0 s.d. 255 0 s.d. 65535 0 s.d. 429467295 Form at %u Keterangan Bilangan bulat Bilangan bulat Bilangan bulat Bilangan bulat II - 28 14
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; II - 29 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; }; II - 30 15
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; II - 31 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) II - 32 16
Operator 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 (+=, -=, *=, /=, %=, <<=, >>=, &=, =, ^=) II - 34 17