Topik Populer
Interfancing Komputer dan Mikrokontroler
- Klik menu Start | Program | Microsoft Visual C++ 6.
- Klik menu File | New dan isi kotak File Name dengan hello seperti tampak pada Gambar di bawah ini.
- www.google.com
- Pengukuran Kuantitas Pekerjaan Perkerasan Jalan / Measurement of Road Pavement Work Quantities / 道路路面工程量的测量
- Mengatur Latar Belakang Desktop Untuk Windows 7 (Set Desktop Background for Windows 7)
- STANDAR DOKUMEN PEMILIHAN PENGADAAN JASA KONSTRUKSI
- How to Set the Date and Time in Microsoft Windows 7
- Visual QuickStart Guide windows 7
- Cara Menggunakan Kontrol Panel Untuk Windows Vista
- Mengkonfigurasi Perangkat Suara dan Audio Di Windows 7
- JBK Borland Delphi 7
- Spesifikasi PC Untuk Gamer
- Tip dan Trik Registry
- Panduan Praktis Belajar Komputer
- KEAMANAN SISTEM INFORMASI INTERNET
- Petunjuk Teknis Pelaksanaan P3-TGAI
- SPESIFIKASI TEKNIS PENGADAAN M
BAHASA C/C++ UNTUK INTERFACING KOMPUTER
Pengenalan Bahasa C/C++
Bahasa c dikembangkan di Laboratorium Bell (USA) sekitar tahun 1972 oleh Dennis Ritchie yang adalah seorang pakar pemrograman Bahasa c++ yang merupakan penyempurnaa dan pengembangan dari c dibuat oleh Bjarne Stroustrup.
Untuk mempelajari
C/C++,
Anda dapat menggunakan perangkat
lunak Turbo
C, Turbo C++, Borland C++,
C++ Builder
atau Visual C++, sedangkan Visual C++ .NET
sudah memiliki
banyak perbedaan
dari segi tampilan GUI dan
beberapa model pemrogramannya yang dikenal dengan istilah managed C++. Akan tetapi, membuat aplikasi
interfacing menggunakan Visual C++ .NET
maupun Visual C#
.NET tetap saja merupakan sesuatu yang
menarik dan merupakan tantangan. Turbo C++
ialah kompiler yang berbasiskan DOS, sedangkan Borland C++ versi
4 ke
atas berjalan
di bawah Windows. Anda juga dapat membuat
program C++ berbasiskan Linux dan dikompilasi menggunakan gcc
Memulai Pemrograman C/C++
Langkah–langkah menjalankan program Visual C++ 6
3. Klik button OK dan akan tampil editor tempat Anda mengetikkan kode. Untuk
menjalankan program,
tekan F5 atau gunakan menu Run
BACA JUGA..............
Konstruksi Program C/C++
Konstruksi dari suatu program
C/C++ harus
mengikuti aturan sebagai berikut
/* Ini berupa komentar
sebagai penjelasan dari program yang dibuat. Bisa berisi tujuan program, dibuat
oleh siapa dan tanggal berapa */
Include file
Deklarasi variabel global
fungsi Utama(main)
{
Isi program
}
Berikut contoh program untuk menerima
input dan
menampilkannya ke layar monitor menggunakan bahasa C
// Digunakan untuk library fungsi yang akan digunakan, dikenal
sebagai preprocessor //directive
#include <stdio.h>
#include <conio.h>
int main()//fungsi utama bernama main bertipe int
{
//deklarasi variable integer dan karakter
int umur;
char nama[30];
//Menampilkan pesan menggunakan fungsi printf
printf ("Selamat menggunakan bahasa C untuk Interfacing
Komputer\n");
printf ("Masukkan nama Anda \n");
//menerima data menggunakan fungsi scanf, %s untuk string, %c
hanya untuk 1 karakter scanf ("%s",&nama);
printf ("Masukkan umur Anda \n");
//menerima data integer menggunakan %d scanf ("%d", &umur);
printf ("Dear %s, umur Anda %d \n",nama,umur);
printf ("Tekan sembarang tombol untuk keluar !");
//menunggu aksi penekanan sembarang tombol untuk keluar
//fungsi getch() ini menggunakan library conio.h
getch();
//mengembalikan nilai integer karena fungsi main bertipe integer
return 0;
}
Untuk menjalankan program tersebut menggunakan Visual
C++
6, Anda dapat menekan
F5,
atau menjalankan menu Run. Jika menggunakan Turbo
C++, tekan menu Alt+R. Program di atas membuat dua buah variabel
bernama nama yang bertipe
char yang
dapat menampung sekitar 30 karakter, dan variabel umur yang dapat menampung bilangan bulat. Untuk
menerima input, digunakan fungsi
scanf dengan dua parameter, yaitu tipe
data penerima
dan nama variabel
penampung. Fungsi
printf digunakan untuk menampilkan string
dan data yang
ingin ditampilkan dengan menggunakan variabel
yang ada. Fungsi getch()
akan mendeteksi
penekanan sembarang
input dari user untuk keluar. Gambar
dibawah ini menampilkan hasil output program
Jika Anda menggunakan C++, struktur tubuh programnya tidak
jauh berbeda dari struktur berikut
#include <conio.h>
int main(){
int umur;
char nama[30];
cout<<"\n Selamat menggunakan bahasa C++ untuk Interfacing
Komputer"<<endl;
cout<<"Masukkan nama Anda"<<endl;
cin>>nama;
cout<<"Masukkan umur Anda"<<endl;
cin>>umur;
cout<<"Dear
"<<nama<<" umur Anda "<<umur<<endl;
cout<<"Tekan sembarang tombol untuk
keluar !"<<endl;
getch();
return 0;
}getch();
return 0;
Simpan program ini dan beri
nama hello.cpp. Pada program
C++ di atas, C++ menggunakan header file yang umum, yaitu iostream.h untuk menerima
dan menampilkan data, berbeda dengan C yang menggunakan header file stdio.h. Untuk menerima data digunakan fungsi
cin
dan untuk menampilkan
data digunakan
fungsi
cout. Fungsi \n digunakan untuk mengganti
baris, begitu juga fungsi
endl. Beberapa fungsi lain
yang cukup terkenal
adalah \t untuk tabulasi
dan \b untuk bell. Jika program
dijalankan, tampilan dengan Turbo
C++ akan terlihat
seperti gambar berikut
Jika Anda membuatnya melalui editor di Linux, kompilasi dapat dilakukan melalui terminal menggunakan gcc sebagai berikut
gcc -o hello hello.cpp
Kode di atas akan menghasilkan output hello dari file sumber bernama hello.cpp. Anda cukup mengetikkan ./hello saja dan program akan tampil
Pengulangan (Looping)
Untuk melakukan pengulangan eksekusi kode pada program, dapat digunakan fungsi for dengan sintaks sebagai berikut
for (int a=0;a<10;a++)
{
printf (“Ini pengulangan ke: %d”, a);
}
Kode di atas akan menampilkan pesan sebanyak sepuluh kali. Selain menggunakan for, dapat digunakan juga fungsi while. Program akan mendeteksi apakah kondisi memenuhi kondisi true dan jika memenuhinya maka kode di dalam blok eksekusi akan dijalankan
Contoh
char answer=’y’
while (answer =’y’)
{
…
printf (“Ingin melanjutkan (y/n) ?”);
scanf (“%d”, &answer);
}
Fungsi
Jika kita menulis keseluruhan kode di dalam fungsi main, kita akan sangat repot dalam proses pelacakan kesalahan atau pembacaan program. Oleh karena itu idealnya kode-kode untuk tujuan-tujuan tertentu dimasukkan ke dalam fungsi yang terpisah-pisah. Fungsi mempunyai tipe data tersendiri dan dapat/tidak mengembalikan harga, bergantung tipe datanya. Fungsi yang diharapkan mampu mengembalikan harga dari hasil proses dalam fungsi tersebut harus menggunakan tipe data selain void. Jika diinginkan agar fungsi tidak mengembalikan data, dapat digunakan tipe data void. Berikut ini contoh kode yang menggunakan fungsi bertipe data void dan integer.
//Program contoh menulis Fungi
//Dibuat oleh Mr. Sampri
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void bunyi(); //deklarasi fungsi
int hitung(int,int); //deklarasi fungsi
int main()
{
int a,b,hasil;
clrscr();
bunyi();//memanggil fungsi bunyi
printf ("Masukkan bilangan 1");
scanf("%d" , &a);
printf ("Masukkan bilangan 2");
scanf ("%d", &b);
hasil=hitung(a,b);//assignment , hasil perhitungan dari fungsi hitung dikirim ke hasil
bunyi();
printf ("\nHasil perkalian ialah %d" , hasil);
getch();
}
//fungsi bunyi tipe datanya void, oleh karena itu tidak
mengembalikan harga
void bunyi() //definisi fungsi bunyi
{
sound(5000); //menghasilkan bunyi 5000 Hz
delay(1000);// selama 1 detik
nosound(); //matikan bunyi
}
//fungsi htiung tipe datanya integer, oleh karena itu
mengembalikan harga
int hitung(int x, int y)//definisi fungsi bunyi dengan 2
parameter/argumen
{
int hasil_perkalian=x*y; //mengembalikan hasil perkalian dengan tipe integer
}
Program di atas akan membersihkan layar menggunakan fungsi clrscr(), setelah itu meminta user memasukkan data. Program juga memanggil fungsi dan membunyikan suara serta melakukan perhitungan, lalu mengembalikan lagi hasil perhitungan tersebut ke pemanggil (caller)
Pemrograman Grafik
Turbo C++ menggunakan BGI (Borland Graphics Interface) untuk menampilkan gambar berwarna. Beberapa file pendukung grafik yang penting ialah
Graphics.h, berisi deklarasi variable-variable penting grafik
*.bgi, berisi data pengendali kartu grafik. Pada komputer yang memakai mode grafik VGA, pengendali grafiknya ialah egavga.bgi
*.chr, berisi data huruf (font) misalnya gothic.chr yang berisi data huruf model gothic
Program berikut merupakan contoh pemrograman grafik Turbo C++ (dari folder examples) yang akan menerima data temperatur dari user, lalu dapat disimpan ke disk serta dibaca dan ditampilkan dalam bentuk grafik bar
//Program membaca temperatur lalu menampilkan Bar
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
/* Prototipe / deklarasi fungsi */
void get_temps(void);
void table_view(void);
void min_max(int num_vals, int vals[], int *min_val, int
max_val);
float avg_temp(int num_vals, int vals[]);
void graph_view(void);
void save_temps(void);
void read_temps(void);
/* definisi konstanta global*/
#define TRUE 1
#define READINGS 8
/* struktur data Global */
int temps[READINGS];
int main(void)
{
while (TRUE)
{
printf("\nMenu Program Plotting Temperatur \n");
printf("\tE - Masukkan data temperatur \n");
printf("\tS - Simpan data ke disk\n");
printf("\tR - Baca file disk \n");
printf("\tT - Melihat data dalam format tabel \n");
printf("\tG - Tampilan grafik \n");
printf("\tX - Keluar dari program \n");
printf("\nTekan salah satu kunci di atas: ");
switch (toupper(getche()))
{
case 'E': get_temps(); break;
case 'S': save_temps(); break;
case 'R': read_temps(); break;
case 'T': table_view(); break;
case 'G': graph_view(); break;
case 'X': exit(0);
}
}
}
/* Definisi Fungsi */
void get_temps(void)
{
char inbuf[130];
int reading;
printf("\nMasukkan temperatur-temperatur\n");
for (reading = 0; reading < READINGS; reading++)
{
printf("\nMasukkan bacaan ke # %d: ", reading + 1);
gets(inbuf);
sscanf(inbuf, "%d", &temps[reading]);
}
}
void table_view(void)
{
int reading, min, max;
clrscr(); /* Bersihkan layar */
printf("Membaca\t\tTemperatur(F)\n");
for (reading = 0; reading < READINGS; reading++)
printf("%d\t\t\t%d\n", reading + 1, temps[reading]);
min_max(READINGS, temps, &min, &max); printf("Temperatur minimum: %d\n", min); printf("Temperatur maksimum: %d\n", max); printf("Temperatur rata-rata: %f\n", avg_temp(READINGS,
temps));
}
void min_max(int num_vals, int vals[], int *min_val, int
*max_val)
{
int reading;
*min_val = *max_val = vals[0];
for (reading = 1; reading < num_vals; reading++)
{
if (vals[reading] < *min_val)
*min_val = vals[reading];
else if (vals[reading] > *max_val)
*max_val = vals[reading];
}
}
float avg_temp(int num_vals, int vals[])
{
int reading, total = 0;
for (reading = 0; reading < num_vals; reading++)
total += vals[reading];
return (float) total/reading; //casting
}
void graph_view(void)
{
int graphdriver = DETECT, graphmode;
int reading, value;
int maxx, maxy, left, top, right, bottom, width;
int base; /* sumbu x */
int vscale = 1.5; /* nilai skala vertikal */
int space = 10; /* spasi antara bar */
char fprint[20]; /* teks terformat untuk sprintf */
initgraph(&graphdriver, &graphmode, "..\\bgi");//direktori bgi
if (graphresult() < 0) /* Pastikan inisialisasi driver ok
*/
return;
maxx = getmaxx(); /* daerah terjauh */
width = maxx /(READINGS + 1); /* skala dan spasi */
maxy = getmaxy() - 100; /* ruang untuk teks */
left = 25;
right = width;
base = maxy / 2; /* untuk nilai negatif */
for (reading = 0; reading < READINGS; reading++)
{
value = temps[reading] * vscale;
if (value > 0)
{
top = base - value; /* layar atas */ bottom = base; setfillstyle(HATCH_FILL, 1);
}
else
{
top = base;
bottom = base - value; /* layar bagian bawah */
setfillstyle(WIDE_DOT_FILL, 2);
}
bar(left, top, right, bottom);
left +=(width + space); /* spasi kiri untuk bar
berikutnya */
right +=(width + space); /* ujung kanan untuk bar
berikutnya*/
}
outtextxy(0, base, "0 -");
outtextxy(10, maxy + 20, "Plot dari Pembacaan temperatur ");
for (reading = 0; reading < READINGS; reading++)
{
sprintf(fprint, "%d", temps[reading]);
outtextxy((reading *(width + space)) + 25, maxy + 40,
fprint);
}
outtextxy(50, maxy+80, "Tekan sembarang tombol");
getch(); /* menunggu penekanan key*/
closegraph();
}
void save_temps(void)
{
FILE * outfile;
char file_name[40];
printf("\nSimpan sebagai nama file apa ? ");
while (kbhit()); /* jika ditekan*/
gets(file_name);
if ((outfile = fopen(file_name,"wb")) == NULL)
{
perror("\nMembuka file gagal ! ");
return;
}
fwrite(temps, sizeof(int), READINGS, outfile);
fclose(outfile);
}
void read_temps(void)
{
FILE * infile;
char file_name[40] = "test";
printf("\nBaca dari file mana? ");
while (kbhit());
gets(file_name);
if ((infile = fopen(file_name,"rb")) == NULL)
{
perror("\nBuka file gagal! ");
return;
}
fread(temps, sizeof(int), READINGS, infile);
fclose(infile);
}
Perhatikan bahwa pada program di atas, fungsi terlebih dahulu harus dideklarasikan dengan menuliskan nama fungsi dan dapat diikuti dengan tipe data parameter yang diinginkan. Setelah fungsi dideklarasikan, definisikanlah fungsi. Anda juga dapat langsung mendefinisikan fungsi asalkan fungi-fungsi tersebut ditulis di atas fungsi main
Untuk deteksi dan inisialisasi driver grafik, digunakan fungsi yang ada di BGI (Borland Graphics Interface )sebagai berikut
void graph_view(void)
{
int graphdriver = DETECT, graphmode;
….
initgraph(&graphdriver, &graphmode, "..\\bgi");//direktori bgi
Beberapa fungsi yang berhubungan dengan pembacaan dan penulisan file pada disk ialah fopen, fwrite, fread, dan fclose
void save_temps(void)
{
FILE * outfile;
char file_name[40];
printf("\nSimpan sebagai nama file apa ? ");
while (kbhit()); /* jika ditekan*/
gets(file_name);
if ((outfile = fopen(file_name,"wb")) == NULL)
{
perror("\nMembuka file gagal ! ");
return;
}
fwrite(temps, sizeof(int), READINGS, outfile);
fclose(outfile);
}
Program di atas akan mencoba menyimpan suatu file dengan meminta nama file tertentu dari user. Fungsi fwrite digunakan untuk menulis ke dalam disk, lalu ditutup dengan perintah fclose
void read_temps(void)
{
FILE * infile;
char file_name[40] = "test";
printf("\nBaca dari file mana? ");
while (kbhit());
gets(file_name);
if ((infile = fopen(file_name,"rb")) == NULL)
{
perror("\nBuka file gagal! ");
return;
}
fread(temps, sizeof(int), READINGS, infile);
fclose(infile);
}
Program di atas akan mencoba membuka file menggunakan perintah fopen dan jika file dibuka dengan sukses, file akan dibaca menggunakan perintah fread.
gcc -o hello hello.cpp
Kode di atas akan menghasilkan output hello dari file sumber bernama hello.cpp. Anda cukup mengetikkan ./hello saja dan program akan tampil
Pengulangan (Looping)
Untuk melakukan pengulangan eksekusi kode pada program, dapat digunakan fungsi for dengan sintaks sebagai berikut
for (int a=0;a<10;a++)
{
printf (“Ini pengulangan ke: %d”, a);
}
Kode di atas akan menampilkan pesan sebanyak sepuluh kali. Selain menggunakan for, dapat digunakan juga fungsi while. Program akan mendeteksi apakah kondisi memenuhi kondisi true dan jika memenuhinya maka kode di dalam blok eksekusi akan dijalankan
Contoh
char answer=’y’
while (answer =’y’)
{
…
printf (“Ingin melanjutkan (y/n) ?”);
scanf (“%d”, &answer);
}
BACA JUGA..............
Fungsi
Jika kita menulis keseluruhan kode di dalam fungsi main, kita akan sangat repot dalam proses pelacakan kesalahan atau pembacaan program. Oleh karena itu idealnya kode-kode untuk tujuan-tujuan tertentu dimasukkan ke dalam fungsi yang terpisah-pisah. Fungsi mempunyai tipe data tersendiri dan dapat/tidak mengembalikan harga, bergantung tipe datanya. Fungsi yang diharapkan mampu mengembalikan harga dari hasil proses dalam fungsi tersebut harus menggunakan tipe data selain void. Jika diinginkan agar fungsi tidak mengembalikan data, dapat digunakan tipe data void. Berikut ini contoh kode yang menggunakan fungsi bertipe data void dan integer.
//Program contoh menulis Fungi
//Dibuat oleh Mr. Sampri
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void bunyi(); //deklarasi fungsi
int hitung(int,int); //deklarasi fungsi
int main()
{
int a,b,hasil;
clrscr();
bunyi();//memanggil fungsi bunyi
printf ("Masukkan bilangan 1");
scanf("%d" , &a);
printf ("Masukkan bilangan 2");
scanf ("%d", &b);
hasil=hitung(a,b);//assignment , hasil perhitungan dari fungsi hitung dikirim ke hasil
bunyi();
printf ("\nHasil perkalian ialah %d" , hasil);
getch();
}
//fungsi bunyi tipe datanya void, oleh karena itu tidak
mengembalikan harga
void bunyi() //definisi fungsi bunyi
{
sound(5000); //menghasilkan bunyi 5000 Hz
delay(1000);// selama 1 detik
nosound(); //matikan bunyi
}
//fungsi htiung tipe datanya integer, oleh karena itu
mengembalikan harga
int hitung(int x, int y)//definisi fungsi bunyi dengan 2
parameter/argumen
{
int hasil_perkalian=x*y; //mengembalikan hasil perkalian dengan tipe integer
}
Program di atas akan membersihkan layar menggunakan fungsi clrscr(), setelah itu meminta user memasukkan data. Program juga memanggil fungsi dan membunyikan suara serta melakukan perhitungan, lalu mengembalikan lagi hasil perhitungan tersebut ke pemanggil (caller)
Pemrograman Grafik
Turbo C++ menggunakan BGI (Borland Graphics Interface) untuk menampilkan gambar berwarna. Beberapa file pendukung grafik yang penting ialah
Graphics.h, berisi deklarasi variable-variable penting grafik
*.bgi, berisi data pengendali kartu grafik. Pada komputer yang memakai mode grafik VGA, pengendali grafiknya ialah egavga.bgi
*.chr, berisi data huruf (font) misalnya gothic.chr yang berisi data huruf model gothic
Program berikut merupakan contoh pemrograman grafik Turbo C++ (dari folder examples) yang akan menerima data temperatur dari user, lalu dapat disimpan ke disk serta dibaca dan ditampilkan dalam bentuk grafik bar
//Program membaca temperatur lalu menampilkan Bar
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
/* Prototipe / deklarasi fungsi */
void get_temps(void);
void table_view(void);
void min_max(int num_vals, int vals[], int *min_val, int
max_val);
float avg_temp(int num_vals, int vals[]);
void graph_view(void);
void save_temps(void);
void read_temps(void);
/* definisi konstanta global*/
#define TRUE 1
#define READINGS 8
/* struktur data Global */
int temps[READINGS];
int main(void)
{
while (TRUE)
{
printf("\nMenu Program Plotting Temperatur \n");
printf("\tE - Masukkan data temperatur \n");
printf("\tS - Simpan data ke disk\n");
printf("\tR - Baca file disk \n");
printf("\tT - Melihat data dalam format tabel \n");
printf("\tG - Tampilan grafik \n");
printf("\tX - Keluar dari program \n");
printf("\nTekan salah satu kunci di atas: ");
switch (toupper(getche()))
{
case 'E': get_temps(); break;
case 'S': save_temps(); break;
case 'R': read_temps(); break;
case 'T': table_view(); break;
case 'G': graph_view(); break;
case 'X': exit(0);
}
}
}
/* Definisi Fungsi */
void get_temps(void)
{
char inbuf[130];
int reading;
printf("\nMasukkan temperatur-temperatur\n");
for (reading = 0; reading < READINGS; reading++)
{
printf("\nMasukkan bacaan ke # %d: ", reading + 1);
gets(inbuf);
sscanf(inbuf, "%d", &temps[reading]);
}
}
void table_view(void)
{
int reading, min, max;
clrscr(); /* Bersihkan layar */
printf("Membaca\t\tTemperatur(F)\n");
for (reading = 0; reading < READINGS; reading++)
printf("%d\t\t\t%d\n", reading + 1, temps[reading]);
min_max(READINGS, temps, &min, &max); printf("Temperatur minimum: %d\n", min); printf("Temperatur maksimum: %d\n", max); printf("Temperatur rata-rata: %f\n", avg_temp(READINGS,
temps));
}
void min_max(int num_vals, int vals[], int *min_val, int
*max_val)
{
int reading;
*min_val = *max_val = vals[0];
for (reading = 1; reading < num_vals; reading++)
{
if (vals[reading] < *min_val)
*min_val = vals[reading];
else if (vals[reading] > *max_val)
*max_val = vals[reading];
}
}
float avg_temp(int num_vals, int vals[])
{
int reading, total = 0;
for (reading = 0; reading < num_vals; reading++)
total += vals[reading];
return (float) total/reading; //casting
}
void graph_view(void)
{
int graphdriver = DETECT, graphmode;
int reading, value;
int maxx, maxy, left, top, right, bottom, width;
int base; /* sumbu x */
int vscale = 1.5; /* nilai skala vertikal */
int space = 10; /* spasi antara bar */
char fprint[20]; /* teks terformat untuk sprintf */
initgraph(&graphdriver, &graphmode, "..\\bgi");//direktori bgi
if (graphresult() < 0) /* Pastikan inisialisasi driver ok
*/
return;
maxx = getmaxx(); /* daerah terjauh */
width = maxx /(READINGS + 1); /* skala dan spasi */
maxy = getmaxy() - 100; /* ruang untuk teks */
left = 25;
right = width;
base = maxy / 2; /* untuk nilai negatif */
for (reading = 0; reading < READINGS; reading++)
{
value = temps[reading] * vscale;
if (value > 0)
{
top = base - value; /* layar atas */ bottom = base; setfillstyle(HATCH_FILL, 1);
}
else
{
top = base;
bottom = base - value; /* layar bagian bawah */
setfillstyle(WIDE_DOT_FILL, 2);
}
bar(left, top, right, bottom);
left +=(width + space); /* spasi kiri untuk bar
berikutnya */
right +=(width + space); /* ujung kanan untuk bar
berikutnya*/
}
outtextxy(0, base, "0 -");
outtextxy(10, maxy + 20, "Plot dari Pembacaan temperatur ");
for (reading = 0; reading < READINGS; reading++)
{
sprintf(fprint, "%d", temps[reading]);
outtextxy((reading *(width + space)) + 25, maxy + 40,
fprint);
}
outtextxy(50, maxy+80, "Tekan sembarang tombol");
getch(); /* menunggu penekanan key*/
closegraph();
}
void save_temps(void)
{
FILE * outfile;
char file_name[40];
printf("\nSimpan sebagai nama file apa ? ");
while (kbhit()); /* jika ditekan*/
gets(file_name);
if ((outfile = fopen(file_name,"wb")) == NULL)
{
perror("\nMembuka file gagal ! ");
return;
}
fwrite(temps, sizeof(int), READINGS, outfile);
fclose(outfile);
}
void read_temps(void)
{
FILE * infile;
char file_name[40] = "test";
printf("\nBaca dari file mana? ");
while (kbhit());
gets(file_name);
if ((infile = fopen(file_name,"rb")) == NULL)
{
perror("\nBuka file gagal! ");
return;
}
fread(temps, sizeof(int), READINGS, infile);
fclose(infile);
}
Perhatikan bahwa pada program di atas, fungsi terlebih dahulu harus dideklarasikan dengan menuliskan nama fungsi dan dapat diikuti dengan tipe data parameter yang diinginkan. Setelah fungsi dideklarasikan, definisikanlah fungsi. Anda juga dapat langsung mendefinisikan fungsi asalkan fungi-fungsi tersebut ditulis di atas fungsi main
Untuk deteksi dan inisialisasi driver grafik, digunakan fungsi yang ada di BGI (Borland Graphics Interface )sebagai berikut
void graph_view(void)
{
int graphdriver = DETECT, graphmode;
….
initgraph(&graphdriver, &graphmode, "..\\bgi");//direktori bgi
Beberapa fungsi yang berhubungan dengan pembacaan dan penulisan file pada disk ialah fopen, fwrite, fread, dan fclose
void save_temps(void)
{
FILE * outfile;
char file_name[40];
printf("\nSimpan sebagai nama file apa ? ");
while (kbhit()); /* jika ditekan*/
gets(file_name);
if ((outfile = fopen(file_name,"wb")) == NULL)
{
perror("\nMembuka file gagal ! ");
return;
}
fwrite(temps, sizeof(int), READINGS, outfile);
fclose(outfile);
}
Program di atas akan mencoba menyimpan suatu file dengan meminta nama file tertentu dari user. Fungsi fwrite digunakan untuk menulis ke dalam disk, lalu ditutup dengan perintah fclose
void read_temps(void)
{
FILE * infile;
char file_name[40] = "test";
printf("\nBaca dari file mana? ");
while (kbhit());
gets(file_name);
if ((infile = fopen(file_name,"rb")) == NULL)
{
perror("\nBuka file gagal! ");
return;
}
fread(temps, sizeof(int), READINGS, infile);
fclose(infile);
}
Program di atas akan mencoba membuka file menggunakan perintah fopen dan jika file dibuka dengan sukses, file akan dibaca menggunakan perintah fread.
Post a Comment