Anda di halaman 1dari 159

PERTEMUAN MINGGU 5

Konsep Dasar C
Sejarah C
Akar dari bahasa C adalah BPCL
yang dikembangkan oleh
Martin Richards pada tahun
1967, kemudian dikembangkan
menjadi bahasa B oleh Ken
Thompson pada tahun 1970.
Yang dikembangkan lebih lanjut
menjadi bahasa C oleh Dennis
Ritchie sekitar tahun 1970-an
di Bell Telephone Laboratories
Inc.
Alasan-alasan
Menggunakan Bahasa C
Bahasa C tersedia hampir di semua jenis komputer.
Kode bahasa C bersifat Portable.
Bahasa C hanya menyediakan sedikit Reserved Word,
keandalan C dicapai dengan fungsi-fungsi pustaka.
Proses Executable program dalam bahasa C lebih
cepat.
Dukungan pustaka yang banyak.
C merupakan bahasa terstruktur.
Selain bahasa tingkat tinggi, C juga dianggap sebagai
bahasa tingkat menengah.
C adalah bahasa kompiler.
Struktur Program C

Catatan: Bahasa C adalah bahasa yang Case Sensitive, huruf kecil


dibedakan dengan
huruf besar

Bentuk Umum:
main( )
{ awal program fungsi utama
statement;

} akhir program

fungsi_fungsi_lain( )
{
statement; fungsi-fungsi lain
}
Contoh Program
preprocessor
directive
# include <stdio.h>
main( ) header file

{
printf(Hello World);
}
Header file

Merupakan file yang berisi prototype (judul,nama dan


Sintaks) dari sekumpulan fungsi-fungsi pustaka tertentu,
sedangkan fungsi-fungsi pustakanya sendiri disimpan di
file pustaka (library file dengan extension .LIB)

Cara penulisannya adalah:

#include <nama header file>


Atau
#include nama header file
KONSEP TIPE DATA

C menyediakan 5 macam tipe data dasar, yaitu :

1. tipe data integer (numerik bulat dideklarasikan


dengan int)

2. floating point (numerik pecahan ketepatan tunggal


dideklarasikan dengan float)

3.double precision (numerik pecahan ketepatan


ganda dideklarasikan dengan double),

4. karakter (dideklarasikan dengan char)

5. kosong (dideklarasikan dengan void).


Tipe Data
TIPE
(Lanjutan...)
Lebar Jangkauan Nilai
int 16 bit - 32768 s/d 32767
signed int
short int
signed short int
unsigned int 16 bit 0 s/d 65535
unsigned short int
long int 32 bit - 2147483648 s/d 2147483649
signed long int
unsigned long int 32 bit 0 s/d 4294967296
float 32 bit 3.4E-38 s/d 3.4E+38
double 64 bit 1.7E-308 s/d 1.7E+308
long double 80 bit 3.4E-4932 s/d 3.4E+4932
char 8 bit - 128 s/d 127
Identifier Name
Merupakan nama yang dibuat oleh programmer
untuk pemberian nama variable, konstanta,
fungsi atau label. Identifier name bebas dibuat
dengan ketentuan sbb:
1. Panjang minimal 1 karakter, maksimal tidak
terbatas, tetapi hanya 32 karakter pertama
yang diperhatikan.
2. Karakter pertama harus berupa huruf atau
garis bawah.
3. Tidak diperbolehkan menggunakan karakter
khusus dan blank/spasi.
4. Case Sensitive, huruf besar dan kecil
dianggap beda.
Keyword
Bahasa C standar ANSI mempunyai
32 kata kunci dan turbo C
menambahkan 7 kata kunci.
Katakunci ini tidak dapat digunakan
sebagai
asm * nama
default variable
for atau nama
pascal * switch
fungsi. do
auto goto register typedef
break double huge * return union
case else if short unsigned
cdecl * enum int signed void
char extern interrupt * sizeof volatile
const far * long static while
Konstanta
Konstanta adalah suatu nilai yang tidak pernah berubah selama
proses program. Dibagi menjadi 4, yaitu :
a. Konstanta Numerik Integer
Merupakan nilai numerik bilangan bulat. Sesuai dengan tipe data
yang ada maka dapat berupa konstanta numerik integer
bertanda diberi tanda, integer tidak bertanda (diberi huruf u atau
U pada akhir nilainya), integer panjang bertanda (diberi huruf l
atau L diakhir nilainya) dan integer panjang tidak bertanda (diberi
huruf ul atau UL diakhir nilainya).
b. Konstanta numerik pecahan
Merupakan nilai numerik yang dapat mempunyai nilai pecahan
dibelakang titik desimal. Dapat bernilai ketepatan tunggal (float),
ketepatan ganda (double), atau ketepatan ganda panjang (long
double).
Konstanta (Lanjutan)
c. Konstanta Karakter dan String
Merupakan nilai sebuah karakter yang ditulis diantara tanda petik ganda. Pengertian karakter
disini meliputi huruf a-z atau A-Z, digit 0 9 karakter khusus dan karakter grafik.
d. Konstanta Karakter Escape
Escape character banyak digunakan di statemen-statemen untuk menampilkan hasil. Konstanta
karakter escape diawali dengan tanda \ .

Karakter Escape Fungsi


\a bunyi bel (bell atau alert)
\b mundur 1 spasi (backspace)
\f ganti halaman (form feed)
\n ganti baris baru (new line)
\r ke kolom pertama, baris yang sama (carriage
return)
\t tabulasi horisontal
\v tabulasi vertikal
Contoh Konstanta

char quest, newline, flags;


quest = '?';
newline = '\n';
flags = 077;
#define pi 3.14;

13
Variabel
Variables
Variable names correspond to locations
in the computer's memory
Every variable has a name, a type, a
size and a value
Whenever a new value is placed into a
variable (through scanf, for example), it
replaces (and destroys) the previous
value
Reading variables from memory does
integer1 45
not change them
A visual representation
14
Variabel

Variabel berfungsi untuk


menampung data sementara.
Variabel dapat menggunakan
berbagai tipe data

15
Contoh Variabel dan Tipe data

#include <stdio.h>
main( )
{
int a, b, c, sum; a = 1; b = 2; c = 3;
sum = a + b + c;
printf("sum is %d", sum);
}

