bab 06

37
6.1 89

Upload: timothy-beasley

Post on 04-Jan-2016

57 views

Category:

Documents


1 download

DESCRIPTION

6. 1. Bab 06. Assignment Statement. dan. Arithmetic Expression. 89. 6. 2. 6.1. Assignment Statement. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bab 06

6.1

89

Page 2: Bab 06

6.1. Assignment Statement.Assignment statement diterjemahkan menjadi pernyataan penugasan atau perintah penugasan. Yang maksud sebenarnya adalah mengisi sebuah variabel. Perhatikan kembali program menambahkan dua buah bilangan 5 dengan 2 dan mencetak totalnya sebagai berikut :

#include <stdio.h>void main(){ int A, B, T; A = 5; B = 2; T = A + B; printf(“%i”, T);}

C#include <iostream.h>void main(){ int A, B, T; A = 5; B = 2; T = A + B; cout << T;}

C++

Pada keduaprogram diatas, masing-masing ada 3 buah assignmet statement yaitu : A = 5; B = 2; dan T = A + B;Tentu saja variabel A, B, dan T sudah disiapkan sebelumnya.

6.2

89

Page 3: Bab 06

public class Contoh01 { public static void main(String args[]) { int A, B, T; A = 5; B = 2; T = A + B; System.out.println( T ); } }

Java

Pada program diatas, masing-masing ada 3 buah assignmet statement yaitu : A = 5; B = 2; dan T = A + B;Tentu saja variabel A, B, dan T sudah disiapkan sebelumnya.

6.3

90

Page 4: Bab 06

1).A = 5; Mengisi variabel A dengan nilai 5.(baca : A diisi 5 atau A sama dengan 5)

5

A

A

Sebelum instruksi A = 5 dilaksanakan, isi variabel A katakanlah tidak diketahui

setelah instruksi A = 5 dilaksanakan, maka isi A menjadi 5.Berapapun isi A sebelumnya akan hilang dan diganti dengan 5

6.2. Assignment Statement dalam Bahasa C/C++ dan Java.

6.2.1. Contoh Penulisan Assignment Statement dalam Bahasa C/C++ dan Java.

6.4

90

Page 5: Bab 06

A = 5;

A = ‘B’;

A = ‘BC’;

A = “B”;

A = “PQR”;

A = 7.5;

A = 12.5e02;

Berikut ini contoh sebuah variabel yang disiapkan dengan tipe tertentu dan diisi dengan nilai konstanta.

Keterangan

A berisi 66

A berisi 66

error

error

A berisi 7

A berisi 1250

tipe integerint A;

6.5

90

Page 6: Bab 06

A = 5;

A = ‘B’;

A = ‘BC’;

A = “B”;

A = “PQR”;

A = 7.5;

A = 12.5e02;

A berisi 66

A berisi 66

error

error

A berisi 7

A berisi 1250

Catatan : A berisi 66, maksudnya bit-bitnyabernilai 66, yang secara karakter isinya adalah karakter ‘B’

6.6

90

Keterangantipe karakterint A;

Page 7: Bab 06

float A;

A = 5;

A = ‘B’;

A = ‘BC’;

A = “B”;

A = “PQR”;

A = 7.5;

A = 12.5e02;

A berisi 5.0

A berisi 66.0

A berisi 17218.0

error

error

A berisi 7.5

A berisi 1250.0

6.7

90

Keterangantipe floating pointfloat A;

Page 8: Bab 06

2). A = B;Mengisi variabel A dengan isi variabel B.Isi variabel B tidak berubah.

5

A B

2

Sebelum instruksiA = B dijalankan, misal isi A= 5, dan B = 2

Setelah instruksi A = B dijalankan, maka isi A menjadi 2, dan isi B tetap 2

2

A B

2

isi B tidak berubah

Tipe variabel A dan B bisa sama bisa juga berbeda.Transfer nilai berdasarkan bit-bit yang ada dalam variabel tersebut sebagai berikut:

Contoh-1: int A;char B = ‘X’;A = B;

0101 1000B karakter X nilai decimal = 88

0000 0000 0101 1000A A akan berisi nilai 88

6.8

91

Page 9: Bab 06

Contoh-2: int A = 344;char B;B = A

0101 1000

0000 0001 0101 1000

B

A

B akan berisi nilai 88 yaitu karakter X.Contoh-3: int A;

float B = 12.5;A = B;

variabel A akan berisi 12

Contoh-4: float A;int B = 12.5;A = B;

A akan berisi 12.0

6.9

91

Page 10: Bab 06

