Anda di halaman 1dari 95

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 1
1.1JUDUL : FUNGSI & TIPE VARIABEL DASAR 1.2TUJUAN : Mahasiswa mampu mempelajari dan mengamati penggunaan fungsi-fungsi dasar C seperti main(), printf(), getch(), getche() yang dipadukan dengan tipe 1ariable dasar yaitu int (bilangan bulat) dan float (bilangan pecahan) 1.3TEORI : Struktur suatu bahasa C adalah terdiri dari bagian #include, deklarasi konstanta, deklarasi variable, deklarasi fungsi-fungsi, dan fungsi main().Void berarti fungsi tersebut tidak mempunyai nilai balik, karena setiap fungsi dalam C bila tidak tidak diberikan void di depannya maka dianggap bertipe integer. Untuk fungsi-fungsi standar seperti printf()&scanf() menggunakan stdio.h sedangkan fungsi clrscr() dan getch() menggunakan conio.h, 1.4 PROGRAM PERCOBAAN 1.4.1 Membuat program utama dengan menggunakan fungsi main() dan mencetak string dengan karakter khusus \n, untuk ganti baris baru. Karakter khusus lainnya adalah /* dan */ yaitu digunakan untuk baris komentar dimana tidak dijalankan. Sedangkan fungsi getch() digunakan untuk pause atau berhenti sejenak menunggu tombol Enter ditekan.

Politeknik Elektronika Negeri Surabaya

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

/*nama File : INTRO1.C*/ #include<stdio.h> #include<conio.h> void main() { printf("Assalamualaikum!\n"); printf("Hello world\n); getch(); }

1.4.2

Menggunakan variable integer (bulat) sebagai penyimpanan hasil penambahan dan pengurangan, kemudian menampilkan hasilnya dengan fungsi printf(). Menggunakan karakter format khusus %d. /*Nama File : INTRO2.C*/ #include<stdio.h> #include<conio.h> void main() { int jumlah, selisih;
Politeknik Elektronika Negeri Surabaya 2

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

jumlah=123+456; selisih=456-123; printf("Jumlah dari 123 dan 445 adalah %d\n\n",jumlah); printf("Selisih dari 123 dan 445 adalah %d\n",selisih); getch(); }

1.4.3

Mengisi suatu variable menggunakan assignment operator = (sama dengan), kemudian dilakukan proses perhitungan, penjumlahan, dan pengurangan, dimana hasil penjumlahan disimpan pada variable jumlah, dan hasil pengurangan disimpan pada variable selisih. Setelah hasilnya didapatkan maka hasilnya dicetak menggunakan karakter format khusus %d. Operator = dapat digunakan pada baris deklarasi variable seperti pada percobaandibawah ini, yaitu pada int var1=339. /*Nama File : INTRO3.c*/ #include<stdio.h> #include<conio.h>

Politeknik Elektronika Negeri Surabaya

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

void main() { int var1=339, var2, jumlah, selisih; var2=259; jumlah=var1+var2; selisih=var1-var2; printf("Hasil penjumlahan %d dan %d = %d\n\n",var1,var2,jumlah); printf("Hasil pengurangan %d dan %d = %d\n\n",var1,var2,selisih); getch(); }

1.4.4

Penggunaan fungsi getche() untuk mengambil karakter tombol yang ditekan, karakter disimpan pada suatu variable dan dapat digunakan untuk keperluan pemrograman, misalnya mendeteksi penekanan tombol tertentu. Untuk dapat mencetak karakter tersebut maka digunakan karakter format khusus %c, untuk mencetak 1 karakter saja. /*Nama File : INTRO4.c*/ #include<stdio.h> #include<conio.h>
Politeknik Elektronika Negeri Surabaya 4

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

void main() { char karakter; printf("\nMempelajari penggunaan getche() dengan variable"); printf("\nTekan tombol yang dikehendaki "); karakter=getche(); printf("\n\nAnda menekan tombol %c",karakter); getch(); }

1.4.5

Menghitung perkalian dan pembagian suatu bilangan menggunakan variable float (pecahan), dan mencetak hasilnya menggunakan karakter format khusus %f dengan menggunakan fungsi clrscr() yang digunakan untuk membersihkan tampilan yang diberikan, terutama pada hasil pembagian. /*Nama File : INTRO5.C*/ #include<stdio.h> #include<conio.h>
Politeknik Elektronika Negeri Surabaya 5

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

void main() { float harga, jumlah, total, hasil; harga=132.055; jumlah=50; total=harga*jumlah; hasil=total/jumlah; printf("Harga total = %f\n\n",total); printf("Hasil pembagian = %f",hasil); getch(); }

Politeknik Elektronika Negeri Surabaya

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 2
2.1 JUDUL: EXPRESSION OPERAND) & STATEMENT (OPERATOR &

2.2 TUJUAN : Mempelajari dan mengamati penggunaan


operator aritmatika seperti +, -, *, / dan % (modulus) dan operator unary seperti (minus), ++ (increment) dan (decrement) yang dipadukan dengan tipe variable dasar yaitu int (bilangan bulat) dan float (presisi tunggal), double (presisi ganda) dan char.

2.3 TEORI: Suatu Expression adalah terdiri atas dua bagian


yaitu operator dan operand, yang dikombinasikan menjadi satu. Operator adalah symbol yang digunakan untuk melakukan proses operasi satu atau beberapa operand. Operand adalah bagian yang paling sederhana dari Expression. Operand dapat berupa konstanta seperti 339, 55, 132 dan seterusnya atau berupa variable seperti x, y, jumlah, selisih dan sebagainya. Statement (steitmen) adalah unsur dasar pembentuk suatu program. Ada 3 jenis statement, yaitu: expression statement, compound statement, dan control statement. Suatu expression statement adalah suatu expression yang diikuti dengan tanda titik koma [;] (semi colon). Suatu compound statement (dikenal dengan block statement) adalah dua atau lebih statement yang dikelompokkan menjadi satu dengan cara member batas tanda kurung awal dan tanda kurung akhir, sehingga tidak perlu diakhiri dengan tanda titik koma pada akhir conmpund. Control statement
Politeknik Elektronika Negeri Surabaya 7

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

adalah statement yang mengedalikan langkah-langkah program, contohnya for loop, while loop, dan if-else. Symbolic Constant adalah suatu nama dimana digunakan untuk menggantikan suatu nilai tertentu, contohnya #define PI 3.14, untuk membedakan dengan variable maka nama ditulis dengan huruf besar seperti PI.

2.4 PROGRAM PERCOBAAN 2.4.1


Mengamati tipe variable yang digunakan untuk menyimpan suatu nilai sesuai dengan tipe dari masing-masing nilai yang diberikan pada suatu variable, kemudian mencetak isi variable tersebut dengan melihat hasilnya. Misalnya bilangan bulat, maka dapat ditampung menggunakan tipe variable integer yang mempunyai jangkauan dari -32768 sampai 32767. Bilangan pecahan dengan presisi tunggal dapat disimpan pada tipe variable dengan tipe float yang mempunyai jangkauan 3.4 x 10-38 sampai 3.4 x 1038 (7 angka presisi), bilangan pecahan dengan presisi ganda dapat disimpan pada tipe variable dengan tipe double yang mempunyai jangkauan dari 1.7 x 10-308 sampai dengan 1.7 x 10308 (15 angka presisi ), long double mempunyai jangkauan dari 3.4 x 10-4932 sampai dengan 3.4 x 10 4932 (19 angka presisi) dan tipe variable char dengan jangkuan nilai dari -128 sampai 127 (satu karakter). /* Nama File : EXPRESS1.C */ #include <stdio.h> #include <conio.h> void main()
Politeknik Elektronika Negeri Surabaya 8

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{ int bulat= 32767; float pecahan= 339.1234567; double ganda= 3.4567890e+11; char karakter= 'W'; printf("Variabel bilangan bulat = %d\n\n", bulat); printf("Variabel bilangan pecahan = %f\n\n", pecahan); printf("Variabel bilangan pecahn2 = %lf\n\n", ganda); printf("Variabel bilangan karakter = %c\n\n", karakter); getch(); }

2.4.2 Mengamati hasil dari suatu persamaan aritmatika,


dimana nilai-nilai operandnya dimasukkan melalui keyboard serta hirarki dari operator. /* Nama File : EXPRESS2.C */
Politeknik Elektronika Negeri Surabaya 9

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

#include <stdio.h> #include <conio.h> void main() { int a,b,c,d,hasil; printf("\nMasukkan nilai a b="); scanf("%d %d", &a,&b); printf("\nMasukkan nilai c d="); scanf("%d %d", &c,&d); hasil= a-b; printf("\nHasil %d\n", hasil); hasil= c+d; printf("\nHasil %d\n", hasil); hasil= b*c; printf("\nHasil %d\n", hasil); hasil= a/c; printf("\nHasil %d\n", hasil); hasil= a+b*c; printf("\nHasil %d\n", hasil); hasil= a*b+c*d; printf("\nhasil %d\n", hasil); getch(); }
Politeknik Elektronika Negeri Surabaya 10

dari: a-b adalah

dari: c+d adalah

dari: b*c adalah

dari: a/c adalah

dari: a+b*c adalah

dari: a*b+c*d adalah

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

2.4.3

Mengamati perbedaan penggunaan tipe variable integer dan tipe variable flot pada proses pembagian, bila pembagian dilakukan menggunakan tipe integer maka pecahan akan dibuang.Perhatikan hasil dari pembagian isi variable a dibagi dengan d. Perhatikan juga penggunaan operator unari minus (-). /* Nama File : EXPRESS3.C */ #include <stdio.h> #include <conio.h> void main() { int a=12, b=8, hasil; float c=11.0, d=7.0; printf("6+a/5*b= %d\n\n", 6+a/5*b); printf("a/b*b= %d\n\n", a/b*b); printf("c/d*d= %f\n\n", c/d*d);
Politeknik Elektronika Negeri Surabaya 11

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("-a= %d\n", -a); getch(); }

