Pengantar Pemrograman Materi: Variabel, type dan konstanta Ekspresi & assignment
Struktur Program C++ // my first program in C++ #include <iostream.h> int main () { cout << "Hello World!"; return 0; }
Struktur Program C++ // my first program in C++ Ini adalah komentar. Semua baris yang dimulai dengan // atau dikurung oleh pasangan /* …. */ adalah komentar yang tidak akan diproses oleh kompiler. Komentar sangat berguna untuk dokumentasi program // Baris komentar /* Komentar block */ #include <iostream.h> Perintah yang dimulai dengan tanda (#) adalah pengarah preprocessor. Bagian ini bukan perintah yang bisa dieksekusi, tetapi merupakan indikasi kepada kompiler. Dalam kasus ini #include <iostream.h> meminta preprocessor untuk menyertakan standard header file iostream yang berisi deklarasi input-output standard int main () Baris ini merupakan tempat mulainya eksekusi program (program utama). Isi perintah untuk program utama terletak didalam sepasang kurung kurawal ({}). cout << "Hello World"; Ini perintah untuk mencetak. Perhatikan (;) sebagai akhir setiap satu baris perintah. return 0; Perintah return meminta main() untuk berhenti dan mengembalikan code yang mengikutinya, dalam kasus ini 0.
Variabel dan Jenis DATA Beberapa jenis data dasar: Karakter: char Bilangan bulat, integer: int long int: bilangan bulat dengan range lebih besar dari int Bilangan riil: float double: bilangan riil dengan presisi dan range lebih besar dari float Boolean: nilai True atau False bool
KONSTANTA Yang paling sederhana adalah angka bilangan bulat seperti: 0, 1, 2, 123 . Konstanta dengan titik desimal atau dengan huruf e (atau keduanya) adalah konstanta bilangan riil, seperti: 3.14, 10., .01, 123e4, 123.456e7. Huruf e menyatakan perkalian dengan pangkat 10. Contoh: 123.456e7 adalah 123.456 * 10 pangkat 7 = 1,234,560,000. (konstanta bilangan riil berjenis dobel)
KONSTANTA KARAKTER DAN STRING Konstanta karakter: memakai tanda petik tunggal 'A', '.', '%'. Nilai numerik konstanta karakter adalah nilai karakter tersebut sesuai (dalam ASCII, contohnya, 'A' mempunyai nilai 65.) String adalah array karakter (detail nanti). Konstanta string memakai tanda petik ganda. "apple", "hello, world", "this is a test". Arti karakter \ didalam konstanta karakter atau string: \n a ``newline'' character \b a backspace \r a carriage return (without a line feed) \' a single quote (e.g. in a character constant) \" a double quote (e.g. in a string constant) \\ a single backslash Contoh: "he said \"hi\""
DEKLARASI Variabel variabel (objek) dipakai untuk menyimpan suatu nilai Variabel harus dideklarasikan sebelum dipakai Deklarasi menyatakan nama dan jenis variabel char c; int i; float f; int i1, i2; /* boleh beberapa variabel dalam satu baris */ Deklarasi boleh diikuti pemberian harga awal int i = 1; int i1 = 10, i2 = 20;
ALASAN DEKLARASI It makes things somewhat easier on the compiler; it knows right away what kind of storage to allocate and what code to emit to store and manipulate each variable; it doesn't have to try to intuit the programmer's intentions. It forces a bit of useful discipline on the programmer: you cannot introduce variables willy-nilly; you must think about them enough to pick appropriate types for them. (The compiler's error messages to you, telling you that you apparently forgot to declare a variable, are as often helpful as they are a nuisance: they're helpful when they tell you that you misspelled a variable, or forgot to think about exactly how you were going to use it.)
NAMA VARIABEL Nama variabel terdiri dari huruf, angka dan garis bawah (under score). Untuk kita, nama harus dimulai dengan huruf Nama boleh sangat panjang Huruf besar dan kecil dibedakan Dodol, DoDol dan dodol adalah tiga variabel yang berbeda Nama variabel tidak boleh sama dengan kata-kata kunci (keywords) & fungsi pustaka (library function) Int, if, for, sin, cos, dll. Tidak boleh dipakai sebagai nama variabel
Kata-kata Kunci JANGAN dipakai untuk nama Variabel asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t
OPERATOR ARITMATIKA + addition - subtraction * multiplication / division % modulus (remainder) ++ increment -- decrement
OPERATOR ARITMATIKA UTAMA operator – untuk mengurangi dua angka (a - b), atau memberi tanda negatif ( -a + b atau a + -b). Pembagian dua bilangan bulat menghasilkan bilangan bulat dengan membuang sisa pembagian: 7 / 4 adalah 1. Apabila salah satu atau semua operand adalah bilangan riil hasil pembagian adalah bilangan riil : 7.0 / 4 adalah 1.75. Operator modulus % memberikan sisa dari pembagian dua bilangan: 7 % 4 adalah 3.
PRECEDENCE Multiplication, division, and modulus all have higher precedence than addition and subtraction. 1 + 2 * 3 ekivalen dengan 1 + (2 * 3). All of these operators ``group'' from left to right, which means that when two or more of them have the same precedence and participate next to each other in an expression, the evaluation conceptually proceeds from left to right. 1 - 2 - 3 is equivalent to (1 - 2) - 3 Whenever the default precedence or associativity doesn't give you the grouping you want, you can always use explicit parentheses. if you wanted to add 1 to 2 and then multiply the result by 3, you could write (1 + 2) * 3.
OPERATOR ‘=‘ operator “=“ memberi nilai kepada variabel x = 1 sets x to 1, and a = b sets a to whatever b's value is. i = i + 1 this expression takes i's old value, adds 1 to it, and stores it back into i. c = a = b ekivalen dengan c = (a = b) untuk memberi nilai b kepada a dan c
Pemberian Harga Awal Variabel dapat diberikan harga awal pada saat dideklarasikan, ada dua cara: type identifier = initial_value ; // C dan C++ type identifier (initial_value) ; // C++ Contoh: int a = 0; int a (0); tidak ada bedanya: Variabel diberikan harga awal pada saat dideklarasikan atau pada saat pertama kali dipakai int a = 10; Atau int a; /* lalu... */ a = 10;
OPERATOR ‘++‘ DAN ‘- -’ Operator ++; menambah satu ke variabel Int x = 10; x ++; /* sama artinya dengan x = x + 1; */ Operator --; mengurangi satu ke variabel x --; /* sama artinya dengan x = x - 1; */
OPERATOR RINGKAS Operator += Operator -= Operator *= Operator /= X += 10; /* sama artinya dengan x = x + 10; */ Operator -= X -= 10; /* sama artinya dengan x = x - 10; */ Operator *= X *= 10; /* sama artinya dengan x = x * 10; */ Operator /= X /= 10; /* sama artinya dengan x = x / 10; */ Apa artinya?: a *= b + c;
OPERATOR RELASIONAL Operator Meaning == equal to != not equal < less than <= less than or equal to > greater than >= greater than or equal to Return 1 (TRUE) atau 0 (FALSE) 1 < 2 is 1, 3 > 4 is 0, 5 == 5 is 1, and 6 != 6 is 0.
OPERATOR LOGIK && and || or ! not (takes one operand; ``unary'')
PEMANGGILAN FUNGSI Fungsi akan dipelajari lebih mendalam pada kuliah selanjutnya. Disini akan ditunjukkan bagaimana memakai fungsi-fungsi yang sudah disediakan oleh Kompiler. Fungsi dipanggil dengan menyebut namanya diikuti oleh sepasang tanda kurung. Kalau fungsi mengambil argumen, kita letakkan argumen didalam kurung. getchar(); Banyak fungsi mengembalikan suatu nilai. Nilai yang dikembalikan bisa disimpan variabel atau bisa langsung dipakai dalam suatu operasi c = sqrt(a * a + b * b); x = r * cos(theta);
CONTOH ASSIGNMENT #include < iostream.h > main() { int sum; float money; char letter; double pi; sum = 10; // assign integer value money = 2.21; // assign float value Letter = 'A'; // assign character value pi = 2.01E6; // assign a double value cout << "value of sum = “ << sum << “\n”; cout << "value of money = “ << money << “\n”; cout << "value of letter = “ << letter << “\n”; cout << "value of pi = “ << pi << “\n”; }
int sum; #include <iostream.h> main() { float money; char letter; double pi; sum = 10; // assign integer value money = 2.21; // assign float value letter = 'A'; // assign character value pi = 2.01E6; // assign a double value cout << "value of sum = " << sum << "\n"; cout << "value of money = " << money << "\n"; cout << "value of letter = " << letter << "\n"; cout << "value of pi = " << pi << "\n"; return 0; }
CONTOH Bekerja dengan Variabel dan Operator // operating with variables #include <iostream.h> int main () { // declaring variables: int a, b; int result; // process: a = 5; b = 2; a = a + 1; result = a - b; // print out the result: cout << result; // terminate the program: return 0; }
CONTOH Bekerja dengan Variabel dan Operator // Variabel dan Operators #include <iostream.h> main() { int a, b, c, d = 3; float e, f, g; c = 10; a = c + d; b = c * d; e = c/d; cout << a << b << c/d << c%d << d%c << e; f = 1.0; g = 2.0; e = f/g; cout << f/g << f*g << e; a = 2147483648; b = 4294967295; cout << a << b; return 0; }
PREPROCESSOR STATEMENTS Statemen define dipergunakan untuk membuat program lebih mudah dibaca /* Tanpa titik-koma ‘;’ */ /* karakter pertama dalam baris harus # */ #define TRUE 1 #define FALSE 0 #define NULL 0 #define AND & #define OR | #define EQUALS == Contoh: #define PI 3.14159265 #define NEWLINE '\n' // dipakai pada baris selanjutnya dari program Keliling_lingkaran = 2 * PI * r; cout << NEWLINE;
Konstanta yang Dideklarasikan Bisa diberikan “jenis data” seperti layaknya variabel Bedanya dengan variable, nilainya tidak bisa diubah Umumnya dipakai untuk memudahkan membaca program const int width = 100; const char tab = '\t';
INPUT DAN OUTPUT KE LAYAR // Output (cout) #include <iostream.h> main() { int number; cout << "Type in a number \n"; cin >> number; cout << "The number you typed was“ << number<< “\n”; } Contoh Run Type in a number 23 The number you typed was 23
Mencetak Baris Baru Contoh: cout << "First sentence.\n "; cout << "Second sentence.\nThird sentence."; Hasilnya: First sentence. Second sentence. Third sentence. Cara lain dengan memakai endl manipulator. cout << "First sentence." << endl; cout << "Second sentence." << endl; First sentence. Second sentence.
KARAKTER KHUSUS Untuk FORMAT \b backspace \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \\ backslash \“ double quote \‘ single quote \<enter> line continuation \nnnnnn = octal character value \0xnnnn = hexadecimal value (some compilers only) printf("\007Attention, that was a beep!\n");
Contoh MEMBACA DAN MENCETAK #include < iostream.h > main() { int sum; char letter; float money; cout << "Please enter an integer value "; cin >> sum; cout << "Please enter a character "; cin >> letter; cout << "Please enter a float variable "; cin >> money; cout << "\nThe variables you entered were\n"; cout << "value of sum = “ << sum << “\n”; cout << "value of letter = “ << letter << “\n”; cout << "value of money = “ << money << “\n”; return o; }
GAYA MENULIS PROGRAM (1) #include<stdio.h> main() { int sum,loop,kettle,job; char Whoknows; sum=9; loop=7; whoKnows='A'; cout "Whoknows = “ << whoknows << “ kettle = “ << kettle << “\n”; }
GAYA MENULIS PROGRAM (2) #include <iostream.h> main() { int sum, loop, kettle = 0, job; char whoknows; sum = 9; loop = 7; whoknows = 'A'; cout "Whoknows = “ << whoknows << “ kettle = “ << kettle << “\n”; }
GAYA MENULIS PROGRAM(3) the { and } braces directly line up underneath each other This allows us to check ident levels and ensure that statements belong to the correct block of code. This becomes vital as programs become more complex spaces are inserted for readability We as humans write sentences using spaces between words. This helps our comprehension of what we read (if you dont believe me, try reading the following sentence. wishihadadollarforeverytimeimadeamistake. The insertion of spaces will also help us identify mistakes quicker. good indentation Indent levels (tab stops) are clearly used to block statements, here we clearly see and identify functions, and the statements which belong to each { } program body. initialization of variables The first example prints out the value of kettle, a variable that has no initial value. This is corrected in the second example.