3).Mengisi variabel A dengan hasil penambahan nilai B dan C.(baca : A diisi dengan nilai B + C)

A = B + C;

Misal nilai A, B dan C sebelum instruksi dilaksanakan.

Isi A, B, dan C setelah instruksi A = B + C dijalankan.

5

A B

2

C

68

A B

2

C

6

isi B dan C tidak berubah

Nilai B dan C dibawa ke processor (CPU)dan dilakukan penambahan dalam CPU, hasilnya diisikan ke A, sehingga isi A menjadi 8.Sedangkan isi B dan C tidak berubah.

AB

2

Proses pelaksanaan instruksi A = B + C dalam komputer:

C

6

2 + 6 = 8

Processor (CPU)

6.10

92

Page 11: Bab 06

4). Mengisi variabel A dengan hasil penambahan nilai A dan B.(baca : A diisi dengan nilai A + B)

Instruksi ini lebih dipahami sebagai berikut : Menambahkan nilai A dengan nilai B

A = A + B;

5

A B

2 7

A B

2

sebelum sesudah

Nilai A dan B dibawa ke processor (CPU) dan dilakukan penambahan dalam CPU, hasilnya diisikan kembali ke A, sehingga isi A menjadi 7.

Dengan demikian, instruksi ini bertujuan menambahkan isi B ke A.

A

5

Proses pelaksanaan instruksi A = A + B dalam komputer:

B

2

5 + 2 = 7

CPU

6.11

92

Page 12: Bab 06

5. Mengisi variabel A dengan hasil penambahan nilai A dan konstanta 1.(baca : A diisi dengan nilai A + 1 atau : tambahkan 1 ke A atau : A ditambah 1 )

A = A + 1;

Proses pelaksanaan instruksi A =A + 1 dalam komputer:

Nilai A dibawa ke processor (CPU).Dalam CPU dilakukan penambahan dengan 1hasilnya = 6. Nilai 6 ini diisikan kembalike A , sehingga isi A menjadi 6.

Dengan demikian intruksi ini bertujuanmenambahkan isi A dengan 1

A 5

5 + 1 = 6

5

A

6

Asebelum sesudah

6.12

93

Page 13: Bab 06

Pada Bahasa C, C++ dan Java,

Assignment statement Dapat ditulis menjadi

A = A + B;

A = A - B;

A = A * B;

A = A / B;

A = A + 1;

A = A -1;

A += B;

A -= B;

A *= B;

A /= B;

A += 1;

A -= 1;

Dalam lingkungan pemrograman ada istilah increment dan decrement yang maksudnya penambahan dengan 1 atau pengurangan dengan 1. Istilah ini hanya diperuntukkan pada bilangan integer. yang biasa ditulis sebagai A = A + 1; dan A = A - 1;.Untuk C/C++ dan Java,Khusus untuk increament A = A + 1; dapat ditulis menjadi A++,dan untuk decreament A = A - 1; dapat ditulis menjadi A--;

Catatan :

A = + 5; maksudnya mengisi A dengan +5 (bilangan positip 5 ) bukan menambah nilai A dengan 5

Dengan demikian, dalam C/C++ dan Java, : A=A+1; A+=1; A++;bermaksud sama.

6.13

93

Page 14: Bab 06

Perhatikan assignment statement berikut ini :

X = A + B * C;

A + B * C disebut arithmetic expression, atau pernyataan aritmatika dimana A, B, dan C disebut operand, (yang dioperasikan) sedangkan + dan * disebut arithmetic operator (operator arithmatika)

6.2.2. Arithmetic Expression dalam Assignment Statement .6.14

94

Page 15: Bab 06

Dalam Bahasa C, C++ dan Java operator arithmatika yang digunakan (disusun berdasarkan tingkat hirarkhi tertinggi sampai dengan yang terendah) adalah sebagai berikut :

operator Maksud dan tingkat hirarkhi

* dan / dan %

+ dan -

Kali dan Bagi dan Modulus* dan / dan Modulus tingkat hirarkhinya sama.* dan / dan Modulus tingkat hirakhinya lebih tinggi dari + dan -Tambah dan Kurang+ dan - tingkat hirakhinya sama.

6.2.2.1. Operator Aritmatika .

6.15

94

Page 16: Bab 06

Disamping itu, sama dengan proses arithmatika, untuk mengelompok proses dua atau lebih operand digunakan juga operator ‘( )’ , yaitu kurung buka dan kurung tutup, yang menyatakan bahwa kelompok tersebut mempunyai satu kesatuan nilai.

Contoh untuk Pembagian dan Modulus pembagian:

int N = 25;N = N / 2;printf(“%i”, N)