2.4.4 Untuk menghitung sisa dari hasil bagi maka telah


disediakan operator modulus yaitu (%), dimana hasil dari operator ini akan menghasilkan sisa pembagian. Jika operator modulus ingin ditampilakan, maka penulisan operator ini harus ditulis dua kali (%%).

/* Nama File : EXPRESS4.C */ #include <stdio.h> #include <conio.h> void main() { int a=14,b=2,c=3,d=4; printf("a%%b= %d\n\n", a%b); printf("a%%c= %d\n\n", a%c); printf("a%%d= %d\n\n", a%d); printf("a/d*d+a%%d= %d\n", a/d*d+a%d); getch(); }

Politeknik Elektronika Negeri Surabaya

12

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

2.4.5

Suatu variable dapat menampung isi dari suatu tipe variable yang berbeda asalkan tipe variable tersebut lebih besar atau sama dengan variable sumber. Contoh tipe variable float dapat menampung isi dari tipe variable integer dan tidak sebaliknya. /* Nama File : EXPRESS5.C */ #include <stdio.h> #include <conio.h> void main() { float p1= 123.45678, p2; int b1, b2= -150; b1=p1; printf("%f disimpan ke int menghasilkan %d\n\n",p1,b1); p1=b2; printf("%f disimpan ke float menghasilkan %d\n\n", p1,b2); p1=b2/100; printf("%f dibagi 100 menghasilkan %d\n\n", p1,b2); p2=b2/100.0;
Politeknik Elektronika Negeri Surabaya 13

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("%f dibagi 100 menghasilkan %d\n\n", p2,b2); getch(); }

Politeknik Elektronika Negeri Surabaya

14

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 3
3.1. JUDUL : RELATIONAL, LOGICAL, ASSIGNMENT, DAN CONDITIONAL 3.2. TUJUAN : Mempelajari dan mengamati penggunaan operator yang digunakan sebagai pembanding antara operand satu dengan operand yang lain, yang dapat berupa sebagai variable atau konstanta. 3.3. TEORI : Relational operator adalah operator yang dapat digunakan untuk membandingkan antara dua operand, misalkan lebih besar mana antara a dan b, manakah yang lebih kecil antara c dan 12. Dari perbandingan diatas maka akan didapatkan suatu hasil yaitu benar atau salah (true/ false) yang berupa nilai 1 (selain nol) untuk benar dan 0 untuk salah. Operator ini terdiri dari tanda-tanda khusus yaitu: < (lebih kecil), > (lebih besar), == (sama dengan), <= ( lebih kecil atau sama dengan), >= (lebih besar atau sama dengan) dan != (tidak sama dengan). Sedangkan untuk mengkombinasikan antara operator-operator diatas maka dapat digunakan Logical Operator yang terdiri dari && (and/ dan). || (or/ atau) dan ! (not/ tidak). Assignment Operator identic dengan tanda = (sama dengan), operator ini dapat dipadukan dengan operator aritmatika sehingga menjadi : +=, -=, *=, /=, dan %=. Conditional Operator adalah operator yang dapat digunakan untuk menentukan (pengambilan keputusan) secara sederhana (satu baris statement), dimana hanya digunakan karakter khusus ? (tanda tanya) dan : (colon/ titik dua).
Politeknik Elektronika Negeri Surabaya 15

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

3.4 PROGRAM PERCOBAAN : 3.4.1 Mengamati hasil dari perbandingan dua operand yang nilainya dimasukkan melalui keyboard, dimana perbandingan dilakukan menggunakan semua Relational Operator, yaitu meliputi operator-operator <, >, <=, >= dan !=. /*nama file: OPER1.C*/ #include<stdio.h> #include<conio.h> void main() { int x,y; printf("masukkan scanf("%d",&x); printf("masukkan scanf("%d",&y); printf("\nnilai %d y, x < y); printf("\nnilai %d y, x > y); printf("\nnilai %d y, x == y); printf("\nnilai %d y, x <= y); printf("\nnilai %d y, x >= y); printf("\nnilai %d y, x != y);

nilai nilai

x y

= =

"); ");

< %d adalah %d\n", x, > %d adalah %d\n", x, == %d adalah %d\n", x, <= %d adalah %d\n", x, >= %d adalah %d\n", x, != %d adalah %d\n", x,
Politeknik Elektronika Negeri Surabaya 16

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

getch(); }

3.4.2 Mengamati hasil dari perbandingan dua operand yang nilainya dimasukkan melalui keyboard., dimana perbandingan dilakukan menggunakan semua Logical Operator, yaitu meluputi operator-operator &&, ||, dan !. /*nama file: OPER2.C*/ #include<stdio.h> #include<conio.h> void main() { int x,y;

Politeknik Elektronika Negeri Surabaya

17

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("masukkan nilai x = "); scanf("%d",&x); printf("masukkan nilai y = "); scanf("%d",&y); printf("\nnilai dari %d & %d adalah %d\n",x,y,x & y); printf("\nnilai dari %d | %d adalah %d\n",x,y,x | y); printf("\nnilai dari %d && %d adalah %d\n",x,y,x && y); printf("\nnilai dari %d || %d adalah %d\n",x,y,x || y); printf("\nnilai dari !0 adalah %d\n", !0); printf("\nnilai dari !1 adalah %d\n", !1); printf("\nnilai dari !%d adalah %d\n",x,! x); printf("\nnilai dari !%d adalah %d\n",y,! y); getch(); }

3.4.3 Untuk mendapatkan kombinasi dua atau beberapa operator relasional maka dapat digunakan operator logika,
Politeknik Elektronika Negeri Surabaya 18

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

sehingga didapatkan beberapa kondisi harus dipenuhi untuk mendapatkan nilai 1 (benar) /*nama file: OPER3.C*/ #include<stdio.h> #include<conio.h> void main() { int x,y,n,m; printf("masukkan nilai x = "); scanf("%d",&x); printf("masukkan nilai y = "); scanf("%d",&y); n=(x < 10) && (y > 10); m=(x > 10) || (y < 10); printf("\nnilai dari %d < 10 && %d > 10 adalah = %d",x,y,n); printf("\nnilai dari %d > 30 || %d < 70 adalah = %d\n",x,y,m); getch(); }

Politeknik Elektronika Negeri Surabaya

19

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

3.4.4

Mengamati penggunaan operator assignment, yang dipadukan dengan operator aritmatika.

/*nama file: OPER4.C*/ #include<stdio.h> #include<conio.h> void main() { int a,b,x,y; printf("masukkan nilai scanf("%d",&a); printf("masukkan nilai scanf("%d",&b); printf("masukkan nilai scanf("%d",&x); printf("masukkan nilai scanf("%d",&y); printf("\nnilai y dari %d\n",y*=x); printf("\nnilai y dari %d\n",y/=x); printf("\nnilai y dari %d\n",y+=x); printf("\nnilai y dari %d\n",y-=x); printf("\nnilai y dari %d\n",y%=x); puts(""); a = "); b = "); x = "); y = "); y *= x adalah = y /= x adalah = y += x adalah = y -= x adalah = y %%= x adalah =

Politeknik Elektronika Negeri Surabaya

20

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("\nnilai y %d\n", y*=(a+b)); printf("\nnilai y %d\n", y/=(a-b)); printf("\nnilai y %d\n", y+=(a%b)); printf("\nnilai y %d\n", y-=(a/b)); getch(); }

dari y*=(a+b) adalah = dari y/=(a-b) adalah = dari y+=(a%b) adalah = dari y-=(a/b) adalah =

3.4.5 Mengamati penggunaan operator conditional untuk menentukan suatu keputusan mana yang benar dan yang salah, dimana operator ini merupakan prinsip dasar dari statement if-else . /*nama file: OPER5.C*/ #include<stdio.h> #include<conio.h>
Politeknik Elektronika Negeri Surabaya 21

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