16
Variabel Static
Kalau variabel statis bersifat internal, maka
variabel hanya dikenal oleh fungsi tempat
variabel dideklarasikan
Kalau variabel statis bersifat eksternal, maka
variabel dapat dipergunakan oleh semua fungsi
yang terletak pada file yang sama
Tempat variabel statis dideklarasikan Berbeda
dengan variabel lokal, variabel statis tidak akan
hilang sekeluarnya dari fungsi (nilai pada
variabel akan tetap diingat).
Inisialisasi akan dilakukan hanya sekali, yaitu
saat fungsi dipanggil yang pertama kali. Kalau
tak ada inisialisasi oleh pemrogram secara
otomatis akan diberi nilai awal nol 17
Contoh Variabel Static
#include <stdio.h>

void func() {
static int x = 0; // x is initialized only once across three calls of func()
printf("%d\n", x); // outputs the value of x
x = x + 1;
}

int main() {
func(); // prints 0
func(); // prints 1
func(); // prints 2
return 0;
}

18
Operator Bitwise
Seluruh data direpresentasikaan secara internal dalam untaian bit
(0 atau 1), sebanyak 8 bit dalam 1 byte
Operator Name Description
& bitwise AND The bits in the result are set to 1 if the
corresponding bits in the two operands are both 1.

| bitwise OR The bits in the result are set to 1 if at least one of


the corresponding bits in the two operands is 1.

^ bitwise exclusive OR The bits in the result are set to 1 if exactly one of the
corresponding bits in the two operands is 1.

<< left shift Shifts the bits of the first operand left by the number
of bits specified by the second operand; fill from
right with 0 bits.

>> right shift Shifts the bits of the first operand right by the
number of bits specified by the second operand; the
method of filling from the left is machine dependent.

~ Ones complement All 0 bits are set to 1 and all 1 bits are set to 0.
19
1 /* Fig. 10.9: fig10_09.c
2 Using the bitwise AND, bitwise inclusive OR, bitwise
3 exclusive OR and bitwise complement operators */
4 #include <stdio.h>
5 Contoh operator bitwise
6 void displayBits( unsigned );
7
8 int main()
9 {
10 unsigned number1, number2, mask, setBits;
11
12 number1 = 65535;
13 mask = 1;
14 printf( "The result of combining the following\n" );
15 displayBits( number1 );
16 displayBits( mask );
17 printf( "using the bitwise AND operator & is\n" );
18 displayBits( number1 & mask );
19
20 number1 = 15;
21 setBits = 241;
22 printf( "\nThe result of combining the following\n" );
23 displayBits( number1 );
24 displayBits( setBits );
25 printf( "using the bitwise inclusive OR operator | is\n" );
26 displayBits( number1 | setBits );
27
28 number1 = 139;
29 number2 = 199;
30 printf( "\nThe result of combining the following\n" ); 20
31 displayBits( number1 );
32 displayBits( number2 );
33 printf( "using the bitwise exclusive OR operator ^ is\n" );
34 displayBits( number1 ^ number2 );
35
36 number1 = 21845;
37 printf( "\nThe one's complement of\n" );
38 displayBits( number1 );
39 printf( "is\n" );
40 displayBits( ~number1 );
41
42 return 0;
43 }
44
45 void displayBits( unsigned value )
46 {
47 unsigned c, displayMask = 1 << 31; MASK created with only one set bit
48
i.e. (10000000 00000000)
49 printf( "%7u = ", value );
50
51 for ( c = 1; c <= 32; c++ ) {
52 putchar( value & displayMask ? '1' : '0' );
53 value <<= 1;
The MASK is constantly ANDed with value.
54
55 if ( c % 8 == 0 ) MASK only contains one bit, so if the AND
56 putchar( ' ' ); returns true it means value must have
57 }
that bit.
58
59 putchar( '\n' ); value is then shifted to test the next bit.
60 }
21
The result of combining the following
65535 = 00000000 00000000 11111111 11111111
1 = 00000000 00000000 00000000 00000001
using the bitwise AND operator & is
1 = 00000000 00000000 00000000 00000001
Program Output
The result of combining the following
15 = 00000000 00000000 00000000 00001111
241 = 00000000 00000000 00000000 11110001
using the bitwise inclusive OR operator | is
255 = 00000000 00000000 00000000 11111111

The result of combining the following


139 = 00000000 00000000 00000000 10001011
199 = 00000000 00000000 00000000 11000111
using the bitwise exclusive OR operator ^ is
76 = 00000000 00000000 00000000 01001100

The one's complement of


21845 = 00000000 00000000 01010101 01010101
is
4294945450 = 11111111 11111111 10101010 10101010

22
Bit Fields
Bit field
Member of a structure whose size (in
bits) has been specified
Enable better memory utilization
Must be declared as int or unsigned
Cannot access individual bits
Declaring bit fields
Follow unsigned or int member with a
colon (:) and an integer constant
representing the width of the field
Example:
struct BitCard {
unsigned face : 4;
unsigned suit : 2;
unsigned color : 1;
};
23
Bit Fields
Unnamed bit field
Field used as padding in the structure
Nothing may be stored in the bits
struct Example {
unsigned a : 13;
unsigned : 3;
unsigned b : 4;
}
Unnamed bit field with zero width
aligns next bit field to a new storage
unit boundary

24
Konversi
kompiler C mempunyai pedoman untuk
operand yang berbeda tipe :
1.Tipe char akan dikonversikan ke tipe int
2.Tipe float akan dikonversikan ke tipe double
3.Jenjang tertinggi adalah mulai dari long
double, double, long int, unsigned int, dan
int. ini berarti tipe double dioperasikan
dengan tipe int akan menghasilkan tipe
double.
Type Casting
Type casting dalam bahasa C berfungsi untuk meng-konversikan tipe data sementara.
Perhatikan contoh berikut :

int main(){
int X = 5;
float Y;
Y = X/2;
printf(%.1f, Y); //Akan tercetak 3.0 karena X bertipe integer
}

Untuk menghindari kesalahan hassil perhitungan maka dapat dilakukan type casting

int main(){
int X = 5;
float Y;
Y = float (X) /2; //Merubah tipe data X sementara menjadi float
printf(%.1f, Y); //Akan tercetak 3.5
}
PERTEMUAN MINGGU 6
MEMASUKKAN DATA
Memasukkan Data Tidak Terformat
Fungsi fungsi yang digunakan untuk
memasukkan data tidak terformat adalah fungsi
fungsi getch(), getche(), getchar(), gets().
Fungsi fungsi ini digunakan untuk memasukkan
nilai sebuah karakter atau nilai string.

Memasukkan Nilai Karakter


Fungsi getche(), getchar(), getch() masing
masing dapat digunakan untuk memasukkan data
sebuah karakter dari keyboard.
Jika nilai karakter yang diinginkan dimasukkan tanpa harus
diakhiri dengan penekanan tombol enter, maka fungsi
getche()
lebih tepat digunakan.

