Pemrograman C++ · Dasar-dasar C++ : 2.1 Variabel dan Assignments Variabel C++ dapat digunakan...

Post on 08-Dec-2020

15 views 0 download

Transcript of Pemrograman C++ · Dasar-dasar C++ : 2.1 Variabel dan Assignments Variabel C++ dapat digunakan...

1

Pemrograman C++

Pertemuan 3

Dasar – dasar C++

2

Apa yang mesti diketahui ?

Sebelum menulis program

Mengerti masalah secara menyeluruh

Hati-hati merencanakan pendekatan solusi

Ketika menulis program

Menggunakan prinsip pemrograman yang

baik

3

Algoritma

Masalah komputasi :

Diselesaikan dengan mengeksekusi sederetan aksi

dengan urutan tertentu

Algoritma adalah prosedur untuk menentukan :

Aksi-aksi untuk dieksekusi

Urutan eksekusi

Kontrol program :

Menentukan urutan pernyataan yang mana yang

akan dieksekusi

4

Pseudocode

Pseudocode :

Semu, bahasa informal yang digunakan untuk

mengembangkan algoritma

Mirip bahasa komunikasi manusia sehari-hari

Tidak dieksekusi komputer

Digunakan untuk “merenungkan” program sebelum

coding (proses menulis kode program)

Hanya pernyataan yang dapat dieksekusi

– Tidak perlu mendeklarasikan variabel

5

Flowchart

Representasi graphikal dari algoritma

Menggunakan simbol khusus yang

dihubungkan dengan panah (garis arus)

6

Contoh algoritma :

menjumlah 3 bilangan bulat

Algoritma mencari jumlah 3 bilangan bulat

{menghitung jumlah 3 bilangan bulat, algoritma menerima masukan 3 buah bilangan

bulat, menjumlahkan, lalu mencetak hasil penjumlahannya}

Deklarasi a, b, c : integer {input}

jumlah : integer {output}

Deskripsi

read(a, b, c)

jumlah a + b + c

write(jumlah)

7

Contoh pseudocode

Input bilangan ke-1

Input bilangan ke-2

Input bilangan ke-3

Jumlahkan bilangan ke-1, bilangan ke-2 dan bilangan

ke-3

Output hasil penjumlahan

8

Contoh Flowchart

Start

End

Jumlah = A+B+C

Cetak

Jumlah

Input

A, B, C

9

Transformasi ke C++

Bahasa C++

1. #include <iostream.h>

2. main() {

3. int a,b,c,jumlah;

4. cout << "Bilangan 1 : "; cin >> a;

5. cout << "Bilangan 2 : "; cin >> b;

6. cout << "Bilangan 3 : "; cin >> c;

7. jumlah = (a + b + c);

8. cout << "Jumlah 3 bilangan = " << jumlah;

9. return 0; 10. }

10

Dasar-dasar C++

Variabel dan Penugasan

(Assignments)

Input dan Output

Tipe Data dan Ekspresi (Expressions)

Kontrol Arus Sederhana

Gaya Program (Program Style)

11

Dasar-dasar C++ :

2.1 Variabel dan Assignments

Variabel C++ dapat digunakan untuk menampung data

bilangan atau tipe lain

Variabel C++ SELALU mempunyai nilai yang disimpan di

dalamnya

Variabel C++ diimplementasikan sebagai lokasi memori.

Informasi disimpan dalam bentuk binary -- 0 dan 1.

Alamat yang sesungguhnya bukan merupakan hal yang

penting (untuk saat ini)

12

Identifier

Nama variabel (atay apapun dalam C++ yang memerlukan

nama) dinamakan identifier.

Identifier harus dimulai dengan huruf atau simbol underscore

(_) diikuti dengan huruf, angka atau simbol underscore

Contoh yang valid :

x x_1 _abc A2b ThisIsAVeryLongIdentifier

Contoh yang tidak valid :

12 3X %change myFirst.c data-1

Mengapa tidak valid?

Identifier yang sudah digunakan dalam C++ dinamakan