void main() { int a,b,c,d; printf("masukkan nilai a = "); scanf("%d", &a); printf("masukkan nilai b = "); scanf("%d", &b); printf("masukkan nilai c = "); scanf("%d", &c); printf("masukkan nilai d = "); scanf("%d", &d); printf("\nnilai a dibanding b adalah a lebih"); printf("%s daripada b", (a>b)?"besar":"kecil"); printf("\nnilai c dibanding d adalah c lebih"); printf("%s daripada d\n", (c<d)?"kecil":"besar"); getch(); }

Politeknik Elektronika Negeri Surabaya

22

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 4
4.1. JUDUL: KEPUTUSAN STATEMENT PENENTU

4.2. TUJUAN: Mempelajari dan mengamati penggunaan statement penentu keputusan yaitu statement if-else. Memanfaatkan statement if-else untuk membuat proses perulangan. Mempelajari statement if-else bersarang (nested if). Mempelajari bentuk lain dari statement if-else yaitu statement else-if. Mempelajari penggunaan dari statement switch-case sebagai alternated pengganti dari statement else-if.

4.3. TEORI: Statement if-else digunakan untuk menentukan pilihan dari suatu kondisi yang diberikan. Cara kerjanya adalah melakukan perbandingan menggunakan Relational Operator dan/atau Logical Operator, apabila suatu kondisi terpenuhi (benar) maka akan mengerjakan proses A dan apabila kondisi tidak terpenuhi (salah) maka tidak akan mengerjakan proses A atau dapat juga mengerjakan proses lain misalkan proses B. Statement if-else bersarang merupakan kombinasi dari beberapa if-else, dimana apabila ada beberapa kondisi yang harus diuji kebenarannya secara bersama (if difalam if). Statement else-if adalah cara lain dari bentuk if-else, yang digunakan untuk menentukan satu kondisi yang
Politeknik Elektronika Negeri Surabaya 23

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

benar dari bebera[a kondisi yang tersedia. Statement switch-case adalah bentuk lain dari statement else-if, dengan mendaftar kondisi secara vertical dalam satu kolom sehingga memudahkan dalam hal evaluasi program. 4.4. PROGRAM PERCOBAAN

4.4.1. Mengamati penggunaan statement penentu keputusan sederhana, yaitu menentukan apakah bilangan yang dimasukkan lebih kecil dari nol? /* nama file: IF-ELSE1.C */ #include<stdio.h> #include<conio.h> void main() { int bil, absolut; printf("masukkan bilangan bulat: "); scanf("%d",&bil); if(bil < 0) absolut = -bil; printf("nilai absolute dari %d adalah = %d\n", bil, absolut); getch(); }
Politeknik Elektronika Negeri Surabaya 24

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

4.4.2. Suatu bilangan apabila dapat dibagi dengan bilangan yang lain, maka tidak menghasilkan suatu sisa nilai, sehingga dengan cara ini program dapat menentukan apakah suatu bilangan habis dibagi atau tidak. /* nama file: IF-ELSE2.C */ #include<stdio.h> #include<conio.h> void main() { int pembilang, penyebut, sisa; printf("masukkan pembilang: "); scanf("%d",&pembilang); printf("masukkan penyebut: "); scanf("%d",&penyebut); sisa = pembilang % penyebut; puts(""); if(sisa) printf("%d tidak habis dibagi %d\n", pembilang, penyebut); else
Politeknik Elektronika Negeri Surabaya 25

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("%d habis dibagi %d\n", pembilang, penyebut); getch(); }

4.4.3. Menentukan keputusan bahwa suatu nilai termasuk dalam suatu batas jangkauan suatu nilai tertentu. Contoh, semua karakter huruf kecil mempunyai kode ASCII mulai dari huruf a sampai z, yaitu dari 97 sampai 122

/* nama file: IF-ELSE3.C */ #include<stdio.h> #include<conio.h> void main() { char c; printf("masukkan suatu karakter: "); scanf("%c", &c); if(c>='a' && c<='z') printf("\nkarakter tersebut termasuk huruf kecil.\n"); else
Politeknik Elektronika Negeri Surabaya 26

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("\nkarakter tersebut bukan huruf kecil.\n"); getch(); }

4.4.4. Suatu proses ada kalanya dilakukan berulang, untuk mendapatkan nilai perhitungan yang lebih teliti (iterasi) atau untuk mengolah suatu data nilai secara table seperti pada daftar nilai siswa. Berikut diberikan contoh sederhana, yaitu menampilkan penambahan suatu nilai index dimana sering digunakan untuk proses perulangan. Dengan menggunakan kombinasi if-goto maka didapatkan suatu statement perulangan. /* nama file: IF-ELSE4.C */ #include<stdio.h> #include<conio.h> void main() { int i=0, hasil=1; ulang: i++; hasil*=2; printf("iterasi ke %2: %5d\n",i,hasil);
Politeknik Elektronika Negeri Surabaya 27

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

if(i<10) goto ulang; getch(); }

4.4.5. Compound Statement adalah mengelompokkan suatu proses menjadi satu blok. Didalam if-else penggunaan Compound Statement adalah untuk mengelompokkan proses-proses yang harus dikerjakan bila kondisi terpenuhi ataupun bila kondisi tidak terpenuhi. /* nama file: IF-ELSE5.C */ #include<stdio.h> #include<conio.h> void main() { char tag; printf("masukkan tipe tag (2 / 4): "); scanf("%c", &tag); if(tag=='2'){
Politeknik Elektronika Negeri Surabaya 28

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("merk sepeda motor bertipe 2 tag\n\n"); printf("1. YA MAHA\n"); printf("2. YA SUZUKI\n"); printf("3. YA HONDA\n");} else{ printf("merk sepeda motor bertipe 4 tag\n\n"); printf("1. HONDA\n"); printf("2. SUZUKI\n"); printf("3. YAMAHA\n");} getch(); }

4.4.6. Statement if-else tidak dapat digunakan untuk menentukan satu pilihan yang benar diantara beberapa pilihan yang ada, oleh karena itu dapat digunakan statement else-if dimana dapat digunakan untuk menguji kondisi yang benar diantara beberapa kondisi yang diberikan. Bila suatu operator dikenal maka dilanjutkan proses perhitungan sesuai dengan operator yang dikenal tersebut, sedangkan bila tidak dikenal maka diberikan komentar Operator SALAH!. Pengujian operator dilakukan secara bertahap dari operator *, /, + dan =,
Politeknik Elektronika Negeri Surabaya 29

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

bila keempat operator tidak ditemukan maka pada statement pengujian cukup dituliskan else tanpa if, yang menandakan pengujian selesai dan tidak ditemukan operator yang sesuai. /* nama file: if-else6.C */ #include<stdio.h> #include<conio.h> void main() { int valid_opr = 1; char opr; float bil1, bil2, hasil; printf("masukkan 2 bilangan dan sebuah operator.\n\n"); printf("dengan format:\n\n"); printf("=bilangan-1 operator bilangan-2\n\n"); printf("= "); scanf("%f %c %f", &bil1, &opr, &bil2); if(opr == '*') { hasil = bil1 * bil2; }else if(opr == '/') hasil = bil1 / bil2; else if(opr == '+') hasil = bil1 + bil2; else if(opr == '-') hasil = bil1 bil2;
Politeknik Elektronika Negeri Surabaya 30

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

else valid_opr = 0; if(valid_opr) { printf("\nhasil perhitungan\n\n"); printf("%g %c %g = %g \n",bil1, opr, bil2, hasil); } else { printf("\noperator salah! n"); printf("gunakan operator +,-,/ dan * saja!"); } getch(); }

4.4.7. Untuk lebih menstrukturkan susunan program, maka penggunaan dari else-if dapat diganti dengan statement switch-case. Statement switch-case akan membuat program terlihat lebih terstruktur, dimana statement else pada pengujian diatas diganti dengan statement default. Setiap blok case harus diakhiri dengan statement break, bila diinginkan hanya satu kondisi yang memenuhi, dan bila statement break tidak digunakan maka beberapa kondisi tersebut akan
Politeknik Elektronika Negeri Surabaya 31

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

diuji secara bersamaan, sehingga kemungkinan ada dua atau beberapa kondisi yang benar. /* nama file: if-else7.C */ #include<stdio.h> #include<conio.h> void main() { int valid_opr = 1; char opr; float bil1, bil2, hasil; printf("masukkan 2 bilangan dan sebuah operator.\n\n"); printf("dengan format:\n\n"); printf("=bilangan-1 operator bilangan-2\n\n"); printf("= "); scanf("%f %c %f", &bil1, &opr, &bil2); switch (opr) { case '*' : hasil = bil1 * bil2; break; case '/' : hasil = bil1 / bil2; break; case '+' : hasil = bil1 + bil2; break;
Politeknik Elektronika Negeri Surabaya 32

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

case '-' : hasil = bil1 - bil2; break; default break; } if (valid_opr) { printf("\nhasil perhitungan\n\n"); printf("%g %c %g = %g \n",bil1, opr, bil2, hasil); }else { printf("\noperator salah!\n"); printf("\nGunakan operator +,-,/ dan * saja!"); } getch(); } : valid_opr = 0;

