Welcome DESAINER

Sabtu, 26 Maret 2011

Bahasa C

MODUL PEMROGRAMAN C

Bab Array (Larik)

Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang
menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu index.
Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan array
multi-dimensi.

1 ARRAY DIMENSI SATU
  • Setiap elemen array dapat diakses melalui indeks.
  • Indeks array secara default dimulai dari 0.
  • Deklarasi Array

Bentuk umum :
Tipe_array nama_array[ukuran];

Contoh :
         Nilai[0] Nilai[1] Nilai[2] Nilai[3] Nilai[4]




Contoh Program :
/* Program untuk menginput nilai mahasiswa ke dalam array satu dimensi */
#include “stdio.h”
#include “conio.h”
void main();
{ int index, nilai[10];
clrscr();
/* input nilai mahasiswa */
printf(“Input nilai 10 mahasiswa : “);
for(index=0; index < 10; index++)
{ printf(“Mahasiswa %i : “, index+1);
scanf(“%i”, &nilai[index]);
}
/* tampilkan nilai mahasiswa */
printf(“Nilai mahasiswa yang telah diinput”);
for(index=0; index < 10; index++)
{ printf(“%5.0i”, nilai[index]);
}
getch();
}



Contoh aplikasi array satu dimensi :

 /* Program untuk menentukan jurusan & jenjang mahasiswa berdasarkan NIM*/
#include “stdio.h”
#include “conio.h”
#include “string.h”
void main()
{ char jurusan[25], jenjang[10], nim[10], nama[20];
crlscr();

printf(“Masukkan nama Anda : “); gets(nama);
printf(“Masukkan NIM Anda : “); gets(nim);

/***** cari jurusan *****/
switch(nim[2])
{ case ‘1’ : strcpy(jurusan, “Teknik Informatika”);
break;
case ‘2’ : strcpy(jurusan, “Sistem Informasi”);
break;
case ‘3’ : strcpy(jurusan, “Teknik Komputer”);
break;
case ‘4’ : strcpy(jurusan, “Komputerisasi Akuntansi”);
break;
default : printf(“Anda salah memasukkan NIM. Coba periksa lagi !”);
break;
}

/***** cari jenjang *****/
if(nim[4] == ‘5’)
{ strcpy(jenjang, “Strata-1”);
}
else
{ if(nim[4] == ‘3’)
{ strcpy(jenjang,”Diploma-3”);

}
else
printf(“ANda salah memasukkan NIM. Coba periksa lagi !”);
}
/***** tampilkan data mahasiswa *****/
printf(“ << Data Mahasiswa Universitas Budi Luhur >>“);
printf(“Nama : %s”, nama);
printf(“NIM : %s”, nim);
printf(“Jurusan : %s”, jurusan);
printf(“Jenjang : %s”, jenjang);

getch();
}

 2 ARRAY DIMENSI DUA
  • Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom.Bentuknya dapat berupa matriks atau tabel.
  • Deklarasi array :  Tipe_array nama_array[baris][kolom];

      Contoh :
                  Int X[3][4];

X[0][0]     X[0][1]       X[0][2]       X[0][3]

X[1][0]     X[1][1]       X[1][2]       X[1][3]

X[2][0]     X[2][1]       X[2][2]       X[2][3]


  • Cara mengakses array : Untuk mengakses array, misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10 maka perintahnya adalah sbb :
       X[1][2] = 10;

  • Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu :
-          Row Major Order (secara baris per baris)
-          Column Major Order (secara kolom per kolom)

Contoh Program 1 :


/* Program menginput nilai(bilangan) ke dalam array dimensi dua dan menampilkannya */
#include “stdio.h”
#include “conio.h”
void main()
{ int baris, kolom, matriks[3][4];
   crlscr();
  // Input elemen array secara Row Major Order 
  printf(“Input elemen Array : \n“);
 for(baris=0; baris<3; baris++)
  { for(kolom=0; kolom<4; kolom++)
    { printf(“matriks[%i][%i]”, baris+1, kolom+1);
            scanf(“%i”, &matriks[baris][kolom]);
    }

printf(“\n”);
}
// Tampilkan elemen Array secara Row Major Order
printf(“Isi array : \n”);
for(baris=0; baris<3; baris++)
{ for(kolom=0; kolom<4; kolom++)
{ printf(“%i”, &matriks[baris][kolom]);
}
printf(“\n”);
}
getch();
}
Contoh Program 2 :

