0% menganggap dokumen ini bermanfaat (0 suara)
38 tayangan53 halaman

PD-06-Simple Process

Pemrograman Dasar membahas proses sederhana dalam pemrograman komputer seperti pemanggilan fungsi dan ekspresi serta operator-operator dasar seperti penugasan, aritmetika, relasional dan bitwise."

Diunggah oleh

shabira widyadhari
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
38 tayangan53 halaman

PD-06-Simple Process

Pemrograman Dasar membahas proses sederhana dalam pemrograman komputer seperti pemanggilan fungsi dan ekspresi serta operator-operator dasar seperti penugasan, aritmetika, relasional dan bitwise."

Diunggah oleh

shabira widyadhari
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 53

Pemrograman Dasar

Proses Sederhana

Fakultas Ilmu Komputer


Universitas Brawijaya
1
Learning Outcomes

• Pada akhir pertemuan ini, diharapkan mahasiswa


akan mampu:
• Memahami tentang proses sederhana (simple
process) berupa pemanggilan metode (fungsi) dan
ekspresi serta dapat menerapkannya dalam
algoritme ataupun pemrograman dengan bahasa
pemrograman Java.

2
Outline Materi

• Proses Sederhana (Simple Statement)


• Ekspresi
• Operator Penugasan (Assignment)
• Operator Logika
• Operator Aritmetika
• Operator Relasional
• Operator Bitwise

3
Proses Sederhana

• Dikatakan proses sederhana karena dipandang sebagai


proses yang hanya mempunyai sebuah aliran masukan dan
sebuah aliran keluaran.
• Proses sederhana dalam pemrograman komputer terdiri
dari:
• Pemanggilan metode atau procedure atau function
• Perhitungan aritmetika atau logika
• Dalam flowchart digambarkan sbb.:
Aliran Masukan Aliran Masukan

Proc_name() atau Proses


Aliran Keluaran Aliran Keluaran

Pemanggilan metode/procedure/function Perhitungan Aritmetika/Logika


4
Ekspresi

• Ekspresi merupakan proses sederhana dalam pemrograman


komputer untuk melakukan proses perhitungan aritmetika
dan logika.
• Prinsip dasar perhitungan aritmetika dan logika dalam
pemrograman komputer adalah melakukan perhitungan
aritmetika atau logika kemudian hasilnya disimpan dalam
variabel tertentu. Dalam flowchart digambarkan sbb.:

atau
Var  perhitungan A/L Ekspresi

5
Ekspresi

• Contoh:
Dlm bhs pemrograman Java dapat ditulis:
cc+1 c=c+1; atau c+=1; atau ++c; atau c++;

• Artinya (dibaca) nilai data dari variabel c ditambah


dengan 1 hasilnya disimpan ke dalam variabel c.
• Tidak boleh:

Karena tidak ada proses penyimpanan dari


c+1 hasil perhitungan dari c+1 ke variabel

6
Ekspresi

• Komponen utama ekspresi adalah operan (operand) dan


operator.
• Operand dapat berupa variabel, konstanta, nilai data konstan
maupun fungsi. Setiap operand harus memiliki nilai data.
• Operator adalah simbol yang mengolah nilai pada operand
dan menghasilkan satu nilai baru.
• Dalam pemrograman komputer penulisan perhitungan
aritmetika/logika TIDAK BOLEH BERTINGKAT. Contoh:

xy + yz Untuk itu setiap operator memiliki presedensi


x
xy − yz (hirarki) dan asosiativitas.

7
Precedence dan Associativity Operator

• Precedence menentukan urutan pengerjaan


operator berdasarkan prioritas. Operator yang
memiliki tingkat presedensi lebih tinggi akan
dikerjakan lebih dahulu.

• Associativity menentukan urutan pengerjaan


operator berdasarkan lokasinya dalam sebuah
ekspresi (apakah dari kiri atau dari kanan).

• Associativity berlaku untuk operator-operator yang


memiliki presedensi yang sama.

