pertemuan pertama paradigma pemrograman terstruktur · 2010. 2. 22. · terstruktur pada bab ini...

35
[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR] 1 PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos yang dibutuhkan untuk menulis program komputer dengan bahasa C Setelah mempelajari materi di babi ni diharapkan mahasiswa mengetahui paradigma pemrograman terstruktur dengan C 1. Karakteristik Bahasa C a. Kelebihan - Bahasa C tersedia hampir di semua jenis Komputer - Kode bahasa C sifatnya adalah Portabel (dapat digunakan di semua jenis komputer). - Bahasa C hanya menyediakan sedikit kata-kata kunci - Proses executable program lebih cepat - Dukungan pustaka yang banyak - C bahasa pemrograman yang terstruktur dan merupakan bahasa tingkat tinggi, namun dapat pula dikatakan sebagai bahasa tingkat menengah karena mempunyai kemampuan seperti bahasa low level (tingkat rendah). b. Kelemahan - Bahasa C merupakan bahasa yang cukup sulit dimengerti terutama dalam hal sintaks-sintaksnya 2. Struktur Program Bahasa C Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagian (sub rutin). Fungsi utama yang pertama kali diproses adalah fungsi yang bernama “main()”, selain itu adalah merupakan fungsi-fungsi bagian yang dapat ditulis setelah fungsi “main()” atau diletakan di file pustaka (library). Jika fungsi-fungsi yang tersedia pada file pustaka (library) dan akan dipakai di suatu program maka file judulnya (Header) nya harus disertakan/ditulis pada program dengan menggunakan preprocessor directive #include, contohnya #include <stdio.h> yang berarti kita akan mengambil fungsi-fungsi yang tersedia pada library standar IO, diantaranya clrscr(), printf, scanf(), dll. Untuk komentar / penjelasan program harus diapit diantara (/* ….*/). ***HATI-HATI*** Penulisan program bahasa C bersifat Case Sensitive artinya penamaan fungsi, variabel maupun keyword-nya membedakan huruf kecil dan besar.

Upload: others

Post on 09-Dec-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

1

PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman

C dan tolos yang dibutuhkan untuk menulis program komputer dengan bahasa C Setelah mempelajari materi di babi ni diharapkan mahasiswa mengetahui paradigma

pemrograman terstruktur dengan C

1. Karakteristik Bahasa C a. Kelebihan

- Bahasa C tersedia hampir di semua jenis Komputer - Kode bahasa C sifatnya adalah Portabel (dapat digunakan di semua jenis

komputer). - Bahasa C hanya menyediakan sedikit kata-kata kunci - Proses executable program lebih cepat - Dukungan pustaka yang banyak - C bahasa pemrograman yang terstruktur dan merupakan bahasa tingkat

tinggi, namun dapat pula dikatakan sebagai bahasa tingkat menengah karena mempunyai kemampuan seperti bahasa low level (tingkat rendah).

b. Kelemahan - Bahasa C merupakan bahasa yang cukup sulit dimengerti terutama dalam

hal sintaks-sintaksnya

2. Struktur Program Bahasa C Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagian (sub rutin). Fungsi utama yang pertama kali diproses adalah fungsi yang bernama “main()” , selain itu adalah merupakan fungsi-fungsi bagian yang dapat ditulis setelah fungsi “main()” atau diletakan di file pustaka (library). Jika fungsi-fungsi yang tersedia pada file pustaka (library) dan akan dipakai di suatu program maka file judulnya (Header) nya harus disertakan/ditulis pada program dengan menggunakan preprocessor directive #include, contohnya #include <stdio.h> yang berarti kita akan mengambil fungsi-fungsi yang tersedia pada library standar IO, diantaranya clrscr(), printf, scanf(), dll. Untuk komentar / penjelasan program harus diapit diantara (/* ….*/) . ***HATI-HATI*** Penulisan program bahasa C bersifat Case Sensitive artinya penamaan fungsi, variabel maupun keyword-nya membedakan huruf kecil dan besar.

Page 2: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

2

STRUKTUR BAHASA C: #include < file-file header> /* directive #include digunakan jika mengambil fungsi-fungsi libarary*/ main() /* fungsi utama sebagai awal dimulainya pemrosesan program */ { /*blok awal*/ statemen-statemen; } /*blok akhir*/ Fungsi-fungsi lain() { statemen-statemen;

}

3. Pemakaian #include pustaka (library) yang umum - conio.h = Tampilan Layar : clrscr(), textcolor(), textbackground(),

textattr(),dll. - stdio.h = standart input/output : clrscr(), printf(), scanf(), puts(),

gets(), getch(),cprintf(), dll. - stdlib.h = standart library (akses file / stream) : fopen(), flose(),

fread(), fwrite(), fprintf(), fscanf(), dll. - alloc.h/malloc.h = pengalokasian memori (memori dinamis) : malloc(), free(),

calloc(), dll.

4. Pemakaian Escape Sequnce pada fungsi output (printf(),gets(),dll) Karakter Escape Sequence sering digunakan untuk menampilkan hasil output, seperti mengganti baris, membunyikan bel, dll.

Karakter Escape

Arti

\a Bunyi bel \b Mundur satu spai \f Ganti halaman \n Ganti baris baru \r Ke kolom awal, baris yang

sama \t Tabulasi horisontal \v Tabulasi vertikal \0 Null \’ Petik tunggal \” Kutip \\ Garis miring terbaik

Page 3: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

3

Praktek :

Ketik Kode Program berikut di editor text dan simpan dengan nama praktek1a.c. #include <stdio.h>

main()

{

clrscr();

printf(“Salam Semua….!\n”);/* perintah \n : ganti baris baru */

printf(“Program Terstruktur Pertama Saya Dengan Bahasa C…!”);

}

Ketik Kode Program berikut di editor text dan simpan dengan nama praktek1b.c.

#include <stdio.h>

main()

{

clrscr();

printf(“Salam Semua….!”);/* perintah \n : ganti baris baru */

printf(“Program Terstruktur Pertama Saya Dengan Bahasa C…!”);

}

