15

Tutor C

Embed Size (px)

DESCRIPTION

this article describes about how to code basically C language program

Citation preview

Page 1: Tutor C
Page 2: Tutor C

1

Referensi: [1] Hutchinson, R., Just, S. B. 1995. Programming Using the C Language. Mcgraw-Hill

Computer Science Series. [2] Kernighan, B.W., Ritchie, D.M. 1988. C Programming Language (2nd Edition). Prentice-

Hall. [3] Prinz, P., Kirch-Prinz, U. 2002. C Pocket Reference. O'Reilly Media, Inc. [4] Simamora, S.N.M.P. 2001. Dasar Pemrograman dengan C++. Diktat Kuliah. ITHB.

Bandung Kunjungi Departemen Sistem Komputer, Fak. Teknik di: www.ithb.ac.id I. Operasi Arithmatika

Dalam Bahasa Pemrograman C, operator arithmatika yang dikenal adalah sbb: a) Tambah (‘+’)

Contoh: #include<stdio.h> main() { printf("%i",5+5); return; } Contoh: #include<stdio.h> main() { float a; a=5+5; printf("%f",a); return; } Contoh: #include<stdio.h> main() { int a; printf("Masukkan nilai a: "); scanf("%i", &a); a=a+5; printf("%i",a); return; }

b) Kurang (‘-’) #include<stdio.h> main() { printf("%i",15-5); return; }

Page 3: Tutor C

2

Contoh: #include<stdio.h> main() { float x; x=25-5; printf("%f",x); return; }

c) Kali (‘x’) #include<stdio.h> main() { printf("%i",25*5); return; } Contoh: #include<stdio.h> main() { float x; x=5*1.5; printf("%f",x); return; }

d) Bagi (‘÷’) Misalkan: 15÷3, dituliskan: 15/3 Namun jika 15÷2, dituliskan: 15/2 namun hasilnya bukan 7.5 melainkan 7. Hal ini disebabkan, operator ’/’ memberi hasil bagi namun sisa bagi tidak disertakan. Contoh: #include<stdio.h> main() { printf("%i",25/4); return; } Contoh: #include<stdio.h> main() { float a; a=25/5; printf("%f",a); return; }

Page 4: Tutor C

3

Untuk menampilkan luaran berupa sisa bagi, digunakan sebuah operator modulus dimana dalam Bahasa Pemrograman C digunakan symbol ‘%’. Contoh: #include<stdio.h> main() { printf("%i",25%4); return; } Contoh: #include<stdio.h> main() { int x; x=25%3; printf("%i",x); return; } Contoh: #include<stdio.h> main() { int x; x=25%3; printf("%i",x); return; }

II. Operator Logika 2.1 Operator: ‘==’ Misalkan: dua variabel masing-masing, A dan B, jika masing-masing diberi nilai numerik yang sama maka kedua variabel bernilai sama; dituliskan dalam Bahasa Pemrograman C adalah: ‘A==B’. Contoh: #include<stdio.h> main() { int A=3,B; printf("Masukkan variabel B: "); scanf("%i",&B); if(A==B) { printf("Nilai yang anda masukkan sama dengan A, yakni %i",B); } else { printf("Nilai yang anda masukkan berbeda dengan A. Anda memasukkan %i",B); } return; }

Page 5: Tutor C

4

Contoh #include<stdio.h> main() { int A=4,B,C; printf("Masukkan variabel B: "); scanf("%i",&B); C=B+1; if(A==C) { printf("Nilai yang anda masukkan sama dengan A, yakni %i",A); } else { printf("Nilai yang anda masukkan berbeda dengan A. Anda memasukkan %i",B); } return; } 2.2 Operator: ‘>=’ Contoh #include<stdio.h> main() { int A=4,B; printf("Masukkan variabel B: "); scanf("%i",&B); if(B>=A) { printf("Nilai yang anda masukkan lebih besar atau sama dengan A, yakni %i",A); } else { printf("Nilai yang anda masukkan lebih kecil dari A. Anda memasukkan %i",B); } return; } 2.3 Operator: ‘<=’ Contoh #include<stdio.h> main() { int A=4,B; printf("Masukkan variabel B: "); scanf("%i",&B); if(A<=B) { printf("Nilai yang anda masukkan besar atau sama dengan A, yakni %i",A); } else { printf("Nilai yang anda masukkan lebih kecil dari A. Anda memasukkan %i",B); } return; }