Jika nilai karakter yang diinginkan dimasukkan harus


diakhiri
dengan penekanan tombol enter, maka fungsi getchar()
lebih
tepat digunakan.

Jika pemasukkan sebuah karakter tanpa diakhiri


dengan penekanan tombol enter dan karakter yang
diketikkan
tidak tampak di layar monitor, maka fungsi getch() lebih
tepat
digunakan.
Contoh penggunaan fungsi getche()
#include <stdio.h>
#include <conio.h>
main()
{
char C;
printf(Masukkan Nilai Sebuah Karakter : );
C = getche();
Printf(\nNilai yang dimasukkan adalah :
%c\n,C);
}

Output program diatas :


Masukkan Nilai Sebuah Karakter : j
Nilai yang dimasukkan adalah : j
Contoh penggunaan fungsi getchar()
#include <stdio.h>
#include <conio.h>
main()
{
char C;
printf(Masukkan Nilai Sebuah Karakter : );
C = getchar();
Printf(\nNilai yang dimasukkan adalah :
%c\n,C);
}
Contoh pengunaan fungsi
getch()
#include <stdio.h>
#include <conio.h>
main()
{
char C;
printf(Masukkan Nilai Sebuah Karakter : );
C = getch();
Printf(\nNilai yang dimasukkan adalah : %c\n,C);
}
Contoh penggunaan fungsi gets()
#include <stdio.h>
main()
{
char S[50];
printf (Masukkan Nilai String : );
gets(S);
printf (Nilai string yang
dimasukkan adalah : %s\n,S);
}
Output program diatas
Masukkan Nilai String : bahasa
Nilai string yang dimasukkan
adalah : bahasa

Memasukkan Nilai String


Untuk memasukkan nilai string dapat digunakan
fungsi gets(). Fungsi gets() menggunakan
sebuah
argumen variabel string yang akan menerima
data yang dimasukkan
Memasukkan Data Terformat
Memasukkan data terformat berarti data yang
diterima akan diatur bentuk dan lebarnya
dengan
kode kode format. Fungsi yang digunakan
untuk memasukkan data terformat adalah fungsi
scanf(). Fungsi scanf() menggunakan kode
kode format untuk menunjukkan format dan tipe
dari data yang akan dimasukkan lewat keyboard.
MENAMPILKAN HASIL

Fungsi-fungsi untuk
menampilkan hasil di layar
prototypenya berada difile
judul stdio.h dan conio.h.
PUTS()
Digunakan untuk menampilkan nilai String dan sudah
mengandung Line Feed atau escape sequence ganti baris,
maka tidak perlu menggunakan \n

Contoh :
#include
Main()
{
puts(Bahasa C oke loch);
puts(Belajar bahasa C yuuuk);
}
PUTCHAR()
Digunakan untuk menampilkan sebuah karakter saja dan tidak
mengandung escape sequence (\n)

Contoh :
#include
Main()
{
Char a;
Printf (a= );
Scanf(%c,&a);
Printf(data yang dimasukan );
Putchar(\n);
Putchar(a);
}
PUTCHAR()
Pada putchar yang petama kita ingin membuat
program untuk ganti baris menggunakan \n. kita
menggunakan tanda petik tunggal () karena karakter
dalam program akan dikenal jika diberi tanda petik
tunggal. Fungsi putchar ini hanya bisa menampilkan
satu buah karakter saja sehingga apapun nilai yang
kita masukkan hanya karakter pertama yang akan
ditampilkan.

Berikut tampilan programnya :


a = 12
Data yang anda masukkan
1
PUTCH()
Fungsi putch(int x) akan menampilkan karakter ASCII dari nilai x ke layar
monitor tanpa memindahkan letak kursor ke baris berikutnya.
Contoh :
#include <stdio.h>
#include <conio.h>
main(void)
{
char kata1[10]="Algoritma", kata2[12]="Pemrograman";
char kar1 = '1', kar2= 'A';;
int kode= 165;
puts(kata1); /* hanya dapat menampilkan 1 argumen, jika menggunakan
statemen
puts(kata2); puts(kata1, kata2); akan menimbulkan kesalahan */
putchar(kar1);
putchar(kar2); /* putchar(kar1, kar2); akan menimbulkan kesalahan */
putch(kode); /* akan menampilkan karakter ASCII dari nilai 165 */
return 0;
}
HASIL tidak TERFORMAT
Untuk menampilkan hasil tidak
terformat, fungsi-fungsi yang di
digunakan adalah putchar() dan
puts().

HASIL TERFORMAT
Untuk menampilkan hasil terformat
digunakan fungsi printf().
KODE-KODE FORMAT UNTUK FUNGSI PRINTF

%c untuk menampilkan sebuah karakter


%s untuk menampilkan nilai string
%d untuk menampilkan nilai desimal integer
%i untuk menampilkan nilai desimal integer
%u menampilkan nilai desimal integer tidak bertanda
%x untuk menampilkan nilai heksa desimal integer
%o untuk menampilkan nilai oktal integer
%f untuk menampilkan nilai pecahan
%e untuk menampilkan nilai pecahan dalam notasi scientific
%g sebagai pengganti %f atau %e tergantung mana yang
terpendek
%p untuk menampilkan suatu alamat memori untuk pointer
KODE-KODE FORMAT UNTUK FUNGSI Scanf()
Kode Format Keterangan
%c Membaca sebuah karakter
%d Membaca sebuah nilai integer desimal
%i Membaca sebuah nilai integer desimal
%h Membaca sebuah nilai short integer desimal
%e Membaca sebuah data pecahan
%f Membaca sebuah data pecahan
%g Membaca sebuah data pecahan
%s Membaca sebuah data string
%o Membaca sebuah nilai oktal
%x Membaca sebuah nilai heksadesimal
Pengaturan Cursor
Instruksi Penempatan Layar
Tampilan di layar merupakan salah satu keluaran dari sebuah program.
Layar monitor pada umumnya memiliki ukuran 25 baris dan 80 kolm
dalam bentuk teks. Posisi baris pertama dan kolom pertama berada di
pojok kiri atas. Pada bahasa C khususnya kompiler Borland, fungsi-
fungsi untuk mengatur penempatan kursor berada pada file header
conio.h.
void gotoxy (int x, int y);
fungsi gotoxy digunakan untuk memindahkan kursor ke kolom x,
baris y.
int wherex (void);
fungsi wherex digunakan untuk mengembalikan posisi kolom kursor.
int wherey (void);
Pembersihan Layar
Instruksi Pembersihan Layar
Untuk pembersihan layar dapat digunakan fungsi
clrscr( ) dan clreol( ). Kedua fungsi ini terdapat pada
file header conio.h.
void clrscr(void);