akan tercetak : 12

float F = 25.0;F = F / 2;printf(“%f”, F)

akan tercetak : 12.500000

int N = 25;int K;K = N % 2;printf(“%i”, K)

akan tercetak : 1

25 dibagi 2 = 12sisa 1.

operator %biasa disebut Modulus, hanya berlaku untuk bilangan integer, sehing-ga % disebut sisa pem-bagian bilangan integer.

Hal ini berlaku juga untuk C++ dan Java.Yang berbeda hanya cara menulis instruksi cetak.

6.16

94

Page 17: Bab 06

Beberapa contoh hasil operasi dengan Modulus

15 % 2 = 115 % 3 = 015 % 4 = 315 % 5 = 015 % 15 = 07 % 15 = 75 % 15 = 5

15 % -4 = 3-15% -4 = -3-15% 4 = -3

5 % 7 = 55 % -7 = 5-5 % 7 = -5-5 % -7 = -5

Catatan: Selain menggunakan operator %, Modolus dapat juga menggunakan fungsi fmod().

contoh :

a = 15;b = fmod(a,4);

sama maksudnya dengan b = a%4;

6.17

96

Page 18: Bab 06

Tidak seperti Bahasa BASIC, Bahasa C/C++ maupun Java, tidak menyiapkan operator untuk pangkat, tapi menyiapkan fungsi untuk operasi pangkat . Untuk C dan C++, fungsi tersebut disiapkan sebagai fungsi pustaka (library function) dalam file math.h. Oleh karena itu bila ingin menggunakan fungsi tersebut maka file math.h harus diinclude.

Contoh : #include<stdio.h>#include<math.h>void main(){ int N = 7; int K; K = pow(N,2); printf(%i”, K);}

pow(N,2) maksudnya N power 2atau N pangkat 2.Biasanya untuk N pangkat 2orang lebih senang menulis N*N

6.2.2.2. Pangkat dan Akar .

a. Pangkat

akan tercetak : 49

6.18

96

Page 19: Bab 06

#include<stdio.h>#include<math.h>void main(){ float F = 5.2; printf(%f”, pow(F,2);}

akan tercetak : 27.0399989

#include<stdio.h>#include<math.h>void main(){ float F = 27; printf(%f”, pow(F,0.5);}

akan tercetak : 5.196152

b. Akar.C, C++ dan Java, menyiapkan fungsi hanya untuk akar kwadrad yaitu sqrt();Contoh :

#include<stdio.h>#include<math.h>void main(){ float F = 27; printf(%f”, sqrt(F));}

akan tercetak : 5.196152

Untuk akar 3, maka dibuat menjadi pangkat 1/3

6.19

96

Page 20: Bab 06

6.3.1 Contoh Soal.

1).Diketahui nilai atau isi A = 5 , B = 2 dan T = 4.

Ditanya isi A, B dan T bila dikenai instruksi

berikut ini :

1a. T = A Jawab : A= 5, B = 2, T = 5

1b. T = T + A Jawab : A = 5, B = 2, T = 9

1c. T = T + A * B Jawab : A = 5, B = 2, T = 14

1d. T = pow(A,B) Jawab : A = 5, B = 2, T = 25

1e. T = A % B Jawab : A = 5, B = 2, T = 1

1f. T = B % A Jawab : A = 5, B = 2, T = 2

1g. T = A / B Jawab : A = 5, B = 2, T = 2

1h. T = B / A Jawab : A = 5, B = 2, T = 0

6.3. Contoh Soal dan Soal-Soal Latihan Mandiri 6.20

97

Page 21: Bab 06

2).Diketahui nilai atau isi A = 5 , dan B = 2.Ditanya isi A dan B bila dikenai dua instruksi berikut ini :

A = B;B = A;

Jawab : A = 2, dan B juga = 2.

Ilustrasi proses :

Nilai awal A=5 dan B=2

Setelah dikenai instruksi : A = BNilai B diisikan ke Asehingga nilai A menjadi = 2

Setelah dikenai instruksi : B = ANilai A diisikan ke Bsehingga nilai B yang asalnya = 2diisi lagi dengan 2.Nilai 2 yang lama hilang,diganti dengan nilai 2 yang baru

A B

A B

5 2

2 2

A B

2 2

1).

2).

3).

6.21

97

Page 22: Bab 06

Ilustrasi proses instruksi :

Nilai awal A=5, B=2, dan T tidak diketahui;

A B

Setelah dikenai instruksi : T = ANilai A diisikan ke Tsehingga nilai T menjadi = 5

5 21).

2).

T = AA = BB = T

T

