bab 06

Post on 04-Jan-2016

57 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

6.1

89

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

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

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

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

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;

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;

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

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

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

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

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

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

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

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

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

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

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

#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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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.

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.

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);

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.

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) )

top related