Page 6: Tutor C

5

2.4 Operator: ‘!=’ Contoh #include<stdio.h> main() { int A=4,B; printf("Masukkan variabel B: "); scanf("%i",&B); if(B!=A) { printf("Nilai yang anda masukkan tidak sama dengan A, yakni %i",A); } else { printf("Nilai yang anda masukkan sama dengan A. Anda memasukkan %i",B); } return; } 2.5 Operator Boolean Operator Boolean yang dikenal dalam Bahasa Pemrograman C adalah: a) AND

Definisi: Luaran bernilai ‘1’ jika dan hanya jika dua masukan atau lebih semua bernilai ‘1’. Simbol dalam Bahasa Pemrograman C adalah: ‘&&’ Misalkan: DEC(8) && DEC(7) = DEC(0) Dibuktikan dalam sintaks C sbb: #include<stdio.h> main() { int A=8,B=7,C; C=A&B; printf("%i & %i = %i",A,B,C); return; }

b) OR Definisi: Luaran bernilai ‘1’ jika dan hanya jika salah satu masukan dari dua masukan atau lebih bernilai ‘1’. Simbol dalam Bahasa Pemrograman C adalah: ‘||’ Misalkan: DEC(8) || DEC(7) = DEC(15) Dibuktikan dalam sintaks C sbb: #include<stdio.h> main() { int A=8,B=7,C; C=A|B; printf("%i | %i = %i",A,B,C); return; }

Page 7: Tutor C

6

2.6 Operator: ‘&&’ dan ‘||’ Misalkan: A=2 B=3 Lalu dinyatakan statement berikut: Z←A>=5||B==3&&A!=B; maka, Z bernilai: 1. Dituliskan dalam sintaks C sebagai berikut: #include<stdio.h> main() { int A=2,B=3,Z; Z=A>=5||B==3&&A!=B; printf("Hasil = %i",Z); return; } Perhatikan bahwa operator ’&&’ lebih tinggi hirarkinya dibandingkan ’||’, sehingga prioritas pengerjaan dikerjakan oleh operator dengan hirarki lebih tinggi. Contoh: Z=A>=5&&B==3||A==B; maka, Z bernilai: 0. Dituliskan dalam sintaks C sbb: #include<stdio.h> main() { int A=2,B=3,Z; Z=A>=5&&B==3||A==B; printf("Hasil = %i",Z); return; } Contoh: #include<stdio.h> main() { int A=9,B=-3,Z; Z=A>=5&&B==3||A==B; printf("Hasil = %i",Z); return; } Hasil Z=0. Contoh #include<stdio.h> main() { int A=9,B=-3,Z;

Page 8: Tutor C

7

Z=A>=5||B==3&&A==B; printf("Hasil = %i",Z); return; } Nilai Z = 1. Hasilnya berbeda bila dituliskan berikut ini: #include<stdio.h> main() { int A=9,B=-3,Z; Z=(A>=5||B==3)&&A==B; printf("Hasil = %i",Z); return; } Nilai Z=0. Ini membuktikan proses prioritas seperti disebutkan dalam teori memang terbukti berdasar hasil pengujian tsb.

III. Larik (Array) Sebuah larik (array) dapat didefinisikan sebagai sekumpulan data dengan tipe dan jenis yang sama dan dikelompokkan dalam satu variabel dimana indeks pencacah dimulai dari 0. Misalkan A[5] = {1,2,3,4,5}; Larik A memiliki panjang larik sebesar 5 dengan anggota (elemen anggota) sebagai berikut: A[0]=1; A[1]=2; A[2]=3; A[3]=4; A[4]=5; Dituliskan dalam Bahasa Pemrograman C sebagai berikut: #include<stdio.h> main() { int i,A[5]={1,2,3,4,5}; for(i=0;i<5;i++) { printf("A[%i]=%i",i,A[i]); printf("\n"); } return; } Dalam Bahasa Pemrograman C, sebuah string tidak memiliki tipe data yang terdeklarasikan, sehingga jika suatu data ingin direpresentasikan dalam string maka tak lain merupakan sekumpulan karakter (tipe data char) yang dikelompokkan dalam array.

Page 9: Tutor C