Selanjutnya buka jendela terminal dan ketik perintah

#gcc –o praktek1a.exe praktek1a.c

#gcc –o praktek1b.exe praktek1b.c

Jalankan praktek1a.exe, amati tampilan di layar selanjutnya jalankan juga praktek1b.exe,

amati tampilan di layar.

Modifikasi file praktek1a.c sesuai keiinginan anda, amati perubahan yang terjadi

LAPORKAN !!!

1. Tampilan di layar untuk file praktek1a.c dan praktek1b.c

2. Persamaan kedua tampilan file

3. Perbedaan kedua tampilan file

4. Kode Program hasil modifikasi praktek1a.c

5. Tampilan di layar Kode Program hasil modifikasi praktek1a.c

Page 4: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

4

PERTEMUAN KEDUA KONSEP PEMROGRAMAN DENGAN C

Pada bab ini akan dikenalkan konsep pemrograman dengan C Setelah mempelajari materi di babi ni diharapkan mahasiswa memahami konsep

pemrograman C

Struktur dari bahasa C secara garis besar sama seperti bahasa pemrograman tingkat tinggi lainnya. Secara umum dapat dikatakan bahwa bentuk dasar dari bahasa C adalah meliputi :

1. Praprosessor 2. Prototipe Fungsi 3. Variabel 4. Fungsi

Bentuk dasar diatas dapat dibawa ke bentuk program C sebagai berikut : #include <stdio.h> /*bentuk praprosessor*/ float jumlah (float x,float y); /*prototype fungsi*/ main() { int a = 6; /*variabel*/ int b = 3; } Float jumlah (float x,float y); /* fungsi*/ Dalam perkembangan selanjutnya dapat dilakukan pada penulisan praprosessor yang diapit dengan tanda <> dapat digantikan dengan “ “ Program C pada hakekatnya merupakan susunan atas beberapa fungsi. Program C paling sederhana harus memiliki minimal satu buah fungsi yaitu fungsi main(). Fungsi main() ini akan didefinisikan oleh compiler C sebagai fungsi pertama yang akan dieksekusi.

Page 5: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

5

Praktek :

Ketik Kode Program berikut di editor text dan simpan dengan nama praktek2.c.

# include <stdio.h> /*bentuk praprosessor*/

float jumlah (float x,float y); /*prototype fungsi*/

main()

{

int a = 6; /*variabel*/

int b = 3;

int c;

c = a+b;

printf(“Program Kedua Dengan C, masih belajar dan mencoba %c”,c)

}

Float jumlah (float x,float y); /* fungsi*/

Coba kompilasi dan eksekusi (jika bisa) jika kode program diatas

1. tanpa modifikasi.

2. Hilangkan semua titik-koma yang ada di akhir baris.

3. Kembalikan semua titik-koma dan hilangkan tanda “ “ pada baris 9.

4. Kembalikan tanda “ “ dan hilangkan tanda % pada baris 9

LAPORKAN !!!

1. Apa fungsi tanda “ “ pada C

2. Apa fungsi tanda ; pada C

3. Apa fungsi tanda % pada C

Page 6: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

6

PERTEMUAN KETIGA PERINTAH DASAR

Pada bab ini akan dikenalkan perintah-perintah dasar bahasa pemrograman C meliputi tipe, variabel, konstanta, operator, struktur control dan array

Setelah mempelajari materi di bab ini diharapkan mahasiswa memahami dasar pemrograman C dan dapat membut program dengan bahasa C secara mendasar

1. Tipe Data Dasar Umumnya tipe data dasar pada bahasa C terdiri dari Tipe Data NUMERIK dan KARAKTER. Tipe NUMERIK dibagi dalam bentuk bulat (integer) dan pecahan (float).

Dari Sampai Denganint 2 byte -32768 32767signed intshort intsigned short intunsigned int 2 byte 0 65535unsigned short intlong int 4 byte -2147483648 2147483648signed long intunsigned long int 4 byte 0 4292967296float 4 byte 3.4E-38 2.4E+38double 8 byte 1.7E-308 1.7E+308long double 10 byte 3.4E-4932 1.1E+4932char 1 byte -128 127signed charunsigned char 1 byte 0 255

Jangkauan NilaiTipe Lebar Memori

2. Variabel & Konstanta a. Deklarasi Variabel

Mendeklarasikan variabel dapat dituliskan di dalam maupun di luar fungsi. Jika deklarasi variabel ditulis pada luar fungsi, maka variabel tersebut dapat di akses oleh semua fungsi-fungsi yang lain ( Variabel Global ) sedangkan jika di dalam fungsi, maka variabel tersebut hanya dapat diakses oleh fungsi itu sendiri ( Variabel Lokal ). Contoh pendeklarasian Variabel:

***CATATAN*** Penamaan variabel tidak boleh mengandung spasi, tidak sama dengan nama keyword, tidak dimulai dengan angka serta tidak mengandung simbol-simbol yang telah ditentukan oleh BAHASA C.

Page 7: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

7

char A; int X, Y, my_var; /* X bertipe integer, Y bertipe integer, my_var bertipe integer*/ float bil_pecahan=9.56; /* memberikan nilai awal = 9.56 untuk variabel bil_pecahan */

b. Konstanta

Konstanta merupakan nilai yang tidak dapat diubah selama proses dari program. Untuk menentukan konstanta dapat dilakukan dengan menggunakan variabel atau macro. Jika menggunakan perantara variabel digunakan keyword const : const my_konstanta = 306; /* nilai pada variabel my_konstanta adalah tetap 306

*/ jika secara langsung mengunakan macro atau directive #define: #define my_konstanta = 306 /* MACRO tidak perlu diakhiri titik koma (;) */ float nilai = my_konstanta; /* memberikan variabel nilai dengan my_konstanta (nilai=306) */

Contoh :