Politeknik Elektronika Negeri Surabaya

33

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 5
5.1. JUDUL : STATEMENT PERULANGAN (LOOPING)

5.2. TUJUAN : Mempelajari proses perulangan, menggunakan beberapa control statement seperti for, while dan do-while. 5.3. TEORI : Control Statement adalah statement yang digunakan untuk mengarahkan jalannya program, sehingga urutan pengerjaan program dapat melompatlompat atau berulang-ulang. Ada beberapa statement yang termasuk control statement yaitu statements if-else, elseif, goto( ), switch( ), break, continue, for( ), while( ) dan do-while. Statement for( ) digunakan untuk membuat perulangan yang dikontrol oleh nilai-nilai tertentu yang initial. Perulangan dengan statement for( ), tidak memeriksa kondisi lebih dahulu, sehingga statement di dalam for( ) langsung dikerjakan dulu, kemudian baru memeriksa kondisi. Statement while( ) digunakan juga untuk membuat perulangan seperti pada statement for( ), perbedaannya adalah statement while( ) memeriksa kondisi dulu, bila kondisi memenuhi (benar), maka perulangan dilaksanakan. Statement do-while adalah juga digunakan unuk membuat perulangan seperti halnya dua
Politeknik Elektronika Negeri Surabaya 34

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

statement diatas, dan kemungkinan merupakan kombinasi antara kedua statement diatas, cara kerja dari perulangan do-while adalah langsung mengerjakan badan loop, kemudian kondisi diperiksa bila kondisi memenuhi perulangan dilanjutkan bila tidak perulangan selesai. 5.4. PROGRAM PERCOBAAN

5.4.1 Triangular adalah suatu susunan benda (bola) yang disusun sedemikian sehingga menyerupai segitiga, dengan mengetahui jumlah seluruh bola yang paling bawah, maka dapat dihiung jumlah seluruh bola yang menyusun triangular tersebut.

/* Nama File

LOOPl.C */

#include<stdio.h> #include<conio.h> void main() { int n, jumlah; jumlah=0; for (n=1; n<=200; n=n+1)
Politeknik Elektronika Negeri Surabaya 35

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

jumlah=jumlah+1;

printf("Jumlah 200 %d\n",jumlah); getch(); }

triangular adalah

5.4.1. Untuk menghitung beberapa jumlah triangular, maka dapat dibuat suatu tabel perhitungan jumlah triangular dengan melakukan iterasi sebanyak jumlah triangular yang diinginkan.

/* Nama

File LOOP2.C

*/

#include<stdio.h> #include<conio.h> void main()


Politeknik Elektronika Negeri Surabaya 36

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{ int n, jumlah; TRIANGULAR\n\n"); jumlah\n");

printf("TABEL JUMLAH printf(" n

printf("--------------\n");

jumlah=0; for (n=1; n<=10; ++n) n; { printf("%d

jumlah=jumlah + %d\n", n, jumlah); } getch(); }

Politeknik Elektronika Negeri Surabaya

37

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

5.4.2. Perulangan dalam perulangan (nested loop) ada kalanya diguanakan apabila diperlukan perulangan berlipat. Program dibawah ini menghitung 5 triangular dengan jumlah nilai dasar berdasarkan masukan dari keyboard. /* Nama File LOOP3.C */ #include<stdio.h> #include<conio.h> void main() { int n,angka,jumlah,total; for (n=1; n<=5; ++n) { printf("Masukkan nilai triangular-%d ",n); scanf("%d", &angka); jumlah=0; for (n=1; n<=angka; ++n) jumlah=jumlah+n; total=total+jumlah; } printf("Jumlah %d triangular %d\n",n,total); getch(); }

dasar

adalah

Politeknik Elektronika Negeri Surabaya

38

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

5.4.3. Penggunaan perulangan while diperlukan apabila proses dalam suatu perulangan tidak langsung dikerjakan, akan tetapi melihat kondisinya lebih dulu, apabila kondisi memenuhi maka proses dalam perulangan dikerjakan.

/* Nama

FileLOOP4.C

*/

#include<stdio.h> #include<conio.h> void main() { int hitung, hasil;

hitung=hasil=1; while (hitung<=10) {


39

Politeknik Elektronika Negeri Surabaya

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

hasil*=hitung; printf("%3d hasil); ++hitung; } } %5d\n", hitung,

5.4.4. Ada dua bilangan tertentu dimana diiinginkan suatu nilai pembagi bulat untuk kedua bilangan tersebut, maka dapat dilakukan pencarian bilangan pembagi tersebut menggunakan suatu iterasi sebagai berikut.

/* Nama

FileLOOP5.C

*/

#include<stdio.h>
Politeknik Elektronika Negeri Surabaya 40

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

#include<conio.h> void main() { int bil1,bil2,sisa; bulat

printf("Masukkan bilangan positif pertama = "); scanf("%d",&bil1); printf("Masukkan bilangan positif kedua = "); scanf("%d",&bil2); while (bil2 !=0) { sisa=bil1%bil2; bil1=bil2; bil2=sisa; } printf("Pembagi bersama dari keduanya = %d",bil1); getch(); }

bulat

terbaik

Politeknik Elektronika Negeri Surabaya

41

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

5.4.5. Bila keduanya perulangan for( ) dan while( ) melakukan pemeriksaan kondisi diawal perulangan, maka sebaliknya perulangan do-while melakukan pemeriksaan kondisi setelah melakukan proses badan looping. Berikut ini program mencetak jumlah suatu triangular sampai sepuluh triangular.

/* Nama

File

LOOP6.C

*/

#include<stdio.h> #include<conio.h> void main() { int hitung,hasil; hitung=1; hasil=0; do { hasil+=hitung; printf("%3d %5d\n",hitung,hasil); ++hitung; } while (hitung<=10); getch(); }

Politeknik Elektronika Negeri Surabaya

42

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

5.4.6. Statement break yang dipadukan dengan statement perulangan adalah berguna untuk keluar secara paksa dari perulangan, saat perulangan berjalan, dikarenakan suatu kondisi sudah terpenuhi maka perulangan tidak perlu dilanjutkan lagi. Berikut ini proses perulangan tak terhingga, dimana untuk keluar dari proses diperlukan suatu kondisi tertentu, dan bila kondisi tersebut terpenuhi maka statement break akan bereaksi.

/* Nama FileLOOP7.C */ #include<stdio.h> #include<conio.h> void main() { int i=0; for(;;) { i++; printf("\nProses ke-%d sukses!\n",i); if(i==10) { printf("\nProses segera dihentikan, harap maklum!"); break;
Politeknik Elektronika Negeri Surabaya 43

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

} } getch(); }

5.4.7. Statement continue digunakan apabila dalam suatu proses perulangan tercapai suatu kondisi tertentu, sehingga suatu proses yang ke-n tidak dikerjakan (skip) dan dilanjutkan dengan proses selanjutnya(n+1).

/* Nama File LOOP8.C */ #include<stdio.h> #include<conio.h> void main() { int i; for(i=1;i<10;i++) if(i==5) {

Politeknik Elektronika Negeri Surabaya

44

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf("\n\tProses ke-%d dibatalkan\n",i); printf("\tHarap maklum!\n"); continue; } printf("\nProses ke-%d sukses!\n",i); } getch(); }

PERCOBAAN 6

6.1 JUDUL Mengembangkan fungsi-fungsi sendiri

6.2 TUJUAN Mempelajari pembuatan fungsi-fungsi diluar fungsifungsi yang ada, serta mempelajari penggunaan variabel global, lokal, eksternal, otomatis, statis, dan register.
Politeknik Elektronika Negeri Surabaya 45

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

6.3 TEORI Suatu fungsi adalah bagian program yang terpisah dari fungsi program utamanya main() dan berdiri sendiri untuk mengerjakan suatu proses tertentu. Tujuan digunakannya fungsi adalah untuk mencegah penggunaan program secara berulang-ulang, sehingga program menjadi sangat panjang. Pada percobaan-percobaan diatas telah digunakan fungsi-fungsi dari C, seperti printf(), clrscr(), scanf(), getch(), puts(), for() dan sebagainya, maka disini dicoba untuk membuat fungsi baru dimana tidak ada dalam pustaka bahasa C. Secara aturan fungsi baru dibuat setelah fungsi main() dibuat, sehingga penempatan fungsi adalah dibawah fungsi main(), tetapi ada kalanya dapat diletakkan diatas fungsi main(). Bila fungsi diletakkan diatas fungsi main() maka tidak diperlukan deklarasi fungsi lagi.

6.4 PROGRAM PERCOBAAN 6.4.1. Untuk membuat fungsi maka disiapkan nama fungsi cetak_pesan(), kemudian bila diletakkan dibawah fungsi main(), maka fungsi tersebut harus dideklarasikan diatas fungsi main(). Fungsi ini dipanggil 5 kali.
Politeknik Elektronika Negeri Surabaya 46

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