/* Program penjumlahan matriks dua dimensi */
#include "stdio.h"
#include "conio.h"
void main()
{ int A[3][4], B[3][4], X[3][4], Y[3][4], C[3][4], i, j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{ printf("input data matrik A[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{ printf("input data matrik B[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&B[i][j]);
}
}
/******** Proses penjumlahan matriks A dan B ********/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{ X[i][j]=A[i][j]+B[i][j];
}
}
/******** Cetak isi matriks A ********/
printf("\n matrik A\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%6i",A[i][j]);
printf("\n");
}
printf("\n");
/******** Cetak isi matriks B *******/
printf("\n matrik B\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%6i",B[i][j]);printf("\n");
}

printf("\n");
/******** Cetak hasil penjumlahan matriks A dan B *******/
printf("\n matrik penjumlahan A+B\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%6i",X[i][j]);printf("\n");
}
printf("\n\n");
getch();
}
Bab Fungsi


1 PENGERTIAN FUNGSI
Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi. program bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak dalam program-program C yang terstruktur. Keuntungan penggunaan fungsi dalam program program akan memiliki struktur yang jelas (mempunyai readability yang tinggi) dan menghindari penulisan bagian program yang sama. Dalam bahasa C fungsi dapat dibagi menjadi dua, yaitu fungsi pustaka atau fungsi tersedia dalam Turbo C dan fungsi yang didefinisikan atau dibuat oleh programmer.

2 BEBERAPA FUNGSI PUSTAKA DALAM BAHASA C
Fungsi Operasi String (tersimpan dalam header file “string.h”)
♦ strcpy()
Berfungsi untuk menyalin suatu string asal ke variable string tujuan.
Bentuk umum : strcpy(var_tujuan, string_asal);
♦ strlen()
berfungsi untuk memperoleh jumlah karakter dari suatu string.
Bentuk umum : strlen(string);

Contoh Program :

#include “stdio.h”
#include “conio.h”
#include “string.h”
void main()
{ char nama[25];
strcpy(nama, “Achmad Solichin”);
printf(“Nama : %s”, nama);
printf(“Banyaknya karakter nama Anda adalah : %i”, strlen(nama));
getch();
}

♦ strcat()
Digunakan untuk menambahkan string sumber ke bagian akhir dari string tujuan.
Bentuk umum : strcat(tujuan, sumber);
♦ strupr()
Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital.
Bentuk umum : strupr(string);
♦ strlwr()
Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil
semua.
Bentuk umum : strlwr(string);

Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “string.h”
void main()
{ char satu[30] = “Fakultas Teknologi Informasi”;
char dua[30] = “Universitas Budi Luhur”;
clrscr();
strcat(satu, dua);
printf(“Hasil penggabungannya : %s\n”, satu);
printf(“Jika diubah menjadi huruf kapital semua :\n”);
printf(“%s”, strupr(satu));
printf(“Jika diubah menjadi huruf kecil semua :\n”);
printf(“%s”, strlwr(satu));
getch();
}

♦ strcmp()
Digunakan untuk membandingkan dua buah string.
Hasil dari fungsi ini bertipe integer dengan nilai :
(a) Negative, jika string pertama kurang dari string kedua.
(b) Nol, jika string pertama sama dengan string kedua
(c) Positif, jika string pertama lebih besar dari string kedua.
Bentuk umum : strcmp(string1, string2);

Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “string.h”
void main()
{ char string1[5], string2[5];
int hasil;
clrscr();
printf(“Masukkan string 1 : “); scanf(“%s”, &string1);
printf(“Masukkan string 2 : “); scanf(“%s”, &string2);
hasil = strcmp(string1, string2);
if(hasil > 0)
printf(“%s > %s”, string1,string2);
else
if(hasil == 0)
printf(“%s = %s”, string1, string2);
else
printf(“%s < %s”, string1, string2);
getch();
}

