370 likes | 544 Views
6. 1. Bab 06. Assignment Statement. dan. Arithmetic Expression. 89. 6. 2. 6.1. Assignment Statement.
E N D
6.1 Bab 06 Assignment Statement dan Arithmetic Expression 89
6.2 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 : C++ C #include <iostream.h> void main() { int A, B, T; A = 5; B = 2; T = A + B; cout << T; } #include <stdio.h> void main() { int A, B, T; A = 5; B = 2; T = A + B; printf(“%i”, T); } 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. 89
6.3 Java public class Contoh01 { public static void main(String args[]) { int A, B, T; A = 5; B = 2; T = A + B; System.out.println( T ); } } 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. 90
6.4 6.2. Assignment Statement dalam Bahasa C/C++ dan Java. 6.2.1. Contoh Penulisan Assignment Statement dalam Bahasa C/C++ dan Java. A = 5; Mengisi variabel A dengan nilai 5. (baca : A diisi 5 atau A sama dengan 5) 1). Sebelum instruksi A = 5 dilaksanakan, isi variabel A katakanlah tidak diketahui A setelah instruksi A = 5 dilaksanakan, maka isi A menjadi 5. Berapapun isi A sebelumnya akan hilang dan diganti dengan 5 5 A 90
6.5 Berikut ini contoh sebuah variabel yang disiapkan dengan tipe tertentu dan diisi dengan nilai konstanta. tipe integer int A; Keterangan A berisi 66 A berisi 66 error error A berisi 7 A berisi 1250 A = 5; A = ‘B’; A = ‘BC’; A = “B”; A = “PQR”; A = 7.5; A = 12.5e02; 90
6.6 tipe karakter int A; Keterangan A berisi 66 A berisi 66 error error A berisi 7 A berisi 1250 A = 5; A = ‘B’; A = ‘BC’; A = “B”; A = “PQR”; A = 7.5; A = 12.5e02; Catatan : A berisi 66, maksudnya bit-bitnya bernilai 66, yang secara karakter isinya adalah karakter ‘B’ 90
6.7 tipe floating point float A; Keterangan 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 90
6.8 Mengisi variabel A dengan isi variabel B. Isi variabel B tidak berubah. A = B; 2). Setelah instruksi A = B dijalankan, maka isi A menjadi 2, dan isi B tetap 2 Sebelum instruksi A = B dijalankan, misal isi A= 5, dan B = 2 5 2 2 2 A B A B 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; karakter X nilai decimal = 88 0101 1000 B 0000 0000 0101 1000 A akan berisi nilai 88 A 91
6.9 int A = 344; char B; B = A Contoh-2: 0000 0001 0101 1000 A 0101 1000 B 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 91
Mengisi variabel A dengan hasil penambahan nilai B dan C. (baca : A diisi dengan nilai B + C) 6.10 A = B + C; 3). Isi A, B, dan C setelah instruksi A = B + C dijalankan. Misal nilai A, B dan C sebelum instruksi dilaksanakan. 8 2 6 5 2 6 A B C A B C Proses pelaksanaan instruksi A = B + C dalam komputer: isi B dan C tidak berubah 2 6 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. B A C 2 + 6 = 8 Processor (CPU) 92
6.11 A = A + B; 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 4). 5 2 7 2 Proses pelaksanaan instruksi A = A + B dalam komputer: A B A B sebelum sesudah 5 2 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 B CPU 5 + 2 = 7 92
6.12 A = A + 1; 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 ) 5. 5 6 A A sesudah sebelum Proses pelaksanaan instruksi A =A + 1 dalam komputer: A 5 Nilai A dibawa ke processor (CPU). Dalam CPU dilakukan penambahan dengan 1 hasilnya = 6. Nilai 6 ini diisikan kembali ke A , sehingga isi A menjadi 6. Dengan demikian intruksi ini bertujuan menambahkan isi A dengan 1 5 + 1 = 6 93
6.13 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; Catatan : A = + 5; maksudnya mengisi A dengan +5 (bilangan positip 5 ) bukan menambah nilai A dengan 5 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--; Dengan demikian, dalam C/C++ dan Java, : A=A+1; A+=1; A++; bermaksud sama. 93
6.14 6.2.2. Arithmetic Expression dalam Assignment Statement . 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) 94
6.15 6.2.2.1. Operator Aritmatika . 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. 94
6.16 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: float F = 25.0; F = F / 2; printf(“%f”, F) int N = 25; N = N / 2; printf(“%i”, N) akan tercetak : 12 akan tercetak : 12.500000 int N = 25; int K; K = N % 2; printf(“%i”, K) operator % biasa disebut Modulus, hanya berlaku untuk bilangan integer, sehing-ga % disebut sisa pem-bagian bilangan integer. 25 dibagi 2 = 12 sisa 1. akan tercetak : 1 Hal ini berlaku juga untuk C++ dan Java. Yang berbeda hanya cara menulis instruksi cetak. 94
6.17 Beberapa contoh hasil operasi dengan Modulus 15 % 2 = 1 15 % 3 = 0 15 % 4 = 3 15 % 5 = 0 15 % 15 = 0 7 % 15 = 7 5 % 15 = 5 15 % -4 = 3 -15% -4 = -3 -15% 4 = -3 5 % 7 = 5 5 % -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; 96
6.18 6.2.2.2. Pangkat dan Akar . a. Pangkat 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 2 atau N pangkat 2. Biasanya untuk N pangkat 2 orang lebih senang menulis N*N akan tercetak :49 96
6.19 #include<stdio.h> #include<math.h> void main() { float F = 5.2; printf(%f”, pow(F,2); } #include<stdio.h> #include<math.h> void main() { float F = 27; printf(%f”, pow(F,0.5); } akan tercetak :27.0399989 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)); } Untuk akar 3, maka dibuat menjadi pangkat 1/3 akan tercetak :5.196152 96
6.3. Contoh Soal dan Soal-Soal Latihan Mandiri 6.20 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 97
6.21 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. 5 2 Ilustrasi proses : A B 1). Nilai awal A=5 dan B=2 2). Setelah dikenai instruksi : A = B Nilai B diisikan ke A sehingga nilai A menjadi = 2 2 2 A B Setelah dikenai instruksi : B = A Nilai A diisikan ke B sehingga nilai B yang asalnya = 2 diisi lagi dengan 2. Nilai 2 yang lama hilang, diganti dengan nilai 2 yang baru 3). 2 2 A B 97
6.22 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) T = A A = B B = T Ilustrasi proses instruksi : 1). Nilai awal A=5, B=2, dan T tidak diketahui; 5 2 A B T 2). Setelah dikenai instruksi : T = A Nilai A diisikan ke T sehingga nilai T menjadi = 5 5 2 A B 5 T 3). Dilanjutkan dengan instruksi : A = B Nilai B diisikan ke A sehingga nilai A menjadi = 2 2 2 A B 5 T 4). Dilanjutkan dengan instruksi : B = T Nilai T diisikan ke B sehingga nilai B menjadi = 5 2 5 A B 5 T 98
6.23 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 + B 4c. X = -------- Jawab : X = (A + B ) / C C Salah : X = A + B / C A + B 4d. 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 99
6.24 Dari persamaan kuadrat : AX + BX + C = 0 dengan 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 = ……………………………………….. 5). 99
6.25 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). 99
6.26 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= ……………………………………….. 99
6.27 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. 3910 1 5 10 D MENIT DETIK JAM 100
6.28 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 / 3600 DETIK = DETIK % 3600 MENIT = DETIK / 60 DETIK = DETIK % 60 Jawab : isi variabel JAM = 2, MENIT = 3, dan DETIK = 45 100
JAM MENIT DETIK 7425 7425 2 225 2 225 2 3 45 2 3 6.29 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 Jadi : 7425 detik = 2 Jam, 3 Menit dan 45 Detik 100
6.30 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 diketahui Ditanya isi variabel JAM , MENIT dan DETIK setelah dikenai instruksi-instruksi berikut ini : JAM = DETIK / 3600 DETIK = DETIK - JAM * 3600 MENIT = DETIK / 60 DETIK = 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. 101
6.31 Ilustrasi Proses : 1) Mula-mula isi DETIK = 7425 isi JAM dan MENIT tidak diketahui : 2) Setelah dikenai instruksi JAM = DETIK / 3600 3) Setlah dikenai instruksi DETIK = DETIK -JAM*3600 ( = 7425 - 2*3600) ( = 7425 - 7200) ( = 225 ) 4) Setelah dikenai instruksi MENIT = DETIK / 60 5) Setelah dikenai instruksi DETIK = DETIK - MENIT * 60 ( = 225 - 3 * 60) ( = 225 - 180) ( = 45 ) 7425 JAM MENIT DETIK 7425 2 JAM MENIT DETIK 225 2 JAM MENIT DETIK 225 2 3 JAM MENIT DETIK 45 2 3 DETIK JAM MENIT 101
6.4 Soal-Soal Latihan Mandiri Tambahan. Apa yang tercetak bila instruksi-instruksi dalam Bahasa C berikut ini dijalankan : 1. printf(“Jakarta“); printf(“Bandung”); 2. printf(“Jakarta\nBandung“); 3. printf(“Jakarta\n“); printf(“Bandung”); 4. printf(“Jakarta\n“); printf(“\n\nBandung”); 5. printf(“Jakarta\bBandung“);
6.4 Soal-Soal Latihan Mandiri Tambahan. Apa yang tercetak bila instruksi-instruksi dalam Bahasa C berikut ini dijalankan : 6. printf(“Jakarta\b“); printf(“Bandung”); 7. printf(“Jakarta\rBali“); 8. printf(“Jakarta\r“); printf(“Bali”); printf(“12345678901234567890”); printf(“\n%10s”, “Jakarta“); printf(“%s”, “Bandung”); 9. 10. printf(“12345678901234567890”); printf(“\n%-10s”, “Jakarta“); printf(“%10s”, “Bandung”);
11. 16. int A=25; printf(“%i”, ‘A’ ); int I=65; printf(“%c”, ‘I’ ); 17. char C = ‘A’; printf(“%c”, C ); int I=65; printf(“%c”, I ); 12. 13. int I=65; printf(“%i”, I ); 18. char C = ‘A’; printf(“%i”, C ); 19. char C = ‘A’; printf(“%c”, ‘C’ ); 14. int A=25; printf(“%i”, 25 ); 20. char C = ‘A’; printf(“%c”, ‘C’ ); int A=25; printf(“%i”, A ); 15.
21. int A=25; printf(“%i”, A/2*2 ); 22. int A=25; printf(“%i”, A%2*2); int A=25; printf(“%i”, ++A ); 23. int A=25; printf(“%i”, A+=A%2); 24. int A=25; printf(“%i”, A++ ); printf(“%i”, ++A); 25.
int A=25; int B; B=++A; printf(“%i”, B ); 26. int A=25; int B; B=A++; printf(“%i”, ++B ); 29. int A=25; int B; B=++A; printf(“%i”, ++B ); 27. 30. int A=25; int B; B=A++; printf(“%i”, B++ ); int A=25; int B; B=A++; printf(“%i”, B ); 28.
31. int A=25; printf(“%i”, A+5 ); printf(“%i”, A ); int A=25; printf(“%i”, A=+5 ); printf(“%i”, A ); 32. int N = 15; printf(“%d”, N-2>10); 33. int N = 15; printf(“%d”, N-2<10); 34. int N = 15; printf(“%d”, N-2 !=15); 35. 36. int A = 15, B=12; printf(“%d”, A<B? (A) : (B) )