Upload
trantram
View
228
Download
0
Embed Size (px)
Citation preview
C.MODUL TORBO C
LATIHANPerbaikilah program berikut ini hingga benar, kesalahan dapat berupa penggunaan
perintah atau fungsi yang salah, cara penulisan pernyataan yang salah dan sebagainya ? 1./*MENGOREKSI PROGRAM YANG SALAH*/
#include"stdio.h"#include"conio.h"void main(){
Char [20];int usia;
printf("\nInput nama anda :");gets(&nama);
printf("\nInput usia anda :");scanf("%d",usia);
if (usia=25)printf("\nandalah karyawan yang dibutuhkan, %s",nama[20]);
}
2. fungsi penyimpanan gets dan cgets
#include"stdio.h"#include"conio.h"void main(){
char nama[20],nama2[20];
printf("\nInputkan nama anda : ");gets(nama1);
printf("\nsekali lagi ? :");cgets(nama2);
printf("\n%c",nama1[2]);printf("\n%c",nama2[2]);printf("\n%d",nama1[2]);printf("\n%d",nama2[2]);getch();
}
C.MODUL TORBO C
1. Makro
Makro dapat dianggap sebagai sebuah fungsi yang sederhana. Beberapa pernyataan dan perintah yang perlu dipelajari sebelum anda mulai menyusun suatu makro adalah :
Preprocessor directives, #define,dan #include.
- Preprocessor directives selalu diawali dengan tanda : #- Fungsi #define : mendefinisikan suatu nilai tertentu kepada suatu nama konstanta.- Fungsi #include : berfungsi untuk memasukkan file-fle header kedalam program anda.- Bentuk umum Preprocessor directives #define nama_konstanta text.- Text ini dapat berupa : 1. numeric Ex: #define PI 3.14432 2. karakter Ex: #define ABJAD ‘A’ 3. string Ex: #define NAMA “AMIR” 4. pernyataan Ex:#define CETAK printf(“\nBagus
sekali”)A. Preprocessor directives
Ex 1: Preprocessor directives
#include <stdio.h>#include<conio.h>Void main(){ Int n=4,m,p; M=n*2; P=n+m;
Printf(”%d %d”,m,p);}
Ex 2: Preprocessor directives
#include <stdio.h>#include<conio.h>
#define N 4 /*Preprocessor directives*/void main(){
int m,p;m=N*2; /*nilai n diganti dulu dengan 4 br diterjamahkan
kedalam bahasa mesin*/p=N+m;printf("%d%d",m,p);
}
C.MODUL TORBO C
B. #define
Ex a: Luas lingkaran dengan #define
#include <stdio.h>#include<conio.h>#define PI 3.14#define L(n) PI*n*nvoid main(){ clrscr; printf("\nLUAS LINGKARAN DENGAN JARI-JARI: "); printf("\nt5 :%.3f",L(5)); printf("\nt10 :%.3f",L(10)); printf("\nt15 :%.3f",L(15));
}
Ex b: Luas lingkaran dengan #define
#include <stdio.h>#include<conio.h>float l(int n);main(){
clrscr();printf("\nLUAS LINGKARAN DENGAN JARI-JARI:\n");
printf("\nt5 :%.3f",3.14*5*5);printf("\nt10 :%.3f",3.14*10*10);printf("\nt15 :%.3f",3.14*15*15);getch();
}
* Keuntungan dan karugian mendefinisikan suatu fungsi lewat makro dibandingkan membuat fungsi tersendiri?
1. Makro hannya dapat digunakan untuk membuat suatu fungsi yang sederhana, dimana penulisan rumusnya tidak lebih dari satubaris, sedangkan fungsi dapat digunakan untuk masalah-masalah yang lebih komplek.
2. dari segi pengguaan memori. Makro umumnya membutuhkan memori lebih besar dari pada fungsi, karena semua makro yang terdapat dalam program akan diubah lebih dahulu sesuai dengan apa yang telah didefinisikan, sebelum mulai dikompilasi. Bila makro berupa suatu pernyataan yang cukup panjang dan digunakan dengan tingkat pengulangan yang tinggi, maka program anda akan membengkak sebaliknya fungsi akan dicompile seperti apa adanya, tampa mengadakan perubahan-perubahan terhadap program.
C.MODUL TORBO C
Ex: Membuat fungsi luas lingkaran
#include <stdio.h>#include<conio.h>float L(int n);void main(){
clrscr();printf("\nLUAS LINGKARAN DENGAN JARI-JARI :");printf("\nt5 :%.3f",L(5));printf("\nt10 :%.3f",L(10));printf("\nt15 :%.3f",L(15));getch();
}
Float L(int n){
return(3.14*n*n);}
C. #include
Bentuk umum #include adalah:
#include ”nama_file_header” atau include < nama_file_header>
Ex: #include “stdio.h” atau #include<conio.h>
Kedua bentuk ini memiliki perbedaan, bila nama header diletakkan diantara tanda tanda kutip ganda (“), artinnya pertama kali compiler disuruh mencari file header ini pada file directory dimana file editor (file yang sedang anda kerjakan yang mengandung perintah. #include tadi sering disebut juga sebagai source file) berada, dan bila file header tidak ditemukan dalam directory ini, maka akan dilanjutkan pada directory lain. Sedangkan untuk tanda <> compiler ini akan mencari file header ini pada directory-directory yang ada.
C.MODUL TORBO C
Ex: header
#include"stdio.h"#include"conio.h"
void hapus_layar(){
printf("\x1b[2j");}
main(){
clrscr();
hapus_layar();printf("\nproses include");getch();
} Ex: header (kutu pulang kandang)
*penggunaan perintah-perintah ANSI.SYS*/
#define PNH_ATAS "\x1b[A"#define PNH_BWH "\x1b[B"#define PNH_KA "\x1b[C"#define PNH_KI "\x1b[D"#define HPS_LYR printf("\x1b[2j")#define NORMAL "\x1b[om"#define KEDIP "\x1b[5m"#define SIMPAN printf("\x1b[s")#define KEMBALI printf("\x1b[u")#define POSISI(x,y) printf("\x1b%d;%df",y,x)#define KARAKTER printf("%c",1)
main(){
char a;int b,x=40,y=10;HPS_LYR;bingkai(20,9,60,14);judul();getch();HPS_LYR;garis_h(1,79,3);
C.MODUL TORBO C
garis_h(1,79,21);POSISI(1,1); printf("untuk menggerakkan karakter : --> <-- \x18 \x19");POSISI(30,23);printf("KUTU PULANG KANDANG");POSISI(75,15);printf("RUMAH");POSISI(75,16);printf("\xdb\xdb\xdb\xdb\xdb\xdb");POSISI(75,19);printf("\xdb\xdb\xdb\xdb\xdb\xdb");POSISI(1,22); printf("%d,%d",x,y);POSISI(40,10);KARAKTER;
while(1){ /*Gerakkan sikutu dengan anak panah*/
a=getch();switch (a){
case 72:printf(PNH_KI);printf(" ");printf(PNH_KI);printf(PNH_ATAS);KARAKTER;y--;break;
case 80:printf(PNH_KI);printf(" ");printf(PNH_KI);printf(PNH_BWH);KARAKTER;y++;break;
case 77:printf(PNH_KI);printf(" "); printf(PNH_KI);printf(PNH_KA);KARAKTER;x--;break;
}
/*menyimpan posisi kursor*/
SIMPAN;
/*mencetak posisi kursor*/
POSISI(20,22);printf("%d,%d",x,y);
/*mengmbalika posisi kursor*/
C.MODUL TORBO C
KEMBALI;
if ((x%3==0 && y%3==0) || (x%5==1 && y&5==1) || (x==63 && y==17))
{mati();break;
}
if (x>=75 && y>=17 && y<=18)
{
POSISI(35,10);printf(KEDIP);printf("KUTU SELAMAT");printf(NORMAL);break;
}}getch();
}
bingkai(x1,y1,x2,y2)int x1,y1,x2,y2;{
POSISI(x1,y1);printf("\xc9");garis_h(x1+1,x2-1,y1);POSISI(x2,y1);printf("\xbb");garis_v(x1,y1+1,y2-1);garis_v(x2,y1+1,y2-1);POSISI(x1,y2);printf("\xcb");garis_h(x1+1,x2-1,y2);POSISI(x2,y2);printf("\xbc");
}garis_h(xx1,xx2,yy)int xx1,xx2,yy;{
int i;POSISI(xx1,yy);for(i=xx1;i<=xx2;++i){
printf("\xcd");}
}
garis_v(xx,yy1,yy2)
C.MODUL TORBO C
int xx,yy1,yy2;{
int i;for (i=yy1;i<=yy2;++i){ POSISI(xx,i);printf("\xba");}
}
judul(){
POSISI(32,11);printf("MARI KITA BERMAIN");printf(KEDIP);POSISI(29,12);printf("tekan sembarang tombol");printf(NORMAL);
}mati(){
int i;printf(PNH_KI);printf(" ");for (i=1;i<=3;++i)
printf("\x07");POSISI(40,10);printf(KEDIP);printf("KUTU MATI:");printf(NORMAL);
}
C.MODUL TORBO C
2. Structure
Struct data_pgw{ Char nama[20]; Char alamat [30]; Float gaji;};
Ini adalah salah satu pengaturan format structure serta variabel-variabel penyusunannya. Kita belum menciptakan variabel structure itu sendiri.
Struct data_pgw{ Char nama[20]; Char alamat [30]; Float gaji;};Struct data_pgw pegawai1;
Jika disederhanakan
Struct { Char nama[20]; Char alamat [30]; Float gaji;};pegawai1;
C.MODUL TORBO C
Ex: Untuk variable structure
#include "stdio.h"#include "conio.h"
struct{
char nama[20];char alamat[20];float gaji;
}pegawai;
void main(){
char gj[15];float atof();clrscr();
printf("Nama Pegawai :");gets(pegawai.nama);printf("Alamat Pegawai :");gets(pegawai.alamat);printf("Gaji Pegawai :");gets(gj);pegawai.gaji=atof(gj);
printf("\n\ndata yang telah anda ketikkan :");printf("\n%-20s%-30s%10.2f",pegawai.nama,pegawai.alamat,pegawai.gj);printf("\n\ntekan sembarang tombol");getch();
}
C.MODUL TORBO C
3. Pointer
Salah satu keunikan dari bahasa C terletak pada penggunaan pointer. Banyak orang beranggapan bahwa pointer sangat sulit dipelajari dan dimengerti, nyatanya tidaklah demikian, mempelajari pointer memang tidak mudah, mengigat konsep pointer ini cukup baru dan tidak terdapat pada pemograman lainnya, seperti BASIC ataupun PASCAL, na mun terlalu sulit juga tidak.
Mengapa menggunakan Pointer:1. Penanganan terhadap array dan string akan lebih singkat, dan efisien.2. memungkinkan suatu fungsi untuk menghasulkan lebih dari satu nilai.3. memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke fungsi yang
lain.4. Kemampuan berkerja dengan memori yang telah dialokasikan secara dinamik.5. memungkinkan untuk berhubungan langsung ke hardware.6. Untuk menciptakan data structure yang kompleks.7. Memungkinkan untuk berhubunga langsung dengan parameter command line.
Dengan menggunakan pointer yang benar, anda dapt mennyusun sebuah programyang berkemampuan tinggi. Sebaliknya sedikit saja kesalahan dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada program anda. Karena pointer dapat langsung menunjukan pada lokasi memori, jika lokasi yang ditunjuk salah, berarti data yang diambil juga akan salah, dan sudah tentu program anda akan menjadi salah juga.
Deklarasi Variabel PointerVariabel pointer juga harus didelarasikan terlebih dahulu sebelum mulai
digunakan bentuk umum cara mendeklarasikan variabel pointer adalah:
Tipe *nama_var_pointer
Tipe variabel sama dengan tipe yang dikenal oleh variabel biasa, misalnya int, float, char dan sebagainya. Nama variabel pointer juga mengikuti ketentuan nama variabel biasa. Yang membedakan variabel pointer dengan variabel biasa dengan menggunakan tanda asterisk (*) didepan nama varibel pada waktu deklarasi.
Ex :
Int *ptr_x;
Ptr merupakan variabel pointer, karena pada deklarasi digunakan tanda (*) didepan nama variabelya.
Pengertian dalam deklarasi variabel pointer memiliki perbedaan dengan variabel biasa, jika dalam deklarasi variabel biasa:
C.MODUL TORBO C
Float x;
Dalam deklarasi pointer:
Float *ptr_x;
Artinya variabel pointer ptr_x akan menunjukkan pada variabel yang bertipe float. Jadi disini bukan ptr_x-nya yang bertipe float, melainkan variabel lain yang ditunjuk yang bertipe float.
Ex: dalam pendeklarasian yang salah :
float y;Int *ptr_y;
Benar :
Float y;Float *ptr_y;
Dan untuk mendeklarasikan sebuah variable y yang bertipe integer dengan variabel pointernya yy adalah:
Int y;Int *yy; dapat disederhanakan int y,*yy;
Ex : Mencetak Nama Alamat Dengan pointer
#include<stdio.h>#include<conio.h>void main(){
int x;int *ptr_x;clrscr;
x=10.2;ptr_x=&x;
printf("\n\nMenggunakan variabel biasa :");printf("\nnilai dari x = %d ",x);printf("\nAlamat dari x = %u ",&x);
printf("\n\nDengan menggunakan pointer : );
C.MODUL TORBO C
printf("\nnilai dari x =%d ",*ptr_x);printf("\nnlai dari x =%u ",ptr_x);
}
Input data Melalui PointerAnda dapat juga mengimputkan suatu data kedalam variabel dengan dengan menggunankan pointernya, sebagai contoh tinjaulah program dibawah ini:
Int x;Int *ptr_x;Ptr_x=&x;Printf(”inputkan nilai x : ”);Scanf(”%d”,ptr_x);
Ingat! Mengimputkan data dengan scanf() membutuhkan alamat dari variabel yang bersangkutan. Karena ptr_x merupakan alamat dari variabel x, maka ptr_x dapat digunakan dalam scanf(). Jadi pernyataan:
Scanf(”%d”,ptr_x);Sama dengan:
Scanf(”%d”,&x);Dimana &x juga menunjukkan alamat dari variabel x.
Memberikan suatu nilai pada suatu variabel lewat pointer
Nilai suatu variabel dapat juga diberikan lewat pointernya, nilai yang diberikan ini dapat berbentuk kostanta ataupun ekspresi aritmatikaEx:
Int x;Int *ptr_x;Ptr_x=&x;*ptr_x=5; /*pemberian nilai kostanta*/
Sedangkan unntuk pemberian nilai yang berupa ekpresi adalah:
Int x,y=5,z=4;Int *p_x;P_x=&x;*p_x=5*y+z-2; /*pemberian nilai ekspresi*/
Ex : Memberikan suatu variabel melalui pointer
C.MODUL TORBO C
#include<stdio.h>#include<conio.h>void main(){
float a1,a2,a3;float *p_a3;clrscr();printf("input bilangan pertama : ");scanf(%f",&a1);printf("input bilangan kedua : ");scanf(%f",&a2);
p_a3=&a3;
*p_a3=a1+a2;
printf("\nNilai a3 (dari variabelnya) = &.3f",a3);printf("\nNilai a3 (dari pointernya) = &.3f",*p_a3);
}
Pointer dan fungsiPengiriman data dari sebuah fungsi kefungsi lain dapat juga dilakukan dengan
bantuan pointer, bila pointer digunakan, maka data yang dikirim harus berupa alamat variabel, bukan lagi nama variabel.
Ex_1: Mengirimkan data kesuatu fungsi dengan menggunakan pointer.
#include<stdio.h>#include<conio.h>void main(){
float a,b,c;float *p_c=&c;clrscr();
printf("input bilangan pertama :");scanf("%f",&a);printf("input bilangan kedua :");scanf("%f",&b);
jumlah(&a,&b,p_c) ;
printf("hasilkali kedua bilangan = %.3f",*p_c);getch();
}
C.MODUL TORBO C
jumlah(alm_a,alm_b,alm_c)float *alm_a,*alm_b,*alm_c;
{*alm_c=*alm_a**alm_b;
}
Ket: *alm_c=*alm_a**alm_b; disini turbo c langsung mengetahui bahwa tanda (*) mana yang berarti pointer dan mana yang berarti tanda kali.
Ex_2: Kombinasi antara pengguna variabel biasa dan pointer
#include<stdio.h>#include<conio.h>void main(){
float a,b,c;float *p_c=&c;clrscr;
printf("input bilangan pertama :");scanf("%f",&a);printf("input bilangan kedua :");scanf("%f",&b);
jumlah(a,b,p_c);
printf("/njumlah kedua bilangan = %.3f",p_c);getch();
}
jumlah(x,y,alm_c);float x,y,*alm_c;{
*alm_c=x+y;})
C.MODUL TORBO C
Ex: dua dimensi (pointer)
Main{
Float a[7][7];Float n;Int brs,kol;Int i,j;Lrscr();
Printf(“input jumlah elemen (max – 7) : “);Scanf(“%f”,&n);
For (i=0;j<n;++i){
Printf(“A[%d][%d]=”,i+1,j+1);Scanf(“%f”,*(a+i)+j);
}}
Clrscr();Printf(“\n\nelemen-elemen yang telah anda inputkan :”);For (i=0;i<n;++i){
Printf(”\n”);For (j=0;j<n;++j)
Printf(”%10.2f”,*(*(a+i)+j));}Getch()}
C.MODUL TORBO C
UNION
Bentuk perintah union mirip dengan struccture namun demikian fungsi serta arti kedua perintah ini berbeda. Union adalah bagian memori yang dapat menyimpan berbagai data dari tipe yang berbeda. Karna suatu bagian memori akan digunakan oleh beberapa jenis data yang berbeda maka penggunaan ini harus bergantian .
Ex :
#include"stdio.h"#include"conio.h"
union bil
{ int bil1; float bil2; double bil3; char bil4;} bilangan ;main(){ clrscr();/*cetak ukuran union printf("Ukuran dari union bil = %d\n",sizeof(union bil));
/*memberi nilai elemen union
bilangan.bil1=13; bilangan.bil2=15.45; bilangan.bil3=2e100; bilangan.bil4='a';
/*mencetak elemen union
printf("\nBilangan 1 : %d",bilangan.bil1); printf("\nbilangan 2 : %f",bilangan.bil2); printf("\nBilangan 3 : %lf",bilangan.bil3); printf("\nBilangan 4 : %c",bilangan.bil4); getch();}
C.MODUL TORBO C
NESTED UNION
Sama halnya dengan structur, union pun dapat digunakan sebagai elemen dari union atau elemen dari structur yang lain. Dapat juga sebaliknya yaitu union yang memiliki elemen yang berbentuk structur.Union yang memiliki element berbentuk structur ini akan banyak dijumpai dalam rom bios berikut contoh yang memiliki union yang berbentuk struktur :
#include"stdio.h"#include"conio.h"
/*mendefinisikan format struktur data
struct data{
char gol;float gaji;
};
/*struktur dalam unionunion testing{
double bil;struct data pegawai;
}coba;void main(){
clrscr();printf("ukuran dari union coba: %d\n",sizeof(union testing));
/*mengisi data stukturcoba.pegawai.gol='a';coba.pegawai.gaji=100000;
/*mencetak data stukturprintf("\ngolongan :%c",coba.pegawai.gol);printf("\ngaji :%f",coba.pegawai.gaji);
/*mengisi data unioncoba.bil=345.5678;
/*mencetak data union
C.MODUL TORBO C
printf("\n\nbilangan:%1f",coba.bil);getch();
}
Contoh : (Tugas)Biro perjalanan ANGKASA_Z bergerak dibidang biro perjalanan , hendak membuat sebuah program untuk menentukan pemesanan tiket pesawat terbang . Biro perjalanan ini hanya melayani empat tujuan penerbangan yaitu:
1.Jakarta Harga/Tiket 500002.Bali Harga/Tiket 1100003.Surabaya Harga/Tiket 1500004.Medan Harga/Tiket 65000
Ada suatu ketentuan yang berlaku dalam biro ini , yaitu bila pemesanan tiket dilakukan 10 hari atau lebih sebelum tanggal peberangkatan ,maka harga tiket akan didiskon10%.Bila sebagai input diinginkan :
Nama PemesanJumlah TiketTujuan(1/2/3/4)Tanggal PemesananTanggal Berangkat
Sebagai Output adalah Biaya yang harus dibayar
/*Program pemesanan tiket */
#include <stdio.h>#include <conio.h>#include <string.h>
#define kiri 10#define kanan 70#define atas 3#define bawah 20
struct pesan{
char nama[20];
C.MODUL TORBO C
int jml;int tujuan;int tg1,bl1,th1;int tg2,bl2,th2;float bayar;struct pesan *p_1jt;
} *ptr,*ptr_awal;long int k_tanggal();
void main(){
int n=0,i,tanggal[3],sls_hari;char jum[5],tj[2],jwb,tgl[12],*dummy;float atiket;long int nl_h_brk,nl_h_pesan;clrscr();
bingkai(KIRI,KANAN,ATAS,BAWAH);
gotoxy(KIRI+20,ATAS+1); printf("PROGRAM PEMESANAN TIKET");
ptr_awal=(struct pesan *) malloc (sizeof(struct pesan));do{
if(n==0)ptr=ptr_awal;
gotoxy(KIRI+35,ATAS+3); printf(" ");gotoxy(KIRI+35,ATAS+4); printf(" ");gotoxy(KIRI+35,ATAS+8); printf(" ");gotoxy(KIRI+35,ATAS+9); printf(" ");gotoxy(KIRI+35,ATAS+10); printf(" ");gotoxy(KIRI+35,ATAS+11); printf(" ");gotoxy(KIRI+35,ATAS+12); printf(" ");
gotoxy(KIRI+5,ATAS+3); printf("NAMA PEMESAN : ");gets(ptr->nama);if (strlen(ptr->nama)==0) break;
gotoxy(KIRI+5,ATAS+4); printf("JUMLAH TIKET :");gets(jum);ptr->jml=atoi(jum);
gotoxy(KIRI+5,ATAS+5);printf("TUJUAN YANG ADA:\n");gotoxy(KIRI+10,ATAS+6); printf("1. JAKARTA 3. SURABAYA");gotoxy(KIRI+10,ATAS+7); printf("2. BALI 4. MEDAN");
C.MODUL TORBO C
gotoxy(KIRI+5,ATAS+8); printf("TUJUAN (1/2/3/4) :");gets(tj);ptr->tujuan=atoi(tj);switch(ptr->tujuan){
case 1:atiket=50000;break;
case 2:atiket=11000;break;
case 3:atiket=15000;break;
case 4:atiket=65000;break;
}gotoxy(KIRI+5,ATAS+9);printf("TANGGAL PESAN (tg-bl-th) :");gets(tgl);dummy=strtok(tgl,".,-/");i=0;while(dummy!=NULL){
tanggal[i]=atoi(dummy);dummy=strtok(NULL,".,-/");i++;
}ptr->tg1=tanggal[0];ptr->bl1=tanggal[1];ptr->th1=tanggal[12];gotoxy(KIRI+5,ATAS+10);printf("TANGGAL BERANGKAT (tg-bl-th) :");gets(tgl);
dummy=strtok(tgl,".-/");i=0;while(dummy!=NULL){
tanggal[i]=atoi(dummy);dummy=strtok(NULL,".,-/");i++;
}ptr->tg2=tanggal[0];ptr->bl2=tanggal[1];ptr->th2=tanggal[2];
nl_h_pesan=k_tanggal(ptr->tg1,ptr->bl1,ptr->th1);nl_h_brk=k_tanggal(ptr->tg2,ptr->bl2,ptr->th2);sls_hari=nl_h_brk-nl_h_pesan;
C.MODUL TORBO C
if(sls_hari>=10)ptr->bayar=0.9*ptr->jml*atiket;
elseptr->bayar=ptr->jml*atiket;
gotoxy(KIRI+5,ATAS+11);printf("HARGA SATUAN TIKET :rp. %.2f",atiket);gotoxy(KIRI+5,ATAS+12);printf("BIAYA TIKET : rp. %.2f",ptr->bayar);gotoxy(KIRI+5,ATAS+14);printf("ADA DATA LAGI (Y/T) :");jwb=getche();if(jwb=='y'|| jwb=='y')
ptr->p_1jt=(struct pesan *)malloc (sizeof(struct pesan));else
ptr->p_1jt=(struct pesan *)NULL;ptr=ptr->p_1jt;
}while (jwb=='y'|| jwb=='y');getch();
}
bingkai(kiri,atas,kanan,bawah);{
int i;gotoxy(kiri,atas); printf("\xC9");for(i=1;i<kanan-kiri;++i)
printf("\xCD");printf("\xBB");for(i=atas+1;i<bawah-1;++i){
gotoxy(kiri,i);printf("\xBA");gotoxy(kanan,i);printf("\xBA");
}gotoxy(kiri,bawah-1); printf("\xCB");for(i=1;i<kanan-kiri;i++)
printf("\xCD");printf("\xBC");}
long int k_tanggal(t,b,y);int t,b,y;
{int y81=81;
C.MODUL TORBO C
int tahun,bulan=0,hari;int bln[12]={31,28,31,30,31,30,31,31,30,31,30,31};int i;tahun=(y-y81)*365+(((y-y81)/4));for (i=1;i<b;++i)
bulan+=bln[i-1];if((y%4)==0 && b>2);bulan++;hari=t;return(tahun+bulan+hari);
}
OUTPUT PROGRAM
======================success=========================