keywords, atau reserved words.

13

Keyword dalam C++

C++ Keywords

Keywords common to the

C and C++ programming

languages

auto break case char const

continue default do double else

enum extern float for goto

if int long register return

short signed sizeof static struct

switch typedef union unsigned void

volatile while

C++ only keywords

asm bool catch class const_cast

delete dynamic_cast explicit false friend

inline mutable namespace new operator

private protected public reinterpret_cast

static_cast template this throw true

try typeid typename using virtual

wchar_t

14

Identifier

Contoh yang tidak sah :

12 3X %change myFirst.c data-1

Mengapa tidak sah?

12 , %change, dan 3x tidak dimulai dengan huruf

myFirst.c mempunyai karakter „.‟ yang tidak diperbolehkan

data-1 mengandung karakter „-‟ yang tidak diperbolehkan

Aturan penulisan Identifier :

Identifier harus dimulai dengan huruf atau underscore diikuti

huruf, digit atau underscore.

15

Display 2.1 Program C++

#include <iostream>

using namespace std;

int main()

{

int panjang;

float lebar, keliling;

cout << "Panjang sisi (integer) : ";

cin >> panjang;

cout << "Lebarnya (float) : ";

cin >> lebar;

keliling = 2 * ( panjang + lebar );

cout << "Keliling persegi panjang dengan \n";

cout << "Panjang : \t" << panjang << " dan lebar :\t" << lebar;

cout << "\nadalah " << keliling;

return 0;

}

16

Deklarasi Variabel

Setiap variabel dalam C++ HARUS dideklarasikan

lebih dulu.

Deklarasi memperkenalkan suatu nama kepada

compiler dan menentukan tipe data yang disimpan

dalam variabel.

Deklarasi variabel berbentuk :

Type_name variable_name1, variable_name2, … ;

Contoh:

double distance;

17

Pernyataan Penugasan

Pernyataan :

keliling = 2 * (panjang + lebar);

Dalam pernyataan penugasan, bagian sisi kanan ekspresi dievaluasi (dihitung nilaina), kemudian variabel pada bagian sisi kiri diberi nilai dari bagian sisi kanan

Sintaks:

variabel = ekspresi;

Contoh : distance = rate * time;

count = count + 2;

18

Pemberian nilai awal (Variable initialization)

Sintaks :

int x = 3; double pi = 3.14159;

int x(3); double pi(3.14159);

19

Tip Programming

Gunakan nama variabel yang bermakna.

Nama yang mengikat kode program

terhadap masalah yang diselesaikan

akan membuat kode lebih mudah dibaca

dan di-debug.

2.2 Input and OutputOutput menggunakan cout

cout << jumlah_kelas << “ kelas \n”;

<< adalah insertion operator

Tidak diperbolehan membagi konstan

string e dua baris.

cout << “Baris ini tidak boleh dipisah

ke baris berikutnya.\n”;

20

Include Direktori dan Namespace

21

#include <iostream>

using namespace std;

Deklarasi untuk mempersiapkan kepustakaan iostream.

C++ membagi kumpulan namake dalam namespace. Untuk

mengakses nama dalam namespace, baris kedua di atas,

menggunakan direktif using. Ini berarti program daat

menggunakan nama dalam namespace std.

Selain nama, namespace C++ kadang juga berisi kode.

Dapat juga menggunakan <iostream.h>, sehingga

kompilator tidak memerlukan direktif.

22

Deretan Karakter Escape

\ (backslash) g mendahului karakter memberitahu

kompilator bahwa karakter berikutnya mempunyai

makna yang berbeda.

Deretan karakter escape adalahtipe dengan 2

karakter tanpa spasi.

\\ adalah karakter backslash beneran.

\n baris baru (newline)

\t karakter tab (sama dengan control-h)

\a alert, atau bell

\” double quote

23

Format untuk bilangan titik desimal

Pernyataan berikut akan menyebabkan output floating point ditampilkan dengan 2 tempat desimal.

cout.setf(ios::fixed);