/* Nama File: FUNGSI1.C */ #include <stdio.h> #include <conio.h> void cetak_pesan(void);

void main() { int i; for(i=1; i<=5; i++) { printf("pesan ke-%d: ",i); cetak_pesan(); } getch(); } void cetak_pesan() { printf("ini dulu! baru itu! \n\n"); }
Politeknik Elektronika Negeri Surabaya 47

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

6.4.2. Peletakan suatu fungsi dapat diatas fungsi main(), sehingga tidak diperlukan deklarasi fungsi. Masukan suatu fungsi dilewatkan melalui suatu argument yang disebut passing parameter. Fungsi hitung_triangular() dibawah ini mempunyai argument int n, yang digunakan untuk melewatkan suatu nilai dari program pemanggil ke dalam suatu fungsi.

/* Nama File: FUNGSI2.C */ #include <stdio.h> #include <conio.h> void hitung_triangular(int n) { int i, jumlah=0;

Politeknik Elektronika Negeri Surabaya

48

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

for(i=0; i<=n; ++i) jumlah=jumlah+i; printf("jumlah triangular %d adalah %d\n", n,jumlah); } void main() { hitung_triangular(10); hitung_triangular(20); hitung_triangular(50); getch(); }

6.4.3. Fungsi berikut menghasilkan Faktor Persekutuan Besar (FPB).

Politeknik Elektronika Negeri Surabaya

49

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

/* Nama File: FUNGSI3.C */ #include <stdio.h> #include <conio.h> void fpb(int,int); void main() { fpb(150, 35); fpb(1026, 405); fpb(83, 240); getch(); } void fpb(int u, int v) { int tampung;

printf("FPB dari %d dan %d adalah ", u, v); while(v != 0) { tampung= u%v;


Politeknik Elektronika Negeri Surabaya 50

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

u=v; v=tampung; } printf("%d\n", u); }

6.4.4. Suatu fungsi dapat memberikan nilai balik (return value),bila fungsi tersebut mempunyai tipe dan bukannya void seperti fungsi-fungsi diatas, dimana digunakan sebagai prosedur saja (tidak mempunyai nilai balik). Pada fungsi fpb() terdapat tipe int, dimana fungsi ini akan memberikan nilai balik bertipe integer (bulat), dan untuk memberikan nilai balik ini maka didalam fungsi fpb() harus ditambahkan statement return(), yang digunakan untuk memberikan suatu nilai yang dikembalikan oleh fungsi.

/* Nama File: FUNGSI4.C */ #include <stdio.h>


Politeknik Elektronika Negeri Surabaya 51

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

#include <conio.h> int fbp(int, int); void main() { int hasil;

hasil= fbp(150, 35); printf("FBP dari 150 adalah %d\n", hasil); hasil= fbp(1026, 405); printf("FBP dari 1026 dan 405 adalah %d\n", hasil); hasil= fbp(83, 240); printf("FBP dari 83 adalah %d\n", hasil); getch(); } int fbp(int u, int v) { dan 240 dan 35

Politeknik Elektronika Negeri Surabaya

52

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

int tampung; while(v != 0) { tampung=u%v; u=v; v=tampung; } return(u); }

6.4.5. Fungsi berikut digunakan untuk menentukan 2 bilangan yang terkecil

/* Nama File: FUNGSI6.C */ #include <stdio.h> #include <conio.h> float minimum(float x, float y)
Politeknik Elektronika Negeri Surabaya 53

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{ if(x<y) return(x); else return(y); } void main() { float a,b; printf("Masukkan nilai a: "); scanf("%f", &a); printf("Masukkan nilai b: "); scanf("%f", &b); printf("\nBilangan terkecil antara %g dan %g adalah ",a,b); printf("%g\n\n",minimum(a,b)); getch(); }

Politeknik Elektronika Negeri Surabaya

54

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

6.4.6. Program dibawah ini akan membedakan penggunaan variable otomatis dan variable statis, dimana bila menggunakan variable statis maka nilai akan tetap, sedangkan bila menggunakan variable otomatis maka nilai akan kembali seperti semula.

/* Nama File: FUNGSI7.C */ #include <stdio.h> #include <conio.h> void demo(void) { auto int var_auto=0; static int var_static=0; printf("auto=%d, static=%d\n", var_auto, var_static); ++var_auto; ++var_static; } main() {
Politeknik Elektronika Negeri Surabaya 55

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

int i=0; while(i<3) { demo(); i++; } getch(); }

PERCOBAAN 7
7.1. JUDUL : VARIABEL ARRAY

7.2.TUJUAN : Mempelajari penggunaan variable array satu dimensi, dua dimensi, berdimensi banyak, array tak berukuran dan parameter array .

7.3. TEORI : Suatu array adalah kumpulan dari beberapa nilai yang mempunyai tipe yang sama, misalkan integer semu,
Politeknik Elektronika Negeri Surabaya 56

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

float semua dan sebagainya. Untuk membedakan antara nilai satu dengan lainnya digunakan suatu subscript, yang sering disebut index. Suatu variable array dapat digunakan untuk menyimpan beberapa nilai dengan index mulai mulai 0 sampai n-1 yaitu bilangan [0] bilangan [n-1] .

7.4 PROGRAM PERCOBAAN 7.4.1 Mencoba mendeklarasikan suatu variable array dan mengisinya kemudian menampilkan isi variable tersebut menggunakan statement for(). Ingat apabila jumlah deklarasi index adalah n maka nilai index-nya adalah dimulai dari 0 sampai n-1.

/* Nama File : ARRAY1.C */

#include <stdio.h> #include <conio.h>

main() { int nilai [10];int indeks;


Politeknik Elektronika Negeri Surabaya 57

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

nilai [0] = 197; nilai [2] = -100; nilai [5] = 350; nilai [3] = nilai [0] + nilai [5]; nilai [9] = nilai [5]/10; --nilai[2]; for (indeks=0; indeks<10; ++indeks) printf("Nilai [%d] = %d\n", indeks, nilai[indeks]); getch(); }

7.4.2 Deret fibonanci adalah deret dimana dimulai dengan dua angka, dimana bernilai 0 dan 1, kemudian deret ketiga ditentukan dari penjumlahan kedua angka tersebut, sedangkan deret keempat ditentukan dari dua angka sebelumnya begitu seterusnya. Sehingga didapatkan deret fibonanci sebgai berikut: 0 1 1 2 3 5 8 13 21 ...
Politeknik Elektronika Negeri Surabaya 58

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

/* Nama file : array2.c*/ #include<stdio.h> #include<conio.h> void main() { int fibo[100],i,jumlah; fibo[0]=0; fibo[1]=1; printf("masukkan jumlah deret fibonanci= "); scanf("%d", &jumlah); for(i=2;i<jumlah;i++){ fibo[i] = fibo[i-1] + fibo[i-2]; printf("%5d", fibo[i]); } printf("\n\n"); getch(); }

7.4.3 Bila sudah ditentukan suatu variable array dengan sejumlah index, kemudian hanya beberapa index saja yang akan diisi dengan data, maka index yang lainnya tidak dapat begitu saja diabaikan. Untuk itu dapat digunakan statement static untuk mengisi suat variable array dengan nol bila tidak ditentukan nilainya. /* Nama file : array3.c*/
Politeknik Elektronika Negeri Surabaya 59

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

#include<stdio.h> #include<conio.h> void main() { static int nilai_nilai [10]={0,1,4,9,16}; /* nilai lainnya diisi dengan sendirinya */ int i; for (i=0;i<10;i++) printf("nilai_nilai[%d]=%d\n",i , nilai_nilai[i]); getch(); }

7.4.4 Menentukan nilai maksimum dari sederetan nilai yang sudah diinisialisasi dan disimpan dalam array, mengirim array sebagai parameter sebuah fungsi. /* Nama file : array4.c*/ #include<stdio.h> #include<conio.h> int findmax (int[], int); void main() { static int data1[]={5,34,56,-12,3,19};
Politeknik Elektronika Negeri Surabaya 60

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

static int data2[]={1,-2,34,207,93,-12}; printf("nilai maksimum dari data1[] adalah %d\n",findmax(data1,6)); printf("nilai maksimum dari data2[] adalah %d\n",findmax(data2,6)); } int findmax(int nilai[],int jml_data) { int terbesar, i; terbesar= nilai[0]; for(i=1;i<jml_data;++i) if(nilai[i] > terbesar) terbesar = nilai[i]; return terbesar; }

7.4.5 Array dua dimensi, dibawah ini menyimpan informasi huruf A. Dimana nilai 1 mewakili karakter ASCII \xDB atau 219, yaitu karakter kotak. /* Nama file : array5.c*/ #include<stdio.h> #include<conio.h> void main() {
Politeknik Elektronika Negeri Surabaya 61

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

