• Tidak ada hasil yang ditemukan

Overview. Tujuan. Deskripsi. Referensi. Pemrograman Terstruktur. Pengenalan Pemrograman (Lanjutan) Dasar Pemrograman (Data)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Overview. Tujuan. Deskripsi. Referensi. Pemrograman Terstruktur. Pengenalan Pemrograman (Lanjutan) Dasar Pemrograman (Data)"

Copied!
8
0
0

Teks penuh

(1)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 1

Pengenalan Pemrograman (Lanjutan)

Dasar Pemrograman (Data)

Pertemuan 02

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA II - 2

Overview

• Deskripsi

• Tujuan

• Referensi

• Materi

– Pemrograman Terstruktur

– Bahasa C++

– Identifier

– Data

– Ekspresi

Algoritma & Pemrograman 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

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 4

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

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,

(2)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 7

Definisi

• Pemrograman Terstruktur adalah program dimana jika suatu proses telah mencapai titik tertentu, maka proses selanjutnyatidak 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-WHILEcontrol 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

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 8

Ide Dasar

• Jumlah baris program semakin lama semakin besar • Menghindari penggunaan GOTO untuk melompat ke

bagian program tertentu. Untuk mengatasinya – Sequence

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

Algoritma & Pemrograman 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

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 10

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

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

(3)

Algoritma & Pemrograman 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)

++

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 14

Prinsip Kerja C++

Algoritma & Pemrograman 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>

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 16

Kelebihan

• Merupakan Compiler

• Banyak fasilitas untuk memanipulasi operator dan fungsi • Tersedia hampir disemua jenis komputer

• Bersifat portabel

• 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

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,

(4)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 19

Definisi

Sesuatu yang dipakai sebagai identifikasi :

– Type, sesuai dengan definisi type.

– Tempat penyimpanan, untuk mengacu harga

yang disimpan (isi)nya.

– Fungsi, untuk meminta hasilnya.

– Prosedur, untuk memanggil prosedur yang

bersangkutan

– Modul program, algoritma, dsb.

Semua nama harus didefinisikan dalam KAMUS

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 20

Definisi (cont)

• Suatu pengenal atau pengidentifikasi

data yang kita deklarasikan agar

kompiler dapat mengenalinya

• Terdiri dari :

– Konstanta  nilai yang disimpan dalam

identifier tetap/konstan

– Variabel  nilai yang disimpan dalam

identifier dapat berubah-ubah

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 21

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)

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 22

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_datanama_variabel;

– Variabel Register(Variabel biasa yang berada di memori komputer dan disimpan di register CPU), cara pendeklarasian :

register tipe_datanama_variabel;

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

(5)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 25

Tipe Data

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 26

Jenis

• Tipe Data Dasar

– Bilangan Logik/Boolean – Bilangan Bulat – Bilangan Real – Karakter

• Tipe Data Bentukan

– Type bentukan adalah type yang dibentuk (diberi

nama) dari beberapa objek, jadi merupakan

sekumpulan elemen bertype dasar atau bertype yang sudah dikenal.

Type : String

– Konstanta : ‘SAYA’ ‘Aku sedang belajar’ ‘Buah Pepaya’

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 27

Tipe Data Dasar

Angka

Bilangan Bulat

(integer)

Bilangan

Pecahan (Real)

int, long int, short int, unsigned int, signed int, unsigned char float, double, long double

Huruf

Karakter

(character)

Kata (String)

char

char ….[jumlah huruf]

Logika

(boolean)

bool

Tanpa Nilai

void

(tidak digunakan dalam algoritma)

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 28

Tipe Data Dasar

Platform Win32 -2147483648 s.d. 2147483648 4 byte Tipe logika (C++ di atas versi 4.5) -True/false 1 byte bool Tek bertipe -0 void 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

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 int

Bilangan 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

(6)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 31

Tipe Data Bentukan

• Kata/String , cara pendeklarasiannya adalah : char <nama string> [jumlah huruf] ex : char Kata[50];

• 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;

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 32

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;

};

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 33

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;

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 34

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)

Operator

Sifat 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)

(7)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 37

Operator Boolean

Operator

Arti

Hasil

And

Dan

Boolean

Or

Atau

Boolean

Xor

Eksklusive Or Boolean

Not

Negasi

Boolean

EQ

