BAB I
Kompetensi Umum :
Mahasiswa mampu memahahami dan menidentifikasi
masalah serta mampu menyelesaikan masalah dengan
menggunakan notasi algoritma
Kompetensi Khusus :
1. Mahasiswa Mampu memahami suatu permasalahan
2. Mahasiswa Mampu menyusun langkah-langkah
penyelesaian masalah dengan menggunakan algoritma
deskriptif, flowchart dan pseudo code
3. Mahasiswa Mampu menerjemahkan Algoritma kedalam
Bahasa Pemrograman C
DASAR TEORI
Roslina, M.I.T 1
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
2
Buku Ajar Algoritma danPemrograman
Disain Algoritma
Menulis Program
Dokumentasi Program
Stop
Gambar 1.2 : Diagram Alir Penyelesaian Masalah
Roslina, M.I.T
3
Buku Ajar Algoritma danPemrograman
NOTASI ALGORITMA
Secara umum Algoritma memilki bentuk dasar yaitu :
- Algoritma Sekuensial
Semua langkah-langkah harus dilakukan secara runtut
dari mulai sampai akhir dan tidak boleh dibolak-balik
urutannya.
- Algoritman Percabangan
Algoritma untuk memilih salah satu dari beberapa
pilihan, sehingga langkah yang dilakukan sesuai
dengan kondisi yang terpenuhi.
- Algoritma Perulangan
Terdapat satu atau lebih langkah kegiatan yang
dilakukan secara terus menerus sampai kondisinya
tidak terpenuhi lagi.
Untuk menyajikan algoritma dapat kita tulis dalam bentuk
yaitu :
a. Deskriftif
Menulis atau menyusun langkah-langkah
penyelesaian masalah atau kegiatan dengan cara
menguraikannya dengan menggunakan bahasa formal.
b. Flowchart
Menulis atau menyusun langkah-langkah
penyelesaian masalah atau kegiatan dengan
menggunakan diagram (simbol-simbol flowchart).
c. Pseudo Code
Menulis atau menyusun langkah-langkah
penyelesaian masalah atau kegiatan mirip atau
mendekati bahasa pemrograman yang digunakan.
Roslina, M.I.T
4
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
5
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
6
Buku Ajar Algoritma danPemrograman
Start
Hasil=0
Bilangan=17
Hasil=Bilangan
%2
t
Hasil=0
“Bilangan “Bilangan
Genap” Ganjil”
Stop
Roslina, M.I.T
7
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
8
Buku Ajar Algoritma danPemrograman
Pengenalan Fungsi
Fungsi merupakan statemen yang membangun sebuah
program C. Fungsi dapat memiliki bagian pernyataan fungsi
yang diawali dengan kurung kurawal buka ({) dan diakhiri
dengan kurung kurawal tutup (}) dan ada juga fungsi yang
tidak memiliki bagian pernyataan seperti fungsi main ().
Contoh fungsi :
Main()
Printf()
Scanf()
Praprocessor
Praprocessor dipakai untuk membaca file yang dinamakan
dengan file-judul (header file), yaitu file yang berisi deklarasi
fungsi dan defenisi konstanta. File ini mempunyai ciri yaitu
namanya diakhiri dengan extension .h. Contoh
#include<stdio.h> memberikan pernyataan pada kompiler
agar membaca file bernama stdio.h pada saat pelaksanaan
kompilasi.
Penulisan Program
C merupakan bahasa pemrograman yang memberikan
kebebasan dalam penulisan program dengan catatan
penulisannya harus konsisten (disarankan penulisan program
menggunakan huruf kecil) dan mudah dipahami, kalau
terjadikesalahan mudah ditelusuri.
Contoh beberapa bentuk penulisan program :
#include<stdio.h>
main()
{
printf(“Selamat Belajar\n”);
printf(“Turbo C\n”);
}
Roslina, M.I.T
9
Buku Ajar Algoritma danPemrograman
atau :
#include<stdio.h>
main(){ printf(“Selamat Belajar\n”); printf(“Turbo
C\n”); }
Komentar Program
Komentar program diperlukan untuk memberikan keterangan
dalam program, agar mudah dipahami. Komentar program
diwali dengan tanda /* dan diakhiri dengan tanda */
Contoh :
Awal komentar
/* Program contoh1
Dibuat oleh : Team */
Akhir komentar
#include<stdio.h>
main()
{
printf(“Selamat Belajar\n”);
printf(“Turbo C\n”);
}
RANGKUMAN
Roslina, M.I.T
10
Buku Ajar Algoritma danPemrograman
LATIHAN
Algoritma :
Start
A, B, C, D
A=45
B=25
Tampilkan
Nilai A dan B
C= A+B
D=A * B
Tampilkan
Nilai C dan D
Roslina, M.I.T
11
Stop
Buku Ajar Algoritma danPemrograman
Program :
#include<stdio.h>
main()
{
int A,B,C, D;
A=45; B=25;
clrscr();
printf("Nilai A : %d \n",A);
printf("Nilai B : %d \n",B);
C=A + B;
D=A * B;
printf("\n Hasil Penjumlahan A dengan B = %d \n",C);
printf("\n Hasil Penjumlahan A dengan B = %d \n",D);
getch();
}
Algoritma :
Roslina, M.I.T
12
Buku Ajar Algoritma danPemrograman
Start
A, B, C
A=20
B=50
Tampilkan
Nilai A dan
B
C=A
A=B
B=C
Tampilkan
Nilai A dan
B
Stop
Roslina, M.I.T
13
Buku Ajar Algoritma danPemrograman
Program :
#include<stdio.h>
main()
{
int A,B,C;
A=20; B=50;
clrscr();
printf("Nilai A sebelum Ditukar : %d \n",A);
printf("Nilai B sebelum Ditukar : %d \n",B);
C=A;
A=B;
B=C;
printf("\n Nilai A setelah Ditukar : %d \n",A);
printf("Nilai B setelah Ditukar : %d \n",B);
getch();
}
TUGAS :
Roslina, M.I.T
14
Buku Ajar Algoritma danPemrograman
BAB 2
Kompetensi Umum :
Mahasiswa mampu membuat program input output dengan
menggunakan fungsi input dan fungsi output
Kompetensi Khusus:
LANDASAN TEORI
Program Input
Data diinputkan melalui keyboard saat eksekusi program
berlangsung. Fungsi yang digunakan untuk input data yaitu :
scanf(), getch() dan getche().
Roslina, M.I.T
15
Buku Ajar Algoritma danPemrograman
a. scanf()
Fungsi ini digunakan untuk menginputkan berbagai
jenis tipe data dengan menggunakan penentu format
data seperti pada tabel 2.1.
Kode Keterangan
%c Membaca sebuah karakter
%s Membaca sebuah string
% i atau Membaca sebuah integer
%d
%e atau Membaca sebuah bilangan real (bisa
%f dalam bentuk eksponensial)
%o Membaca sebuah integer oktal
%x Membaca sebuah integer hexadesimal
%u Membaca sebuah integer tak bertanda
l Awalan untuk membaca data long int
(misal %ld)
L Awalan untuk membaca data long
double (misal %Lf)
h Awalan untuk membaca data short int
(misal %hd)
Roslina, M.I.T
16
Buku Ajar Algoritma danPemrograman
Program Output
RANGKUMAN
LATIHAN
Roslina, M.I.T
17
Buku Ajar Algoritma danPemrograman
Flowchart :
Start
Nl1,nl2,nl3,nl4,
nl5,total,rata2
Tampilkan
total, rata2
Stop
Roslina, M.I.T
18
Buku Ajar Algoritma danPemrograman
Program :
#include <stdio.h>
main()
{
int nl1, nl2,nl3,nl4,nl5;
float total, rata2;
clrscr();
printf("Inputkan Nilai 1 : ");
scanf("%d", &nl1);
printf("Inputkan Nilai 2 : ");
scanf("%d", &nl2);
printf("Inputkan Nilai 3 :" );
scanf("%d", &nl3);
printf("Inputkan Nilai 4 :" );
scanf("%d", &nl4);
printf("Inputkan Nilai 5 :" );
scanf("%d", &nl5);
total=nl1+nl2+nl3+nl4+nl5;
rata2=total/5;
printf("\nNilai Total = %f\n",total);
printf("Nilai Rata-Rata = %f\n",rata2);
getch();
}
Roslina, M.I.T
19
Buku Ajar Algoritma danPemrograman
Start
Alas, tinggi,
luas
Inputkan alas,
tinggi
Tampilkan luas
Stop
Program :
#include<stdio.h>
main()
{
int alas,tinggi;
float luas;
clrscr();
Roslina, M.I.T
20
Buku Ajar Algoritma danPemrograman
TUGAS
Roslina, M.I.T
21
Buku Ajar Algoritma danPemrograman
BAB 3
Kompetensi Umum :
Mahasiswa mampu menjelaskan dan menggunakan tipe data,
variabel, konstanta dan operator dalam program
Kompetensi Khusus :
DASAR TEORI
Tipe Data
Roslina, M.I.T
22
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
23
Buku Ajar Algoritma danPemrograman
Variabel
a. Deklarasi variabel
Varibel yang digunakan dalam program harus
dideklarasikan terlebih dahulu, yaitu pemesanan
memori dan penentuan jenis data yang bisa disimpan
dalam variabel tersebut. Bentuk umum deklarasi
variabel :
Tipe nama-variabel
variabel=nilai
Roslina, M.I.T
24
Buku Ajar Algoritma danPemrograman
Contoh :
R=10;
nilai=70.5; ipk=3.4;
c. inisialisasi variabel
Merupakan pemberian nilai awal terhadap suatu
variabel. Adakalanya dalam pembuatan program,
setelah variabel dideklarasikan langsung diberi nilai
awal.
Contoh :
int total; atau int total=0;
total=0;
Konstanta
Konstanta menyatakan nilai tetap. Tidak perlu
dideklarasikan, dan mempunyai tipe data. Aturan penulisan:
- Konstanta karakter : diawali dan diakhiri dengan
tanda petik tunggal, Contoh : „A‟ dan „@‟.
- Konstanta integer : ditulis dengan angka (tanpa tanda
petik) tanpa mengandung pemisah ribuan dan tak
mengandung bagian pecahan. Contoh : –1 dan 32767.
- Konstanta real (float dan double) bisa mengandung
pecahan (dengan tanda berupa titik) dan nilainya bisa
ditulis dalam bentuk eksponensial (menggunakan
tanda e), contohnya : 27.5f (untuk tipe float) atau 27.5
(untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x
105).
- Konstanta string merupakan deretan karakter yang
diawali dan diakhiri dengan tanda petik-ganda (“).
Contoh: “Program Dasar”.
- Menggunakan keyword #define
Roslina, M.I.T
25
Buku Ajar Algoritma danPemrograman
Operator
Operator merupakan simbol atau karakter yang digunakan
untuk melakukan suatu operasi atau manipulasi data seperti
pada tabel 3.2, tabel 3.3, tabel 3.4 dan tabel 3.5 merupakan
tabel operasi matematika, operasi logika dan lain sebagainya.
Operator relasi
Operator relasi (hubungan) biasa dipakai untuk
membandingkan dua buah nilai. Hasil perbandingan berupa
keadaan benar atau salah.
Roslina, M.I.T
26
Buku Ajar Algoritma danPemrograman
Operator Logika
Biasa digunakan untuk menghubungkan ungkapan relasi
RANGKUMAN
Roslina, M.I.T
27
Buku Ajar Algoritma danPemrograman
LATIHAN
Algoritma :
Start
Hasil, a, b, c
Inputkan a, b, c
Hasil= a % b
Tampilkan
hasil, a-b, b*c,
a/c, a+b*c
Stop
Roslina, M.I.T
28
Buku Ajar Algoritma danPemrograman
Program :
#include <stdio.h>
main()
{
int a, b, c;
float hasil;
printf("Masukkan nilai a = ");
scanf("%d", &a);
printf("Masukkan nilai b = ");
scanf("%d", &b);
printf("Masukkan nilai c = ");
scanf("%d", &c);
printf("\n");
hasil=a%b;
printf("Sisa hasil bagi : a % b = %.2f\n", hasil);
printf("Hasil pengurangan : a - b = %d\n", a-b);
printf("Hasil perkalian : b * c = %d\n", b * c);
printf("Hasil pembagian : a / c = %.2f\n",a/c);
printf("Hasil operasi : a + b * c = %d\n", a + b * c);
getch();
}
TUGAS
a. Buatlah algoritma dan program untuk menghitung
polynomial di bawah ini :
2
3x – 5x + 6 dengan nilai x merupakan masukan dari user.
b. Buatlah algoritma dan program untuk mengkonversi
suhu dari Celcius ke Fahrenheit dengan
rumus : F = C * 1.8 + 32
Roslina, M.I.T
29
Buku Ajar Algoritma danPemrograman
BAB 4
Kompetensi Umum :
Mahasiswa mampu membuat program dengan menggunakan
instruksi pemilihan if dan switch
Kompetensi Khusus :
1. Mahasiswa mampu menggunaan pernyataan if
2. Mahasiswa mampu menggunaan pernyataan if-else
3. Mahasiswa mampu menggunaan pernyataan if dalam if
4. Mahasiswa mampu menggunaan pernyataan switch
DASAR TEORI
Dalam kehidupan, kita pernah dihadapkan kepada beberapa
pilihan yang harus diputuskan pilihan mana yang harus
diambil. Contohnya pada saat seseorang memasuki perguruan
tinggi, karena merasa kawatir tidak lulus maka tes diberbagi
perguruan tinggi. Setelah pengumuman ternyata lulus pada
tiga perguruan tinggi, maka saat itu dia harus memutuskan
satu perguruan tinggi yang harus dia ikuti dan hampir tidak
mungkin dia mengikuti ketiga perguruan tinggi tersebut.
Sama halnya dengan pembuatan program, pengambilan
keputusan diperlukan jika ada dua atau lebih kondisi yang
harus dipilih salah satu. Pernyataan-pernyataan yang dapat
digunakan dalam pengambilan keputusan adalah :
- Pernyataan if
- Pernyataan if-else
- Pernyataan switch...case
Pernyataan-pernyataan diatas memerlukan suatu kondisi
yaitudibentuk dengan operator relasi dan/atau operator
logika.
Roslina, M.I.T
30
Buku Ajar Algoritma danPemrograman
Pernyataan if
Sintak:
t
if (kondisi) kondisi
pernyataan
y
pernyataan
Keterangan :
- Jika kondisi benar maka pernyataan dilakukan.
- Pernyataan bisa satu statement atau beberapa statement
- Jika pernyataan lebih dari satu gunakan tanda „{„ dan „}‟
untuk mengelompokkan pernyataan2 itu
Pernyataan if-else
Sintak:
t
if (kondisi) kondisi
pernyataan1
else y
pernyataan2
pernyataan pernyataan
Roslina, M.I.T
31
Buku Ajar Algoritma danPemrograman
Keterangan :
- Jika kondisi benar maka pernyataan1 dilakukan.
- Jika kondisi salah maka pernyataan2 dilakukan.
Nested -if
Di dalam pernyataan if (atau if-else) bisa terdapat pernyataan
if (atau if-else) yang lain.
Bentuk umum:
if(kondisi-1)
if(kondisi-2)
:
if(kondisi-n)
pernyataan
else
pernyataan;
:
else
pernyataan;
else
pernyataan;
Pernyataan Switch-Case
Digunakan sebagai pengganti pernyataan if bertingkat (else-
if). Ketika sebuah switch digunakan,
- Bahasa C akan menilai ekspresi switch, kemudian
berpindah ke case yang pilihan dari pemilih sesuai dengan
nilai dari ekspresi.
- Program mengeksekusi statement yang diminta dari point
sebuah case sampai statement break dibaca, kemudian
Roslina, M.I.T
32
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
33
Buku Ajar Algoritma danPemrograman
Bentuk umum :
switch(ekspresi)
{
case selector-1:
blok 1 statemen ;
.........
Break;
case selector -2:
blok 2 statemen;
.........
Break;
case selector -n:
blok n statemen;
.........
Break;
default :
blok default statemen;
...........
Break;
}
RANGKUMAN
Roslina, M.I.T
34
Buku Ajar Algoritma danPemrograman
LATIHAN
Start
Hasil=0,
Bil
Input Bil
Hasil=Bil % 2
Hasil=0
“Bilangan “Bilangan
Genap” Ganjil”
Roslina, M.I.T
35
Stop
Buku Ajar Algoritma danPemrograman
Program :
#include<stdio.h>
main()
{
int Bil;
float Hasil=0;
clrscr();
printf("Inputkan Sebuah Bilangan : ");
scanf("%d",&Bil);
Hasil=Bil % 2;
if(Hasil==0)
printf("%d adalah Bilangan Genap\n", Bil);
else
printf("%d adalah Bilangan Ganjil\n",Bil);
getch ();
}
#include<stdio.h>
main()
{
float absen,tugas,mid,uas,na;
char nh;
clrscr();
printf("Input nilai kehadiran : "); scanf("%f" ,&absen);
printf("Input nilai Tugas : "); scanf("%f" ,&tugas);
printf("Input nilai mid : "); scanf("%f" ,&mid);
printf("Input nilai UAS :" ); scanf("%f" ,&uas);
na=0.1*absen+0.2*tugas+0.3*mid+0.4*uas;
printf("Nilai Akhir = %.2f\n",na);
if (na>=80 && na<=100)
Roslina, M.I.T
36
Buku Ajar Algoritma danPemrograman
nh='A';
if (na>=70 && na<=79)
nh='B';
if (na>=60 && na<=69)
nh='C';
if (na>=50 && na<=59)
nh='D';
if (na>=10 && na<=49)
nh='E';
printf("Nilai Huruf = %c\n",nh);
if (na>=60)
printf("Anda Lulus\n" );
else
printf("Anda tidak lulus\n");
getch();
}
#include <stdio.h>
main()
{
float j,h,hbrg,diskon,jb;
clrscr();
printf("Inputkan Jumlah Barang :");
scanf("%f",&j);
printf("Inputkan Harga Barang :");
scanf("%f",&h);
hbrg=j*h;
printf("Jumlah Harga Barang = %.2f\n",hbrg);
if (hbrg>=500000)
{
Roslina, M.I.T
37
Buku Ajar Algoritma danPemrograman
diskon=0.5*hbrg;
jb=hbrg-diskon;
}
if (hbrg<500000)
{
diskon=0.2*hbrg;
jb=hbrg-diskon;
}
printf("Jumlah Diskon = %.2f\n",diskon);
printf("JumlaH Bayar = %.2f\n",jb);
getch();
}
TUGAS
Roslina, M.I.T
38
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
39
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
40
Buku Ajar Algoritma danPemrograman
tjg=0.05*gapok;
gk=gapok+tjg;
pph=0.1*gapok;
gb=gk-pph;
printf("Gaji Pokok : %.2f\n",gapok);
printf("Tunjangan : %.2f\n",tjg);
printf("Gaji Kotor : %.2f\n",gk );
printf("PPh : %.2f\n",pph);
printf("Gaji Bersih : %.2f\n",gb );
getch();
}
BAB 5
Kompetensi Umum :
Mahasiswa mampu membuat program menggunakan
instruksi pengulangan while dan do..while
Kompetensi Khusus:
- Mahasiswa mampu menjelaskan dan menggunakan proses
pengulangan pernyataan while
Roslina, M.I.T
41
Buku Ajar Algoritma danPemrograman
DASAR TEORI
Dalam pekerjaan sehari-hari, kita sering melaksanakan suatu
kegiatan yang sama secara berulang-ulang seperti mencetak
satu surat dalam jumlah yang banyak, mencetak slip gaji
pegawai berulang-ulang setiap bulannya. Begitu juga dalam
membuat program ada satu atau beberapa baris atau sintaks
program yang diulang untuk menghasilkan suatu informasi
atau output. Pernyataan yang digunakan untuk pengulangan
baris program tersebut adalah while, do..while dan for.
Pernyataan while
Pada pernyataan ini, pengecekan kondisi pengulangan
dilakukan di bagian awal blok pengulangan (loop), apabila
kondisi tidak benar maka pernyataan di dalam blok loop tidak
dikerjakan sama sekali.
Bentuk umum :
while(kondisi)
pernyataan;
Contoh :
bil = 1;
while (bil <= 15)
{
printf("%d\n", bil);
Roslina, M.I.T
42
Buku Ajar Algoritma danPemrograman
bil = bil + 3;
}
Output dari program diatas adalah :
1
4
7
10
13
Pernyataan do-while
Pada pernyataan ini, pengecekan kondisi loop dilakukan di
bagian akhir blok pengulangan. Walupun kondisi tidak benar
maka pernyataan didalam blok loop pasti dijalankan minimal
1 kali.
Bentuk umum :
do {
pernyataan;
} while(kondisi);
Roslina, M.I.T
43
Buku Ajar Algoritma danPemrograman
Pernyataan break
Bentuk Umum :
Pada loop:
while(kondisi)
{
break;
}
statement-x;
Pada switch:
switch (ekspresi)
{.....
case konstanta-2:
pernyataan-2;
break;
.....
}
Pernyataan Continue
Berfungsi untuk melanjutkan proses pengulangan
Bentuk umum :
while(kondisi)
{
continue;
}
statemen-x;
Roslina, M.I.T
44
Buku Ajar Algoritma danPemrograman
RANGKUMAN
LATIHAN
Roslina, M.I.T
45
Buku Ajar Algoritma danPemrograman
Start
i, jumlah,
angka, rata2
Input
angka
i++
Jumlah =jumlah + angka
y t
i<=5
Rata2=jumlah/5
#include<stdio.h>
main()
{
int i,jumlah,angka; Tampilkan
float rata2; jumlah, rata2
rata2=0,jumlah=0;
i=1;
clrscr();
do
{ Stop
Roslina, M.I.T
46
Buku Ajar Algoritma danPemrograman
#include<stdio.h>
main()
{
int jumlah,kode;
float harga,total;
double bayar;
char kar;
printf("kode Jenis Harga\n");
printf("1 Milo Rp 10.000\n");
printf("2 Kopi Rp. 5000\n");
printf("3 Coca Cola Rp 2500\n");
printf("4 Orange Juice Rp 2000\n");
total=0;
do {
printf("Masukkan kode minuman : \n");
scanf("%d",&kode);
printf("Masukkan jumlah pesanan ");
scanf("%d",&jumlah);
if(kode==1)
harga = 20000*jumlah;
Roslina, M.I.T
47
Buku Ajar Algoritma danPemrograman
else if(kode==2)
harga = 15000*jumlah;
else if(kode==3)
harga = )10000*jumlah;
else if(kode==4)
harga = 5000*jumlah;
total=total+harga;
printf("Mau menambah pesanan ? (Y/T)\n");
scanf("%s",&kar);
} while(kar=='Y');
if(total > 100000)
bayar=total-(0.15*total);
else
bayar=total;
printf("\nHarga yang harus dibayar = %10.2f\n",bayar);
getch();}
TUGAS
Roslina, M.I.T
48
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
49
Buku Ajar Algoritma danPemrograman
BAB 6
Kompetensi Umum :
Mahasiswa mampu membuat program menggunakan
instruksi pengulangan for dan nested loop
Kompetensi Khusus :
1. Mahasiswa mampu menjelaskan dan menggunakan proses
pengulangan pernyataan for
2. Mahasiswa mampu menjelaskan menggunakan loop di
dalam loop (nested loop)
3. Mahasiswa mampu Menjelaskan penggunaan exit() untuk
menghentikan eksekusi program
DASAR TEORI
Pembahasana kali ini melanjutkan pembahasan pada bab
sebelumnya tentang pernyataan pengulangan. Selain
pernyataan while dan do..while bahasa C juga menyediakan
pernyataan for dalam proses pengulangan.
Pernyataan for
Bentuk umum :
for(ungkapan1; ungkapan2; ungkapan3)
pernyataan;
Roslina, M.I.T
50
Buku Ajar Algoritma danPemrograman
Keterangan :
- Ungkapan1: digunakan untuk memberikan inisialisasi
terhadap variabel pengendali loop.
- Ungkapan2: dipakai sebagai kondisi untuk keluar dari
loop.
- Ungkapan3: dipakai sebagai pengatur kenaikan nilai
variabel pengendali loop.
Contoh :
for (bil = 1; bil <= 15; bil += 3)
printf("%d\n", bil);
Pernyataan for( ; ; )
bil=10;
for( ; ; )
Roslina, M.I.T
51
Buku Ajar Algoritma danPemrograman
{
bil++;
if(bil==60)
break;
}
Nested-loop
Bentuk umum :
for(ungkapan1; ungkapan2; ungkapan3)
{
for(ungkapan4; ungkapan5; ungkapan6)
{
for(ungkapan-x; ungkapan-y;
ungkapan-z)
{
Pernyataan1;
.
.
}
Pernyataan-n;
.
}
Pernyataan-m;
.
}
Roslina, M.I.T
52
Buku Ajar Algoritma danPemrograman
Pernyataan exit()
Bentuk umum :
exit();
Contoh:
#include<stdio.h>
#include<stdlib.h>
main()
{
puts(“Tekan ESC untuk menghentikan program.”);
for( ; ; )
if(getch()==27)
exit(0);
getch();
}
RANGKUMAN
Roslina, M.I.T
53
Buku Ajar Algoritma danPemrograman
LATIHAN
#include <stdio.h>
main()
{
int baris, kolom, hasil_kali;
for (baris = 1; baris <= 10; baris++)
{
for (kolom = 1; kolom <= 10; kolom++)
{
hasil_kali = baris * kolom;
printf ("%2d", hasil_kali);
}
Roslina, M.I.T
54
Buku Ajar Algoritma danPemrograman
TUGAS
2. N N!
1 1
2 2
: :
: :
10 :
Roslina, M.I.T
55
Buku Ajar Algoritma danPemrograman
BAB 7
ARRAY DIMENSI 1
DASAR TEORI
Dalam membuat program kita pasti berhubungan dengan
penyimpanan data. Untuk menyimpan data digunakan
pengenal atau identifier. Masalah yang terjadi adalah kita
seringkali memerlukan penyimpan data yang sama namun
jumlahnya banyak, seperti gaji pegawai dalam satu
perusahaan. Data yang disimpan adalah gaji, namun
jumlahnya lebih dari satu. Biasanya untuk menyimpan satu
nilai diperlukan satu variabel namun kalau untuk menyimpan
10 nilai maka diperlukan 10 variabel, bayangkan kalau dlam
perusahaan tersebut terdapat 1000 orang karyawan, tentu
diperlukan 1000 variabel gaji, hal ini tidak efektif dalam
pendeklarasian variabel dan tidak efisien dalam penggunaan
memory. Untuk mengatasi masalah tersebut bahasa C
menyediakan fasilitas untuk mendeklarasikan variabel yang
mampu menampung banyak data yang dikenal dengan istilah
Array (Larik). Array (larik) merupakan kumpulan data
dengan setiap elemen data menggunakan nama dan tipe data
yang sama. Setiap elemen dapat diakses dan dibedakan
dengan indeks array. Jenis-jenis array :
- Array dimensi 1
Roslina, M.I.T
56
Buku Ajar Algoritma danPemrograman
Array Dimensi 1
Bentuk umum :
Tipe_array nama_var_array[ukuran];
Keterangan :
Deklarasi array
Deklarasi variabel array sama dengan deklarasi variabel biasa
dengan menuliskan tipe data dan diikuti dengan nama
variabel array.
Bentu Umum :
float nilai[10]
Roslina, M.I.T
57
Buku Ajar Algoritma danPemrograman
Nama_var_array[indeks]
Contoh :
Nilai[1] : elemen ke-1 dari nilai
Nilai[2] : elemen ke-2 dari nilai
RANGKUMAN
Array (larik) merupakan kumpulan data dengan setiap elemen
data menggunakan nama dan tipe data yang sama. Setiap
elemen dapat diakses dan dibedakan dengan indeks array.
Array terdiri dari :
- Array dimensi 1
Roslina, M.I.T
58
Buku Ajar Algoritma danPemrograman
LATIHAN
#include <stdio.h>
#define maks 7
main()
{
int j;
float total, rata2;
float nilai[maks]; /* deklarasi array*/
/* input data nilai */
for ( j= 0; j < maks; j++)
{
printf(“Nilai ke- %d : “, j);
scanf(“%f”, &nilai[ j ]);
}
/* Menghitung total nilai */
total=0;
for ( j= 0; j < maks; j++)
total=total+nilai[j];
/* Hitung rata-rata */
rata2=total/maks;
/* Cetak total dan rata-rata */
printf (“ Nilai total = %.2f\n”,total);
printf (“ Nilai rata-rata = %.2f\n”,rata2);
getch(); }
Roslina, M.I.T
59
Buku Ajar Algoritma danPemrograman
#include <stdio.h>
main()
{
char nama[15];
int i,j,n,jumlah,nilai[4];
float nrata;
jumlah=0;
clrscr();
/* input nilai mahasiswa */
printf("Inputkan Jumlah mahasiswa : "); scanf("%d",&n);
for(i=0; i<n;i++)
{
printf("Mahasiswa ke- %d : \n", i+1);
printf("Nama : "); scanf("%s", &nama[i]);
for(j=0;j<4;j++)
{
printf("Nilai Ke- %d :", j+1); scanf("%d",&nilai[j]);
}
}
/* tampilkan nilai mahasiswa */
Roslina, M.I.T
60
Buku Ajar Algoritma danPemrograman
jumlah=jumlah+nilai[j];
}
nrata=jumlah/4;
printf("\t%.2f",nrata);
printf("\n");
}
getch();
}
TUGAS
1. Modifikasi program pada latihan no. 2 untuk tampilan
output seperti di bawah ini:
No. Nilai Total Rata-rata
1. 85 85 85.00
2. 95 180 90.00
3. 60 240 80.00
4. 80 320 80.00
5. 50 370 74.00
6. 100 470 78.33
Nilai maks = 100
Nilai min = 50
Nilai rata-rata = 78.33
Nilai terbaik adalah nilai ke = 6
Roslina, M.I.T
61
Buku Ajar Algoritma danPemrograman
BAB 8
Kompetensi Umum :
Mahasiswa mampu membuat program menggunakan variabel
array dimensi dua.
Kompetensi Khusus :
1. Menjelaskan dan menggunakan array berdimensi dua
2. Menjelaskan deklarasi/akses variabel array dimensi 2 atau
banyak
DASAR TEORI
Array dimensi dua merupakan array yang terdiri dari m buah
baris dan n buah kolom. Bentuknya dapat berupa matriks atau
tabel.
Deklarasi array
Bentuk Umum :
Tipe_array nama_array[baris][kolom];
Contoh :
Int X[3][4];
Roslina, M.I.T
62
Buku Ajar Algoritma danPemrograman
X[1][2] = 10;
Bentuk umum :
tipe_array nama_array[ukuran1][ukuran2]…[ukuranN];
Contoh :
float X[2][4][3];
RANGKUMAN
Array dimensi dua merupakan array yang terdiri dari m buah
baris dan n buah kolom. Bentuknya dapat berupa matriks atau
tabel.
LATIHAN
#include <stdio.h>
main()
Roslina, M.I.T
63
Buku Ajar Algoritma danPemrograman
{
int i,j,matriksA[3][3];
clrscr();
/* input elemen array dimensi 2 */
printf("Input Elemen Array Dimensi 2\n\n");
for(i=0; i<3;i++)
{
for(j=0;j<3;j++)
{
printf("Elemen Matriks [%d][%d] : ", i,j);
scanf("%d",&matriksA[i][j]);
}
}
/* tampilkan elemen array dimensi 2 */
for(j=0;j<3;j++)
{
printf("%4d", matriksA[i][j]);
}
printf("\n\n\t");
}
getch();
}
Roslina, M.I.T
64
Buku Ajar Algoritma danPemrograman
#include<stdio.h>
main()
{
int i,j,b,k,l,m;
int a[5][5],b[5][5],c[5][5];
clrscr();
printf("Inputkan Jumlah Baris Matriks A=baris Matriks B :
"); scanf("%d",&b);
printf ("Inputkan Jumlah Kolom Matriks A = Kolom Matriks
B: "); scanf("%d",&k);
printf("Input Elemen Matriks A \n");
for (i=0;i<b;i++)
{
for(j=0;j<k;j++)
{
printf("Elemen matriks %d %d : ", i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("Input Elemen Matriks B \n");
for (i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
printf("Elemen matriks %d %d : ", i+1,j+1);
scanf("%d",&b[i][j]);
}
}
/*penjumlahan matriks*/
for (i=0;i<b;i++)
{
for(j=0;j<k;j++)
Roslina, M.I.T
65
Buku Ajar Algoritma danPemrograman
{
c[i][j]=a[i][j] + b[i][j];
}
}
clrscr();
printf(" matriks A\n");
for (i=0;i<b;i++)
{
for(j=0;j<k;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("\n");
printf(" + ");
printf("\n");
printf(" matriks B\n");
for (i=0;i<b;i++)
{
for(j=0;j<k;j++)
printf("%4d",b[i][j]);
printf("\n");
}
printf("\n");
printf(" = ");
printf("\n");
printf(" matriks C\n");
for (i=0;i<b;i++)
{
for(j=0;j<k;j++)
printf("%4d",c[i][j]);
printf("\n");
}
getch();
Roslina, M.I.T
66
Buku Ajar Algoritma danPemrograman
TUGAS
Nama : Florence
Alamat : France
Telp : 1234876
Nama : Christine
Alamat : Hawai
Telp : 9876354
Nama : James
Alamat : Bangkok
Telp : 6758994
Roslina, M.I.T
67
Buku Ajar Algoritma danPemrograman
BAB 9
Kompetensi Umum :
Mahasiswa mampu membuat program prosedur dan fungsi
Kompetensi Khusus :
1. Mahasiswa mampu menjelaskan prinsip dasar fungsi
2. Mahasiswa mampu membuat program prosedural
3. Mahasiswa mampu menggunakan parameter formal dan
parameter aktual
4. Mahasiswa mampu menjelaskan dan menggunakan fungsi
rekursi
DASAR TEORI
Fungsi merupakan suatu bagian dari program yang berfungsi
untuk mengerjakan suatu tugas tertentu dan letaknya terpisah
dari program yang memanggilnya. Fungsi merupakan elemen
utama dalam bahasa C karena bahasa C sendiri terbentuk dari
kumpulan fungsi-fungsi. Dalam setiap program bahasa C,
minimal terdapat satu fungsi yaitu fungsi main(). Keuntungan
penggunaan fungsi dalam program yaitu program akan
memiliki struktur yang jelas dan juga akan menghindari
penulisan bagian program yang sama. Dalam bahasa C fungsi
dapat dibagi menjadi dua, yaitu fungsi pustaka atau fungsi
yang telah tersedia dalam bahasa C dan fungsi yang
didefinisikan atau dibuat oleh programmer.
Tujuan penggunaan fungsi:
- Program menjadi terstruktur, sehingga mudah dipahami
dan mudah dikembangkan.
- Mengurangi pengulangan kode (duplikasi kode)
Roslina, M.I.T
68
Buku Ajar Algoritma danPemrograman
Dasar fungsi
Pada umumnya fungsi memerlukan input (masukan) yang
dinamakan sebagai argumen atau parameter. Masukan ini
selanjutnya diolah oleh fungsi. Hasil akhir fungsi berupa
sebuah nilai yang disebut sebagai nilai keluaran fungsi atau
nilai balik fungsi). Fungsi yang tidak memiliki nilai balik
dikenal sebagai prosedur.
Tugas khusus dari fungsi terdapat pada fungsi standard,
misalnya getch() bertugas untuk membaca kode tombol dan
printf() bertugas untuk menampilkan informasi atau data ke
layar.
Contoh program :
/* program fungsi yang mengandung argumen untuk mencari
nilai minimum */
#include <stdio.h>
main()
{
int a, b, hasil;
a=25; b=84;
Roslina, M.I.T
69
Buku Ajar Algoritma danPemrograman
hasil=min(a, b);
printf(“nilai terkecil = %d\n”, hasil);
printf(“nilai terkecil = %d\n”, min(11, 9);
getch();
}
/* Fungsi minimum */
min(x, y)
int x, y;
{
if (x < y )
return(x);
else
return(y);}
Fungsi dengan nilai keluaran bertipe selain integer
Fungsi yang nilai keluarannya selain tipe integer, perlu
dilakukan langkah-langkah seperti berikut :
- Fungsi harus dideklarasikan diawal program sebelum
digunakan, yang diakhiri dengan titik koma (;)
- Fungsi didefenisikan dengan diawali tipe fungsi
Contoh :
/* program fungsi bertipe selain integer untuk mencari nilai
maximum */
#include <stdio.h>
float maks(float,float); /* deklarasi fungsi*/
main()
{
float a, b, hasil;
a= 35.6; b=65.9;
hasil=maks(a, b);
printf(“nilai maximum = %.2f\n”, hasil);
printf(“nilai terkecil = %.2f\n”,maks(11, 9);
getch();
Roslina, M.I.T
70
Buku Ajar Algoritma danPemrograman
/* Fungsi maximum */
Rekursi
Rekursi merupakan fungsi yang memanggil dirinya sendiri.
Contoh program :
Roslina, M.I.T
71
Buku Ajar Algoritma danPemrograman
PROSEDUR
Seperti halnya Fungsi, Prosedur merupakan suatu bagian dari
program yang dimaksudkan untuk mengerjakan suatu tugas
tertentu dan letaknya terpisah dari program yang
memanggilnya. Perbedaanya adalah, Fungsi juga
dideklarasikan seperti variabel, dan mengembalikan nilai
fungsi ke pemanggilnya. Sedangkan Prosedur tidak
dideklarasikan seperti variabel dan tidak mengembalikan
nilai tertentu, tapi dapat memberikan hasil yang ada di dalam
prosedur itu. Prosedur juga sering disebut dengan fungsi
tanpa tipe.
Roslina, M.I.T
72
Buku Ajar Algoritma danPemrograman
RANGKUMAN
LATIHAN
#include <stdio.h>
float kuadrat(float);
main()
{
float a,hasil;
clrscr();
printf("Inputkan Sebuah Bilangan = ");
scanf("%f",&a);
hasil=kuadrat(a);
printf("Kuadrat bilangan %.2f = %.2f\n", a, hasil);
getch();
}
/* Fugsi radian */
float kuadrat(float x)
{
Roslina, M.I.T
73
Buku Ajar Algoritma danPemrograman
float k;
k=x*x;
return(k);
}
#include <stdio.h>
#include <conio.h>
float tambah(float x, float y); // prototype fungsi
tambah()
void main()
{ float a, b, c;
printf("A = "); scanf("%f", &a);
printf("B = "); scanf("%f", &b);
c = tambah(a,b); // pemanggilan fungsi tambah()
printf("A + B = %.2f", c);
getch();
}
float tambah(float x, float y) // Definisi fungsi
{
return (x+y); // Nilai balik fungsi
}
#include <stdio.h>
#include <conio.h>
int VolumeBalok (int, int, int) ; /* Deklarasi fungsi */
main ()
{
LuasLingkaran(); /* Pemanggilan prosedur*/
Roslina, M.I.T
74
Buku Ajar Algoritma danPemrograman
#include<stdio.h>
void input_matriks(int matrik[][], int, int);
void jumlah_matriks(int matrika[][],int matrikb[][],int
matrikc[][], int, int);
void kali_matriks(int matrika[][],int matrikb[][],int
matrikc[][], int, int, int);
main()
{
int pilih,brs,klm,klmc,i,j,m;
int matrika[10][10],matrikb[10][10],matrikc[10][10];
pilih=0;
Roslina, M.I.T
75
Buku Ajar Algoritma danPemrograman
while (pilih<=2)
{
clrscr();
printf("MENU PILIHAN\n ");
printf("\n 1. Menjumlahkan 2 buah matriks\n ");
printf(" 2. Mengalikan 2 buah matriks\n ");
printf("\nInputkan Pilihan Anda (1-2) : ");
scanf("%d",&pilih);
switch(pilih)
{
case 1 :
{
puts("Penjumlahan Matriks");
printf("Inputkan Jumlah Baris Matriks A = matriks B:
"); scanf("%d",&brs);
printf("Inputkan Jumlah Kolom Matriks A = Matriks
B: "); scanf("%d",&klm);
puts("Data Matriks A");
input_matriks(matrika,brs,klm);
puts("Data Matriks B");
input_matriks(matrikb,brs,klm);
puts("Hasil Penjumlahan Matriks");
jumlah_matriks(matrika,matrikb,matrikc,brs,klm);
break;
}
case 2 :
{
puts("Perkalian 2 buah Matriks");
printf("Inputkan Jumlah Baris Matriks A : ");
scanf("%d",&brs);
printf("Inputkan Jumlah Kolom Matriks A = baris
Matriks B: "); scanf("%d",&klm);
printf("Inputkan Jumlah Kolom Matriks B : ");
Roslina, M.I.T
76
Buku Ajar Algoritma danPemrograman
scanf("%d",&klmc);
puts("Data Matriks A");
input_matriks(matrika,brs,klm);
puts("Data Matriks B");
input_matriks(matrikb,klm,klmc);
puts("Hasil Perkalian Matriks");
kali_matriks(matrika,matrikb,matrikc,brs,klm,klmc);
break;
}
default :
printf("\nPilihan Anda Salah ");
}
getch();
}
}
Roslina, M.I.T
77
Buku Ajar Algoritma danPemrograman
{
for(j=0;j<klm;j++)
matrikc[i][j]=matrika[i][j]+matrikb[i][j];
}
for (i=0;i<brs;i++)
{
for(j=0;j<klm;j++)
printf("%4d",matrikc[i][j]);
printf("\n");
}
}
void kali_matriks(int matrika[][10],int matrikb[][10],int
matrikc[][10], int brs, int klm, int klmc)
{
int i, j, m;
for (i=0;i<brs;i++)
{
for(j=0;j<klmc;j++)
{
matrikc[i][j]=0;
for (m=0;m<klm;m++)
matrikc[i][j]=matrikc[i][j]+matrika[i][m]*matrikb[m][j];
}
}
for (i=0;i<brs;i++)
{
for(j=0;j<klmc;j++)
printf("%4d",matrikc[i][j]);
printf("\n");
}}
Roslina, M.I.T
78
Buku Ajar Algoritma danPemrograman
TUGAS
1. Buat algoritma dan program untuk menampilkan bilangan
faktorial dari 1 sampai 10 output berikut dengan
menggunakan fungsi.
N N!
1 1
2 2
: :
10 3628800
MENU PILIHAN
1. Menghitung Isi Kubus
2. Menghitung Luas Lingkaran
3. Menghitung Isi Silinder
Inputkan Pilihan Anda (1-3) :
Roslina, M.I.T
79
Buku Ajar Algoritma danPemrograman
BAB 10
OPERASI STRING
Kompetensi Umum :
Mahasiswa mampu membuat program menggunak fungsi-
fungsi string
Kompetensi Khusus:
1. Menjelaskan konsep string
2. Menjelaskan dan menggunakan operasi I/O pada string.
3. Menjelaskan dan menggunakan cara akses elemen string
4. Menjelaskan dan menggunakan fungsi-fungsi string
DASAR TEORI
Nilai suatu string merupakan nilai-nilai karakter yang
berurutan dalam bentuk array dimensi satu. String merupakan
data yang biasa dipakai untuk menampung dan memanipulasi
teks yang ditulis di dalam tanda petik ganda.
Konstanta string
Konstanta string yang ditulis diawali dan diakhiri tanda petik
ganda serta diakhiri dengan karakter NULL, contoh kata :
INFORMATIKA
Konstanta string diatas disimpan dalam memori secara
berurutan dengan komposisi seperti berikut :
I N F O R M A T I K A \0
Roslina, M.I.T
80
Buku Ajar Algoritma danPemrograman
Variabel string
Variabel string merupakan variabel yang digunakan untuk
menyimpan nilai string, contoh :
char nama[20];
Merupakan instruksi untuk mendeklarasikan variabel string
dengan panjang maksimal 20 karakter termasuk karakter
NULL.
Fungsi string
Fungsi string digunakan untuk memanipulasi string.
Jenis-jenis fungsi string :
Roslina, M.I.T
81
Buku Ajar Algoritma danPemrograman
- strcpy()
Bentuk umum : strcpy(tujuan, asal). Untuk menyalin
string asal ke variabel tujuan
- strlen()
Untuk menghitung jumlah karakter dalam string
(karakter NULL tidak dihitung)
- strcat()
Bentuk umum : strcpy(tujuan, sumber). Untuk
menambahkan string sumber ke akhir string tujuan
- strcmp()
Bentuk umum : var_int =strcmp(str1, str2). Untuk
membandingkan string str1 dengan string str2
- strlwr()
Bentuk umum : strlwr(string_x). Untuk mengubah
huruf kapital dalam string_x menjadi huruf kecil.
- strupr()
Bentuk umum : strupr(string_x). Untuk mengubah
setiap huruf kecil dalam string_x menjadi huruf
kapital.
RANGKUMAN
String merupakan data yang biasa dipakai untuk menampung
dan memanipulasi teks. Contoh jenis-jenis fungsi string
adalah:
- strcpy()
- strlen()
- strcat()
- strcmp()
- strlwr()
- strupr()
Roslina, M.I.T
82
Buku Ajar Algoritma danPemrograman
LATIHAN
#include <stdio.h>
#include <string.h>
#define MAKS 256
main()
{
char kalimat[MAKS];
int i=0,pjg=0;
clrscr();
printf("Masukkan kalimat yang akan dibalik : ");
gets(kalimat);
pjg=strlen(kalimat);
printf("Panjang karakter yang diinputkan = %d\n",pjg);
for (i=pjg;i>=0;i--)
{
printf("%c",kalimat[i]);
}
getch();
}
#include <stdio.h>
#define MAKS 256
main()
{
int i, jumkar = 0;
char teks[MAKS];
puts("Masukkan suatu kalimat (maks 255 karakter).");
Roslina, M.I.T
83
Buku Ajar Algoritma danPemrograman
#include<stdio.h>
#include<string.h>
main()
{
char str1[80];
Roslina, M.I.T
84
Buku Ajar Algoritma danPemrograman
char str2[]="ABCDE";
strcpy(str1,str2);
printf("Isi string 1 adalah : %s\n",str1);
printf("Isi string 2 adalah : %s\n",str2);
}
#include <stdio.h>
#include <string.h>
#define MAKS 256
main()
{
char kal[MAKS];
printf("Masukkan kalimat yang akan dihitung
panjangnya :\n");
gets(kal);
printf("\nPanjang string tsb = %d karakter\n",
strlen(kal));
}
clrscr();
s1="POTENSI";
Roslina, M.I.T
85
Buku Ajar Algoritma danPemrograman
s2="UTAMA";
s3=strcat(s1,s2);
s4="MEDAN";
printf("%s",strcat(s3,s4));
getch();
}
7. Membandingkan isi string1 dengan string2
menggunakan fungsi strcmp().
#include<stdio.h>
#include<string.h>
main()
{
char str1[]="ABcde";
char str2[]="ABCDE";
int hasil;
hasil=strcmp(str1,str2);
if(hasil==0)
printf("String 1 sama dengan String 2\n");
else if(hasil < 0)
printf("String 1 lebih kecil dari String 2\n");
else
printf("String 1 lebih besar dari String 2\n");
}
TUGAS
Roslina, M.I.T
86
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
87
Buku Ajar Algoritma danPemrograman
BAB 11
Kompetensi Umum :
Mahasiswa mampu membuat program menggunakan fungsi
matematika dan fungsi konversi data
Kompetensi Khusus :
1. Menjelaskan dan menggunakan fungsi Matematika
2. Menjelaskan dan melakukan cara mengkonversi Tipe data
DASAR TEORI
- sqrt()
Digunakan untuk menghitung akar dari sebuah
bilangan.
Bentuk umum : sqrt(bilangan);
Roslina, M.I.T
88
Buku Ajar Algoritma danPemrograman
- pow()
Digunakan untuk menghitung pemangkatan suatu
bilangan.
Bentuk umum : pow(bilangan, pangkat);
- sin(), cos(), tan()
Masing-masing digunakan untuk menghitung nilai
sinus, cosinus dan tangens dari suatu sudut.
Bentuk umum :
sin(sudut);
cos(sudut);
tan(sudut);
- 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;
- max()
Digunakan untuk menentukan nilai maksimal dari dua
buah bilangan.
Bentuk umum : max(bilangan1, bilangan2);
- min()
Digunakan untuk menentukan bilangan terkecil dari
dua buah bilangan.
Bentuk umum : min(bilangan1, bilangan2);
Roslina, M.I.T
89
Buku Ajar Algoritma danPemrograman
- 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);
RANGKUMAN
Dalam bahasa C fungsi dapat dibagi menjadi dua, yaitu
fungsi pustaka atau fungsi yang telah tersedia dalam bahasa C
dan fungsi yang didefinisikan atau dibuat oleh programmer.
Fungsi yang telah didefinisikan, seperti fungsi operasi
matematika dan fungsi konversi tipe data
LATIHAN
Roslina, M.I.T
90
Buku Ajar Algoritma danPemrograman
#include <stdio.h>
Roslina, M.I.T
91
Buku Ajar Algoritma danPemrograman
#include <conio.h>
#include <math.h>
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();
}
#include <stdio.h>
#include <conio.h>
#include <math.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));
Roslina, M.I.T
92
Buku Ajar Algoritma danPemrograman
getch();
}
5. Program Mengkonversikan Tipe data dan
menampilkan hasilnya
#include <stdio.h>
#include <conio.h>
#include <math.h>
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();
}
TUGAS
1. Modifikasi program pada soal no. 2 untuk menghitung
sinus, cosinus dan tangen dalam satuan radian, sehingga
output yang dihasilkan dalam satuan derajat. Agar hasil
dalam derajat maka sudut harus dibagi dengan 180/3.14.
2. Buat program untuk menghitung akar pangkat dua dari
suatu bilangan.
Roslina, M.I.T
93
Buku Ajar Algoritma danPemrograman
BAB 12
OPERASI FILE
Kompetensi Umum :
Mahasiswa mampu membuat program untuk pengolahan data
atau manipulasi file
Kompetensi Khusus :
1. Mahasiswa mampu menjelaskan struktur file
2. Mahasiswa mampu menjelaskan tahap-tahap operasi pada
file
3. Mahasiswa mampu menjelaskan dan menggunakan fungsi
untuk penyimpanan dan pembacaan file
DASAR TEORI
Secara konvensional data dalam suatu organisasi atau
perusahaan disimpan dalam lemari arsip yang bertujuan pada
suatu saat data tersebut dapat diambil dan diolah kembali.
Begitu juga dalam pemrograman menggunakan media disk
sebagai tempat untuk menyimpan data agar data tersebut
diambil kembali untuk diproses seperti baca, tambah edit dan
hapus data. Data sendiri disimpan dalam disk dalam suatu
kesatuan yang disebut file. Suatu file merupakan organisasi
dari sejumlah record. Masing-masing record dapat terdri dari
satu atau beberapa field dan setiap field terdiri dari satu atau
beberapa byte data. Satu byte data terdiri dari 8 bit data.
Struktur data dari fle ditunjukkan pada gambar 12.1
Roslina, M.I.T
94
Buku Ajar Algoritma danPemrograman
FILE
BYTE BYTE
(8 BIT) (8 BIT)
Roslina, M.I.T
95
Buku Ajar Algoritma danPemrograman
Keterangan :
nama file : menyatakan nama dari file yang akan diaktifkan
mode : jenis operasi yang akan dilakukan terhadap file.
Menutup file
Apabila suatu file sudah selesai diproses, file perlu ditutup.
Hal ini sangat penting terutama jika melakukan pemrosesan
file yang jumlahnya lebih dari satu.
Untuk menutup file, fungsi yang digunakan adalah fclose().
Bentuk umum :
Roslina, M.I.T
96
Buku Ajar Algoritma danPemrograman
Contoh :
"rt" : mode file adalah teks dan file hendak dibaca
"rt+” : mode file adalah teks dan file bisa dibaca dan ditulis.
Bisa juga ditulis : "r+t"
"rb" : mode file adalah biner dan file hendak dibaca.
Roslina, M.I.T
97
Buku Ajar Algoritma danPemrograman
Keterangan :
RANGKUMAN
File merupakan kumpulan record yang tersimpan secara
permanen di dalam disk. File dapat dimanipulasi seperti
tambah, edit, hapus dan tampil data.
Operasi file pada dasarnya meliputi tiga tahapan yaitu :
1. Membuka atau Mengaktifkan file
2. Melaksanakan proses file
3. Menutup file
Roslina, M.I.T
98
Buku Ajar Algoritma danPemrograman
LATIHAN
#include<stdio.h>
#include<stdlib.h>
main()
Roslina, M.I.T
99
Buku Ajar Algoritma danPemrograman
{
FILE *pd;
char kar;
//Buka file
pd=fopen("COBA.TXT","r+");
if(pd==NULL)
{
printf("File tidak dapat dibuka \n");
exit(1);
}
//Baca karakter per karakter sampai ketemu End Of
FIle
while((kar=fgetc(pd)) != EOF)
fputchar(kar);
while((kar=getchar()) != '\n')
fputc(kar,pd);
fclose(pd); //tutup file
}
Roslina, M.I.T
100
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
101
Buku Ajar Algoritma danPemrograman
Roslina, M.I.T
102
Buku Ajar Algoritma danPemrograman
gets(namafilebaru);
kode = rename(namafilelama, namafilebaru);
if(kode == 0)
printf("Nama file sudah diganti\n");
else
printf("Gagal dalam mengganti nama\n");
}
7. Menghapus file
#include <stdio.h>
#include <stdlib.h>
#define PJG 65
main()
{
int kode;
char namafile[PJG];
printf("Nama file yang akan dihapus : ");
gets(namafile);
kode = remove(namafile);
if(kode == 0)
printf("File sudah dihapus\n");
else
printf("Gagal dalam menghapus file\n");
}
#include<stdio.h>
void input(void);
void tambah(void);
void tampil (void);
main()
{
Roslina, M.I.T
103
Buku Ajar Algoritma danPemrograman
int pilih;
pilih=1;
do
{
clrscr();
printf("MENU PILIHAN\n ");
printf("\n 1. Input Data\n ");
printf(" 2. Tambah Data\n ");
printf(" 3. Tampil Data\n ");
printf(" 4. Selesai\n ");
printf("\nInputkan Pilihan Anda (1-4) : ");
scanf("%d",&pilih);
switch(pilih)
{
case 1 :
{input();
break;}
case 2 :
{tambah();
break;}
case 3 :
{tampil();
break;}
case 4 :
break;
default :
printf("\nPilihan Anda Salah ");
}
}
while (pilih<4);
getch();
}
Roslina, M.I.T
104
Buku Ajar Algoritma danPemrograman
void input(void)
{
FILE *fmhs;
char ok;
struct
{
char nama[20];
char t_lhr[20];
int umur;
char gender[10];
}mhs;
if((fmhs=fopen("mahasiswa.dat","wb"))==NULL)
{
puts("file tidak dapat diciptakan");
exit(1);
}
do
{
clrscr();
puts("Simpan Biodata Mahasiswa");
printf("Nama : ");
scanf("%s",&mhs.nama);
printf("Tempat Lahir : ");
scanf("%s",&mhs.t_lhr);
printf("Umur : ");
scanf("%d",&mhs.umur);
printf("Jenis Kelamin : ");
scanf("%s",&mhs.gender);
Roslina, M.I.T
105
Buku Ajar Algoritma danPemrograman
}
while (ok=='Y' || ok =='y');
fclose(fmhs);
getch();
void tambah()
{
FILE *fmhs;
char ok;
struct
{
char nama[20];
char t_lhr[20];
int umur;
char gender[10];
}mhs;
if((fmhs=fopen("mahasiswa.dat","ab"))==NULL)
{
puts("file tidak dapat diciptakan");
exit(1);
}
do
{
clrscr();
puts("Simpan Biodata Mahasiswa");
printf("Nama : ");
scanf("%s",&mhs.nama);
printf("Tempat Lahir : ");
scanf("%s",&mhs.t_lhr);
Roslina, M.I.T
106
Buku Ajar Algoritma danPemrograman
printf("Umur : ");
scanf("%d",&mhs.umur);
printf("Jenis Kelamin : ");
scanf("%s",&mhs.gender);
Roslina, M.I.T
107
Buku Ajar Algoritma danPemrograman
printf("%s\t\t%s\t\t%d\t\t%s\n",mhs.nama,mhs.t_lhr,
mhs.umur,mhs.gender);
fclose(fmhs);
getch();
TUGAS
Buat algoritma dan program untuk menyimpan dan
menampilkan data dari file pegawai dengan data input :
Nama, NIP, Golongan. Output yang diinginkan seperti
berikut :
TOTAL
Roslina, M.I.T
108
Buku Ajar Algoritma danPemrograman
DAFTAR REFERENSI
Roslina, M.I.T
109