Fungsi Operasi Karakter (tersimpan dalam header “ctype.h”)
♦ islower()
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf
kecil.
Bentuk umum : islower(char);
♦ isupper()
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf
kapital.
Bentuk umum : isupper(char);
♦ isdigit()
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah
digit.
Bentuk umum : isdigit(char);
♦ tolower()
Fungsi akan mengubah huruf capital menjadi huruf kecil.
Bentuk umum : tolower(char);
♦ toupper()
Fungsi akan mengubah huruf kecil menjadi huruf kapital.
Bentuk umum : toupper(char);


Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “ctype.h”
void main()
{ char karakter;
clrscr();
printf(“Masukkan sebuah karakter : “); karakter = getche();
if(isupper(karakter)) //periksa apakah “karakter” adalah huruf kapital
{ puts(“ adalah huruf besar”);
printf(“Huruf kecilnya adalah : %c”, tolower(karakter));
}
else
if(islower(karakter)) //periksa apakah “karakter” adalah huruf kecil
{ puts(“ adalah huruf kecil”);
printf(“Huruf besarnya adalah : %c”, toupper(karakter));
}
else
if(isdigit(karakter)) //periksa apakah “karakter” adalah digit
puts(“ adalah karakter digit”);
else
puts(“ bukan huruf besar, huruf kecil atau digit”);
getch();
}

Fungsi Operasi Matematik (tersimpan dalam header “math.h” dan “stdlib.h”)
♦ sqrt()
Digunakan untuk menghitung akar dari sebuah bilangan.
Bentuk umum : sqrt(bilangan);
♦ pow()
Digunakan untuk menghitung pemangkatan suatu bilangan.
Bentuk umum : pow(bilangan, pangkat);

Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “math.h”
void main()
{ int x, y;
float z;
clrscr();
printf(“Menghitung x pangkat y\n”);
printf(“x = “); scanf(“%i”, &x);
printf(“y = “); scanf(“%i”, &y);
printf(“ %i dipangkatkan dengan %i adalah %7.2lf”, x, y, pow(x, y));
getch();
clrscr();
printf(“Menghitung akar suatu bilangan z\n”);
printf(“z = “); scanf(“%f”, &z);
printf(“Akar dari %f adalah %7.2lf”, z, sqrt(z));
getch();
}

♦ sin(), cos(), tan()

Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan tangens dari
suatu sudut.
Bentuk umum :
sin(sudut);
cos(sudut);
tan(sudut);
Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “math.h”
void main()
{ float sudut;
clrscr();
printf(“Menghitung nilai sinus, cosinus dan tangens\n”);
printf(“Masukkan sudut : “); scanf(“%f”, &sudut);
printf(“Nilai sinus %.2f derajat adalah %.3f”, sudut, sin(sudut));
printf(“Nilai cosinus %.2f derajat adalah %.3f”, sudut, cos(sudut));
printf(“Nilai tangens %.2f derajat adalah %.3f”, sudut, tan(sudut));
getch();
}

♦ atof()
Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double.
Bentuk umum : atof(char x);
♦ atoi()
Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer.
Bentuk umum : atoi(char x);

Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “math.h”
void main()
{ char x[4] = “100”, y[5] =”10.3”;
int a;
float b;
clrscr();
a = atoi(x); b = atof(y);
printf(“Semula A = %s B = %s\n”, x,y);
printf(“Setelah dikonversi A = %i B = %.2f”, a,b);
getch();
}
♦ div()
Digunakan untuk menghitung hasil pembagian dan sisa pembagian.
Bentuk umum : div_t div(int x, int y)
Strukturnya :
typedef struct
{ int qout; // hasil pembagian
int rem // sisa pembagian
} div_t;
Contoh Program :
#include “stdio.h”
#include “conio.h”
#include “stdlib.h”
void main()
{ int x, y;
div_t hasil;
clrscr();
printf(“Menghitung sisa dan hasil pembagian x dengan y\n”);
printf(“x = “); scanf(“%i”, &x);
printf(“y = “); scanf(“%i”, &y);
hasil = div(x,y);
printf(“\n\n %3i div %3i = %3i sisa %3i”, x, y, hasil.quot, hasil.rem);
getch();
}

♦ max()
Digunakan untuk menentukan nilai maksimal dari dua buah bilangan.
Bentuk umum : max(bilangan1, bilangan2);