Fungsi ini digunkan untuk membersihkan layar window


dan memindahkan posisi kursor ke baris 1 kolom 1
(pojok kiri atas).
void clreol(void);

Fungsi ini digunakan untuk membersihkan layar mulai


dari posisi kursor hingga kolom terakhir, posisi kursor
tiak berubah.
Pertemuan Minggu ke 7

OPERATOR
OPERATOR
HUBUNGAN

Operator Keterangan
< Lebih kecil dari
<= Lebih kecil atau sama dengan
> Lebih besar dari
>= Lebih besar atau sama dengan
== Sama dengan
!= Tidak sama dengan
Contoh Penggunaan Operator
OPERATOR
LOGIKA

Operator Keterangan
&& Logika DAN (AND)
!! Logika ATAU (OR)
Hubungan Logika dan Hasilnya

X Y X && Y X !! Y !X
1 1 1 1 0
1 0 0 1 0
0 1 0 1 1
0 0 0 0 1
OPERATOR
PENGERJAAN

Operator Contoh Keterangan


= A= B + C Mengerjakan B + C ke A
+= A += 1 A= A+ 1
-+ A -+ B A= A B
*= A *= B A= A* B
/= A /= B A= A/ B
%= A %= B A= A% B
OPERATOR
ARITMATIKA

Operator Keterangan
* Perkalian
/ Pembagian
% Pembagian modulus (sisa pembagian)
+ Pertambahan
- Pengurangan
Contoh Soal Penggunaan Operator Aritmatika

#include stdio.h
#include conio.h
void main()
{ clrscr(); // untuk membersihkan layar
printf(Nilai dari 9 + 4 = %i, 9 + 4); /* mencetak
hasil 9 + 4 */
printf(Nilai dari 9 - 4 = %i, 9 - 4); /* mencetak
hasil 9 - 4 */
printf(Nilai dari 9 * 4 = %i, 9 * 4); /* mencetak
hasil 9 * 4 */
printf(Nilai dari 9 / 4 = %i, 9 / 4); /* mencetak
hasil 9 / 4 */
printf(Nilai dari 9 \% 4 = %i, 9 % 4); /* mencetak
hasil 9 % 4 */
getch();
}
OPERATOR
UNARY

Operator Keterangan
- Unary minus
++ Peningkatan dengan penambahan nilai 1
-- Penurunan dengan pengurangan nilai 1
(tipe) Cast
Sizeof Ukuran dari operan dalam byte
! Unary NOT
~ Operator unary komplemen satu (bitwise NOT)
& Menghasilkan alamat memori operand (operator pointer)
* Menghasilkan nilai pengenal di alamatnya (operator
pointer)
OPERATOR
BITWISE

Operator Keterangan
<< Pergeseran bit ke kiri
>> Pergeseran bit ke kanan
& Bitwise AND
^ Bitwise XOR
| Bitwise OR
Contoh Soal

/* Perbedaan operator peningkatan ++ yang


diletakkan di depan dan dibelakang operand */
#include <stdio.h>
#include <conio.h>
void main()
{
int x, nilai;
clrscr();
x = 5;
nilai = ++x; /* berarti x = x + 1; nilai = x; */
printf("nilai = %d, x = %d\n", nilai, x);
nilai = x++; /* berarti nilai = x; nilai = x + 1; */
printf("nilai = %d, x = %d\n", nilai, x);
getch();
}
OPERASI KARAKTER DAN STRING

A. OPERASI KARAKTER
- Mempunyai lebar nilai 1 byte.
- Konstanta karakter ditulis dengan tanda petik
tunggal.
- Varible karakter dideklarasikan dengan
menggunakan kata kunci char.
- Operasi Karekter ini berada di file pustaka ctype.h
- Dikelompokkan menjadi dua, yaitu yang pertama
adalah untuk menyeleksi status dari suatu nilai
karakter. Yang kedua adalah mengonversikan
suatu nilai karakter.
B. OPERASI STRING

- Nilai suatu string adalah kumpulan dari


nilai
nilai karakter yang berurutan dalam larik
dimensi satu.
- Suatu nilai string disimpan di memori
dengan diakhiri oleh tanda \0 (null).
Artinya, akhir nilai dari suatu string
dapat di
deteksi.
Contoh Soal Penggunaan Operator Relational
Pertemuan 8

Percabangan &
Perulangan
Statemen if
Statemen if digunakan untuk memilih di antara satu atau
lebih kondisi/alternatif
Contoh:
if ( grade >= 60 ) {
printf( "Passed\n" );
} /* end if */
Flowchart statemen if tunggal
Statemen if ... else
Statemen ifelse memungkinkan Anda untuk menentukan
tindakan yang berbeda harus dilakukan ketika kondisi benar
daripada ketika kondisi salah

Contoh:
if ( grade >= 60 ) {
printf( "Passed\n" );
} /* end if */
else {
printf( "Failed\n" );
} /* end else */
Switch
Switch adalah statemen dalam bahasa C yang fungsinya sama
dengan if (yaitu untuk melakukan sebuah proses berdasar
kondisi tertentu), namun dengan banyak kondisi (multi
kondisi).
Terdiri dari serangkaian label case, sebuah default case dan
pernyataan untuk melaksanakan untuk setiap case.
Bentuk umum:
switch(kondisi) {
case konstanta1:
statement;
break;
case konstanta2:
statement;
break;
.
.
deafault:
statement;
}
Seleksi Multi kondisi
Bahasa C menyediakan operator logika
yang dapat digunakan dalam seleksi
dengan multi kondisi.
Operator yang digunakan:
&& (logika AND)
|| (logika OR)
! (logika NOT atau negasi)
Contoh:
Seleksi bertingkat
Seleksi bertingkat dapat digunakan dengan
meletakkan statemen if ... else di dalam statemen
if ... else
Contoh:
if ( grade >= 90 )
printf( "A\n" );
else if ( grade >= 80 )
printf( "B\n" );
else if ( grade >= 70 )
printf( "C\n" );
else if ( grade >= 60 )
printf( "D\n" );
else
printf( "F\n" );
Struktur Kendali
Perulangan
-for ( ), while ( ), do while ( )
- break, continue
- pengulangan bertingkat
Counter pada
Perulangan
Terdiri dari :
- Nama dari variabel kontrol
- Nilai yang diberikan untuk variabel
kontrol
- Penjumlahan atau pengurangan pada
nilai variabel kontrol untuk melakukan
pengulangan
- Kondisi yang menentukan sampai
berapa kali pengulangan dilakukan.
Flowchart Perulangan
Statement For ( )
Bentuk Umum :