8
Operator dengan
Prioritas dan Urutan Pengerjaan
URUTAN
KATEGORI SIMBOL NAMA PRIORITAS
PENGERJAAN
Indeks larik, [ ] Elemen array
kurung dan akses ( ) Merubah prioritas 1 Kiri-Kanan
elemen . Akses anggota/elemen
++ Pre-increment
-- Pre-decrement
! Logika NOT
~ Komplemen Bitwise
Operator Unary 2 Kanan-Kiri
- Unary minus
+ Unary plus
(type) Type casting
new Mengalokasi objek
Operator * Perkalian
aritmetika / Pembagian 3 Kiri-Kanan
perkalian % Sisa Pembagian
+ Penambahan
Operator
- Pengurangan 4 Kiri-Kanan
penambahan
+ String Concatenation
<< Geser bit ke kiri
Pergeseran bit >> Geser bit ke kanan 5 Kiri-Kanan
>>> Geser bit ke kanan positif
9
Operator dengan
Prioritas dan Urutan Pengerjaan
URUTAN
KATEGORI SIMBOL NAMA PRIORITAS
PENGERJAAN
< Lebih kecil
<= Lebih kecil sama dengan
Operator Relational > Lebih besar 6 Kiri-Kanan
>= Lebih besar sama dengan
instanceof Tes referensi
== Sama dengan
Operator Relational 7 Kiri-Kanan
!= Tidak sama dengan
& Bitwise AND
8
& Boolean (Logika) AND
Operator Bitwise dan ^ Bitwise XOR
9 Kiri-Kanan
Boolean (Logika) ^ Boolean (Logika) XOR
| Bitwise OR
10
| Boolean (Logika) OR
&& Logika AND 11
Operator Logika Kiri-Kanan
|| Logika OR 12
Operator Ternary ?: Operator kondisi 13 Kanan-Kiri
=, +=, -=,
Operator penugasan aritmetika
Operator Penugasan *=, /=, %=
14 Kanan-Kiri
Majemuk &=, ^=, |=,
Operator penugasan bitwise
<<=, >>=

10
Operator dengan
Prioritas dan Urutan Pengerjaan
• Contoh: xy + yz
x
xy − yz
• Ditulis dalam bahasa pemrograman Java:
• x = (x * y + y * z)/(x * y – y * z);

1 2 4 5

3 6

11
Precedence dan Associativity

12
Operator

• Didasarkan atas jumlah operan (operand), operator


dapat dibedakan menjadi tiga jenis, yaitu:
• Unary operator
• Binary operator
• Ternary operator
• Unary operator memerlukan 1 operand,
binary operator memerlukan 2 operand, sedangkan
ternary operator memerlukan 3 operand.

13
Operator

• Berdasarkan jenis operasinya, operator dalam


bahasa pemrograman Java dapat dikelompokkan:
• Operator Penugasan (Assignment Operator)
• Operator Logika
• Operator Aritmetika
• Operator Relasional
• Operator Bitwise

14
Operator Penugasan (Assignment)

• Termasuk binary operator


• Digunakan untuk memberikan nilai kepada suatu
operand. Sintak sbb:
operand1 operator operand2;
• Operand1 harus berupa variabel, sedangkan
operand2 dapat sembarang operand termasuk
variabel dari operand1.
• Urutan pengerjaan (asosiativitas) operator
penugasan dari kanan ke kiri.

15
Operator Penugasan

• Contoh
• x = 2; // konstanta
• x = y; // variabel lain
• x = 2 * y; // ekspresi
• a = sin (y); // fungsi

• Tipe hasil operasi disesuaikan dengan tipe operand


sebelah kiri.
• int x = 7/2; /*nilai x sama dgn 3 */
• float y = 3; /*nilai y sama dengan 3.000 */

16
Operator Aritmetika

• Digunakan untuk melakukan operasi matematika


Simbol Fungsi Contoh
+ Penambahan x = y + 6;
- Pengurangan y = x – 5;
* Perkalian y = y * 3;
/ Pembagian z = x/y;
% Modulo A = 10 % 3;
++ Increment x++;
-- Decrement z--;
() Menaikan prioritas x=(2+3)*5

17
Operator Aritmetika
• Modulo:
• Simbol: %
• Termasuk binary operator
• Untuk menghitung sisa hasil bagi
• n % 2, dapat digunakan untuk menguji apakah integer n
bernilai genap atau ganjil
n % 2 = 0 → n GENAP
n % 2 = 1 → n GANJIL

• Increment dan Decrement:


• Simbol: ++(increment), --(decrement)
• Termasuk unary operator
• Menaikkan (++) dan menurunkan (--) nilai variabel dengan 1
• Posisinya bisa di depan (pre) atau dibelakang (post) variabel

18
Operator Aritmetika

• Contoh:
n++; //post increment
++n; //pre increment
n--; //post decrement
--n; //pre decrement
• Jika statement increment stand alone. Maka n++;
atau ++n; sama artinya n=n+1;
• Jika statement decrement stand alone. Maka n--;
atau --n; sama artinya n=n-1;