int i,j; static int A[8][8]={ {0,1,1,1,1,1,0,0}, {0,1,0,0,0,1,0,0}, {0,1,0,0,0,1,0,0}, {1,1,1,1,1,1,1,0}, {1,1,0,0,0,0,1,0}, {1,1,0,0,0,0,1,0}, {0,0,0,0,0,0,0,0}}; for(i=0;i<8;i++){ for(j=0;j<8;j++) if(A[i][j]) putchar('\xDB'); else putchar(' '); puts(""); } getch(); }

7.4.6 Program dibawah ini menggunakan variable array berdimensi tiga, untuk menyimpan informasi huruf A dan huruf B. Dimana angka 1 mewakili kotak penuh dan 0 mewakili spasi. Jadi bila ditemukan angka 1 pada variable data_huruf maka dicetak kotak penuh, sedangkan sebaliknya
Politeknik Elektronika Negeri Surabaya 62

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

dicetak spasi (kosong). Sehingga terbentuk huruf A dan B dengan ukuran besar (8 kali huruf normal pada mode teks). /* Nama file : array6.c*/ #include<stdio.h> #include<conio.h> void main() { int i,j,k; static int data_huruf[2][8][8]={ {{0,1,1,1,1,1,0,0}, {0,1,0,0,0,1,0,0}, {0,1,0,0,0,1,0,0}, {1,1,1,1,1,1,1,0}, {1,1,0,0,0,0,1,0}, {1,1,0,0,0,0,1,0}, {1,1,0,0,0,0,1,0}, {0,0,0,0,0,0,0,0}}, {{1,1,1,1,1,1,0,0}, {1,0,0,0,0,1,0,0}, {1,0,0,0,0,1,0,0}, {1,1,1,1,1,1,1,0}, {1,1,0,0,0,0,1,0}, {1,1,0,0,0,0,1,0}, {1,1,1,1,1,1,1,0}, {0,0,0,0,0,0,0,0}}}; /*tampilkan huruf*/ for(i=0;i<8;i++){
Politeknik Elektronika Negeri Surabaya 63

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

for(j=0;j<8;j++){ for(k=0;k<8;k++) if(data_huruf[i][j][k]) putchar('\xDB'); else putchar(' '); puts(""); } puts(""); } getch(); }

7.4.7 Dasar bilangan yang digunakan sehari-hari adalah dasar bilangan 10, sedangkan dasar bilangan yang lain misalkan 2,8 dan 16 digunakan oleh komputer. /* Nama file : array7.c*/ #include<stdio.h> #include<conio.h> void main() {
Politeknik Elektronika Negeri Surabaya 64

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

static char digit_dasar[16]={'0','1','2','3','4','5',' 6','7','8','9','A','B','C','D','E','F'}; int konversi[64]; long int bilangan; int digit_ke, dasar, indeks=0; printf("bilangan yang dikonversikan : "); scanf("%ld", &bilangan); printf("dasar bilangan: "); scanf("%d", &dasar); do { konversi [indeks]=bilangan % dasar; ++indeks; bilangan/=dasar; } while (bilangan!=0); printf("angka konversi : "); for(--indeks;indeks>=0;--indeks){ digit_ke=konversi[indeks]; printf("%c", digit_dasar[digit_ke]); } getch(); }

Politeknik Elektronika Negeri Surabaya

65

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 8
8.1 JUDUL : VARIABEL & FUNGSI STRING 8.2 TUJUAN : Mempelajari penggunaan variable string yang dipadukan dengan fungsi-fungsi untuk pengolahan data string, seperti strcat(), strlen(), dan strcpy() dan sebagainya.

8.3 TEORI : Suatu karakter string adalah terdiri dari


beberapa karakter (deretan karakter) yang diakhiri dengan karakter khusus \0 (null). Suatu konstanta string adalah karakter string yang dituliskan diantara tanda petik ganda (), seperti yang digunakan pada fungsi printf() atau puts(). Konstanta karakter string mempunyai kelas penyimpan static, sehingga bila digunakan didalam fungsi, maka nilainya tidak akan berubah selama program aktif.

8.4 PROGRAM PERCOBAAN


8.4.1 Mengamati penggunaan variable array berukuran bebas [] untuk melewatkan suatu variable string ke dalam fungsi. Untuk dapat melewatkan suatu nilai konstanta atau variable yang tidak diketahui panjangnya, maka digunakan array dengan ukuran bebas. Meskipun digunakan variable berukuran kosong, compiler akan tahu berapa jumlah elemen yang dimasukkan dalam satu variable. /*nama file : String1.c */ #include<stdio.h> #include<conio.h> int panjang_str(char string[])
Politeknik Elektronika Negeri Surabaya 66

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{ int hitung=0; while(string[hitung] != '\0') ++hitung; return(hitung); } void main() { static char kata0[]={'b','e','1','a','j','a','r','\0'} ; static char kata1[]={'f','u','n','g','s','i','\0'}; static char kata2[]={'s','t','r','i','n','g','\0'}; printf("panjang string 0 = %d\n", panjang_str(kata0)); printf("panjang string 1 = %d\n", panjang_str(kata1)); printf("panjang string 2 = %d\n", panjang_str(kata2)); getch(); }

8.4.2 Mengamati penggunaan fungsi-fungsi untuk pengolahan string, seperti sterlen(), strcat(), dan strcmp(). Fungsi strlen() digunakan untuk menghitung jumlah string
Politeknik Elektronika Negeri Surabaya 67

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

sperti pada program 8.4.1 diatas, fungsi strcat() digunakan untuk menggabungkan antara dua string, fungsi strcmp() digunakan untuk membandingkan antara dua string, diberikan nilai 0 bila kedua string tidak sama. Penggunaan variable static mutlak diperlukan apabila menggunakan variable string dengan ukuran bebas, bila tidak digunakan variable static maka kemungkinan terjadi kesalahan isi dari variable dengan ukuran bebas tersebut, dimana karakter yang diberikan tidak dapat masuk dengan sempurna, atau diisi dengan karakter sembarang. /*nama file : String2.c */ #include<string.h> #include<stdio.h> #include<conio.h> void main() { char nama[50], jawab[15]; static char salam[]=",assalamu'alaikum..."; static char wayang[]="bima sena"; puts("masukkan nama anda:"); gets(nama); puts(""); puts("siapakah nama wayang yang gak bisa duduk?"); gets(jawab); puts(""); if(strlen(salam)+strlen(nama)<50) strcat(nama,salam); puts(nama);
Politeknik Elektronika Negeri Surabaya 68

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

if(strcmp(wayang,jawab)==0) printf("\njawaban anda benar! hebat!"); else{ printf("\njawaban anda salah!"); printf("\njawabannya adalah %s", wayang); } puts(""); getch(); }

8.4.3 Menghitung jumlah karakter yang dimasukkan melalui keyboard, menggunakan fungsi fgets(). Fungsi ini dapat juga digunakan untuk membaca data dari file, dengan mengganti standar masukan yang disini ditulis stdin, dimana masukkan didapatkan dari keyboard. /*nama file : String3.c */ #include<stdio.h> #include<conio.h> #define MAKS 256 void main() { int i, jumkar;
Politeknik Elektronika Negeri Surabaya 69

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

char teks[MAKS]; puts("masukkan suatu kalimat (maks 255 karakter)."); puts("komputer akan menghitung jumlah karakternya.\n"); fgets(teks,sizeof teks,stdin); jumkar=0; for(i=0;teks[i];i++) jumkar++; printf("\n jumlah karakter=%d\n", jumkar); getch(); }

8.4.4 Mencari posisi karakter menggunakan fungsi strchr(). /*nama file : String4.c */ #include<string.h> #include<stdio.h> #include<conio.h void main() {

pada

suatu

string

Politeknik Elektronika Negeri Surabaya

70

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

char str1[50],str2[50],kar,po; strcpy(str1,"0--------1-------2-------3"); strcpy(str2,"->KUCARI KAMU UNTUK KUTANGKAP."); cputs("Isi dari str1= "); puts(str1); cputs("Isi dari str2= "); puts(str2); printf("\nPosisi huruf pada string dapat dicari"); printf("\nMenggunakan rumus p=stchr(str2,kar)\n"); kar='G'; po=strchr(str2,kar)-str2; printf("\nkarakter '%c' terletak pada kolom ke %d",kar,po); getch(); }

8.4.5 Karakter string adalah semua karakter yang digunakan oelh komputer, termsuk angka, tanda baca, tanda khusus dan lain-lain. Program dibawah mencoba untuk memisahkan karakter huruf(alphabet) dengan karakter lainnya, sehingga dapat dihitung jumlah huruf yang terdapat dalam suatu string. Fungsi alphabetic() akan memberikan nilai balik 1 bila ditemukan karakter huruf dalam suatu string. Fungsi
Politeknik Elektronika Negeri Surabaya 71

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