A B5 2

5 T

Dilanjutkan dengan instruksi : A = BNilai B diisikan ke Asehingga nilai A menjadi = 2

3).A B2 2

5 T

Dilanjutkan dengan instruksi : B = TNilai T diisikan ke Bsehingga nilai B menjadi = 5

4).A B2 5

5 T

3).Diketahui nilai atau isi A = 5, B = 2, dan T tidak diketahui.Ditanya : isi A dan B bila dikenai tiga instruksi berikut ini :

T = A;A = B;B = T;

Jawab : A = 2, dan B = 5 (terjadi pertukaran nilai (swap) antara A dan B)

6.22

98

Page 23: Bab 06

4).

Tuliskan assignment statement untuk menyatakan persamaan :

4a. X = A + B/C Jawab : X = A + B / C

4b. X = (A + B) / C Jawab : X= (A + B ) / C

A + B4c. X = -------- Jawab : X = (A + B ) / C C Salah : X = A + B / C

A + B4d. X = ------- Jawab : X = (A + B) / (2 * C) 2C Salah : X = (A + B) / 2 * C

A2 - (2B)4e. X = ------------ Jawab : (A*A - sqrt(2*B) ) / ( 4 * A * C) 4AC

6.23

99

Page 24: Bab 06

5). Dari persamaan kuadrat : AX + BX + C = 0dengan rumus ABC dapat dicari nilai X1 dan X2

Isilah titik-titik dalam jawaban berikut ini untuk menyelesaikan penulisan assigment statement untuk menyatakan nilai X1 menurut rumus ABC.

Jawab : X1 = ………………………………………..

6.24

99

Page 25: Bab 06

6).

Dalam variabel C ada sebuah nilai yang menyatakan suhu dalam derajat Celcius.

Isilah titik-titik dalam jawaban berikut ini untuk menyelesaikan penulisan assigment statement untuk menyatakan suhu tersebut dalam derajat Fahrenheit yang akan disimpan dalam variabel F.

Jawab : F =………………………………………..

6.25

99

Page 26: Bab 06

7).

Dalam variabel F ada sebuah nilai yang menyatakan suhu dalam derajat Fahreinheit.

Isilah titik-titik dalam jawaban berikut ini untuk menyelesaikan penulisan assigment statement untuk menyatakan suhu tersebut dalam derajat Celcius yang akan disimpan dalam variabel C.

Jawab : C= ………………………………………..

6.26

99

Page 27: Bab 06

8). Persoalan : Konversi dari ( . . . Jam, . . . Menit, . . . Detik ) ke dalam Detik.Sesorang bekerja selama 1 Jam, 5 Menit dan 10 Detik, yang disimpan dalam variabel JAM, MENIT dan DETIK, sehingga isi variabel JAM = 1, MENIT = 5, dan DETIK = 10.Tulis sebuah instruksi (assignment statement) untuk menghitung lama dia bekerja dalam satuan detik yang disimpan dalam variabel D.

Jawab : D = JAM * 3600 + MENIT * 60 + DETIK

sehingga variabel D akan berisi : 1*3600 + 5*60 + 10 = 3910 yang menyatakan waktu dalam detik.

1

JAM MENIT DETIK

5 10

D

3910

6.27

100

Page 28: Bab 06

9). Persoalan : Konversi dari Detik ke Jam, Menit dan Detik.Diketahui isi variabel DETIK = 7425 yang menyatakan waktu dalam satuan detik. Juga sudah ada variabel JAM dan MENIT yang isinya tidak diketahui atau tidak perlu diketahui (Semua variabel bertipe int)Ditanya isi variabel JAM , MENIT dan DETIK setelah dikenai instruksi-instruksi berikut ini :

JAM = DETIK / 3600DETIK = DETIK % 3600

MENIT = DETIK / 60DETIK = DETIK % 60

Jawab : isi variabel JAM = 2, MENIT = 3, dan DETIK = 45

6.28

100

Page 29: Bab 06

Ilustrasi Proses :

1) Mula-mula isi DETIK = 7425

isi JAM dan MENIT tidak

diketahui :

2) Setelah dikenai instruksi

JAM = DETIK / 3600

3) Setelah dikenai instruksi

DETIK = DETIK % 3600

4) Setelah dikenai instruksi

MENIT =¬ DETIK / 60

5) Setelah dikenai instruksi

DETIK = DETIK % 60

7425

DETIK JAM MENIT

7425

2

225

45

2 3

2 3

225 2

Jadi : 7425 detik = 2 Jam, 3 Menit dan 45 Detik

6.29

100

Page 30: Bab 06