- Ekspression 1 :
Nama varibel kontrol
- Ekspression 2 :
Kondisi perulangan
- Ekspression 3 :
Penjumlahan dan pengurangan nilai
dari variabel kontrol
Statement For ( )
Contoh :
Statement While ( )
Bentuk Umum :

- Ekspression 1 :
Nama varibel kontrol, diakhiri dengan tanda
titik koma (;)
- Ekspression 2 :
Kondisi perulangan
- Ekspression 3 :
Penjumlahan dan pengurangan nilai dari
variabel kontrol. Diakhiri dengan tanda titik
Statement While ( )
Contoh :
Statement Do While ( )
While ( ) : kondisi diperiksa pada awal
sebelum dilakukan perintah-perintah
yang akan dilakukan pada perulangan.

Do While ( ) : kondisi diperiksa setelah


perintah-perintah pada perulangan
dilakukan, sehingga jika kondisi tidak
terpenuhi tetap ada satu (1)
perulangan yang dilakukan.
Statement Do While ( )
Bentuk Umum :

Contoh :
Statement Break
The break and continue statements are
used to alter the flow of control.
The break statement,when executed in a
while, for, dowhile or switch statement,
causes an immediate exit from that
statement.
Program execution continues with the next
statement. Common uses of the break
statement are to escape early from a loop
or to skip the remainder of a switch
statement.
Statement Break
Contoh :
Statement Continue
The continue statement, when executed in a while, for
or dowhile statement, skips the remaining
statements in the body of that control statement and
performs the next iteration of the loop.
In while and dowhile statements, the loop-
continuation test is evaluated immediately after the
continue statement is executed.
In the for statement, the increment expression is
executed, then the loop-continuation test is evaluated.
Earlier, we said that the while statement could be used
in most cases to represent the for statement. The one
exception occurs when the increment expression in the
while statement follows the continue statement.
Statement Continue
Contoh :
Preprosessor Function

Pertemuan Minggu 9
Pendahuluan
C preprocessor mengeksekusi sebelum program
dikompilasi.
Beberapa tindakan yang dilakukan adalah
memasukkan file lain dalam file yang sedang
dikompilasi, mendefinisikan konstanta simbolik
dan
macro, kompilasi bersyarat dari kode program dan
pelaksanaan bersyarat dari pengarah
preprocessor.
Pengarah Preprocessor dimulai dengan # dan
hanya karakter white-space dan komentar bisa
muncul sebelum sebuah pengarah preprosesor
pada satu garis.
Pengarah Preprosessor :
#include
Preprosessor Direktif #include
menyebabkan sebuah salinan dari
file tertentu ditempatkan pada suatu
pengarah.
Bentuk dari #include adalah :
#include <namafile>
#include namafile
Pengarah Preprosessor :
#include
Bentuk #include <namafile>
mengisyaratkan bahwa pencarian file
dilakukan pada direktori khusus (direktori
file include ).
Bentuk #include namafile
menyatakan bahwa pencarian file
dilakukan pertama kali pada direktori aktif
tempat program sumber dan seandainya
tak ditemukan pencarian akan dilanjutkan
pada direktori lainnya yang sesuai dengan
perintah pada sistem operasi, yaitu PATH.
Pengarah Preprosessor :
#include
#include biasanya digunakan untuk menyertakan
header programmer-didefinisikan.
Jika nama file terlampir dalam kurung sudut
(<dan>)-digunakan untuk header library standar
# include digunakan untuk menyertakan header
library standar seperti stdio.h dan stdlib.h dan
dengan program yang terdiri dari beberapa file
sumber yang harus
dikompilasi bersama-sama.
Sebuah header yang berisi deklarasi umum untuk
program yang terpisah file ini sering dibuat dan
dimasukkan dalam file.
Contoh deklarasi tersebut struktur dan serikat
deklarasi, enumerations dan prototipe fungsi.
Contoh
Contoh 1 :
//my first program in C++
#include <iostream.h>
int main()
{ cout << Selamat pagi dunia!;
return 0;
}

Hasil :
Selamat pagi dunia!
Penjelasan
#include <iostream.h>
#include <iostream.h> indikasi
untuk menyertakan header file
standard iostream, termasuk I/O
dalam C++
Pengarah Preprosessor :
#error
Bentuk Umum
#error tokens
Menampilkan sebuah pesan
termasuk token yang ditentukan
dalam pengarah.
Tokens adalah serangkaian karakter
yang dipisahkan oleh spasi.
Contoh
#error 1 Out of range error
Terdiri dari 6 token.
Ketika #error directive diproses pada
sistem, token dalam pengarah akan
menampilkan sebuah pesan
kesalahan, pemberhentian
preprocessing dan program tidak
dikompilasi.
Pengarah Preprocessor:
#pragma
Bentuk umum :
#pragma tokens
Penggunaan #pragma menyebabkan
sebuah aksi dari implementation-
defined.
Pragma yang tidak dikenali sebagai
sebuah implementation akan
diabaikan.
PERTEMUAN MINGGU 10
DEFINISI FUNGSI
Adalah suatu bagian dari program yang
dimaksudkan untuk mengerjakan suatu tugas
tertentu dan letaknya dipisahkan dari bagian
program yang menggunakannya.
Fungsi dalam bahasa C adalah subprogram.
Fungsi minimal yang harus ada didalam
suatu
program adalah main() dan muncul hanya
sekali.
SIFAT DAN MANFAAT FUNGSI
1. Fungsi menjadikan Program Bahasa C
mempunyai struktur yang jelas.
2. Fungsi dapat digunakan untuk menghindari
penulisan yang sama yang ditulis secara
berulang-ulang.
3. Setiap fungsi memiliki tingkatan yang sama
dan berdiri sendiri.
4. Turbo C tidak membedakan fungsi yang
menghasilkan nilai (fungsi) dan fungsi yang
menghasilkan data (prosedur).
BENTUK UMUM FUNGSI
tipe nama-fungsi(argumen1, argumen2)
{
deklarasi variable lokal
statement-statement tubuh fungsi
return (ungkapan)
}

Contoh:
Int Fungsi_ku(float A, int B, char C)
HASIL BALIK FUNGSI

Fungsi yang tidak memberikan hasil balik