#include <stdio.h> #define PI=3.14 /* Perhatikan huruf kecil dan besarnya */ main() { int a = 2, B, niLAi; float bil_pecahan; B = 4; bil_pecahan = 2.0; niLAi = a * (2 + B); printf(“ Hasil dari %d * (2 + %d) = %d \n“,a,b,ni LAi);

printf(“Perkalian dari %4.2f * %4.2f = %4.2f \n”, b il_pecahan, PI, bil_pecahan*PI);

/* Format specifier untuk %d dan %f akan dijelaskan pada sesion berikutnya */

}

3. Format Specifier untuk fungsi Output (printf(), cprintf() ) Kode format ini digunakan untuk menampilkan output dengan tipe-tipe yang telah ditentukan, baik tipe karakter, integer maupun pecahan.

Contoh :

#include <stdio.h> main() { int a, b, c = 10; float bil = 10.56;

Page 8: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

8

a = 5; b = 8; clrscr(); printf (“Hasil tampilan numerik terformat %d, %d , %f \n”, a, 78, bil); printf (“Hasil tampilan string dan karakter : %s dan %c \n”,”coba-coba”,’A’); } Output: Hasil tampilan numerik terformat 5, 78, 10.56789 Hasil tampilan string dan karakter : coba-coba dan A Kode Format Kegunaan

%c Menampilkan sebuah karakter

%s Menampilkan nila i string

%d Menampilkan nila i desimal integer

%i Menampilkan nila i desimal integer

%u Menampilkan integer tidak bertanda

%x Menampilkan nila i hexadesimal

%o Menampilkan nila i oktal

%f Menampilkan nila i pecahan

%e Menampilkan nila i pecahan scientific

%g Sebagai pengganti %f atau %e

%p Menampilkan alamat memori po inter

4. Fungsi Masukan Data (scanf(), gets()) Fungsi masukan dengan scanf() mempunyai format seperti printf() di atas, sedangkan gets() khsusus untuk masukan string.

#include <stdio.h> main() { int a; char kar; char kalimat[20]; /* variabel string merupakan array dari tipe char.. lebih jelasnya ada pada sesion array */ printf(“Masukan suatu nilai = “); scanf(“%d”,& a); printf(“Masukan suatu karakter = “); scanf(“%d ”,&kar); printf(“Masukan suatu kalimat = “);scanf(“%s”,k alimat); printf(“Masukan suatu kalimat = “);gets(kalimat ); }

perbedaan antara gets() dengan scanf() adalah: scanf() mengambil string yang dibatasi dengan spasi sedangkan gets() mengambil semua string

Contoh

Page 9: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

9

Input : “Saya Belajar Bahasa C” Ouput : scanf() = “Saya” gets() = “Saya Belajar Bahasa C”

5. Operator

a. Operator Aritmatika Operator Arti

* Perkalian/ Pembagian% Pembagian Modulus (sisa bagi)+ Pertambahan- Pengurangan

Contoh: Z = A + B; Z = A / B; Z = A % B;

b. Operator Unary

Operator ini hanya menggunakan satu operand saja. Operator Arti

- Unary Minus

++ Penambahan dengan nilai 1

-- Pengurangan dengan nilai 1

(tipe) cast

sizeof Ukuran dari operand dalam byte

! Unary Not

~ Operator Komplemen satu

& Alamat Memori operand

* Pointer pada suatu operand Contoh: int B, A ; float P; int *alamat; B = 0x04; /* nilai B = 04H (4 heksadesimal) */ A = -B; /* A = -04H */ B++; /* B = B + 1 sehingga B = 0x05 */ B--; /* B = B – 1 sehingga B = 0x04 */ P = (float) B; /* integer B dikonversi nilainya ke P (P=5.0) */ A = sizeof(B); /* A = 2 (ukuran tipe data Integer) */ A = !B; /* bit NOT (0000 0100) mejadi (1111 10111) */ A = ~B; /* bit komplemen (1111 10111) mejadi (0000 0100) */ alamat = &B; /* alamat = alamat memori dari variabel B shg “alamat” sama dengan “ “B” */ *alamat = 67; /* memberi pointer “alamat” = 67 shg B = 67 */

Page 10: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

10

c. Operator Pengerjaan Operator Contoh Maksud/Ekuivalen dengan= A = B + C

+= A += 3 A = A + 3

-= A -= B A = A - B

*= A * = B A = A * B

/= A /= B A = A / B

%= A %= B A = A % B

d. Operator Bitwise ( Pergeseran Bit) Operator ini digunakan untuk penggeseran bit-bit atau manipulasi bit pada nilai variabel yang ada. Operator kondisi Contoh Arti

<< Z = A << 4 Penggeseran bit ke kiri 4x

>> Z = A >> 3 Penggeseran bit ke kanan 3x& Z = A & 3 nilai A di AND-kan dg nilai 3^ Z = A ^ 3 nilai A di XOR-kan dg nilai 3

| Z = A | 3 nilai A di OR-kan dg nilai 3&= A&=5 A = A & 5<<= A <<= 4 A = A << 4>>= A >>= 7 A = A >> 7

^= A ^=2 A = A ^ 2|= A | = 3 A = A | 3

6. Pengambilan Keputusan

a. if (kondisi) statemen ;

contoh: if (A > B) A = B; *** CATATAN: *** Setiap Kondisi harus dan wajib diapit oleh tanda kurung.

Jika statemen lebih dari dua, maka harus digunakan blok statemen If ( A > B); {

A+ = B; A ++; }

Operator kondisi Arti< Lebih kecil

<= Lebih Kecil Sama Dengan

> Lebih Besar

>= Lebih Besar Sama Dengan

== Sama Dengan!= Tidak Sama Dengan

&& Logika AND

|| Logika OR

Page 11: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

11

b. if (kondisi) ... else ; Contoh:

if (A > B) A = B; else A++;

c. switch ..case contoh: switch( A ) { case 1 : statement; break; case 2 : statement; break; default : statement; break;

} statement switch akan menyeleksi kondisi yang diberikan dan akan membandingkan hasilnya dengan konstanta-konstanta yang berada di case. Break digunakan sebagai peloncat keluar blok switch, sedangkan default merupakan pilihan selain dari konstanta-konstanta yang ada pada case.