Ekivalensi

Boolean

NEQ

Negasi dari

Boolean

Ekivalensi

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 38

Operator Aritmatika

Operator

Arti

Hasil

*

Kali

Integer/Real

+

Tambah

Integer/Real

-

Kurang

Integer/Real

/

Bagi

Integer/Real

Div

Bagi

Integer

Mod

Sisa pembagian

Integer

bulat

Abs

Nilai absolut

Integer > 0

^ atau **

Pangkat

Integer/Real

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 39

Konstruksi/Tipe Bentukan

Operator Arti Hasil

Tambah satu karakter di String

akhir string

ο Tambah satu karakter di String

awal string

& Konkatenasi/penggabungan String String

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 40

Jenis Operator dalam

C/C++

• Operator Assigment (=) • Operator Aritmatika (*, /, %, +, -) • Operator Biner/Bitwise (<<, >>, &, |, ^, ~) • Operator Logika (&&, ||,!)

• Operator Perbandingan/Relasi (==, !=, >, >=, <, <=) • Operator Unary (-,+, ++, --, ~, !, &, *, sizeof)

• Operator Assigment Kombinasi/Majemuk (+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=)

Ekspresi

Definisi

• Suatu rumus “perhitungan”, yang terdiri dari operan dan operator (harus didefinisikan untuk mengoperasikan operator ber-TYPE tertentu). Hasil “perhitungan” adalah harga dengan domain yang memenuhi type operator yang bersangkutan.

Ekspresi Biner

• Ekspresi biner dapat dituliskan dalam 3 macam notasi, yaitu: – Notasi Infix (biasa dipakai sehari-hari) :

operan1 operator operan2

– Notasi Prefix : operator operan1 operan2 – Notasi Suffix/Polish : operan1 operan2 operator

(8)

Algoritma & Pemrograman I Ver/Rev : 1/0 IF-UTAMA

II - 43

Ekspresi Logik

Ekspresi Hasil Ekspresi Hasil True AND True True True OR True True True AND False False True OR False True False AND True False False OR True True False AND False False False OR False False

NOT False True NOT True False

True EQ True True True XOR False True True EQ False False True XOR True False False EQ False True False XOR True True False EQ True False False XOR False False

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 44

Ekspresi Aritmatika

Ekspresi

Hasil

Ekspresi

Hasil

1 * 9

9

10 MOD 2

0

5 + 3 * 2

11

10 DIV 3

3

1/2

0.5

1 + 7 DIV 3 2

12 > 12

False

1. / 3.

0.333

12 >= 12

True

10. / 5.

2.

15 < 14

False

2 ^ 2

4

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 45

Perbandingan Algoritma &

Bahasa C/C++

Algoritma & Pemrograman I Ver/Rev : 1/0

IF-UTAMA

II - 46

Studi Kasus

Referensi

Dokumen terkait

“What about me?” he asked again, but the siblings had already followed Friday a short way from where he was standing, and when the Baudelaire orphans turned to him, Olaf looked

The purpose of this study was to examine English lecturers’ readiness (attitude, motivation, awareness, and knowledge) toward internet use in English teaching and learning at

keilmuan yang mendukung mata pelajaran seni keilmuan (mencakup materi yang bersifat konsepsi, tiga dimensi imitasi budaya Nusantara. budaya (seni rupa) apresiasi, dan

Dalam peraturan Rektor Universitas Negeri Semarang Nomor 22 Tahun 2008 tentang “Pedoman Praktik Pengalaman Lapangan Bagi Mahasiswa Program Kependidikan Universitas

Pertumbuhan ekonomi dan industri yang berkembang, berdampak pada peningkatan pergerakan lalu lintas.Kerusakan lapisan perkerasan umumnya dipengaruhi pori dan rongga

Berdasarkan hasil penelitian terlihat bahwa responden yang memiliki pengetahuan baik, lebih banyak berperilaku sedang dan baik dalam menghadapi upaya mencegah

 Tindak lanjut terhadap hasil pemantauan pelaksanaan program peningkatan mutu klinis &amp; keselamatan pasien ( kegiatan yang perlu

Hasil uji statistika mengenai perbedaan kadar hematokrit pre dan pasca operasi antar kelompok didapatkan pada kelompok kombinasi dutasteride dan teh hijau (P3) lebih