19
Operator Aritmetika

• Contoh:

20
Operator Aritmetika

• Jika ++n dan n++ sebagai statement yang terikat


dalam ekspresi lainnya (sub ekspresi), keduanya
mempunyai arti yang berbeda.
• ++n → n ditambah 1, baru diproses terhadap
ekspresinya
• n++ → n langsung diproses terhadap ekspresinya
tanpa ditambah 1 terlebih dahulu, pada saat selesai
baru n ditambah 1

21
Operator Aritmetika

22
Operator Aritmetika

• Setiap ekspesi yang berbentuk:


<Variabel> = <Variabel> <Operator><Exp>;
• dapat diganti dengan:
<Variabel> <Operator> = <Exp>;
• Operator ini sering disebut dengan Combined Operator.
Ekspresi Dapat diganti dengan
a = a + b; a += b;
a = a – b; a -= b;
a = a * b; a *= b;
a = a / b; a /= b;
a = a % b; a %= b;
a=a^b; a ^= b;
23
Operator Aritmetika

• Contoh soal:
x *= y +1; artinya sama dengan:

A. x = x * (y + 1);
B. x = x * y + 1;
C. x = x + 1 * y;
D. x = (x + 1) * y;

Jawab: A

24
Operator Relasional

• Digunakan untuk membandingkan dua nilai, dan


hasilnya true atau false
Simbol Fungsi
== Sama Dengan
!= Tidak Sama Dengan
< Lebih Kecil Dari
> Lebih Besar Dari
<= Lebih Kecil atau Sama Dengan
>= Lebih Besar atau Sama Dengan
?: Conditional assignment

25
Conditional Expressions

• Conditional expression menggunakan ternary


operator ?:
sintaksisis → exp1 ? exp2 : exp3;
• Jika exp1 bernilai true, maka exp2 dieksekusi. Sebaliknya
jika exp1 bernilai false, maka exp3 dieksekusi.
• Contoh yang sama artinya dgn statement diatas:
z = (a > b) ? a : b;
• Jika (a>b) bernilai benar maka z=a. Sebaliknya jika (a>b)
bernilai salah maka z=b.

26
Conditional Expressions
Contoh:

27
Operator Logika

• Digunakan untuk melakukan operasi logika


Simbol Fungsi
&& AND
|| OR
! NOT

• Table Kebenaran operator logika:


A B !A A && B A || B
True True False True True
True False False False True
False True True False True
False False True False False
28
Operator Logika

• Operand pada operator logika harus mempunyai


nilai boolean, yaitu true atau false.
• Contoh:
• int x=5; int y=0, a ;
• boolean b;
• a = x && y; //error
• b = (x > y) && (y>=0); //ok

29
Operator Bitwise

Simbol Fungsi Contoh


& AND A&B

| OR A | B;

^ XOR A ^ B;

~ Complement 1 ~A;

>> Shift Right A >> 3;

<< Shift Left B << 2;

30
Operator Bitwise

• Operasinya dilakukan bit per bit


• Contoh: a=24 Binernya: 011000
b=35 Binernya: 100011
int a=24; int b=35; int c;
c = a & b; //nilai c = 0 (a&b) per bit hasilnya:
000000 desimalnya 0
c = a | b; //nilai c = 59
(a | b) per bit hasilnya:
111011 desimalnya 59

31
Operator Bitwise

• Dua buah bit di-XOR-kan akan menghasilkan 1 jika


kedua bit tersebut berbeda, dan akan menghasilkan
0 jika kedua bit tersebut sama.

• Contoh: Desimal 45 binernya: 0101101


int A,B=45; Desimal 75 binernya: 1001011
A=B^75; //Nilai A=102 Kemudian bit per bit di-XOR-kan maka
hasilnya: 1100110 atau (102 desimal).

32
Operator Bitwise

• Dengan menggunakan operator komplemen (~),


maka setiap bit bernilai 0 akan diubah menjadi 1
dan sebaliknya.
0xC3 binernya: 1100 0011
• Contoh:
int A, B=0xC3; Di-komplemenkan hasilnya:
A=~B; //nilai A=0xFFFFFF3C; 0011 1100 atau dlm notasi
hexadecimal menjadi 3C

Catatan:
Penulisan bilangan hexadesimal pada bhs
pemrograman Java menggunakan awalan
0x atau 0X (nol-X).

33
Operator Bitwise