***PENTING****

Apabila telah selesai memproses sebuah bagian dari case dan jika belum ditemukan statemen break, maka proses akan masuk ke bagian case berikutnya.

Contoh: #include <stdio.h> main() {

int A = 1; clrscr(); switch(A) { case 1: printf(“Satu \n”); case 2: printf(“Dua \n”); default: printf(“Bukan Satu atau Dua...!\n”); }

}

Output : Satu Dua Bukan Satu atau Dua...! *************************************************

Page 12: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

12

contoh menggunakan (break) #include <stdio.h> main() { int A=1; clrscr(); switch(A) {

case 1: printf(“Satu \n”); break; case 2: printf(“Dua \n”); break; default: printf(“Bukan Satu atau Dua...!\n”); brea k; }

}

Output: Satu 7. Perulangan Proses

a. for ( ) sintaks umum : for(nilai awal; pembanding;counter) { statemen } contoh : #include <stdio.h> main() { int i,

clrscr(); for(i=0;i<5;i++)

/*pengulangan diproses sebanyak 0 sampai 4, kenapa bisa begitu...? */ { printf(“%d\n”,i); } } output: 0 1 2 3 4

Page 13: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

13

b. while( ) sintak : while( kondisi) { statemen } contoh: #include <stdio.h> main() { int i=0; while(i<5) { printf(“%d\n”,i);

/*hasil output contoh ini sama dengan contoh pada for( )*/ i++; } }

c. do { } while( )

sintak: do { statemen } while( kondisi ); contoh: #include <stdio.h> main() { int i=0; do { printf(“%d\n”,i); i++; }while (i < 5); }

/*Nah...sekarang bagaimana hasil output dari contoh di atas....? dan lihat perbedaan sintaks-sintaks ketiga statemen pengulangan tersebut. Sekarang coba jelaskan bagaimana hasil dari contoh program di bawah ini...!, */

#include <stdio.h> main() { int i =0; for(;;) { printf(“%d\n”,i++); } }

Page 14: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

14

PERTEMUAN KEEMPAT FUNGSI (SESI 1)

Pada bab ini akan dijelaskan definisi fungsi, struktur fungsi dan contoh penggunaannya Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat membuat subprogram

menggunakan fungsi

Fungsi merupakan bagian dari sub program yang dapat di panggil oleh fungsi lain. Dalam bahasa C tidak ada statemen procedure seperti halnya dengan Pascal. Fungsi itu sendiri adalah sub program yang mengembalikan nilai tertentu, dan main() itu sendiri adalah fungsi utama. Sintaks :

<type data> nama fungsi ([<argumen>]) { statemen; .... }

contoh: #include <stdio.h> int nilai_A,nilai_B; long nilai_C; void InputData() /* void -> tipe data untuk fungsi yang tidak mengembalikan nilai

(procedure)*/ { clrscr(); printf(“Melaksanakan Inputan \n”); printf(“Masukan Nilai A = “);scanf(“\n%d”,&nilai_A ); printf(“Masukan Nilai B = “);scanf(“\n%d”,&nilai_ B); } int Tambah(int a,int b) { int c; c=a+b; printf(“Melaksanakan Perhitungan Penambahan \n”); return c; /*return -> mengembalikan nilai*/ }

Page 15: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

15