hitung_kata() akan memanfaatkan fungsi alphabetic() untuk menghitung kata yang ada dalam suatu string. /*nama file : String5.c */ #include<string.h> #include<stdio.h> #include<conio.h> int alphabetic(char c) { if((c>='a' && c<='z') || (c>='A' && c<='Z')) return(1); else return(0); } int hitung_kata(char string[]) { int i, lihat_kata=1,kata_terhitung=0; for (i=0;string[i]!='\0'; ++i) if(alphabetic(string[i])){ if(lihat_kata){ ++kata_terhitung; lihat_kata=0; }} else lihat_kata=1; return (kata_terhitung); } void main() { int hitung;
Politeknik Elektronika Negeri Surabaya 72

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

static char teks1[]="angka atau bilangan 0123456789"; static char teks2[]="juga termasuk karakter string."; printf("teks 1: %s\n", teks1); printf("teks 2: %s\n", teks2); puts(""); hitung = hitung_kata(teks1); hitung = hitung+hitung_kata(teks2); printf("terhitung ada %d kata pada teks diatas!\n",hitung); getch(); }

8.4.6 Mengamati pengolahan string menggunakan fungsi strncmp(), dimana digunakan untuk mengambil bagian kata dari suatu kalimat dalam string. Untuk mengambil kata pada string pada kolom tertentu dengan panjang tertentu, maka dapat dilakukan dengan menambah suatu konstanta yang menunjukan posisi kolom yang dimaksud, misalkan pada kata dulu dalam string Dont dulu bekerja, maka dapat dilakukan dengan menambah suatu konstanta dimana posisi kolom kata dulu berada, yaitu dengan menghitung dari kiri D=0, o=1, n=2 dst, sehingga posisi d apada kata dulu adalah 6, sehingga posisinya adalah str1+6 /*nama file : String6.c */
Politeknik Elektronika Negeri Surabaya 73

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

#include<string.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { char str1[30], str2[30], str3[30]; char str4[30], str5[30], str6[30]; strcpy(str1,"don't dulu bekerja"); strcpy(str2,"baru sambil be happy"); strcpy(str3,"ini worry belajar itu"); cputs("str1 = "); puts(str1); cputs("str2 = "); puts(str2); cputs("str3 = "); puts(str3); cputs("\ntekan ENTER untuk melihat hasilnya!"); getch(); strncpy(str4,str3,4); str4[4]= NULL; strncpy(str5,str1+6,5); str5[5]= NULL; strncpy(str6,str2,5); str6[5]= NULL; strcat(str4,str5); strcat(str4,str6); strncpy(str6,str3+18,3); str6[3]= NULL; strcat(str4,str6); printf("\n\n isi dari str4 = "); puts(str4); getch();
Politeknik Elektronika Negeri Surabaya 74

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

8.4.7 Fungsi

yang digunakan untuk membalik suatu kata/kalimat adalah fungsi strrev(), suatu kata/kalimat dikatakan palindrome apabila dibaca dari depan maupun belakang sama, misalkan KAKAK, KAPAK, KATAK, dan sebagainya.
/*nama file : String7.c */ #include<string.h> #include<stdio.h> #include<conio.h> void main() { char kalimat [50]; printf("masukkan kata/kalimat= "); scanf("%s", &kalimat); puts(""); printf("\n kata/kalimat sebelum strrev():\n"); printf("%s\n\n",kalimat); printf("\n kata/kalimat setelah strrev():\n"); strrev(kalimat); printf("%s\n",kalimat); getch(); }
Politeknik Elektronika Negeri Surabaya 75

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

PERCOBAAN 9
9.1 JUDUL : VARIABEL POINTER & PENGGUNAANYA DALAM FUNGSI
Politeknik Elektronika Negeri Surabaya 76

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

9.2 TUJUAN : Mempelajari penggunaan variable pointer yang dipadukan dengan variable bertipe interger, array dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai penunjuk fungsi atau sebagai argument fungsi. Dipelajari juga pointer yang menunjuk pointer lainnya. 9.3 TEORI : Suatu pointer adalah suatu variable yang menyimpan alamat dari suatu variable yang ditunjuk oleh pointer yang bersangkutan. Karena data yang ditunjuk oleh pointer bervariasi, maka tipe dari pointer harus disesuaikan dengan tipe data yang ditunjukan, maka memperkirakan ukuran data yang ditunjuk. Pointer berguna untuk mentransfer data yang mempunyai kapasitas besar, melalui suatu fungsi. Pointer sangat erat kaitannya dengan array, sehingga variable pointer dapat menggantikan fungsi dari variable array. 9.4 PROGRAM PERCOBAAN 9.4.1 Mengakses isi suatu variable melalui pointer. Untuk membedakan antara pointer dengan isi dari pointer maka dibedakan dengan penggunaan tanda & (ampersand) dan * (asterisk), tanda & digunakan pada variable yang bukan pointer, bila suatu variable bukan pointer diawali dengan tanda *, maka akan didapatkan nilai isi dari variable yang ditunjuk oleh pointer tersebut, dan bukan didapatkan alamatnya. /*nama file: Pointer1.c*/ #include<stdio.h> #include<conio.h> void main() {
Politeknik Elektronika Negeri Surabaya 77

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

int y,x = 2002; /* x & y bertipe int */ int *px; px = &x; y = *px; printf("alamat x = %p\n", &x); printf("isi px = %p\n", px); printf("isi x = %d\n", x); printf("nilai *px = %d\n", *px); printf("nilai y = %d\n", y); getch(); }

9.4.2 Mengamati persamaan penggunaan variable index pada array dan variable index pada pointer, untuk menunjuk suatu nilai data didalam suatu variable array. /*nama file: String2.c*/ #include<stdio.h> #include<conio.h> #include <string.h> #include <stdlib.h> void main() { int nilai[10]={86,75,98,66,56,76,80,95,70,60}; int index, *ip; printf("mencetak menggunakan array\n"); printf("daftar nilai siswa\n\n");
Politeknik Elektronika Negeri Surabaya 78

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

for(index=0; index<10; index++) printf("%3d", nilai[index]); puts("\n"); printf("mencetak menggunakan pointer dan index\n"); printf("daftar nilai siswa\n\n"); for(index=0; index<10; index++) printf("%3d", *nilai=index); puts("\n"); printf("mencetak menggunakan pointer\n"); printf("daftar nilai siswa\n\n"); ip= nilai; for(index=0; index<10; index++) printf("%3d",*ip++); getch(); }

9.4.3

Pointer yang menunjuk ke pointer yang lain.

/*nama file: Pointer3.c*/ #include<stdio.h> #include<conio.h>


Politeknik Elektronika Negeri Surabaya 79

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

void main() { int a,*b,**c; a=1975; b=&a; c=&b; printf("nilai a = %d atau %d atau %d\n",a,*b,**c); printf("b = %p = alamat a di memori\n", b); printf("c = %p = alamat bdi memori \n", c); printf("alamat c di memori = %p\n", &c); getch(); }

9.4.4

Fungsi dengan argumen berupa pointer

/*nama file: Pointer4.c*/ #include<stdio.h>


Politeknik Elektronika Negeri Surabaya 80

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

#include<conio.h> void naikkan_nilai(int *x, int *y); main() { int a=3, b=7; printf("semula : a= %d b= %d\n", a,b); naikkan_nilai (&a, &b); printf("sekarang : a = %d b= %d\n", a,b); getch(); } void naikkan_nilai(int *x, int *y) { *x = *x + 2; *y = *y + 3; }

9.4.5 Suatu fungsi dapat mempunyai nilai balik bertipe pointer, sehingga dapat digunakan untuk mengembalikan nilai yang panjang seperti halnya nilai suatu string. /*nama file: Pointer5.c*/ #include<stdio.h> #include<conio.h> char *nama_bulan(int n)
Politeknik Elektronika Negeri Surabaya 81

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{ static char *bulan[]={ "kode bulan salah", "januari","februari","maret","april","mei" ,"juni","juli", "agustus","september","oktober","nopember" ,"desember"}; return((n<1||n>12)? bulan[0] : bulan[n]); } void main() { int bl; printf("masukkan kode bulan[1..12] : "); scanf("%d", &bl); printf("bulan ke-%d adalah %s\n",bl, nama_bulan(bl)); getch(); }

9.4.6 Penggunaan fungsi *strlwr(str) yang digunakan untuk mengubah dari string huruf BESAR menjadi huruf kecil, dan fungsi strupr() yang digunakan untuk sebaliknya. Fungsi calloc() digunakan untuk memsan sejumlah memori (dinamis) yang akan digunakan untuk menampung hasil konversi, karena

Politeknik Elektronika Negeri Surabaya

82

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