adalah fungsi yang mempunyai tipe hasil
void.
Jika suatu fungsi memberikan hasil balik,
maka nilai hasil balik yang diberikan oleh
fungsi dapat dilakukan oleh statement
return yang diikuti oleh nilai hasil
baliknya yang ditulis dalam tanda kurung.
CONTOH PROGRAM
Yang TIDAK memberikan Nilai Balik:

#include <stdio.h>
void Tampil(char *String, int Jumlah);
main()
{
Tampil(Bahasa C \n,3);
}
Void Tampil(char *String, int N)
{
int I;
for(I=1; I<=N; I++) printf(String);
}
OUTPUT
Jika program ini dijalankan, maka
akan menampilkan nilai stringnya
sebanyak 3 kali, sbb:

Bahasa C
Bahasa C
Bahasa C
Yang memberikan Nilai Balik:
#include <stdio.h>
Long int Faktorial(int N);
Main()
{
int I;
long int Fak;
printf(Berapa Faktorial ? ); scanf(%d, &N);
Fak = Faktorial(N);
printf(%d faktorial = %d \n,N,Fak);
}
Long int Faktorial(int N)
{
int I; long int F=1;
if(N<=0)
return(0);
for(I=2; I<=N; I++) F*=I;
return(F);
Statemen yang
}
menghasilkan nilai balik
RUANG LINGKUP VARIABLE

I. Variable Lokal
Merupakan variable yang nama dan nilainyahanya
dikenal di suatu blok statemen tertentu saja di dalam
suatu fungsi.

II. Variable Global


merupakan variable yang dikenal di semua bagian-
bagian tertentu dari program. Dideklarasikan di luar
suatu blok statemen atau di luar fungsi-fungsi yang
menggunakannya.

III. Variable Statik


bersifat tetap, yaitu tidak dapat dihapus variable dan
nilainya selama proses dari program. Dapat bersifat lokal
dan global, tergantung letak dimana variable ini
dideklarasikan.
PENGIRIMAN PARAMETER
Pengiriman Parameter ke suatu fungsi
terdapat 2 cara, yaitu:
Pengiriman secara nilai (by value)
Pengiriman secara acuan (by reference)
PENGIRIMAN PARAMETER SECARA
NILAI
Karakteristiknya:
- Yang dikirimkan ke fungsi adalah nilai dari datanya,
bukanya alamat memori letak dari datanya.
- Fungsi yang menerima kiriman nilai in iakan
menyimpannya di alamat terpisah dari nilai aslinya yang
digunakan oleh bagian program yang memanggil fungsi.
- Perubahan nilai di fungsi aslinya tidak akan merubah
nilai asli di bagian program yang memanggil fungsi
walaupun keduanya memanggil nama variable yang
sama.
- Pengiriman ini adalah searah, yaitu dari bagian program
yang memanggil fungsi ke fungsi yang dipanggil.
- Pengiriman nilai dapat dilakukan untuk suatu ungkapan,
tidak hanya untuk sebuah variable atau elemen larik
atau konstanta saja.
PENGIRIMAN PARAMETER SECARA
ACUAN
Karakteristiknya:
- Yang dikirim ke fungsi adalah alamat letak dari nilai
datanya, bukan nilai datanya.
- Fungsi yang menerima kiriman alamat ini akan
menggunakan alamat yang sama untuk mendapatkan nilai
datanya.
- Perubahan nilai di fungsi akan merubah nilai asli di bagian
program yang memanggil fungsi.
- Pengiriman ini secara dua arah, yaitu bagian program yang
memanggil fungsi ke fungsi yang dipanggil dan sebaliknya.
- Pengiriman secara acuan tidak dapat dilakukan untuk
suatu ungkapan, hanya untuk sebuah variable atau
elemen larik atau konstanta saja.
MACAM-MACAM PENGIRIMAN
PARAMETER
1. Pengiriman Parameter Berupa Larik
- Larik Dimensi Satu
- Larik Dimensi Dua
2. Pengiriman Parameter Berupa
Pointer
3. Pengiriman Parameter Berupa
Fungsi
REKURSI
Adalah suatu proses dari fungsi yang
memanggil dirinya sendiri secara
berulang-ulang.
Karena proses dilakukan berulang-ulang,
maka harus ada suatu kondisi yang
mengakhiri prosesnya, jika tidak maka
proses tidak akan pernah berhenti sampai
memori yang digunakan tidak mampu
menampungnya lagi.
CONTOH PROGRAM
#include <stdio.h>
Void Berhenti(int N);
Main ()
{
int N;
N = 3;
Berhenti(N);
}
Void Berhenti(int N)
{
static int I=0;
if (N<=0) return;
printf(%d kali \n,++I);
Berhenti(N-1);
}
OUTPUT
Jika program dijalankan, akan
menghasilkan:

1kali
2kali
3kali
PENJELASAN OUTPUT :
Program ini mempunyai kondisi
pengakhiran rekursi, yaitu jika nilai N
sudah lebih kecil atau sama dengan
nol.

Setiap kali fungsi memanggil dirinya


sendiri, nilai N dikurangi dengan nilai
1, sehingga N akhirnya akan menjadi
nol dan proses rekursi akan diakhiri,
sehingga fungsi ini akan memanggil
dirinya sendiri sebanyak N kali.
Pertemuan Minggu 11

Array (Larik)
Array
Adalah kumpulan dari nilai-nilai data bertipe
sama dalam urutan tertentu yang
menggunakan
sebuah nama yang sama.

Larik dapat berdimensi satu, dua, tiga atau


lebih.
Dimana masing-masing mempunyai bentuk-
bentuk yang mewakilinya.
Array
int A[10]
Array yang terdiri dari 10 integer
A[0], A[1], , A[9]
double B[20]
Array yang terdiri dari 20 long floating point
B[0], B[1], , B[19]

Array juga dapat bertype :structs,


unions, pointers, etc.,
Indeks array dimulai dari : 0
Array 1 Dimensi
Nama variable

index
Array 1 Dimensi
Mendefinisikan :
intc[12];
intb[100],x[27];
Inisialisasi array :
Int n[5] = {1,2,4,5,6};
Int n[10]={0} : semua nilai pada
n[0],n[1],,n[9] = 0.
Int n[ ]={11,22,23,25} : membentuk
array dengan 5 element dengan nilai
yang telah ditentukan.
Contoh Program : Inisialisasi Array
menggunakan Looping
Output
Contoh Program : Menghitung frekuensi
Output
Array 2 Dimensi

