Pemrograman C++ · Dasar-dasar C++ : 2.1 Variabel dan Assignments Variabel C++ dapat digunakan...
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.