♦ min()
Digunakan untuk menentukan bilangan terkecil
Bentuk umum : min(bilangan1, bilangan2);
Contoh Program :
include “stdio.h”
include “conio.h”
include “stdlib.h”
main()
int x, y, z;
clrscr();
printf(“Menentukan bilangan terbesar dan terkecil\n”);
printf(“X = “); scanf(“%i”, &x);
printf(“Y = “); scanf(“%i”, &y);
printf(“Z = “); scanf(“%i”, &z);
printf(“\nBilangan terbesar : %i”, max(max(x, y), z));
printf(“\nBilangan terkecil : %i”, min(min(x, y), z));
getch();
}






Bab Operasi File

File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa terdiri dari satu atau
beberapa field. Setiap field terdiri dari satu atau beberapa byte.

1 MEMBUKA FILE
Untuk membuka atau mengaktifkan file, fungsi yang digunakan adalah fungsi fopen().
File dapat berupa file biner atau file teks.
File biner adalah file yang pola penyimpanan di dalam disk dalam bentuk biner, yaitu
seperti bentuk pada memori (RAM) computer.
File teks adalah file yang pola penyimpanan datanya dalam bentuk karakter.
Penambahan yang perlu dilakukan untuk menentukan mode teks atau biner adalah “t” untuk
file teks dan “b” untuk file biner.
Prototype fungsi fopen() ada di header fungsi “stdio.h”
Bentuk umum :
file *fopen(char *namafile, char *mode);
Keterangan :
♦ namafile adalah nama dari file yang akan dibuka/diaktifkan.
♦ mode adalah jenis operasi file yang akan dilakukan terhadap file.

Jenis-jenis operasi file :

♦ r : menyarakan file hanya dapat dibaca (file harus sudah ada)
♦ w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan dihapus)

♦ a : untuk membuka file yang sudah ada dan akan dilakukan proses
penambahan data (jika file belum ada, otomatis akan dibuat)

♦ r+ : untuk membuka file yang sudah ada dan akan dilakukan proses
pembacaan dan penulisan.

♦ w+ : untuk membuka file dengan tujuan untuk pembacaan atau penulisan.
Jika file sudah ada, isinya akan dihapus.

♦ a+ : untuk membuka file, dengan operasi yang akan dilakukan berupa
perekaman maupun pembacaan. Jika file sudah ada, isinya akan dihapus.

Contoh :
pf = fopen(“COBA.TXT”, “w”);



2
MENUTUP FILE
Untuk menutup file, fungsi yang digunakan adalah fclose().
Prototype fungsi fclose() ada di header file “stdio.h”
Bentuk Umum :
int fclose(FILE *pf);
atau
int fcloseall(void);
3
MELAKSANAKAN PROSES FILE
Menulis Karakter
♦ Untuk menulis sebuah karakter, bentuk yang digunakan adalah :
putc(int ch, file *fp)
fp adalah pointer file yang dihasilkan oleh fopen()
ch adalah karakter yang akan ditulis.

Contoh Program :
#include “stdio.h”
#include “conio.h”
#define CTRL_Z 26
void main()
{ file *pf; /* pointer ke file */
char kar;
if((pf = fopen(“COBA.TXT”, “w”)) == NULL) /* ciptakan file */
{ cputs(“File tak dapat diciptakan !\r\n”);
exit(1); /* selesai */
}
while((kar=getche()) != CTRL_Z)
putc(kar, pf); /* tulis ke file */
fclose(pf); /* tutup file */
}

Membaca Karakter
♦ Untuk membaca karakter dari file, fungsi yang digunakan adalah :
getc(file *fp);
fp adalah pointer file yang dihasilkan oleh fopen()
Fungsi feof(), digunakan untuk mendeteksi akhir file.
Pada saat membaca data foef(file *fp)