10). Persoalan : Konversi dari Detik ke Jam, Menit dan Detik.Diketahui isi variabel DETIK = 7425 yang menyatakan waktu dalam satuan detik. Juga sudah ada variabel JAM dan MENIT yang isinya tidak diketahui atau memang awalnya tidak perlu diketahuiDitanya isi variabel JAM , MENIT dan DETIK setelah dikenai instruksi-instruksi berikut ini :

JAM = DETIK / 3600DETIK = DETIK - JAM * 3600

MENIT = DETIK / 60DETIK = DETIK - MENIT * 60

Jawab : isi variabel JAM = 2, MENIT = 3, dan DETIK = 45

Catatan : Cara ini biasa digunakan bila fungsi mod tidak tersedia dalam suatu bahasa pemrograman atau memang tidak ingin menggunakan fungsi Mod.

6.30

101

Page 31: Bab 06

Ilustrasi Proses :

1) Mula-mula isi DETIK = 7425isi JAM dan MENIT tidakdiketahui :

2) Setelah dikenai instruksiJAM = DETIK / 3600

3) Setlah dikenai instruksiDETIK = DETIK -JAM*3600

( = 7425 - 2*3600) ( = 7425 - 7200)

( = 225 )

4) Setelah dikenai instruksiMENIT = DETIK / 60

5) Setelah dikenai instruksiDETIK = DETIK - MENIT * 60

( = 225 - 3 * 60) ( = 225 - 180)

( = 45 )

7425

DETIK JAM MENIT

7425

DETIK JAM MENIT

2

225

DETIK JAM MENIT

45

DETIK JAM MENIT

2 3

2 3

225

DETIK JAM MENIT

2

6.31

101

Page 32: Bab 06

Apa yang tercetak bila instruksi-instruksi dalam Bahasa C berikut ini dijalankan :

1. printf(“Jakarta“);printf(“Bandung”);

4. printf(“Jakarta\n“);printf(“\n\nBandung”);

5. printf(“Jakarta\bBandung“);

2. printf(“Jakarta\nBandung“);

3. printf(“Jakarta\n“);printf(“Bandung”);

6.4 Soal-Soal Latihan Mandiri Tambahan.

Page 33: Bab 06

Apa yang tercetak bila instruksi-instruksi dalam Bahasa C berikut ini dijalankan :

9. printf(“12345678901234567890”);printf(“\n%10s”, “Jakarta“);printf(“%s”, “Bandung”);

printf(“12345678901234567890”);printf(“\n%-10s”, “Jakarta“);printf(“%10s”, “Bandung”);

10.

6. printf(“Jakarta\b“);printf(“Bandung”);

7. printf(“Jakarta\rBali“);

8. printf(“Jakarta\r“);printf(“Bali”);

6.4 Soal-Soal Latihan Mandiri Tambahan.

Page 34: Bab 06

int I=65;printf(“%c”, ‘I’ );

11.

int I=65;printf(“%c”, I );

12.

int A=25;printf(“%i”, 25 );

14.

int A=25;printf(“%i”, A );

15.

int I=65;printf(“%i”, I );

13.

int A=25;printf(“%i”, ‘A’ );

16.

char C = ‘A’;printf(“%c”, C );

17.

char C = ‘A’;printf(“%i”, C );

18.

char C = ‘A’;printf(“%c”, ‘C’ );

19.

char C = ‘A’;printf(“%c”, ‘C’ );

20.

Page 35: Bab 06

int A=25;printf(“%i”, ++A );

22.

23.

int A=25;printf(“%i”, A+=A%2);

24.

int A=25;printf(“%i”, A++ );printf(“%i”, ++A);

25.

int A=25;printf(“%i”, A/2*2 );

21.

int A=25;printf(“%i”, A%2*2);

Page 36: Bab 06

int A=25;int B;B=++A;printf(“%i”, B );

26.

int A=25;int B;B=++A;printf(“%i”, ++B );

27.

int A=25;int B;B=A++;printf(“%i”, B );

28.

int A=25;int B;B=A++;printf(“%i”, ++B );

29.

int A=25;int B;B=A++;printf(“%i”, B++ );

30.

Page 37: Bab 06

33. int N = 15;printf(“%d”, N-2>10);

34. int N = 15;printf(“%d”, N-2<10);

35. int N = 15;printf(“%d”, N-2 !=15);

int A=25;printf(“%i”, A+5 ); printf(“%i”, A );

31.

int A=25;printf(“%i”, A=+5 ); printf(“%i”, A );

32.

36. int A = 15, B=12;printf(“%d”, A<B? (A) : (B) )