variable *ptrx tidak diketahui panjang data yang ditunjuk olehnya. /*Nama File : POINTER6.C*/ #include <stdlib.h> #include <string.h> void main () { char str1[80],str2[80],*ptrx; strcpy (str1,"INI ADALAH HURUF BESAR SEMUA!!!"); strcpy (str2,"ini adalah huruf kecil semua!!!"); ptrx = NULL; puts ("Isi str1 = "); puts (str1); puts ("Isi str2 = "); puts (str2); puts ("Isi ptrx = "); puts (ptrx); ptrx = (char *) calloc(80, sizeof (char)); ptrx = strlwr(str1); puts ("\nSetelah 'str1' diproses dengan strlwr()\n"); puts ("Isi str1 = "); puts (str1); puts ("Isi ptrx = "); puts (ptrx); ptrx = strupr(str2); puts ("\nSetelah 'str2' diproses dengan strupr()\n");
Politeknik Elektronika Negeri Surabaya 83

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

puts ("Isi str2 = "); puts (str2); puts ("Isi ptrx = "); puts (ptrx); getch (); }

PERCOBAAN 10
10.1 JUDUL : VARIABEL STRUKTUR

Politeknik Elektronika Negeri Surabaya

84

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

10.2 TUJUAN : Mempelajari penggunaan variable struktur dimana dipadukan dengan variabel yang pernah dicoba sebelumnya, yaitu meliputi pointer dan array serta dipadukan dengan fungsi. Bagaimana mendeklarasi, menginisialisasi, dan mengaskes dari suatu struktur juga dicoba disini. 10.3 TEORI : suatu variabel bertipe data struktur adalah dapat terdiri dari bermacam tipe variable yang ada, jadi suatu struktur dapat berisi interger, float, char dan sebagainya. 10.4 PROGRAM PERCOBAAN 10.4.1 Informasi tanggal terdiri dari tanggal, bulan dan tahun, sehingga dapat dibuat strukturnya menjadi struktur tanggal, yang berisi variable tgl, bulan, dan tahun yang bertipe integer. /*Nama File : STRUKT1.C*/ #include <stdio.h> struct tanggal{ /* definisi global dari tipe tanggal */ int tgl; int bulan; int tahun; }; main () { struct tanggal now; now.tgl = 14; now.bulan = 05; now.tahun = 2003; printf ("Sekarang tanggal ");
Politeknik Elektronika Negeri Surabaya 85

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf ("%d/%d/ %d\n",now.tgl,now.bulan,now.tahun); getch (); }

10.4.2 Suatu struktur dapat dilewatkan pada suatu argument dalam suatu fungsi, sehingga nilai-nilai yang berada dalam struktur tersebut dapat digunakan didalam fungsi. Program dibawah ini menggunakan keyboard sebagai masukkan tanggal hari ini, kemudian informasi tanggal tersebut dilewatkan argument dalam fungsi, untuk diproses oleh fungsi. /*Nama File : STRUKT2.C*/ #include <stdio.h> #include <conio.h> struct tanggal { /*definisi global dari tipe tanggal */ int tgl; int bln; int thn; }; void cetak_tgl (struct tanggal now) { static char *bulan [] = { "Kode bulan salah", "Januari",
Politeknik Elektronika Negeri Surabaya 86

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

"Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "November", "Desember", }; printf ("\nTanggal sekarang adalah : "); printf ("%d %s %d\n",now.tgl,bulan[now.bln],now.thn); } void main () { struct tanggal skr; printf ("Masukkan tanggal hari ini (tgl/bln/thn): "); scanf ("%d/%d/ %d",&skr.tgl,&skr.bln,&skr.thn); cetak_tgl(skr); getch (); }

Politeknik Elektronika Negeri Surabaya

87

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

10.4.3 Suatu struktur dapat digunakan didalam struktur yang lain (nested), sehingga menambah keragaman dari isi suatu struktur. Misalkan struktur tanggal digunakan didalam struktur siswa, dimana masing-masing siswa mempunyai informasi struktur tanggal. /*Nama File : STRUKT3.C*/ struct tanggal { /*definisi global dari tipe tanggal */ int tgl; int bln; int thn; }; struct orang { /*definisi global tipe orang*/ char nama[30]; struct tanggal lahir; }; struct orang siswa; /* deklarasi global variabel siswa*/ void main() { /*memberikan nilai pada filled dari struktur siswa*/ strcpy (siswa.nama,"MUHAMMAD IHSAN"); siswa.lahir.tgl = 10; siswa.lahir.bln = 8 ; siswa.lahir.thn = 1970; printf ("Nama : %s\n",siswa.nama);
Politeknik Elektronika Negeri Surabaya 88

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

printf ("Tgl Lahir : %d-%d%d\n",siswa.lahir.tgl,siswa.lahir.bln,sisw a.lahir.thn); getch (); }

10.4.4 Penggunaan perpaduan antara struktur dengan array. /*Nama File : STRUKT4.C*/ struct bln { int jumlah; char nama[3]; }; void main() { int i ; static struct bln bulan[12] = {{31, {'J','a','n'}},{28,{'F','e','b'}},{31, {'M','a','r'}},{30,{'A','p','r'}}, {31, {'M','e','i'}},{30,{'J','u','n'}}, {31,{'J','a','l'}},{30,{'A','g','s'}}, {31,{'S','e','p'}},{31,{'O','k','t'}}, {31,{'N','o','p'}},{31, {'D','e','s'}}}; printf ("Bulan Jumlah hari\n"); printf ("---------------\n");
Politeknik Elektronika Negeri Surabaya 89

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

for (i = 0;i<12;i++){ printf ("%c %c",bulan[i].nama[0],bulan[i].nama[1]); printf ("%c %d\n",bulan[i].nama[2],bulan[i].jumlah); } getch (); }

10.4.5 Menghitung penambahan detik pada jam tertentu, dilakukan dengan mendeteksi apakah jam sudah menunjukan 24, apakah menit sudah menunjukan 60, dan detik sudah mencapai angka 60, dan detik sudah mencapai angka 60. Dimana semua informasi jam disimpan pada struktur waktu, yang terdiri dari jam, menit dan detik. /*Nama File : STRUKT5.C*/ struct waktu { int jam ; int menit ; int detik ; }; struct waktu time_update(now) struct waktu now;
Politeknik Elektronika Negeri Surabaya 90

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{ struct waktu new_time; new_time = now; ++new_time.detik; if (new_time.detik==60){ new_time.detik = 0; ++new_time.menit; if(new_time.menit==60){ new_time.menit = 0; ++new_time.jam; if (new_time.jam==24) new_time.jam=0; } } return (new_time); } void main () { static struct waktu tes[5] = { {11,59,59},{12,0,0},{1,29,59}, {23,59,59},{19,12,27} }; int i; for (i = 0;i<5;i++){ printf ("Waktu adalah %.2d:%.2d: %.2d",tes[i].jam,tes[i].menit,tes[i].de tik); tes [i] = time_update(tes[i]); printf ("...satu detik berikutnya %2.d: %.2d:
Politeknik Elektronika Negeri Surabaya 91

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

%.2d\n\n",tes[i].jam,tes[i].menit,tes[i ].detik); } getch(); }

10.4.6 Penggunaan perpaduan struktur dan array yang digunakan untuk menyimpan data kamus bermacam hewan dan keterangannya. /*Nama File : STRUKT6.C*/ struct entry { char kata [10]; char definisi[50]; }; / *************************************** ****************/ /*Sisipkan fungsi sama_str disini (lihat TUGAS - TUGAS */ int sama_str(char s1[],char s2[]) { int i = 0, jawab;
Politeknik Elektronika Negeri Surabaya 92

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

while(s1[i]==s2[i]&&s1[i]! ='\0'&&s2[i]!='\0') ++i; if(s1[i]=='\0'&&s2[i]=='\0') jawab = 1; else jawab=0; return (jawab); } / *************************************** ****************/ int lihat(kamus,cari,jumlah) struct entry kamus[]; char cari[]; int jumlah; { int i; for (i=0;i<jumlah;++i) if(sama_str(cari,kamus[i].kata))ret urn(i); return (-1); } void main() { static struct entry kamus[100]={ {"Komodo","Kayaknya di sulawesi ada tuh"}, {"unta","Lahirnya di Mesir tapi gak bisa bahasa Arab"},
Politeknik Elektronika Negeri Surabaya 93

[REFERENSI PEMROGRAMAN BAHASA C]

Pemrograman Dasar C

{"Kangguru","Suka melompat di Australia"}, {"Kingkong","Lawannya superman kali"}, {"Harimau","Belang - belang dan ada di Kalimantan"}, {"Kobra","Ular dari India"} , {"Kancil","Suka nyolong timun"} , {"Iguana","Mahal harganya lho"} , {"Nyamuk","Nakal suka sedot sana sini"},{"Tikus","Suka menggoda cewek cakep"},{"Buaya","Wah ini istrinya pakaya"}, }; int banyaknya = 10; char kata[10]; int angka_masukan; printf ("masukkan kata : "); scanf ("%s",kata); angka_masukan=lihat(kamus,kata,banyakny a); if (angka_masukan!=-1) printf("%s\n",kamus[angka_masukan].defi nisi); else printf ("Maaf, kata itu tidak ada dalam kamus.\n"); getch();

Politeknik Elektronika Negeri Surabaya

94

Anda mungkin juga menyukai