• Operator shift-right (>> n) dapat dipergunakan


untuk menggeser n bit ke kanan dan diberi nilai 0
(nol) sejumlah n bit dari paling kiri yang
ditinggalkan.
• Operator shift-left (<< n) dapat dipergunakan untuk
menggeser n bit ke kiri dan diberi nilai 0 (nol)
sejumlah n bit dari paling kanan yang ditinggalkan.

• Contoh:
• int A, B=78; Catatan:
78 binernya: 00100 1110
• A = B>>3; //nilai A=9
Geser kekanan 3 bit: 000001001 = 9
• A = B<<2; //nilai A=312 Geser kekiri 2 bit : 100111000 = 312

34
Kelas Math

• Kelas Math terdapat pada paket java.lang yang


diperlukan untuk berbagai operasi matematika
seperti sinus, cosinus, akar kuadrat dsb.
• Kelas Math mempunyai 2 konstanta, yaitu PI dan E.
Konstanta tersebut didefinisikan sbb.:
public static final double E =
2.7182818284590452354;
public static final double PI =
3.14159265358979323846;
• Kelas Math mempunyai sejumlah metode
sebagaimana dapat dilihat pada tabel berikut:
35
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai absolut bertipe
1 static double abs(double a)
double
Menghasilkan nilai absolut bertipe
2 static float abs(float a)
float
Menghasilkan nilai absolut bertipe
3 static int abs(int a)
int
Menghasilkan nilai absolut bertipe
4 static long abs(long a)
long
Menghasilkan nilai arc cosine
5 static double acos(double a) bertipe double (a berjangkauan
0..PI)
Menghasilkan nilai arc sine bertipe
6 static double asin(double a)
double (a berjangkauan –pi/2..pi/2)
36
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai arc tangent
7 static double atan(double a) bertipe double (a berjangkauan –
pi/2..pi/2)
Menghasilkan nilai komponen theta
pada koordinat polar dengan tipe
atan2(double y,
8 static double double (x dan y menyatakan
double x)
komponen x dan y pada koordinat
persegi)
Menghasilkan nilai akar pangkat tiga
9 static double cbrt(double a)
bertipe double
Menghasilkan nilai terkecil yg lebih
10 static double ceil(double a) besar atau sama dengan a bertipe
double
37
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai bertipe double
copySign(double magn sama dengan magnitude dengan
11 static double
itude, double sign) tanda sesuai dengan tanda pada
sign.
Menghasilkan nilai bertipe float
copySign(float magni sama dengan magnitude dengan
12 static float
tude, float sign) tanda sesuai dengan tanda pada
sign.
Menghasilkan nilai bertipe double
copySign(double magn sama dengan magnitude dengan
13 static double
itude, double sign) tanda sesuai dengan tanda pada
sign.

38
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai cosine bertipe double
14 static double cos(double a)
(a dalam satuan radian)
Menghasilkan nilai hyperbolic cosine
15 static double cosh(double x)
bertipe double.
16 static double exp(double a) Menghasilkan nilai ea bertipe double
17 static double expm1(double x) Menghasilkan nilai ea-1 bertipe double
Menghasilkan nilai terbesar yg lebih kecil
18 static double floor(double a)
atau sama dengan a bertipe double
Menghasilkan nilai unbiased exponent
getExponent
19 static int yang digunakan dalam representasi dari a
(double d)
bertipe double.

39
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai unbiased exponent
20 static int getExponent(float f) yang digunakan dalam representasi dari a
bertipe float.
hypot(double x, Menghasilkan nilai sqrt (x2 + y2) tanpa
21 static double
double y) intermediate overflow atau underflow.
Menghasilkan nilai hasil pembagian f1
IEEEremainder(double
22 static double dan f2 dengan standart IEEE754 dan
f1, double f2)
bertipe double.
Menghasilkan nilai logaritma a (elog a)
23 static double log(double a)
bertipe double.
Menghasilkan nilai logaritma (10) dari a
24 static double log10(double a)
(10log a) bertipe double.

40
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai logaritma natural dari
25 static double log1p(double x)
jumlah argumen dan 1.
max(double a, Menghasilkan nilai maksimum dari a dan
26 static double
double b) b bertipe double.
max(float a, Menghasilkan nilai maksimum dari a dan
27 static float
float b) b bertipe float.
Menghasilkan nilai maksimum dari a dan
28 static int max(int a, int b)
b bertipe int.
Menghasilkan nilai maksimum dari a dan
29 static long max(long a, long b)
b bertipe long.
min(double a, Menghasilkan nilai minimum dari a dan b
30 static double
double b) bertipe double.