8

Untuk suatu kasus, dimana end-user diminta memasukkan input angka dengan panjang lima digit, lalu ditampilkan secara terbalik. Misalkan, dimasukkan: 53421, maka ditampilkan menjadi: 12435. Dituliskan dalam Bahasa Pemrograman C sebagai berikut: #include<stdio.h> main() { int a[5]; int i; for(i=0;i<5;++i) { printf("Input-%i: ",i+1); scanf("%d",&a[i]); } printf("Kode yang anda masukkan dibalikkan: "); for(i=4;i>=0;--i) printf("%d",a[i]); return; } Bila tampilan yang diinginkan sesuai masukan dari end-user, adalah sebagai berikut: #include<stdio.h> main() { int a[5]; int i; for(i=0;i<5;i++) { printf("Input-%i: ",i+1); scanf("%d",&a[i]); } printf("Kode yang anda masukkan adalah: "); for(i=0;i<5;i++) printf("%d",a[i]); return; } Selanjutnya jika dilakukan pengecekan terhadap nilai masukan yang sebelumnya telah dilakukan oleh end-user, dapat dituliskan sintaksnya sbb: #include<stdio.h> main() { int a[5],b[5]; int i; for(i=0;i<5;i++) { printf("Input-%i: ",i+1); scanf("%d",&a[i]); } printf("Kode yang anda masukkan yaitu: "); for(i=0;i<5;i++) printf("%d",a[i]); printf("\nCek input sebelumnya\n"); for(i=0;i<5;i++) { printf("Input-%i: ",i+1); scanf("%d",&b[i]); } for(i=0;i<5;i++) { if(a[i]==b[i]) { printf("\nKode digit ke-%i yang anda masukkan benar.",i+1); } else { printf("\nKode digit ke-%i yang anda masukkan salah.",i+1); } } return; }

Page 10: Tutor C

9

MATRIKS Matriks merupakan suatu larik berdimensi 2, yang tersusun dari baris dan kolom. Misalkan

dituliskan A:

3321

maka dapat dijelaskan bahwa matriks A terdiri dari elemen-elemen

berikut: a11 = 1 → Matriks A pada baris-1,kolom-1 adalah 1 a12 = 2 → Matriks A pada baris-1,kolom-2 adalah 2 a21 = 3 → Matriks A pada baris-2,kolom-1 adalah 3 a22 = 3 → Matriks A pada baris-2,kolom-2 adalah 3 Dituliskan dalam Bahasa Pemrograman C adalah sebagai berikut: #include<stdio.h> main() { int i,j,A[2][2]= { {1,2}, {3,3}, }; printf("Matriks yang ditampilkan:\n"); for(i=0;i<2;i++) { for (j=0;j<2;j++) { printf("%i ",A[i][j]); } printf("\n"); } return; } Misalkan matriks A dikalikan dengan 2, maka dihasilkan:

A:

6642

; maka dituliskan dalam Bahasa Pemrograman C adalah sbb:

#include<stdio.h> main() { int i,j,A[2][2]= { {1,2}, {3,3}, }; printf("Matriks awal:\n"); for(i=0;i<2;i++) { for (j=0;j<2;j++) { printf("%i ",A[i][j]); } printf("\n"); } printf("Matriks setelah dikali dengan 2:\n"); for(i=0;i<2;i++) { for (j=0;j<2;j++) { printf("%i ",A[i][j]*2); }

Page 11: Tutor C

10

printf("\n"); } return; } Kasus berikutnya, apabila diketahui:

A:

3321

B:

12

maka, jika C = A x B ; C=

94

; hal ini dapat dikerjakan dengan Bahasa Pemrograman C

menjadi sbb: #include<stdio.h> main() { int i,j,k,A[2][2]= { {1,2}, {3,3}, },B[2][1]= { {2}, {1}, },C[2][1]; printf("Matriks A:\n"); for(i=0;i<2;i++) { for (j=0;j<2;j++) { printf("%i ",A[i][j]); } printf("\n"); } printf("Matriks B:\n"); for(i=0;i<2;i++) { for (j=0;j<1;j++) { printf("%i ",B[i][j]); } printf("\n"); } for(i=0;i<2;i++) { for (j=0;j<1;j++) { C[i][j]=0; for (k=0;k<2;k++) { C[i][j]+=A[i][k]*B[k][j]; } } } printf("Matriks didapatkan setelah A dikali dengan B:\n"); for(i=0;i<2;i++){ for(j=0;j<1;j++){ printf("%i",C[i][j]);