cout.setf(ios::showpoint);

cout.precision(2);

//Output format:78.50

24

Input menggunakan cin

Ketika program sampai pada pernyataan :

cin >> pernyataan

Program menunggu respon input. Programmer bertanggung jawab memberitahu pengguna sedemikian sehingga menjamin kebenaran input ke program. Misal diberi komentar.

Sintaks :

cin >> number >> size;

cin >> time_to_go

>> points_needed;

cout << “Masukkan bilangan pertama : “; // komentar

cin >> bilangan;

25

2.3 Data Type and ExpressionsThe types int and double

Dalam C++, 2 dan 2.0 adalah berbeda.

2 bertipe int tidak mempunyai bagian “pecahan”

2.0 bertipe double mempunyai bagian “pecahan”

walaupun 0.

int dan float disimpan dengan cara yang berbeda

26

Tipe bilangan yang lain

Memory Type used Range Precision

short 2 bytes -32,767 NA (a.k.a. short int) to 32,767

int 4 bytes -2,147483,647 NAto 2,147483,647

long 4 bytes same as int NA

float 4 bytes approximately 7 digits

10-38 to 1038

double 8 bytes approximately 15 digits10-308 to 10308

long double 10 bytes approximately 15 digits

10-4932 to 104932

27

Tipe char (karakter) dan bool (boolean)

char adalah tipe yang dirancang untuk

menangani anggota tunggal dari himpunan

karakter ASCII.

bool adalah tipe yang ditambahkan ke C++

Draft ANSI Standard pada tahun 1995. Hanya

ada 2 harga : true dan false.

28

29

Display 2.3 Tipe char

#include <iostream>

using namespace std;

int main( )

{

char simbol1, simbol2, simbol3;

cout << "Masukkan 2 huruf awal nama anda:\n";

cin >> simbol1 >> simbol2;

cout << "Nama awal anda :\n";

cout << simbol1 << simbol2 << endl;

cout << "Ditampilkan dengan pemisah spasi :\n";

simbol3 = ' ';

cout << simbol1 << simbol3 << simbol2 << endl;

cout << "Selamat belajar.";

return 0;

}

30

Operator Aritmetika dan Ekspresi

Operator aritmatika yang sering digunakan:

Penjumlahan + Perkalian *

Pengurangan - Pembagian /

31

Operator Aritmetika dan Ekspresi

Aritmetika dengan + = dan * dapat digunakan untuk tipe integer dan floating point.

Aritmetika dengan / khusus untu tipe bilangan floating point. Akan memiliki harga berbeda jika menggunakan tipe integer (short, int, long)

Pembagian integer hasilnya akan DIPOTONG (TRUNCATING) – menghilangkan bagian pecahan.

32

Pembagian / dan modulus % operasi yang komplemen

Mod (modulus) %, hanya untuk tipe integer.

4 12 / 3 adalah quotient

3 12

12

0 12 % 3 = 12 mod 3 is the remainder

4 14 / 3 quotient = 3 THIS IS NOT 4.66

3 14

12

2 14 % 3 remainder after dividion

S

Operator Aritmetika dan Ekspresidivision /, and modulus %, for integer values

33

Operator Aritmetika dan Ekspresi Precedence

Ketika dua operator muncu dalam ekspresi

aritmetika, terdapat aturan PRESEDENSI.

Hitunglah ekspresi berikut ,

2 + 3 * 4

Gunakan tanda kurung bila :

(2 + 3) * 4

34

2.4 Kontrol arus sederhanaMekanisme percabangan sederhana

Membuat keputusan dalam program komputer memerlukan peruabahan

eksekusi dari instruksi ke instrukusi berikutnya dan seterusnya. Ini

dinamakan Kontrol arus.

Ada 2 tipe kontrol arus : pemilihan (selection) dan perulangan (looping).

Looping mengulang aksi.

Selection memilih di antara beberapa aksi.

Selection:

if (ekspresi) ekspresi kontrol mengembalikan harga boolean