41
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


min(float a, Menghasilkan nilai minimum dari a dan b
31 static float
float b) bertipe float.
Menghasilkan nilai minimum dari a dan b
32 static int min(int a, int b)
bertipe int.
Menghasilkan nilai minimum dari a dan b
33 static long min(long a, long b)
bertipe long.
nextAfter(double sta Menghasilkan nilai decimal pecahan
34 static double rt, double berdekatan dengan argumen pertama ke
direction) arah argumen kedua bertipe double.
Menghasilkan nilai decimal pecahan
nextAfter(float star
35 static float berdekatan dengan argumen pertama ke
t, double direction)
arah argumen kedua bertipe float.

42
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai decimal pecahan
36 static double nextUp(double d) berdekatan dengan d ke arah positif tak
hingga bertipe double.
Menghasilkan nilai decimal pecahan
37 static float nextUp(float f) berdekatan dengan f ke arah positif tak
hingga bertipe float.
pow(double a,
38 static double Menghasilkan nilai ab bertipe double.
double b)
Menghasilkan nilai acak antara 0.0 dan
39 static double random()
1.0 bertipe double.
Menghasilkan nilai bilangan bulat
40 static double rint(double a)
terdekat dari a bertipe double.

43
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai bilangan bulat
41 static long round(double a)
terdekat dari a bertipe long.
Menghasilkan nilai bilangan bulat
42 static int round(float a)
terdekat dari a bertipe int.
Menghasilkan nilai bertipe double,
yaitu nol jika argumen adalah nol,
43 static double signum(double d) 1,0 jika argumen lebih besar dari
nol, -1.0 jika argumen kurang dari
nol.
Menghasilkan nilai bertipe float,
yaitu nol jika argumen adalah nol,
44 static float signum(float f) 1,0 jika argumen lebih besar dari
nol, -1.0 jika argumen kurang dari
nol. 44
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai sine bertipe double (a
45 static double sin(double a
dalam satuan radian)
Menghasilkan nilai hyperbolic sine
46 static double sinh(double x)
bertipe double.
Menghasilkan nilai akar kuadrat dari a
47 static double sqrt(double a)
bertipe double.
Menghasilkan nilai tangent bertipe
48 static double tan(double a)
double (a dalam satuan radian)
Menghasilkan nilai hyperbolic tangent
49 static double tanh(double x)
bertipe double.
Menghasilkan nilai sudut dalam derajat
toDegrees(double ang
50 static double sebagai hasil konversi dari argumen
rad)
dalam radian.

45
Metode di Kelas Math

No Tipe Hasil Metode Keterangan


Menghasilkan nilai sudut dalam radian
toRadians(double ang
51 static double sebagai hasil konversi dari argumen
deg)
dalam derajat.

46
Latihan

• Jika semua variabel bertipe integer, maka tentukan


nilai A sbb:
• B=23; C=12; D=32; E=0;
• A = B && E;
• A = B & C;
• A = C || D;
• A = B | D;
• A = B > 2;
• A = B >> 2;
• A = C < 3;
• A = C << 3;
• A = B = C;
• A = B == C;

47
Latihan

• Sebutkan contoh operator yang termasuk:


• Unary Operator
• Binary Operator
• Ternary Operator

• Sebutkan beberapa operator yang bisa berfungsi


sebagai unary dan binary operator dan berikan
contohnya.

48
Latihan

• Apakah keluaran yang akan ditampilkan di layar


monitor bila program di bawah berhasil dieksekusi?

49
Latihan

• Bagaimanakah hasil keluaran yang ditampilkan di


layar monitor dari program di bawah? Jelaskan?
• Bila tipe data x diganti dengan float, jelaskan apa
hasilnya, mengapa?

50
Latihan

• Apakah keluaran yang akan ditampilkan di layar


monitor bila program di atas bila dieksekusi ?
Jelaskan mengapa bisa diperoleh demikian?

51
Latihan

Apakah keluaran yang akan ditampilkan di layar monitor bila


program di atas bila dieksekusi? Jelaskan mengapa bisa
menghasilkan keluaran demikian?

52
Latihan

• z = (n > 0) ? f : b;

• Perhatikan conditional expression di atas, bolehkah


sekiranya variabel f dan b memiliki tipe data yang
berbeda?

53

Anda mungkin juga menyukai