Inisialisasi :
Int b [2] [2] = { { 1,2}, {3,4} }
Inisialisasi diatas akan menghasilkan :
b[0][0] = 1, b[0][1] = 2, b[1][0] = 3, b[1][1] =
4.
Contoh : Mencetak nilai array
Lanjutan ..
Output
Pertemuan 12

Pointer
Pointer
Suatu pointer (variabel penunjuk)
adalah suatu variabel yang berisi
dengan alamat lokasi suatu memori
tertentu.
Operator * digunakan untuk mendapatkan
nilai dari operandnya. Operand untuk
operator * adalah variabel pointer.
Operator & digunakan untuk mendapatkan
alamat memori dari operandnya.
Pointer
Contoh :
inty=5;
int*yPtr;
yPtr=&y;
Pointer
Contoh Program : Basic Pointer
Output
Pointer to Function
Pointer to function berisi alamat dari sebuah fungsi di dalam
memori

Sintak:
return_type (* nama_pointer)(parameter);

Contoh:
int (*compare)(int a, int b);
Artinya: compare adalah nama pointer to function, yang
menunjuk sebuah fungsi yang mengembalikan nilai tipe integer,
dan fungsi tersebut mempunyai 2 parameter bertipe integer

Perhatikan bedanya dengan deklarasi dibawah:


int compare (int a, int b);
Artinya: compare adalah nama fungsi yg mengembalikan tipe
integer dan mempunyai 2 parameter bertipe integer
Contoh
#include <stdio.h>
int fungsi1(int a);
int fungsi2(int b);

int main()
{
int x;
int(*f)(int);
f=fungsi1;
x=(*f)(3);
printf("x=%d\n",x);
f=fungsi2;
x=(*f)(13);
printf("x=%d\n",x);
getch();
return(0);
}

int fungsi1(int a)
{
a++;
return a;
}

int fungsi2(int b)
{
b = b * b;
return b;
}
Pointer & Array
bPtr=&b[0];
Mengambil alamat memory pada
elemen pertama pada variable b.
*(bPtr+3);
Elemen ke 3 pada variable array b (b[3])
dapa direferensi dengan sintaks diatas.
Contoh Pointer & Array
Output
Contoh
Output
PERTEMUAN MINGGU 13
STREAM
Supaya data yang di-key-in melalui
keyboard tidak hilang (saat komputer
dimatikan) maka perlu disimpan ke dalam
secondary storage device sebagai file data
Stream ialah kumpulan karakter yang
disusun dalam baris-baris yang berpindah
dari satu media ke media lain pada sistem
komputer. Semua data masukan dan
keluaran berupa stream. Bahasa C
memperlakukan file sebagai stream.

136
STREAM
Saat program C dijalankan maka tiga buah
stream standar OTOMATIS diaktifkan:
1. Standard Input Stream, mengatur aliran data
masukan melalui ketikan keyboard
2. Standard Output Stream, mengatur aliran
data keluaran ke layar monitor
3. Standard Error Stream, mengatur tampilan
pesan kesalahan ke layar monitor
Masing-masing stream berasosiasi dengan
sebuah file.
137
FILE
Definisi File
File adalah kumpulan record
Record adalah kumpulan field
Field kumpulan byte
Byte dalah kumpulan bit

138
FILE
Operasi membuka (mengaktifkan) sebuah file
mengakibatkan sebuah POINTER dikembalikan
kepada instruksi pemanggil. Pointer ini menunjuk
ke sebuah struktur data bertipe FILE yang sudah
didefinisikan
Standard inputdi stdio.h stdin
stream stdout
Standard output stderr
stream
Standard error
streamstream File pointer

139
FILE
typedef struct {
int level; // fill/empty level of
buffer
unsigned flags; // File status flags
char fd; // File descriptor
unsigned char hold; // Ungetc char if no buffer
int bsize; // Buffer size
unsigned char *buffer; // Data transfer buffer
unsigned char *curp; // Current active pointer
unsigned istemp; // Temporary file indicator

short token; //Used for validity


checking
} FILE; FILE *filepointer;

140
TIPE FILE
TEXT FILE
berkas yang disimpan dalam format teks. Biasanya
diistilahkan dengan FILE ASCII.
besarnya storage penyimpanan disesuaikan
dengan jumlah angka bilangan: 10000 perlu 5 byte
isi file dapat dibaca dengan menggunakan editor
teks
isi file dapat dibaca dengan c:>TYPE namafile

BINARY FILE
menyimpan data numerik dalam format yang tetap
sesuai ketentuan micro-processor (misanya dengan
format sign-magnitude 2s complement), tidak
bergantung pada jumlah digit bilangan.

141
BUFFER AREA
Buffer area adalah bagian dari memori
yang digunakan sebagai tempat
penampungan sementara sebelum data
dipindahkan ke file.
Sintaks pembentukan buffer area
FILE *fp;
Dimana fp adalah variabel file pointer
yang digunakan untuk menunjuk awal
buffer area.
Dikenal juga dengan nama stream pointer.
142
MEMBUKA FILE
Untuk membuka file digunakan fungsi
fopen(), sintak sbb:
FILE *fopen( const char *filename, const char *mode
);

Fungsi fopen() didefinisikan di <stdio.h>


Fungsi fopen() mengembalikan pointer ke
awal buffer area. Nilai null dikembalikan jika
berkas tidak dapat dibuka.

143
MEMBUKA FILE
Nilai mode operasi yang mungkin adalah
Mode Makna
r Membuka file utuk dibaca.
w Membentuk file baru untuk ditulisi.
a Membuka file untuk tambah data.
r+ Membuka file untuk dibaca/ditulisi.
w+ Membentuk file untuk dibaca/ditulisi.
a+ Membuka file untuk dibaca dan ditambah
isinya
rb Membuka file biner untuk dibaca
wb Membentuk file biner untuk ditulid

144
MENUTUP FILE
File ditutup dengan menggunakan fungsi fclose(),
sintak :
int fclose( FILE *stream );

Fungsi fclose() didefinisikan di <stdio.h>


Fungsi fclose() akan mengembalikan nilai 0 jika
sukses, dan EOF jika error
EOF (End Of File) nilainya -1
Fungsi fclose() akan membebaskan buffer agar dapat
digunakan oleh file lain dan mengirim data yang
masih tertinggal di buffer agar segera dikirim ke file.

145
MENUTUP FILE
Fungsi fcloseall() dengan sintak :

int fcloseall (void);

Function ini menutup seluruh stream yang aktif


KECUALI stdin, stdout, stdprn, stderr, dan stdaux.

Apabila proses berhasil maka dikembalikan