action1; Dieksekusi jika ekspresi bernilai true

else

action2; Dieksekusi jika ekspresi bernilai false

35

Operator Pembandingan

C++ menyediakan operator pembandingan untuk membuat

keputusan dalam program komputer. Operator

mengembalikan nilai bertipe bool: true atau false.

Math C++ C++ Math

Symbol English Notation Sample Equivalent

= equal to == x + 7 == 2 * y x + 7 = 2y

not equal to != ans != „n‟ ans „n‟

< less than < count < m + 3 cout < m + 3

less than <= time <= limit time limitor equal to

> greater than > time > limit time > limit

greater than >= age >= 21 age 21or equal to

36

Operator Logika

Operator „and‟ : &&

Sintaks:

(Comparison_1) && (Comparison_2)

Contoh :

bool jangkauan;

jangkauan = (0 < score) && (10 < score);

berarti score nilainya berada di antara 0 dan 10

Operator „or‟ : ||

Contoh – dalam pernyataan if-else

if ( (x ==1) || (x == y) )

cout << “x is 1 or x equals y. \n”;

else

cout < “x is neither 1 nor equal to y.\n”;

37

PITFALL: pertidaksamaan string

Misalkan x, y dan z berharga integer.

if (x < y < x) // ini SALAH walau akan tetap dikompilasi. cout << “z antara x dan y” ;

Mengapa salah ?

Dalam matematika x < y < z adalah kependekan x < y && y < z.

Dalam C++, berbeda dengan matematika. Dalam C++ aturan precedensi, x < y < z dievaluasi sebagai :

(x < y) < z

Ekspresi dalam kurung bernlai boolean. Operator < memerlukan tipe yang sama pada kedua sisi. Harga boolean dikonversi ke harga int 0 (untuk false) atau 1 (untuk true). Bila 0 <z atau 1 < z hasilnya jawaban adalah salah!

38

PITFALL: Gunakan == sebagai ganti =

if (x = 12)cout << “x is equal to 12”;

elsecout << “x is not equal to 12”; // tidak pernah dieksekusi

Ekspresi

x = 12 TELAH di-ASSIGN harga 12 ke x.

Ekspresi x = 12 mengembalikan 12, yang dikonversi ke

harga boolean true.

TULISLAH :

if (x == 12)cout << “x is equal to 12”;

elsecout << “x is not equal to 12”;

39

Mekanisme Perulangan Sederhana

C++ menyediakan pernyataan perulangan :

while

for

do while

Bagian kode yang dieksekusi perulangan

dinamakan badan.

Setiap eksekusi perulangan badan dinamakan

iterasi.

40

Display 2.10 Perulangan while

#include <iostream>

using namespace std;

int main( )

{

int count_down;

cout << "Berapa kali ucapan disampaikan? ";

cin >> count_down;

while (count_down > 0)

{

cout << "Assalamualaikum \n";

count_down = count_down - 1;

}

cout << endl;

cout << "Sudah semua\n";

return 0;

}

41

Display 2.13 Perulangan do-while

#include <iostream>

using namespace std;

int main( )

{

char jawab;

do

{

cout << "Assalamualaikum wr.wb.\n";

cout << "Anda ingin salam lagi?\n"

<< "Tekan y jika ya, t jika tidak,\n"

<< "kemdian tekan return: ";

cin >> jawab;

} while (jawab == 'y' || jawab == 'Y');

cout << "Selamat belajar\n";

return 0;

}

42

Pitfall: semicolon yang berbahaya !!

Loop body dengan beberapa pernyataan

while(ekspresi boolean)

{

beberapa pernyataan

}

Loop body dengan satu pernyataan

while(ekspresi boolean)

statement;

Semicolon di sini akan

menyebabkan infinite

loop.

Semicolon di sini akan

menyebabkan infinite

loop.

43

Pitfall: Jangan LUPA semicolon !!

Loop body dengan beberapa pernyataan

do { beberapa pernyataan

} while(ekspresi boolean); Jangan lupa semicolon

di sini.

