laprak alpro

14
BAB 2 PEMBAHASAN 1. incr.c Ini merupakan source code incr.c. Program ini merupakan salah satu program yang menggunakan increment, yaitu menambahkan 1 pada nilai yang sudah ditentukan. Pada source code di atas, nilai i yang semula 3, menjadi 5 karena terjadi increment dua kali. Yang pertama pada pendefinisian nilai, dan pada perintah printf (pada text yang di-highlight). Karena yang mengalami penambahan nilai adalah i, maka hanya nilai i yang berubah, sementara nilai j tetap. Seperti yang ditampilkan oleh gambar di bawah ini. #include <stdio.h> int main () { /*Kamus*/ int i,j; /*program*/ i = 3; j = i++; printf ("Nilai i : %d\n Nilai j : %d \n", ++i,j); getch ();

Upload: alicia-singleton

Post on 07-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

laprak algoritma pemrograman

TRANSCRIPT

BAB 2PEMBAHASAN1. incr.c#include

int main (){ /*Kamus*/ int i,j; /*program*/ i = 3; j = i++; printf ("Nilai i : %d\n Nilai j : %d \n",++i,j); getch ();}

Ini merupakan source code incr.c. Program ini merupakan salah satu program yang menggunakan increment, yaitu menambahkan 1 pada nilai yang sudah ditentukan. Pada source code di atas, nilai i yang semula 3, menjadi 5 karena terjadi increment dua kali. Yang pertama pada pendefinisian nilai, dan pada perintah printf (pada text yang di-highlight). Karena yang mengalami penambahan nilai adalah i, maka hanya nilai i yang berubah, sementara nilai j tetap. Seperti yang ditampilkan oleh gambar di bawah ini.

2. exp.c#include

int main(){ /*Kamus*/ int x = 1; int y = 2; /*Algoritma*/ printf ("x = %d \n", x); printf ("y = %d \n", y); printf ("=========================================================\n"); printf ("hasil ekspresi = (x> 3 = %d \n",y >>3); /*10 ==> 0000 = 0*/getch ();}

Penggunaan & pada operasi menghasilkan operator AND. n & 8 menghasilkan nilai 8 karena biner 8 (1000) beririsan dengan biner 10 (1010). Begitu juga pada x & ~8, menghasilkan 1. Sementara untuk y b) ? a:b)

int main(){/*KAMUS*/int i = 0; /*perhatikan int i,j=0 bukan seperti ini*/int j = 0;char c = 8;char d = 10;char e = max (c,d);int k = max (i,j);/*ALGORITMA*/printf ("Nilai e = %d \n", e);printf ("Nilai k = %d \n", k);i = 2;j = 3;k = max (i++, j++);printf ("Nilai k = %d \n", k);getch (); }

Ini merupakan kode yang menggunakan operator terner dan ekspresi ditulis dalam makro. Program ini menggunakan fungsi pembantu yaitu max untuk mencari nilai maksimum dari dua nilai. Berikut adalah hasil kode tersebut setelah di-compile.

e merupakan nilai maksimum dari dua nilai bertipe char (e bertipe char), sementara k merupakan nilai maksimum dari dua nilai bertipe integer. Untuk e (e = max (c,d)) bernilai 10 karena c = 8 dan d = 10 (10 > 8). Sementara untuk k (k = max (i, j)) bernilai 0 karena baik i, j serta k sama-sama bernilai 0. Untuk k yang kedua menghasilkan 4 karena ada perubahan nilai variabel. Perubahan tersebut yaitu i menjadi 2 dan variabel j menjadi 3. Untuk k, sintak diubah menjadi k = max (i++, j++) (++ menambah 1 untuk nilai variabel) sehingga nilai maksimun dari 3 dan 4 adalah 4.

7. operator.c/*operasi numerik*/i = 5; j = 2;hsl = i + j;printf ("Hasil i + j = %d \n",hsl);hsl = i - j;printf ("Hasil i - j = %d \n",hsl);hsl = i / j;printf ("Hasil i / j = %d \n",hsl);hsl = i * j;printf ("Hasil i * j = %d \n",hsl);hsl = i /j; /*pembagian bilangan bulat*/printf ("Hasil i / j (pembagian bulat) = %d \n",hsl);hsl = i % j; /*sisa.modulo*/printf ("Hasil i mod j= %d \n\n",hsl);#include #include "boolean.h"int main(){/*KAMUS*/boolean Bool1, Bool2, TF;int i, j, hsl;float x, y, res;/*agoritma*/printf ("Utk program ini, baca teksnya dan tambahkan outputnya\n\n");Bool1 = true; Bool2 = false ;TF = Bool1 && Bool2; /*Boolean AND*/printf ("boolean true AND false = %d \n",TF);TF = Bool1 || Bool2; /*Boolean OR*/printf ("boolean true OR false = %d \n",TF);TF = ! Bool1; /*NOT*/printf ("boolean NOT = %d \n",TF);TF = Bool1 ^ Bool2; /*XOR*/printf ("boolean true XOR false = %d \n\n",TF);

Source code operator.c merupakan contoh penggunaan variabel bertipe dasar. Ada berbagai operasi yang dilakukan disini, yaitu operasi numerik dan operasi relasional numerik.untuk operasi relasional numerik ini, membutuhkan perpustakaan baru yaitu boolean.h yang dimasukan melalui #incude boolean.h. /*operasi relasional numerik*/TF = (x!=y);printf ("x!=y = %d\n", TF);TF = (x < y); printf ("x y = %d\n", TF);TF = (x = y); printf ("x>=y = %d\n", TF);getch ();}/*operasi relasional numerik*/TF = (i==j); printf ("i==j = %d \n", TF);TF = (i!=j); printf ("i!=j = %d \n", TF);TF = (i < j);printf ("i j = %d \n", TF);TF = (i = j); printf ("i>=j = %d \n\n", TF);/*operasi numerik*/x = 5.0; y = 2.0;res = x + y; printf ("Result x + y = %f\n", res);res = x - y; printf ("Result x - y = %f\n", res);res = x / y; printf ("Result x / y = %f\n", res);res = x * y; printf ("Result x * y = %f\n\n", res);

Pada kode di atas, terdapat beberapa operator relasional, yaitu:a. && untuk ANDb. || untuk ORc. ! untuk NOTd. ^ untuk XORPada program ini, untuk menyatakan true diwakili dengan angka 1 dan untuk false diwakili angka 0.Berikut adalah hasilnya setelah dikompilasi

8. boolean.h#ifndef boolean_H#define boolean_H#define true 1#define false 0#define boolean unsigned char#endif

boolean.h merupakan suatu kode yang dibuat sebagai pustaka program atau header C. Kode ini menggunakan pendefinisian suatu kondisi dengan menggunakan #ifndef (jika dan definisi). Pada program ini, didefinisikan semua kemungkinan untuk digunakan atau dipanggil oleh suatu program, beserta tipe nilainya. Kemudian diakhiri dengan #endif sebagai penutup program ini.