bilangan yang menyatakan jumlah stream yang
berhasil ditutup. Apabila terjadi kesalahan maka
dikembalikan EOF.

Header file (stdio.h>

146
FUNGSI INPUT - OUTPUT
FILE
fgetc
Membaca satu karakter dari file
fgetc( stdin ) ekuivalen dengan getchar()
Sintak : int fgetc( FILE *stream );
Mengembalikan karakter yang dibaca jika sukses,
dan mengembalikan EOF jika error

fputc
Menulis satu karakter ke file
fputc( 'a', stdout ) ekuivalen dengan putchar( 'a' )
Sintak: int fputc( int c, FILE *stream );
Mengembalikan karakter yang ditulis jika sukses,
dan mengembalikan EOF jika error

147
FUNGSI INPUT - OUTPUT
FILE
fgets
Sintak: char *fgets( char *string, int n, FILE *stream );
Membaca satu baris dari file yang diakhiri dengan new
line, atau maximum n-1 karakter
Mengembalikan string jika sukses dan mengembalikan
NULL jika error

fputs
Menulis satu baris ke file
Sintak: int fputs( const char *string, FILE *stream );
Mengembalikan nilai non-negatif jika sukses, dan
mengembalikan EOF jika error

148
FUNGSI INPUT - OUTPUT
FILE
fscanf
Sintak: int fscanf( FILE *stream, const char *format [, argument
]... );
Membaca data dari file dengan format sesuai dengan format
scanf.
Mengembalikan nilai yang menyatakan jumlah field yang
sukses dibaca, dan mengembalikan EOF jika error

fprintf
Sintak: int fprintf( FILE *stream, const char *format [, argument
]...);
Menulis data ke file dengan format sesuai dengan format printf.
Mengembalikan nilai yang menyatakan jumlah byte yang
sukses ditulis, dan mengembalikan nilai negatif jika error

149
FUNGSI INPUT - OUTPUT
FILE
fwrite
Sintak: size_t fwrite( const void *buffer, size_t size, size_t count,
FILE *stream );
Menulis satu block data yg ada di buffer ke file
Mengembalikan jumlah byte data yang ditulis jika sukses, dan
error jika return value nya lebih kecil dari size data yang ditulis
fread
Sintak: size_t fread( void *buffer, size_t size, size_t count, FILE
*stream );
Membaca satu block data sebesar size dari file
feof
Sintak : int feof( FILE *stream );
Untuk ngetest apakah posisi pointer sudah di end-of-file
Mengembalikan 0 jika belum end-of-file

150
FUNGSI INPUT - OUTPUT
FILE
Contoh :
fwrite( &mhs, sizeof( mhs ), 1, fp );

&mhs = lokasi asal data


sizeof( mhs ) = mengembalikan nilai ukuran
dari mhs
1 => 1 kali write sebesar sizeof(mhs)
fp = file pointer

151
FILE : CONTOH
CONTOH :
#include <stdio.h>
void main( void ) {
FILE *stream;
char *p, buffer[] = "This is the line of output\n";
int ch; ch = 0;
stream = stdout;
for( p = buffer; (ch != EOF) && (*p != '\0'); p++ )
ch = putc( *p, stream );
}
Output:
This is the line of output

152
FILE : CONTOH
Contoh program untuk membaca file fgetc.c
#include <stdio.h>
int main(void)
{
char ch; FILE *fp;
fp=fopen("fgetc.c","r");
if(fp==NULL){
printf("File fgetc.c tidak bisa dibuka\n"); exit(1);
}
while(!feof(fp)){
ch=fgetc(fp); printf("%c",ch);
}
fclose(fp);
return 0;
}

153
FILE : CONTOH
Contoh menulis string ke file test.txt dengan fputc

#include <stdio.h>
int main(void)
{
FILE *fp; int i;
char ss[80]="Kalimat ini disimpan ke file test.txt dengan fputc";
fp=fopen("test.txt","w");
if(fp==NULL){
printf("File test.txt tidak bisa create\n"); exit(1);
}
for(i=0; i<strlen(ss); i++) fputc(ss[i], fp);
fclose(fp);
return 0;
}
154
FILE : CONTOH
Contoh membaca file fgets.c dengan fgets
#include <stdio.h>
int main(void)
{
FILE *fp;
char ss[80];
fp=fopen("fgets.c","r");
if(fp==NULL){
printf("File fgets.c tidak bisa di open\n"); exit(1);
}
while(fgets(ss, 80, fp)) printf("%s",ss);
fclose(fp);
return 0;
}

155
FILE : CONTOH
Contoh menulis string ke file test.txt dengan fputs
#include <stdio.h>
int main(void)
{
FILE *fp;
char ss[80]="Kalimat ini ditulis ke file test.txt dengan fputs";
fp=fopen("test.txt","w");
if(fp==NULL){
printf("File test.txt tidak bisa di create\n");
exit(1);
}
fputs(ss, fp);
fclose(fp);
return 0;
}

156
FILE : CONTOH
Contoh menulis data ke file test.txt dengan fprintf
#include <stdio.h>
int main(void)
{
FILE *fp;
fp=fopen("test.txt","w");
if(fp==NULL){
printf("File test.txt tidak bisa di create\n");
exit(1);
}
fprintf(fp,"%d %s %f\n",1,Amir", 3.95);
fprintf(fp,"%d %s %f\n",2,Tono", 3.15);
fclose(fp);
return 0;
}

157
FILE : CONTOH
Contoh membaca data dari file test.txt dengan fscanf
#include <stdio.h>
int main(void)
{
FILE *fp; int no; char nama[20]; float ipk;
fp=fopen("test.txt","r");
if(fp==NULL){
printf("File test.txt tidak bisa di open\n"); exit(1);
}
fscanf(fp,"%d %s %f",&no,nama, &ipk);
printf("%d %s %f\n",no,nama,ipk);
fscanf(fp,"%d %s %f",&no,nama, &ipk);
printf("%d %s %f\n",no,nama,ipk);
fclose(fp); return 0;
}

158
FILE : CONTOH
Contoh menulis string ke file test.txt dengan fputc
#include <stdio.h>
int main(void)
{
FILE *fp; int i;
char ss[80]="Kalimat ini disimpan ke file test.txt dengan
fputc";
fp=fopen("test.txt","w");
if(fp==NULL){
printf("File test.txt tidak bisa create\n"); exit(1);
}
for(i=0; i<strlen(ss); i++) fputc(ss[i], fp);
fclose(fp);
return 0;
}

159

Anda mungkin juga menyukai