Loop body dengan satu pernyataan

do

pernyataan;

while(ekspresi boolean); Jangan lupa semicolon

di sini.

44

Operator Increment dan decrement

C++ menyediakan operator ++ dan --. Masing-masing dapat diletakkan sebelum maunpun sesudah variabel (prefiks atau postfiks).

Misal :

variabel x.

Increment dapat ditulis x++ atau ++x.

Decrement dapat ditulis x-- atau --x.

Gunakan x++; sebagai sinonim untuk x = x + 1;

dan x-- sebagai sinonim untuk x = x - 1;

45

Hati-hati !!! Infinite Loops

Perulangan yang menggunakan ekspresi kontrol Boolean bernilai true akan selalu tidak pernah berhenti. Perulangan yang demikian dinamakan infinite loop.

Infinite loop merupakan kesalahan BESAR dan FATAL.

Contoh :

Loop yang berhenti: Infinite loop:

x = 2; x = 1;

while (x != 12) while (x != 12)

{ {

cout << x << endl; cout << x << endl;

x = x + 2; x = x + 2;

} }

Mengapa?

46

Nilai pertambahan investasi

#include <iostream>

using namespace std;

int main() {

double balance = 50.00;

int count = 0;

cout << "Program berikut adalah program untuk mengaumulasi nilai tabungan \n"

<< "sampai minimal $100, dengan saldo awal $50.\n"

<< "Bunga yang diberikan sebesar 5% per bulan.\n";

while ( balance < 100.00 ) {

balance = balance + 0.05 * balance;

count++;

}

cout << "Sesudah " << count << " bulan,\n";

cout.setf( ios::fixed );

cout.setf( ios::showpoint );

cout.precision( 2 );

cout << "Saldo anda sebesar $" << balance << endl;

return 0;

}

47

2.5 Programming Style Komentar

Bagian program yang sulit unuk dipelajari

biasanya diberikan komentar

Komentar harus selalu terkait dengan solusi

masalah, termasuk “trik” kode yang dibuat.

/* komentar model pertama */

Bisa menyangkut banyak baris.

// komentar model kedua

mulai dari // sampai akhir baris.

48

Indentasi

Indentasi : element yang dimaksudkan sebagai

kelompok.

if-else, while, dan do-while harus diindentasikan.

Bagian program yang terkena perulangan juga

diindentasikan.

49

Koentar diawal Program

Dalam sebuah program, ada baiknya diberikan komentar

untuk menggambarkan informasi penting dari program

yang bersangkutan.

Isi komentar biasanya menyangkut :

Nama file

Nama Pembuat

Alamat pembuat

Kegunaan program

Apa yang dilakukan program

Tanggal dan versi program

50

Konstanta

Nama yang dideklarasikan sebagai kostanta

diawali dengan keyword const.

Sebaiknya menggunakan huruf besardengan

pemisah underscore.

Contoh:

const int BRANCH_COUNT = 10;

const double TAX_RATE = 0.04;

const float PHI = 3.14;

51

Summary (1 of 2)

Use meaningful name for variables.

Check that variables have been declared before use,

and have the correct data type.

Be sure variables have been assigned a value before

use. This can be done by initialization at definition, or

by assigning a value before first use.

Use enough parentheses to make the order of

operations clear. Remember, code is meant to be read,

which implies writing for an audience.

Always have your program prompt the user for

expected input. Always echo user‟s input.

An if-else statement chooses between two blocks of

code to execute. An if statement chooses whether to

execute a block of code.

52

Summary (2 of 2)

A do-while always executes its body at least once. A

while loop may not execute its body at all.

Almost all numeric constants should be given

meaningful names to be used instead of the numbers.

Use the const modifier to do this.

Use indenting, spacing, and line break patterns similar

to the sample code to group sections of code such as

the body of a while statement, or the affirmative and

negative clauses of an if-else statement.

Insert commentary to explain major subsections of your

code, or to explain any unclear part of your program.

Make your code clear. Remember, a program is meant

to be read by programmers, not just compilers.