Aturan ini berlaku untuk semua identifier baik variabel maupun fungsi.
Tipe Data (Bilangan Bulat)
byte - 0 … 28 - 1 1 byte
// Do something here
}
Ekspresi dan Masukan/Keluaran
Assignment
● Bertujuan untuk memberikan nilai ke sebuah variabel.
● Nilai yang dimaksud tidak harus sebuah nilai konstan, namun dapat berasal
dari hasil operasi beberapa variabel (disebut ekspresi).
● Implementasi
○ Pascal : <variabel penyimpan> := <nilai>
○ C++ : <variabel penyimpan> = <nilai>
Ekspresi
1+2
c/d*b
(a - (5 + e))
Pascal C++
a + b Penjumlahan
a - b Pengurangan
a * b Perkalian
Prioritas Operasi
1 Di dalam kurung
3 Penjumlahan, Pengurangan
Apabila terdapat lebih dari satu operasi dengan tingkat prioritas yang sama, maka
pengoperasian diprioritaskan dari kiri.
Operasi Numerik (3/3)
PASCAL C++
= == Sama dengan
PASCAL C++
PASCAL C++
Pascal C++
Pascal C++
read() cin
readln() getline()
Masukan (2/2)
PASCAL C++
MASUKAN
iniA iniB
iniC
satu baris ini masuk D
iniE
Keluaran (1/2)
● Keluaran dapat disajikan dalam berbagai bentuk, seperti standard output (e.g.
layar) atau file.
Pascal C++
Sebetulnya Sebetulnya
read(x);
if x < 0 then
begin
write('negatif')
end else
begin
write('positif')
end;
write('selesai');
repeat do {
<perintah 1>; <perintah 1>;
<perintah 2>; <perintah 2>;
... ...
until <kondisi>; } while (<kondisi>);
Array
Pengertian
● Array merupakan sebuah variabel dengan satu nama, namun memiliki
banyak nilai.
● Akses nilai-nilainya dapat dilakukan dengan indeks.
● Array dapat dianalogikan sebagai lemari yang dapat menyimpan satu buah
jenis barang.
Contoh Array
Perhatikan contoh berikut!
indeks 1 2 3 4 5 6 7 8 9 10 11
A 34 10 21 0 7 82 53 70 82 5 1
● Dari contoh di atas, kita dapatkan A[1] = 34, A[3] = 21, A[8] = 70.
● Selain itu, artinya kita juga memiliki variabel dengan nama A yang memiliki 11
nilai.
● Untuk mengakses nilai elemen ke-x dari variabel A dapat digunakan A[x]
● Lebih lanjut lagi, A[x] dapat dianggap sebagai sebuah variabel yang berdiri
sendiri
Deklarasi (Pascal)
● Pada bahasa pemrograman pascal, array dideklarasikan dengan format
sebagai berikut.
<nama>: array[<nilai awal>..<nilai akhir>] of <tipe>;
● Dimana:
○ <nama> merupakan nama dari array (aturan penamaan sama dengan variabel biasanya)
○ <nilai awal> dan <nilai akhir> adalah rentang indeks array yang didefinisikan (boleh negatif).
○ <tipe> adalah tipe data dari array
● Tipe data yang digunakan dapat berupa longint, double, string, boolean, atau
suatu record.
Contoh Deklarasi (Pascal)
var
status: array[0..100] of boolean;
kamus: array[-1000..1000] of string;
● Dimana:
○ <nama> merupakan nama dari array (aturan penamaan sama dengan variabel biasanya)
○ <ukuran> adalah ukuran dari array. Indeks yang terdefinisi adalah indeks 0 sampai dengan
<ukuran> - 1
○ <tipe> adalah tipe data dari array
Contoh Deklarasi (C++)
bool status[101];
string kamus[1000];
readln(angka[5]);
int data[3][6][11];
1. Prosedur
2. Fungsi
Assignment nilai kembalian tidak harus Instruksi return tidak harus di akhir program,
dilakukan di akhir, bisa dimanapun selama namun apabila dieksekusi, semua instruksi di
masih di antara begin dan end; bawahnya tidak akan dijalankan.
int apa() {
int a = 4;
int b = 3;
return a + b;
a = b + 3;
return a;
}
Parameter
● Parameter adalah tempat untuk memberi masukan bagi subprogram.
● Parameter dituliskan seperti pada deklarasi variabel.
Pascal
procedure nama(<var1>,<var2>:<tipe1>, <var3>:<tipe2>, <var4>:<tipe1>);
C++
void lol(){
cout << kode() << endl;
}
2). Jika dilakukan pemanggilan apa(3, 4), maka fungsi akan mengembalikan nilai?
int j;
int apa(int a, int b) {
if (a < 5) return a + b;
else return a - b;
}
int main() {
j = apa(3, 4);
j = apa(j, 3);
j = apa (3, j);
cout << j << endl;
}
4). Apabila dilakukan pemanggilan mom("lol", 3), maka keluaran dari program adalah...
1. Base case
2. Recursion relation
1. Base case
2. Recursion relation
program utama
Visualisasi
● Misalkan kita memiliki sebuah fungsi
rekursif sebagai berikut: Keluaran
void rekursif(int n) { 3
if (n == 0) cout << 0 << endl; 2
else { 1
cout << n << endl;
rekursif(n-1); rekursif(1)
}
cout << -n << endl;
}
rekursif(2)
program utama
Visualisasi
● Misalkan kita memiliki sebuah fungsi
rekursif sebagai berikut: Keluaran
void rekursif(int n) { 3
if (n == 0) cout << 0 << endl; 2
else { 1
cout << n << endl;
rekursif(n-1);
0
} 0
cout << -n << endl; -1
rekursif(2)
} -2
program utama
Visualisasi
● Misalkan kita memiliki sebuah fungsi
rekursif sebagai berikut: Keluaran
void rekursif(int n) { 3
if (n == 0) cout << 0 << endl; 2
else { 1
cout << n << endl;
rekursif(n-1);
0
} 0
cout << -n << endl; -1
} -2
-3
● Melanjutkan fungsi rekursif(3) rekursif(3)
program utama
Visualisasi
● Misalkan kita memiliki sebuah fungsi
rekursif sebagai berikut: Keluaran
void rekursif(int n) { 3
if (n == 0) cout << 0 << endl; 2
else { 1
cout << n << endl;
rekursif(n-1);
0
} 0
cout << -n << endl; -1
} -2
-3
● Melanjutkan program utama
program utama
SOALLLL
Soal #1
Perhatikan potongan program berikut:
x := x xor y;
x := y xor x;
x := x xor y;
1. Jika nilai awal x dan y adalah 3 dan 4, maka setelah kode di atas dijalankan
nilainya adalah…
2. Jika nilai awal x dan y adalah 1 dan 0, maka setelah kode di atas dijalankan
nilainya adalah...
Soal #2
Soal #3
Keluaran dari program berikut adalah...
Soal #4
Keluaran dari program berikut adalah...
Soal #5
Assume array a (Pascal: a[0..n-1], C: a[n]) consists of distinct positive integers and
max(i,j) returns the maximum value between a[i] to a[j] inclusive. Complete the
program such that it finds the second maximum value of array a.