bab 06
Post on 04-Jan-2016
57 Views
Preview:
DESCRIPTION
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