Page 12: Tutor C

11

} printf("\n"); } return; } Untuk kasus berikutnya yaitu nilai elemen matriks beserta dimensinya didapatkan dari end-user; misalkan A dengan dimensi 2x2 dengan elemen: a11 = 1 a12 = 2 a21 = 3 a22 = 2 dan B dengan dimensi 2x1 dengan elemen: b11 = 2 b21 = 1

maka jika A x B = C, C =

84

Dituliskan dalam Bahasa Pemrograman C adalah sbb: #include <stdio.h> main() { int a[10][10], b[10][10], c[10][10], i, j, k, r1, r2, c1, c2; printf("Masukan jumlah baris dan kolom untuk Matriks A (maks.10): "); scanf("%d %d", &r1, &c1); printf("Masukan jumlah baris dan kolom untuk Matriks B (maks.10): "); scanf("%d %d", &r2, &c2); if (c1 != r2) { printf("\n Mohon maaf perkalian tidak dapat dilakukan\n"); } else { printf("\n Memasukkan elemen Matriks A: \n"); for (i=0; i<r1; i++) for (j=0; j<c1; j++) scanf("%d", &a[i][j]); printf("\n Memasukkan elemen Matriks B: \n"); for (i=0; i<r2; i++) for (j=0; j<c2; j++) scanf("%d", &b[i][j]); printf("\nMatriks A: \n"); for (i=0; i<r1; i++) { for (j=0; j<c1; j++) printf(" %d", a[i][j]); printf("\n"); }

Page 13: Tutor C

12

printf("\nMatriks B: \n"); for (i=0; i<r2; i++) { for (j=0; j<c2; j++) printf(" %d", b[i][j]); printf("\n"); } for (i=0; i<r1; i++) for (j=0; j<c2; j++) { c[i][j] = 0; for (k=0; k<r2; k++) c[i][j] = c[i][j] + a[i][k] * b[k][j]; } printf("\n \n Matriks hasil perkalian A dan B: \n"); for (i=0; i<r1; i++) { for (j=0; j<c2; j++) printf("\t %d", c[i][j]); printf("\n"); } } return; }

IV. Struktur dan Pohon Logika Struktur dan pohon logika berperan sebagai kontrol alir program untuk seleksi proses kepada blok program yang akan diproses. Misalkan: Jika isi A = 20, maka Eksekusi blok ini; Jika tidak, maka Eksekusi blok ini; 4.1 Struktur logika: if......then.....else Contoh: #include<stdio.h> main() { int a=4; if(a<7) { printf("Isi a lebih kecil dari 7."); } return 0; }

Page 14: Tutor C

13

4.2 Struktur logika: do......while Contoh: #include<stdio.h> main() { int a=10; do { printf("Selamat Datang di Departemen Sistem Komputer!"); a=a-3; printf("\n"); } while (a>3); return 0; } 4.3 Struktur logika: while Contoh: #include<stdio.h> main() { int a=10; while (a>3) { printf("Selamat Datang di ITHB Bandung!"); a=a-3; printf("\n"); } return 0; } 4.4 Struktur logika: for.....i Contoh: #include<stdio.h> main() { int a,i; printf("Berapa kali ditampilkan?: "); scanf("%i",&a); for(i=0;i<a;i++) { printf("Ke-%i",i+1); printf(" Jauhkan Korupsi-Kolusi-Nepotis.\n"); } return 0; } 4.5 Struktur logika: switch Contoh: #include<stdio.h> main() { int a=3; switch (a) {

Page 15: Tutor C

14

case 1: printf("Hari ini akan hujan"); break; case 2: printf("Selamat Datang di Institut Teknologi Harapan Bangsa!"); break; case 3: printf("Isi variabel a adalah 3."); break; case 4: printf("Dilarang nepotis."); break; case 5: printf("Isi variabel a adalah 5."); break; case 6: printf("Isi variabel a adalah 6."); break; case 7: printf("Hati-hati gunakan teknologi."); break; default: printf(“Mohon maaf di luar pilihan yang disajikan.”); break; } return 0; }