Contoh Program :
#include “stdio.h”
#include “conio.h”
void main()
{ file *pf; /* pointer ke file */
char kar;
clrscr();
if((pf = fopen(“COBA.TXT”, “r”)) == NULL) /* buka file */
{ cputs(“File tak dapat dibuka !\r\n”);
exit(1); /* selesai */
}
while((kar=getc(pf)) != EOF)
putch(kar); /* tampilkan ke layar */
fclose(pf); /* tutup file */
}
Membaca dan Menulis String
♦ Fungsi untuk membaca dan menulis string adalah : fgets() dan fputs()
♦ Bentuk Umum :
fgets(char *str, int p, file *fp)
fputs(char *str, file *fp)
Membaca dan Menulis Blok Data
♦ Fungsi untuk membaca dan menulis blok data adalah : fread() dan fwrite()
♦ Bentuk umum :
fread(void *buffer, int b_byte, int c, file *fp);
fwrite(void *buffer, int b_byte, int c, file *fp);
Keterangan :
buffer adalah pointer ke sebuah area di memori yang menampung data yang akan
dibaca dari file.
b_byte adalah banyaknya byte yang akan dibaca atau ditulis ke file
c adalah banyaknya item dibaca/ditulis.

Contoh Program :
#include “stdio.h”
#include “conio.h”
void main()
{ file *f_struktur;
char jawaban;
struct data_pustaka
{ char judul[26];
char pengarang[20];
int jumlah;
} buku; /* variabel buku bertipe struktur */

/* buka file */
if((f_struktur = fopen(“DAFBUKU.DAT”, “wb”)) == NULL)/* buka file */
{ cputs(“File tak dapat diciptakan !\r\n”);
exit(1); /* selesai */
}

do
{ clrscr();
cputs(“Judul Buku : “);
gets(buku.judul);
cputs(“Nama Pengarang : ”);
gets(buku.pengarang);
cputs(“Jumlah buku : “);
scanf(“%i”, $buku.jumlah);
fflush(stdin); /* Hapus isi penampung keyboard */
/*Rekam sebuah data bertipe struktur */
fwrite(&buku, sizeof(buku), 1, f_struktur);
cputs(“\r\nMau merekam data lagi (Y/T) ?”);
jawaban = getche();
}
while(jawaban == ‘Y’ || jawaban == ‘y’);
fclose(f_struktur); /* tutup file */);
}

Membaca dan Menulis File yang Terformat
♦ Jika diinginkan, data bilangan dapat disimpan ke dalam file dalam keadaan terformat.
♦ Fungsi yang digunakan adalah :
fprintf(ptr_file, “string control”, daftar argument);
fscanf(pts_file, “string control”, daftar argument);
Contoh Program :
#include “stdio.h:
#include “conio.h”
void main()
{ FILE *pformat;
char jawaban;
struct
{ int x;
int y;
} koordinat;
/* Buka dan ciptakan file. Periksa kalau gagal dibuka */
if((pformat = fopen(“KOORDINAT.TXT”, “w”)) == NULL) /* buka file */
{ cputs(“File tak dapat dibuka !\r\n”);
exit(1); /* selesai */
}
do
{ clrscr();
cputs(“Masukkan data koordinat (bilangan integer)\r\n”);
cputs(“Format : posisi x posisi y\r\n”);
cputs(“Contoh : 20 30 [ENTER]\r\n”);
scanf(“%i %i, &koordinat.x, &koordinat.y);
fflush(stdin);
/* Rekam ke file */
fprintf(pformat, %5i %5i\n”, koordinat.x, koordinat.y);
cputs(“\r\nMenyimpan data lagi (Y/T) ??”);
jawaban = getche();
}
while(jawaban == ‘y’ || jawaban == ‘Y’);
fclose(pformat);
getch();
}

Contoh Program 2 :

#include <stdio.h>
FILE *in;
void BACA( int[ ] );
void CETAK( int[ ] );
void main() {
int tabel[26] = {0};
BACA(tabel);
CETAK(tabel);
}
void BACA ( int huruf[] ) {
char c;
if (( in = fopen("data.txt" , "r")) == NULL)
printf ("File tidak bisa dibaca\n");
else
while ( (ch = fgetc(in)) != EOF ) {
c = ( (( c >= 97) || ( c <= 122)) ? c - 32 : c );
if ( (c >= 65) || (c <= 90) )
++huruf [ c - 65 ];
}
fclose(in);
}
void CETAK ( int huruf[] ) {
int counter;
for ( counter = 0 ; counter <= 25 ; counter++ )
printf ("\n%c%5d", counter + 65, huruf[counter] );
}







Tidak ada komentar:

Posting Komentar