int Kurang(int a,int b) { printf(“Melaksanakan Perhitungan Pengurangan \n”); return (a-b); } long Kali(int a,int b) { printf(“Melaksanakan Perhitungan Perkalian \n”); return (a*b); } float Bagi(int a,intb) { printf(“Melaksanakan Perhitungan Pembagian \n”); return a/b; } long Pangkat(int a,int b) /* untuk pemangkatan dapat anda gunakan fungsi pow() dari lib

<math.h> */ { long temp; int i; printf(“Melaksanakan Perhitungan Pemangkatan \n”); temp=1; for(i=0;i<b;i++) { temp=temp*a; } return temp; } main() { InputData(); nilai_C=Tambah(nilai_A,nilai_B); printf(“\nHasil A + B = %d”,nilai_C); printf(“\nHasil A – B = %d”,Kurang(nilai_A,nilai_B ); printf(“\nHasil A x B = %d”,Kali(nilai_A,nilai_B); printf(“\nHasil A / B = %d”,Bagi(nilai_A,nilai_B); printf(“\nHasil A ^ B = %d”,Pangkat(nilai_A,nilaiB ); }

Page 16: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

16

Coba Kode Program Diatas

Perhatikan Output dair Kode Program diatas dan Laporkan beberapa hal berikut

1. Bagaimana Outpur Kode Program tersebut.

2. Dari 7 (tujuh) fungsi yang ada bagaimana urutan pemanggilan fungsi-fungsi

tersebut

3. Dari 6 fungsi selain fungsi main(), ada satu fungsi yang outputnya tidak dicetak oleh

fungsi main(). Fungsi manakah itu ? Perintah apa yang ada pada fungsi lain dan tidak

ada di fungsi itu ?

4. Jika anda mengulang materi variabel, A,B dan C merupakan variabel …..

sedangkan a,b,c dan i merupakan variabel …..

5. Apakah perubahan nilai pada variabel a,b di suatu fungsi tambah() berpengaruh

pada fungsi pangkat ()?

Page 17: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

17

PERTEMUAN KELIMA FUNGSI (SESI 2)

Pada bab ini akan dijelaskan bagaimana membuat sub program PENYANDIAN CAESAR dan KONVERSI KARAKTER KE BIT dengan menggunakan fungsi

Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat membuat sub program dalam bentuk fungsi

PRAKTEK Buat sebuah aplikasi penyandian caesar sederhana untuk menyandi karakter A-Z/a-z

dengan ketentuan sebagai berikut :

1. Inputan 1 abjad terang dan 1 abjad kunci

2. Output 1 abjad sandi

3. Rumus sandi = terang + kunci

4. Proses Input, Penyandian dan Output dilakukan oleh fungsi yang berbeda

5. Pengguna diberikan pilihan apakah akan menyandi abjad lagi atau tidak

6. Laporkan kode program yang anda buat dan outputnya

PRAKTEK Buat sebuah aplikasi untuk mengubah abjad ke bit ASCII dengan ketentuan sebagai

berikut :

1. Inputan 1 bilangan abjad 2. Output 1 rangkaian bit ASCII (8 bit)

3. Proses Input, Konversi dan Output dilakukan oleh fungsi yang berbeda

4. Pengguna diberikan pilihan apakah akan mengkonversi lagi atau tidak

5. Laporkan kode program yang anda buat dan outputnya

Page 18: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

18

PERTEMUAN KEENAM ARRAY

Pada bab ini akan dijelaskan bagaimana membuat dan mengoperasikan array Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat melakukan berbagai

manipulasi array

Array merupakan kumpulan data yang bertipe sama dan memiliki nama variabel yang sama. Contoh penggunaan array dapat anda lihat pada program di bawah ini: #include <stdio.h> main() { int angka[10]; //mendeklarasikan 10 data integer pada variabel angka int i; clrscr(); for (i=0;i<5;i++)

{ printf(“Masukan angka bebas : “); scanf(“\n%d”,angka[i]);

} printf(“\n”); //pindah satu baris

for (i=0;i<5;i++) { printf(“Angka ke-%d = %d”,i,angka[i]); } } output: Masukan angka bebas : 1 Masukan angka bebas : 5 Masukan angka bebas : 3 Masukan angka bebas : 9 Masukan angka bebas : 8 Angka ke-1 = 1 Angka ke-2 = 5 Angka ke-3 = 3 Angka ke-4 = 9 Angka ke-5 = 8

Page 19: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

19

Untuk penggunaan array dua dimensi atau lebih dapat anda lihat pada contoh di bawah:

PRAKTIK !!!

# include <stdio.h>

main()

{

long hasil[50][50];

int suku,i,brs,j;

clrscr();

printf(“Tabel Perkalian”);

printf(“---------------“);

printf(“Masukan Jumlah baris / kolom : “);scanf(“\n%d”,&suku);

clrscr();

printf(“Tabel Perkalian”);

printf(“---------------\n“);;

brs=4;

printf(“x”);

for (i= 1;<= suku;i++)

{

gotoxy((i*5)+1,brs);printf(“%5d”,i);

gotoxy(1,brs+i+1);printf(“%d”,i);

}

/* proses ....*/

for (i=1;i <= suku;i++) /* baris */

for (j=1;j<= suku;j++) /*kolom */

{

hasil[i][j]=i*j;

}

for (i=1;i<=suku ;i++) /* baris */

for (j=1;j<=suku ;j++) /* kolom */

{

gotoxy((j*5)+1,brs+i+1);

printf(“%5d”,hasil[i][j]);

}

}

Coba kode program diatas dan laporkan outputnya (perhatikan ada 1 error)

Page 20: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

20

PERTEMUAN KETUJUH BEKERJA DENGAN BILANGAN

Pada bab ini akan dijelaskan bagaimana membuat aplikasi penyandian VIGINERE dan SCTR

Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat melakukan berbagai operasi bilangan seperti mengimplementasikan algoritma enkripsi dengan C

PRAKTEK

Buat aplikasi penyandian VIGINERE untuk menyandi teks terang bebas dengan ketentuan :

1. Input teks terang berupa abjad dengan panjang maksimum 255 abjad

2. Input kata kunci abjad dengan panjang maksimum 255 abjad

3. Output teks sandi dengan format grup lima abjad

4. Fungsi untuk input, Output dan Proses dipisah

5. Usahakan untuk memetakan fungsi sesuai penggunaannya

6. Laporkan kode program yang anda buat dan outputnya

PRAKTEK

Buat aplikasi penyandian SCTR untuk menyandi teks terang bebas dengan ketentuan :

1. Input teks terang berupa abjad dengan panjang maksimum 255 abjad

2. Input kata kunci abjad dengan panjang maksimum 255 abjad

3. Output teks sandi dengan format grup lima abjad

4. Fungsi untuk input, Output dan Proses dipisah

5. Usahakan untuk memetakan fungsi sesuai penggunaannya

6. Laporkan kode program yang anda buat dan outputnya

Page 21: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

21

PERTEMUAN KEDELAPAN BEKERJA DENGAN FILES

Pada bab ini akan dijelaskan bagaimana membuat mengakses, membaca dan menulis file Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat melakukan berbagai

operasi dengan file seperti membaca, menambah, menghapus file dengan C

Fungsi-fungsi operasi file

Fungsi pada C

Kegunaan Deklarasi

fopen membuka file /menciptakan file (bila belum ada)

FILE *PF = fopen(char *namafile, char *mode);

fclose/fcloseall menutup file tertentu / menutup semua file

fclose(FILE *pf); / fcloseall();

getc membaca karakter dari file Variabel = getc(FILE *pf); putc menulis karakter ke file putc(FILE *pf); fgets membaca kalimat (string)

karakter dari file fgets(char *str, int p, FILE *fp)

fputs menulis kalimat (string) karakter ke file

fputs(char *str, FILE *fp)

fread membaca satu blok byte dari file

fread(void *buffer, int b_byte, int c, FILE *fp);

fwrite menulis satu blok byte ke file fwrite(void *buffer, int b_byte, int c, FILE*fp);

fprintf membaca karakter dari file terformat

fprintf(FILE *pf, “string control”, daftar argument);

fscanf menulis karakter ke file terformat

fscanf(FILE *pf, “string control”, daftar argument);

Keterangan :

1. FILE *pf : pointer file yang dihasilkan oleh perintah fopen 2. mode : modus file saat dibuka

3. int b_byte : besar blok

Page 22: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

22

PRAKTEK !!!

# include <conio.h>

# include <ctype.h>

# include <process.h>

main(int argc, char *argv[])

{

int kode;

char jawaban;

if (argc != 3)

{

puts("Cara Penggunaan CP[spasi][file_input][spasi][file_output]");

exit(1);

}

if (file_ada(argv[2]))

{

printf("\nFile sudah ada, overwrite (Y/T) ? ");

jawaban= toupper(getche());

if (jawaban != 'Y')

exit(0);

}

if ((kode=salin_file(argv[1], argv[2]=0)

puts("File sudah disalin");

else

switch (kode)

{

case -1 : puts("File input tidak ditemukan !");

break;

case -2 : puts("File oputput tidak dapat diciptakan !");

break;

case -3 : puts("Kesalahan saat membaca file input");

break;

case -4 : puts("Kesalahan pada saat menulis file output");

break;

}

}

LAPORKAN !!!

1. Bagaimana output aplikasi diatas (perhatikan 1 fungsi kurang dan lengkapi)

2. Kembangkan aplikasi diatas untuk menyandi sebuah file teks dengan system

Caesar (At = Ds dan hasil file sandi disimpan di file sandi.txt

Page 23: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

23

PERTEMUAN KESEMBILAN POINTER (SESI 1)

Pada bab ini akan dijelaskan apa itu pointer, bagaimana deklarasi dan penggunaannya Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat menggunakan pointer

untuk membuat program lebih cepat dan efisien

1. Konsep Pengalamatan Langsung

char nilai1; char nilai2;

nilai1=5; nilai2=nilai1;

Contoh di atas merupakan pemberian nilai dari suatu variabel ke variabel lain secara langsung atau istilah lainnya adalah memberikan nilai pada suatu alamat variabel secara langsung. Variabel nilai1 pada mulanya diberikan nilai 5, kemudian nilai2 secara langsung diberikan nilai yang sama dengan variabel nilai1.

char nilai1=5; char nilai2;

Alamat Memori -------------------------------------- SEG : OFF VARIABEL DATA -------------------------------------- 777F : 0000 nilai1 5 777F : 0001 nilai2 0 ... : ... --------------------------------------

nilai2=nilai1; -------------------------------------- SEG : OFF VARIABEL DATA -------------------------------------- 777F : 0000 nilai1 5 777F : 0001 nilai2 5 ... : ... --------------------------------------

Page 24: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

24

Tabel variabel memori ------------------------------------------------ &nilai1 nilai1 &nilai2 nilai2 ------------------------------------------------ 777F:0000 2 777F:0001 2 ------------------------------------------------

tabel di atas menunjukan gambaran bagaimana pemberian nilai tersebut berlangsung di dalam RAM. SEGMENT dan OFFSET merupakan bentuk pengalamatan memori untuk memproses data yang dilakukan dalam sistem operasi mode REAL (real mode), contohnya DOS.

Variabel nilai1 kita anggap beralamat memori di 777F:0000 sedangkan nilai2 beralamat 777F:0001. Kedua variabel ini mempunyai tipe yang sama, yaitu char (1 byte) dan tiap-tiap alamat memori menyimpan data dalam 1 byte.

2. Konsep Pengalamatan Tidak Langsung

Pointer merupakan tipe variabel data yang berisi alamat dari variabel lain .

char nilai1=2; char *ptr_nilai;

Alamat Memori -------------------------------------- SEG : OFF VARIABEL DATA -------------------------------------- 777F : 0000 nilai1 2 777F : 0001 *0) ptr_nilai 0 777F : 0002 *1) ptr_nilai 0 777F : 0003 *2) ptr_nilai 0 777F : 0004 *3) ptr_nilai 0 --------------------------------------

ptr_nilai=&nilai1; /* & = referensi alamaat memori variabel

-------------------------------------- SEG : OFF VARIABEL DATA -------------------------------------- 777F : 0000 nilai1 2 777F : 0001 *0) ptr_nilai 00 777F : 0002 *1) ptr_nilai 00 777F : 0003 *2) ptr_nilai 7F 777F : 0004 *3) ptr_nilai 77 --------------------------------------

Page 25: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

25

Tabel Variabel memori

-------------------------------------------------------------- &nilai1 nilai1 &ptr_nilai ptr_nilai *ptr_nilai -------------------------------------------------------------- 777F:0000 2 777F:0001 777F:0000 2 --------------------------------------------------------------

nilai1=5;

Tabel Variabel memori -------------------------------------------------------------- &nilai1 nilai1 &ptr_nilai ptr_nilai *ptr_nilai -------------------------------------------------------------- 777F:0000 5 777F:0001 777F:0000 5 --------------------------------------------------------------

contoh di atas menunjukan bahwa menggunakan tipe pointer pada variabel, menggunakan tanda (*) di depan nama variabelnya. Pada awalnya variabel nilai1 diberikan nilai 2 sedangkan variabel pointer ptr_nilai berisi alamat yang belum jelas dan mempunya panjang data sebanyak 4 byte untuk menyimpan suatu alamat.

Pada saat ptr_nilai direferensikan ke nilai1 (ptr_nilai=&nilai1;) maka ptr_nilai kini telah menunjuk ke variabel nilai1. Jika variabel nilai1 mengalami perubahan maka ptr_nilai juga akan mengalami perubahan.

Untuk dapat mengambil nilai/isi yang ditunjuk oleh ptr_nilai gunakan (*) : *ptr_nilai;

Page 26: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

26

# include <stdio.h>

# include <conio.h>

main()

{

char *ptr_nilai;

unsigned char cetak;

int nilai1;

clrscr();

printf("Masukan sebuah nilai : ");scanf("\n%d",&nilai1);

printf("Nilai HexaDesimal : %X H\n",nilai1);

ptr_nilai=(char*)&nilai1;

cetak=0;

cetak=*((char*)ptr_nilai+0);

printf("Nilai Byte Terendah : %X H\n",cetak);

cetak=0;

cetak=*(ptr_nilai+1); printf("Nilai Byte Tertinggi : %X H\n\n",cetak);

ptr_nilai[0]+=5; /*penambahan 5 pada byte terendahnya*/

printf("Nilai Desimal+5 : %d\n",nilai1);

printf("Nilai HexaDesimal+5 : %X H\n",nilai1);

cetak=0;

cetak=*(ptr_nilai+0);

printf("Nilai Byte Terendah : %X H\n",cetak);

cetak=0;

cetak=*(ptr_nilai+1);

printf("Nilai Byte Tertinggi : %X H\n",cetak);

*(ptr_nilai+1)+=5;

}

PRAKTIK!!! Coba aplikasi diatas dan bandingkan apakah hasilnya sama

dengan berikut ?

Masukan sebuah nilai : 6374

Nilai HexaDesimal : 18E6 H

Nilai Byte Terendah : E6 H

Nilai Byte Tertinggi : 18 H

Nilai Desimal+5 : 6379

Nilai HexaDesimal+5 : 18EB H

Nilai Byte Terendah : EB H

Nilai Byte Tertinggi : 18 H

LAPORKAN !!! tampilan output di layar komputer anda

Page 27: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

27

PERTEMUAN KESEPULUH POINTER (SESI 2)

Pada bab ini akan dijelaskan apa itu pointer, bagaimana deklarasi dan penggunaannya Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat menggunakan pointer

untuk membuat program lebih cepat dan efisien

1. Operasi Penugasan Pointer #include “stdio.h” #include “conio.h” main() { float *x1,*x2,y; clrscr() y = 13.45; x1 = &y; /*alamat dari y disimpan di x1*/ x2 = x1; /*isi variabel x1 disalin ke variabel x2*/ printf(“Nilai variabel y = %2f ada di alamat %p\n”,y,x1); printf(“Nilai variabel y = %2f ada di alamat %p\n”,y,x2); getch(); }

2. Operasi Aritmatika Pointer #include “stdio.h” #include “conio.h” main() { Int nilai[3], *penunjuk; clrscr(); nilai[0] = 125; nilai[1] = 345; nilai[2] = 750; penunjuk = &nilai[0]; printf(“Nilai %i ada di alamat memori %p\n”,*penunjuk,penunjuk); printf(“Nilai %i ada di alamat memori %p\n”,*(penunjuk+1),penunjuk+1); printf(“Nilai %i ada di alamat memori %p\n”,*(penunjuk+2),penunjuk+2); getch(); }

Page 28: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

28

3. Operasi Logika Pointer #include “stdio.h” #include “conio.h” main() { Int a = 100,b = 200, *pa, *pb; clrscr(); pa = &a; pb = &b; if (pa < pb) printf(“pa menunjuk ke memori lebih rendah dari pb\n”); if(pa==pb) printf(“pa menunjuk ke memori yang sama dengan pb\n”); if(pa > pb) printf(“pa menunjuk ke memori lebih tinggi dari pb\n”); getch() }

4. Pointer dan String (Array Karakter) #include “stdio.h” void misteri1 (char *s); main () { char string[] = “karakter”; printf(“string sebelum proses adalah %s”,string); misteri1(string); getch(); } void misteri1 (char *s) { while (*s != ‘\0’) { If (*s >= ‘a’ && *s <= ‘z’) *s -=32; ++s; } }

Page 29: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

29

PERTEMUAN KESEBELAS MEMBUAT PUSTAKA

Pada bab ini akan dijelaskan apa itu pustaka dan bagaimana membuatnya Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat menulis program

pustaka .h pada C

Pada pembahasan di pertemuan pertama, kita telah membahas struktur C. sebuah aplikasi yan dibangun dengan bahasa C selalu diawali dengan deklarasi header yang menyatakan pustaka (library) yang digunakan. Sebenarnya apa itu pustaka ? sebuah file (pre-compiled) yang berisi tentang kumpulan-kumpulan fungsi. library disini tentu saja bukan perpustakaan, tetapi sistematika-nya mirip perpustakaan. kita dapat meminjam buku yang diperlukan, tanpa harus membelinya. nah library dalam pemrograman juga seperti itu, kita dapat saja menggunakan salah satu fungsi dari library, tanpa menulis ulang source-code dari fungsi tersebut, jadi lebih menghemat waktu dan tenaga. C di GNU/Linux (atau gcc) mengenal dua pustaka dasar, yaitu static library dan shared (dynamic) library. static library sederhananya adalah kumpulan dari object file (pre-compiled) yang disimpan dalam sebuah file dengan akhiran *.a. sedangkan shared (dynamic) library sama juga dengan static library (shared library disimpan dalam akhiran *.so). Perbedaan kedua jenis pustaka diatas adalah : Pertama, file biner hasil kompilasi yang menggunakan shared library, itu tidak mengandung source atau kode biner dari library atau pustaka yang digunakan, hanya referensi-nya saja. sedangkan pada static library, pustaka-pustaka yang digunakan akan diikut sertakan dalam file biner-nya. Kedua, static library hanya diperlukan pada saat kompilasi saja, sedangkan shared library diperlukan saat kompilasi dan running. Selanjutnya mungkin kita lebih sering menggunakan shared library karena lebih mudah pengembangannya.

Page 30: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

30

Misalkan kita membuat pustaka baru dengan nama teman.h

# include <stdio.h>

void fungsi_satu(void)

{

printf(“cetakan pertama\n”);

}

void fungsi_dua(void)

{

printf(“cetakan kedua”);

}

lalu setelah terbentuk library-nya, kita letakan header dan library teman pada current

direktori.

Selanjutnya kita panggil teman.h dengan program sebagai berikut :

# include "teman.h"

int main(void)

{

fungsi_satu();

fungsi_dua();

}

Page 31: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

31

PERTEMUAN KEDUABELAS MENULIS PUSTAKA ENKRIPSI

Pada bab ini akan djelaskan pembuatan pustaka enkripsi pada C Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat menulis program

pustaka enkripsi sederhana .h pada C

# include <stdio.h>

int sandi (int bil1,int bil2)

{

int bil3;

bil3=bil1^bil2;

return(bil3);

}

Simpan pustaka diatas dengan nama xor.h dan selanjutnya kita sudah memiliki puta untuk

melakukan penyandian dengan fungsi XOR.

Selanjutnya kita modifikasi xor.h sebagai berikut :

# include <stdio.h>

int kunci (int awal)

{

Int akhir;

akhir=awal+=1;

}

int sandi (int bil1,int bil2)

{

int bil3;

bil3=bil1^bil2;

return(bil3);

}

Simpan pustaka diatas dengan nama sandi.h

Selanjutnya modifikasi sandi.h untuk penciptaan kunci dan fungsi penyandian yang lebih

rumit.

Page 32: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

32

PERTEMUAN KETIGABELAS MENULIS PUSTAKA MEMBACA DAN MENULIS FILE

Pada bab ini akan dijelaskan bagaimana membuat pustaka untuk mengoperasikan file Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat membuat sebuah

aplikasi yang cukup rumit dengan C

Untuk sementara kita kembali ke materi bekerja dengan file. Berikut kutipan praktikum pada materi tersebut (perhatikan juga koreksi tambahan fungsi yang telah anda buat) #include <stdio.h> #include <doc.h> #include <io.h> #include <fcntl.h> #include <alloc.h> #include <conio.h> #include <ctype.h> #include <process.h> main(int argc, char *argv[]) {

int kode; char jawaban; if (argc != 3) {

puts("Cara Penggunaan CP[spasi][file_input][spasi][file_output]"); exit(1);

} if (file_ada(argv[2])) {

printf("\nFile sudah ada, overwrite (Y/T) ? "); jawaban= toupper(getche()); if (jawaban != 'Y') exit(0);

} if ((kode=salin_file(argv[1], argv[2]=0)

puts("File sudah disalin"); else

switch (kode) {

case -1 : puts("File input tidak ditemukan !");

Page 33: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

33

break; case -2 : puts("File oputput tidak dapat diciptakan !"); break; case -3 : puts("Kesalahan saat membaca file input"); break; case -4 : puts("Kesalahan pada saat menulis file output"); break;

} } Pada materi pertemuan 11, kita mengenal bagaimana membuat sebuah pustaka sederhana. Sebuah pustaka yang berisi perintah untuk mencetak tulisan. Pada bahasa pemrograman C untuk mencetak tulisan digunakan perintah

printf(“cetakan pertama”); perintah diatas adalah perintah utama untuk mencetak tulisan. Konsep yang sama kita gunakan untuk membuat pustaka buka-tutup file. Dari kode program yang ada diatas, anda tentukan perintah mana yang merupakan perintah utama untuk buka-tutup file.

BUAT !!!

Sebuah pustaka untuk buka-tutup file dan lengkapi dengan program utama untuk

membuktikan pustaka yang anda buat benar-benar bekerja

LAPORKAN !!!

Kode program pustaka yang anda buat

Page 34: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

34

PERTEMUAN KEEMPATBELAS MEMBUAT ANTAR MUKA APLIKASI ENKRIPSI

Pada bab ini akan dijelaskan bagaimana membuat antar muka yang mudah dioperasikan Setelah mempelajari materi di babi ni diharapkan mahasiswa dapat membuat sebuah

aplikasi yang cukup rumit dengan C

Hingga pertemuan kesepuluh kita telah mengenal bagaimana membuat aplikasi dengan bahasa pemrograman C. Pertemuan keempatbelas ini kita akan mencoba menggabungkan aplikasi-aplikasi sederhana yang sudah kita buat. Sabah aplikasi pasti memiliki fungsi input, proses dan output. Dari ketiga fungsi tersebut, yang dapat kita lihat atau disebut antar muka adalah input dan output. Pembuatan antar muka berkaitan erat dengan tujuan aplikasi, operator aplikasi dan pengguna output. Sebuah aplikasi sebaiknya memberikan output sesuai dengan tujuan aplikasi. Hasil proses lain yang mungkin dihasilkan namun tidak berhubungan dengan tujuan pembuatan tidak usah ditampilkan. Berikutnya operator, pengetahuan ini diperlukan agar antar muka yang kita buat mudah digunakan sesuai dengan pengetahuan yang dimiliki operator. Hal-hal seperti jeda tulisan, warna tampilan dan penanganan kesalahan digunakan untuk membantu operator mengoperasikan aplikasi. Terakhir adalah kualitas output sesuai dengan keinginan pengguna aplikasi. Beberapa perintah inputan yang bisa digunakan seperti scanf, gets, getche, getch, fscanf, dll Beberapa perintah output yang bisa digunakan seperti printf,putc, puts,fprintf, dll Untuk penanganan kesalahan dapat menggunakan perintah pemilihan (while ,if, case)

BUAT !!!

Sebuah antar muka untuk aplikasi penyandian yang telah anda buat. Hal-hal yang harus

diperhatikan.

• Apa input aplikasi anda

• Apakah ada tahapan khusus yang harus ditaati? Jika ada, pastikan inputan yang

anda buat sesuai dengan tahapan tersebut.

• Buat penanganan kesalahan untuk mengantisipasi kesalahan inputan dari user

• Berikan output sesuai tujuan aplikasi

• Berikan jeda, spasi, warna, asesoris untuk membuat tampilan lebih mudah dilihat

LAPORKAN !!!

Kode program pustaka yang anda buat dan output di layar

Page 35: PERTEMUAN PERTAMA PARADIGMA PEMROGRAMAN TERSTRUKTUR · 2010. 2. 22. · TERSTRUKTUR Pada bab ini akan dikenalkan paradigma pemrograman terstruktur, bahasa pemrograman C dan tolos

[MODUL PRAKTIKUM PEMROGRAMAN TERSTRUKTUR]

35

REFERENSI 1. Struktur Data, Ema Utami, Suwanto Raharjo, Sukrisno, Graha Ilmu, 2007 2. Pemrograman Lanjutan Turbo C, Abdul Kadir, Andi Offset, 1993