0% menganggap dokumen ini bermanfaat (0 suara)
223 tayangan54 halaman

Struktur Kode Pemrograman Dasar C

BAB I membahas konsep dasar pemrograman seperti bahasa pemrograman, konsep pemecahan masalah, ciri pemrograman terstruktur, dan langkah pembuatan program. BAB II membahas tipe data dasar dalam bahasa C seperti integer, floating point, karakter, dan void serta konsep variabel.

Diunggah oleh

Abidin Berasa
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
223 tayangan54 halaman

Struktur Kode Pemrograman Dasar C

BAB I membahas konsep dasar pemrograman seperti bahasa pemrograman, konsep pemecahan masalah, ciri pemrograman terstruktur, dan langkah pembuatan program. BAB II membahas tipe data dasar dalam bahasa C seperti integer, floating point, karakter, dan void serta konsep variabel.

Diunggah oleh

Abidin Berasa
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

BAB I

KONSEP DASAR PEMROGRAMAN

1.1 Pendahuluan

Konsep Dasar Pemrograman antara lain:


• Sebagai sarana komunikasi antara manusia dan komputer disebut bahasa
komputer.
• Bahasa Pemrograman Komputer adalah tata cara penulisan program (kata,
ekspresi, pernyataan) berupa langkah untuk menyelesaikan masalah
• Faktor yang perlu diperhatikan adalah sintaksis, semantik dan logika
• Bahasa pemrograman: tingkat tinggi, menengah dan rendah

Konsep Pemecahan Masalah antara lain:


• Menganalisa dan memahami permasalahan dan membuat algoritma (pola
berfikir terstruktur berisi tahap-tahap penyelesaian masalah)
• Membuat kode dari algoritma dalam pernyataan sesuai dengan bahasa
pemrograman
• Testing (menjalankan program) dan debugging (menemukan kesalahan)
• Melakukan dokumentasi terhadap setiap langkah

Ciri Pemrograman Terstruktur antara lain:


• Mempunyai teknik pemecahan masalah yang benar
• Memiliki algoritma pemecahan masalah yang sederhana dan efisien
• Teknik penulisan program memiliki struktur logika yang benar dan mudah
dipahami
• Membutuhkan biaya testing yang rendah
• Memiliki dokumentasi yang baik

Langkah-langkah Pembuatan Program antara lain:


• Mendefinisikan masalah
• Mencari solusi untuk masalah
• Memilih teknik pemecahan masalah dan algoritma

1
• Menulis program
• Melakukan testing dan debugging
• Melakukan dokumentasi
• Melakukan pemeliharaan
Definisi Algoritma
• Pola pikir yang terstruktur yang berisi tahap-tahap penyelesaian masalah untuk
diimplementasikan dalam pemrograman
• Biasanya dalam program terdapat tiga struktur program:
• Struktur Urut
• Struktur Keputusan
• Struktur Perulangan
1.2 Sejarah Bahasa C

Bahasa C adalah dari bahasa BCPL (Basic Combined Programming Language),


yang dikembangkan oleh Martin Ricard pada tahun 1967. Bahasa ini memberikan ide
kepada Thomson yang kemudian mengembangkan bahasa yang disebut dengan B pada
tahun 1970. Selanjutnya dari bahasa B dikembangkan bahasa C oleh Dennis Ricthie
sekitar tahun 1970-an di Bell Telephone Laboratories Inc. Dan pertama kali digunakan
di komputer Digital Equipment Corporation yang menggunakan sistem UNIX.

Kelebihan Bahasa C

• Tersedia hampir di semua jenis komputer.


• Kodenya bersifat portabel dan fleksibel. Aplikasi yang ditulis dengan C untuk
suatu komputer tertentu dapat digunakan di komputer lain hanya dengan sedikit
modifikasi.
• Struktur bahasa yang baik mudah dipelajari, memudahkan pembuatan program,
memudahkan pelacakan kesalahan program.
• Dibandingkan bahasa mesin atau assembly, C jauh lebih
mudah dipahami. C berorientasi pada permasalahan, bukan pada mesin.
• Dapat memanipulasi data dalam bentuk bit atau byte.
• Proses Executable program C lebih cepat.

2
Kelemahan C
• Banyaknya operator serta flesibilitas penulisan program kadang-kadang
membingungkan pemakai.
• Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
Komponen C
Komponen bahasa c terdiri dari berbagai macam standar library (header file):
• Stdio.h
• Conio.h

Struktur Program C
Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari
program harus dimengerti terlebih dahulu. Struktur dari program C dapat dilihat sebagai
kumpulan dari sebuah atau lebih fungsi-fungsi. Berikut ini adalah stuktur dari program
C:

main()
{
statemen-statemen; //fungsi utama
}

fungsi_fungsi_lain()
{
statemen-statemen; // fungsi-fungsi lain
}

contoh:
#include<stdio.h>
main()
{
printf(“HALLO C”);
}

Keterangan:
• stdio.h, header standard input output karena ada printf
• main(), program utama
• {}, awal program dan akhir program
• printf(“HALLO C”); mencetak tulisan Hallo C di layar monitor

Preprosesor #include
 #include merupakan satu jenis pengarah preprosesor yang dipakai untuk
membaca file yang dinamakan file judul (header file), yaitu file yang berisi
deklarasi fungsi dan definisi konstanta

3
 Contoh:
– #include <stdio.h>
– #include <conio.h>

Prepocessor
• Stdio.h akan memanggil fungsi : printf (), Scanf ()
• Scanf.h akan memanggil fungsi : clrscr(), putch(), getch() dll

Gambar Proses penerjemahan bahasa C

Editor
DISK

Preprocessor
.h
.obj
Compiler .out
(UNIX)
.exe
Linker (MS)

Loader

Primary Memory
CPU

4
BAB II
DASAR-DASAR PEMROGRAMAN

2.1 KONSEP TYPE DATA


Bahasa C menyediakan lima macam tipe data dasar, yaitu tipe data integer (nilai
numerik bulat yang dideklarasikan dengan int), floating-point (nilai numerik pecahan
ketepatan tunggal yang dideklarasikan dengan float), double-precision (nilai numerik
pecahan ketepatan ganda yang dideklarasikan dengan double), karakter (dideklarasikan
dengan char), dan kosong (dideklarasikan dengan void)

A. INT, LONG

Digunakan untuk menyatakan bilangan bulat. Seperti pada char, perubah tipe
signed (-) dan unsigned (+) dapat ditambahkan.
Rentang nilai int mulai -32.768 sampai 32.767
Rentang nilai long mulai -2.147.483.648 sampai 2.147.483.647
Contoh deklarasi int :
– int nilai, total ; atau
– int nilai = 90 ;
B. FLOAT, DOUBLE
Menyatakan bilangan pecahan/real, maupun eksponensial. Dalam keadaan
default, bilang floating point dianggap bertipe double.
 Rentang nilai float mulai 1.7E-38 sampai 3.4 E+38
 Rentang nilai double mulai 3.4E-308 sampai 1,7E+308

C. CHAR

Adalah sembarang huruf, angka, tanda baca tunggal. Ada 2 (dua) macam char,
yaitu :
1. signed
Mendeklarasikan char bertanda, digunakan untuk nilai negative.
Rentang nilai mulai 0 sampai 255.
2. unsigned
Mendeklarasikan char tidak bertanda, untuk nilai positif.

5
Rentang nilai mulai -128 sampai 127
contoh deklarasi char :
– char letter = ‘A’ ;
– unsigned char number = 245 ;
– signed char value = -71 ;

D. VOID

Menyatakan tipe kosong untuk :


1. mendeklarasikan fungsi yang tidak mengembalikan nilai apapun.
2. mendeklarasikan fungsi yang tidak menerima parameter apapun.
Contoh deklarasi void :
 Main; atau
 Void action atau main ;

Ukuran memori untuk tipe data

2.2 Variabel

 Aturan Pendefinisan Variabel


– Terdiri dari gabungan huruf dan angka dengan karakter pertama harus
berupa huruf. Bahasa C bersifat case-sensitive artinya huruf besar dan
kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap
berbeda
– Tidak boleh mengandung spasi.
– Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah
(underscore). Yang termasuk symbol khusus yang tidak diperbolehkan
antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb
– Pengenal harus diawali dengan huruf (A..Z, a..z) atau karakter garis
bawah ( )

6
– Selanjutnya dapat berupa huruf, digit (0..9) atau karakter garis bawah
atau tanda dollar ($)
– Panjang pengenal bebas, tetapi hanya 32 karakter pertama yang akan
terpakai. Contoh penamaan variabel yang benar :
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb
– Pengenal tidak boleh menggunakan nama yang tergolong sebagai kata-
kata cadangan (reserved words) seperti int, if, while dan sebagainya

 Bentuk umum deklarasi variabel:


tipe daftar-variabel;

 Contoh:
int var_bulat1;
float var_pecahan1, var_pecahan2;

 Memberikan Nilai ke Variabel

nama_variabel = nilai;

 Contoh:
int var_bulat = 10;
double var_pecahan = 10.5;

Latihan 2.1
/* ---------------------------------------*/
/* Program : Variabel.c */
/* Program Contoh Variabel */
/* ----------------------------------------*/
#include "stdio.h"
#include "conio.h"
main()
{
float gaji,tunj;
gaji = 20000;
tunj = 0.1 * gaji;
GAJI = gaji + tunj;
printf("\nGaji Pokok = Rp. %f",gaji);
printf("\nTunjangan = Rp. %f",tunj);
printf("\nGaji Total = Rp. %f",GAJI);

7
getch();
clrscr();

}
Hasil :
 Gaji Pokok = Rp. 20000.000000
 Tunjangan = Rp. 2000 .000000
 Gaji Total = Rp. 22000 .000000

2.3 KONSTANTA
Pengertian konstanta adalah:
 Konstanta menyatakan nilai tetap. Berbeda dengan variabel, suatu konstanta
tidak dideklarasikan namun memiliki tipe. Penulisan konstanta mempunyai aturan
tersendiri, sesuai dengan tipe masing-masing. Konstanta dapat bernilai integer,
pecahan, karakter dan string. Contoh konstanta : 50; 13; ‘A’; ‘Bahasa C’
 Konstanta sering dipakai dalam rumus-rumus fisika dan matematika. Contoh :
phi (p) yang mempunyai nilai 3.14268. Phi sering dipakai untuk rumus-rumus yang
berhubungan dengan lingkaran.
 Konstanta menyatakan nilai yang tetap
– karakter :‘A’ dan ‘@’
– integer : –1 dan 32767
– real (float dan double) : 27.5f (untuk tipe float) atau
27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 )
– string : "Pemrograman Dasar C"

Contoh
#include<stdio.h>
main()
{
int A=1;
float B=2.0;
char C='A';
char D[10]="Test";
printf("%d\n",A);
printf("%f\n",B);
printf("%c\n",C);
printf("%s\n",D);
}

Hasil:
1
2.000000
A
Test

MENDEFINISIKAN KONSTANTA

8
Suatu konstanta dapat diberi nama. Pendefinisiannya dilakukan dengan menggunakan
pengarah preprocessor #define.

LATIHAN 2.2:
#include <stdio.h>
#define phi 3.14
main()
{
float radius, keliling, luas;
radius = 20;
clrscr();
keliling = 2 * phi * radius;
luas = 0.5 * phi * radius * radius;
printf("Data Lingkaran : \n");
printf("Jari-jari = %f\n", radius);
printf("Keliling = %f\n", keliling);
printf("Luas = %f\n", luas);
getch();
}

Hasil:

Data Lingkaran :
Jari-jari = 20.000000
Keliling = 125.599998
Luas = 628.000000

2.4. OPERATOR
Operator atau tanda operasi adalah suatu tanda atau simbol yang digunakan untuk
suatu operasi tertentu.

1. Operator ARITMATIKA
___________
Operator ¦ Maksud
-------------------+--------------------------------------------
* ¦ Perkalian
/ ¦ Pembagian
% ¦ Pembagian modulus (pembagian sisa)
- ¦ Pengurangan
+ ¦ Pertambahan
-------------------+--------------------------------------------

Contoh Program

#include<stdio.h>
main()
{
int a,b,c;

9
a=2;
b=3;
c=a+b;
printf("%d",c);
}

2. Operator UNARY
______________
Operator ¦ Maksud
-------------------+----------------------------------------------
- ¦ Unary minus
++ ¦ Peningkatan dengan penambahan nilai 1
-- ¦ Penurunan dengan pengurangan nilai 1
(type) ¦ Cast
sizeof ¦ Ukuran dari operand dalam byte
! ¦ Unary NOT
& ¦ Menghasilkan alamat memory operand
* ¦ Menghasilkan nilai pengenal dialamatnya
~ ¦ Komplemen satu
-------------------+----------------------------------------------

Keterangan

Operator Unary minus :


Digunakan untuk memberi nilai minus suatu nilai numerik (bukan untuk
pengurangan). Misalnya ungkapan A+-B*C akan diartikan sebagai A+(-B)*C.
Penulisan A--B*C berarti A-(-B)*C

Operator ++ dan -- :
Operator ini banyak dijumpai di statemen perulangan yang berbentuk sebagai
berikut :
for(i=1;i<=10;i=i+1)
dapat ditulis dengan operator ++ sebagai berikut :
for(i=1;i<=10;i++)
Operator ++ dan -- yang digunakan di suatu ungkapan akan berarti lain jika ditulis
sebelum atau sesudah operandnya.
Contoh
X=5;
A=X++;
Hasil
X=6 dan A=5

X=5;
A=++X;
Hasil
X=6 dan A=6

3. Operator PENGERJAAN

10
Operator Pengerjaan Digunakan untuk memindahkan nilai dari suatu ungkapan ke
suatu pengenal.

____________
¦ Operator ¦ Contoh ¦ Maksud ¦
+ ---------------+----------------------+----------------------+
¦ = ¦ 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 |
+=============+======================+=========================+

Contoh :
Misalnya variabel I dan J adalah variabel-variabel type integer dengan nilai awal
keduanya adalah 10. Maka
I+=3; artinya : I=I+3;
I=10+3;
I=13;
I/=J-8; artinya : I=I/(J-8);
I=10/(10-8);
I=5;
dan seterusnya.

4. Operator HUBUNGAN
Operator Hubungan digunakan untuk menunjukkan hubungan antara dua buah
operand
______________
Operator ¦ Maksud
-------------------+----------------------------------------------
< ¦ Lebih kecil dari
<= ¦ Lebih kecil atau sama dengan
> ¦ Lebih besar dari
>= ¦ Lebih besar atau sama dengan
== ¦ Sama dengan
!= ¦ Tidak sama dengan
-------------------+----------------------------------------------

Operator hubungan banyak digunakan untuk penyeleksian kondisi dengan


statemen if, do-while atau while.

5. Operator LOGIKA

11
Operator Logika digunakan untuk membandingkan logika hasil dari operator-
operator hubungan.

_____________
Hubungan LOGIKA

X ¦ Y ¦ X&&Y ¦ X||Y ¦ !X
----------+---------+-------------+-----------+----------
0 ¦ 0 ¦ 0 ¦ 0 ¦ 1
0 ¦ 1 ¦ 0 ¦ 1 ¦ 1
1 ¦ 0 ¦ 0 ¦ 1 ¦ 0
1 ¦ 1 ¦ 1 ¦ 1 ¦ 0
==========+=========+=============+===========+==========

TUGAS
1. Buatlah Algoritma dan program untuk menghitung luas dan keliling lingkaran.
– Rumus luas=phi*r*r, sedangkan keliling= 2*phi*r dimana r adalah jari-
jari dan dimasukkan melalui keyboard. (phi=3.14)
 Algoritma:
– Masukkan jari-jari
– Luas = phi*r*r
– Kelling = 2*phi*r
– Tampilkan luas
– Tampilkan keliling

12
BAB III
INPUT DAN OUTPUT

3.1 Memasukkan Data


Dalam bahasa C proses memasukkan suatu data bisa menggunakan beberapa
fungsi pustaka yang telah tersedia. Beberapa fungsi pustaka yang bisa digunakan
adalah :
 scanf()
♦ Fungsi pustaka scanf() digunakan untuk menginput data berupa data numerik,
karakter dan string secara terformat.
♦ Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() :
- Fungsi scanf() memakai penentu format
- Fungsi scanf() memberi pergantian baris secara otomatis
- Fungsi scanf() tidak memerlukan penentu lebar field
- Variabelnya harus menggunakan operator alamat &
Kode penentu format :
♦ %c : Membaca sebuah karakter
♦ %s : Membaca sebuah string
♦ %i, %d : Membaca sebuah bilangan bulat (integer)
♦ %f, %e : Membaca sebuah bilangan pecahan (real)
♦ %o : membaca sebuah bilangan octal
♦ %x : Membaca sebuah bilangan heksadesimal
♦ %u : Membaca sebuah bilangan tak bertanda
Contoh :

/* Program memasukan inputan dengan beberapa tipe data */


#include <stdio.h>
#include <conio.h>
void main()
{ int jumlah;
char huruf, nim[10];
float nilai;
printf("Masukkan sebuah bilangan bulat : ");
scanf("%d", &jumlah ); /* membaca sebuah bilangan bulat */
printf("Masukkan sebuah karakter : ");

13
scanf("%c", &huruf ); /* membaca sebuah karakter */
printf("Masukkan nim Anda : ");
scanf("%s", &nim ); /* membaca sebuah string */
printf("Masukkan sebuah bilangan pecahan : ");
scanf("%f", &nilai ); /* membaca sebuah bilangan float */
printf("\nNilai variable yang Anda masukkan adalah :\n");
printf("jumlah = %d\n", jumlah );
printf("huruf = %c\n", huruf );
printf("nim = %s\n", nim );
printf("nilai = %f\n", nilai );
getch();
}

 gets()
♦ Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat
digunakan untuk memasukkan data numerik.
♦ Harus diakhiri dengan penekanan tombol enter.
♦ Cursor secara otomatis akan pindah baris.
♦ Tidak memerlukan penentu format
Contoh :
/* Program inputan tipe data karakter/string */
#include “stdio.h“
#include “conio.h“
void main()
{
char nama[20];
clrscr();
printf(“Masukkan nama Anda : “);
gets(nama);
printf(“Hello, Nama Anda adalah %s“, nama);
getch();
}

 getchar()
♦ Fungsi getchar() digunakan untuk membaca data yang bertipe karakter
♦ Harus diakhiri dengan penekanan tombol enter
♦ Karakter yang dimasukkan terlihat pada layar
♦ Pergantian baris secara otomatis
 getch() dan getche()
♦ Fungsi getch() dan getche() digunakan untuk membaca data karakter.
♦ Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter.
♦ Tidak memberikan efek pergantian baris secara otomatis

14
♦ Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan
ditampilkan pada layer sehingga sering digunakan untuk meminta inputan berupa
password.
♦ Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layar.
Contoh :
#include “stdio.h”
#include “conio.h”
void main()
{
char huruf1, huruf2;
printf(“Masukkan sebuah karakter : “);
huruf1 = getche(); // karakter yang dimasukkan akan terlihat di layar
printf(“\nKarakter yang Anda masukkan adalah %c\n”, huruf1);
printf(“\nMasukkan sebuah karakter lagi : “);
huruf2 = getch(); // karakter yang dimasukkan tidak terlihat di layar
printf(“\nKarakter yang Anda masukkan adalah : %c, huruf2);
getch();
}
3.2. MENAMPILKAN HASIL DI LAYAR
Untuk menampilkan hasil adalah semua prosesnya dilakukan oleh fungsi-fungsi.
Fungsi-fungsi ini prototypenya berada di file header stdio.h dan conio.h, seperti
putchar(), puts(), printf(), dan fprintf().
 Fungsi printf()

printf(“string kontrol”,arg1, arg2,...);

 Penentu format
%d untuk menampilkan bilangan bulat
%f untuk menampilkan bilangan pecahan
%c untuk menampilkan sebuah karakter
%s untuk menampilkan sebuah string

Memasukan Data dari Keyboard

 Fungsi scanf()

scanf(“%f”,&radius); c = getchar();

 Penentu format
%c membaca sebuah karakter
%s membaca sebuah string (dibahas pada bab vii)
%i atau %d membaca sebuah integer desimal
%e atau %f membaca sebuah bilangan real (bisa dalam bentuk eksponensial)
%o membaca sebuah integer oktal
%x membaca sebuah integer heksadesimal
l awalan untuk membaca data long int (misal : %ld) atau untuk membaca data double
(misal : %lf) 15
L awalan untuk membaca data long double (misal : %Lf)
Contoh Listing Program :

Contoh :
#include<stdio.h>
main()
{
int X=123;
float Y=123.4567;

printf("%d",X);
printf("%f",Y);
}

TUGAS

1. Buatlah tampilan untuk menginput dan menampilkan biodata pribadi seseorang yang
terdiri dari nama, tempat, tanggal lahir, alamat, nomor telepon, agama dan jenis
kelamin.

16
BAB IV
PENGAMBILAN KEPUTUSAN

4.1 Penyeleksian Kondisi


Statement kondisi menggontrol jalannya program. Misal: kran yang mengatur
jalannya air. Bila kran terbuka maka air akan mengalir sebaliknya jika kran tertutup
maka air tidak akan mengalir atau akan mengalir melalui tempat lain.
A. Statemen if
Statemen if mempunyai beberapa variasi bentuk.
a. Bentuk if Tunggal Sederhana
Sintak dari bentuk if tunggal sederhana adalah sebagai berikut :
if (kondisi) statemen
Arti dari perintah if adalah jika kondisi bernilai benar, maka pernyataan
dikerjakan. Kondisi harus ditulis diantara tanda kurung dan dapat berupa sembarang
ungkapan. Jika digambarkan alur flowchartnya sebagai berikut:

kondisi salah

benar

Statemen

Latihan 4.1
#include “stdio.h”
#include “conio.h”

17
void main()
{ float nilai;
printf(“Masukan nilai yang didapat : “);
scanf(“%f”, &nilai);
if(nilai > 65)
printf(“\n SELAMATANDA LULUS !!!!\n”);
getch();
}

langkah program :
• Masukkan Nilai Anda : ....
• Misal 65
• Apa yang dihasilkan?
• Apakah nilai lebih besar dari 65 ?
• Jika nilai lebih besar dari 65
• Maka
• Tampilkan hasil...
• Selamat, Anda Lulus
• end

Latihan 4.2
#include “stdio.h”
#include “conio.h”
main()
{
double beli, diskon;
printf("Jumlah pembelian : Rp. "); scanf("%lf",&beli);
diskon=0;
if (beli >= 50000)
diskon=0.05*beli;
printf("\nBesarnya diskon Anda Rp. %10.2lf",diskon);
getch();
clrscr();

Langkah program:

• Masukkan Jumlah pembelian: ....


• Misal: 100000
• Apakah 100000 >= 50000 ?
• Jika pembelian lebih besar, maka mendapat diskon 0.05 dari
jumlah pembelian.

• Jika pembelian < dari 50000, maka tidak mendapat diskon


• end

Latihan 4.3

#include “stdio.h”
#include “conio.h”
main()
{
int JumlahAnak;

18
float GajiKotor,Tunjangan,PersenTunjangan=0.2;
printf("GajiKotor ?");
scanf("%f",&GajiKotor);
printf("Jumlah Anak ?");
scanf("%d",&JumlahAnak);

if(JumlahAnak>2)PersenTunjangan=0.3;

Tunjangan=PersenTunjangan*GajiKotor;
printf("\nBesarnya Tunjangan=Rp %2.2f\n",Tunjangan);
getch();
clrscr();
}

Langkah Program:

• Masukkan Gaji Kotor: ....


• 200000
• Masukkan Jumlah Anak:..
• 2
• Apa yang dihasilkan?

• Jika jumlah anak >2 maka akan mendapat tunjangan =0.3 persen
dari gaji kotor
• Tampilkan hasil besarnya tunjangan= .....
• Jika jumlah anak <2 maka akan mendapat tunjangan=0.2 persen dari
gaji kotor
• Tampilkan hasil besarnya tunjangan= .......
• end

B. Bentuk if Tunggal Blok Statemen

Contoh :
#include "stdio.h"
main()
{
int jumlahanak;
float gajikotor,tunjangan,potongan;
float persentunjangan=0.2;
float persenpotongan=0.05;

printf("gajikotor ?");
scanf("%f",&gajikotor);
printf("jumlah anak ?");
scanf("%d",&jumlahanak);

if(jumlahanak > 2)
{
persentunjangan =0.3;
persenpotongan = 0.07;
}

tunjangan= persentunjangan * gajikotor;


potongan =persenpotongan * gajikotor;
printf("\nbesarnya tunjangan=Rp %10.2f\n",tunjangan);

19
printf("\nbesarnya potongan=Rp %10.2f\n",potongan);
getch();
clrscr();
}

Langkah Program:
• Masukkan Gaji Kotor: ....
• 200000
• Masukkan Jumlah Anak:..
• 2
• Apa yang dihasilkan?

• Jika jumlah anak >2 maka akan mendapat tunjangan =0.3 persen
dari gaji kotor dan persen potongan sebesar 0.07
• Tampilkan hasil besarnya tunjangan= .....
• Tampilkah hasil besarnya potongan

• Jika jumlah anak <2 maka akan mendapat tunjangan=0.2 persen dari
gaji kotor
• potongan sebesar 0.05
• Tampilkan hasil besarnya tunjangan= .....
• Tampilkah hasil besarnya potongan

• end

C. Bentuk if-else

Sintak dari bentuk statemen if-else adalah sebagai berikut ini :


if (kondisi)
statemen-1;
else
statemen-2;

salah
kondisi

benar

statemen-1 statemen-2

Jika kondisi benar maka pernyataan-1 dikerjakan, jika kondisi salah


maka pernyataan-2 yang akan dikerjakan.

20
Contoh 1 :

#include<stdio.h>
main()
{
float A,B;

printf("Masukkan nilai a ?");scanf("%f",&A);


printf("Masukkan nilai b ?");scanf("%f",&B);
printf("\n");

if(B==0)
printf("%f dibagi dengan 0 adalah TAK BERHINGGA\n",A);
else
printf("%f dibagi dengan %f adalah %f\n",A,B,A/B);
}
Contoh 2:

#include <stdio.h>
#include <conio.h>
void main()
{
int Nilai;
printf("Masukkan Nilai Anda :");scanf("%d",&Nilai);
if (Nilai>60)
{
printf("Selamat, Anda Lulus");
}
else
{
printf("Maaf, Anda Belum Berhasil");
}
getch();
}

langkah program :
• Masukkan Nilai Anda : ....
• Misal 65
• Apa yang dihasilkan?
• Apakah nilai lebih besar dari 65 ?
• Jika nilai lebih besar dari 65
• Maka
• Tampilkan hasil...
• Selamat, Anda Lulus
• Jika nilai lebih kecil dari 65
• Maka
• Tampilkan Hasil....
• Maaf, Anda Belum Berhasil
• end

Latihan 4.4

#include "stdio.h"
#include "conio.h"
main()
{

21
char nama[20];
int umur;
clrscr();
printf("Nama Calon Pegawai : ");gets(nama);
printf("Umur : ");scanf("%d",&umur);
if (umur>=20 && umur <=30)
{
printf("\nSelamat..., %s",&nama);
printf("\n\nAnda Masuk Kategori Kenaikan Jabatan...!");
}
else
{
printf("\nMaaf..., %s",&nama);
printf("\n\nUmur Anda Tidak Masuk Kategori Kenaikan
Jabatan...!");
}
getch();
}

Hasil program :

• Masukan Nama Calon Pegawai : .....


• Masukan Umur : .....

Tampilan hasil
• Maaf..., Aditya
• Umur Anda Tidak Masuk Kategori Kenaikan Jabatan...!

D. Bentuk if-else if ..... else


Sintak dari bentuk ini adalah sebagai berikut :
if(kondisi 1)
statemen;
else if(kondisi 2)
statemen;
else if(kondisi 3)
statemen;
.
else
statemen x;

Keterangan :
Syarat IF diperiksa dari atas ke bawah. Jika sebuah syarat benar,
pernyataan (statemen) yang mengikutinya akan dikerjakan dan yang
selanjutnya diabaikan. Jika tidak satupun syarat yang benar, ELSE
terakhir akan dikerjakan. Jika ELSE terakhir tidak ada dan tidak ada
syarat yang benar, maka tidak ada yang dikerjakan.

Contoh 1:

22
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
float A,B,C,D,X1,X2;
clrscr();

printf("Masukkan nilai a ?");scanf("%f",&A);


printf("Masukkan nilai b ?");scanf("%f",&B);
printf("Masukkan nilai c ?");scanf("%f",&C);
printf("\n");
//menghitung nilai determinan
D=B*B-4*A*C;
if(D==0)
{
X1=-B/(2*A);
printf("Dua akar riel kembar\n");
printf("X1=X2=%f\n",X1);
}
else if(D>0)
{
X1=(-B+sqrt(D))/(2*A);
X2=(-B-sqrt(D))/(2*A);
printf("Dua akar riel berlainan\n");
printf("X1=%f\n",X1);
printf("X2=%f\n",X2);
}
else if(D<0)
{
X1=-B/(2*A);
X2=sqrt(-D)/(2*A);
printf("Dua akar riel berlainan\n");
printf("X1=%f\n",X1);
printf("X2=%f\n",X2);
}
getch();
}

Jika program diatas dijalankan :

Masukkan nilai a ?4
Masukkan nilai b ?4
Masukkan nilai c ?1

Dua akar riel kembar


X1=X2=-0.500000

Contoh 2 :

#include<stdio.h>
main()
{
int kd;
printf("masukkan kode hari:");

23
scanf("%d",&kd);
if(kd==0)
printf("minggu\n");
else if(kd==1)
printf("senin\n");
else if(kd==2)
printf("selasa\n");
else if(kd==3)
printf("rabu\n");
getch();
}

Latihan 4.5
#include<stdio.h>

main()
{
int no_menu;
clrscr();
printf("\n Menu Restaurant X’ Net Indonesia");
printf("\n============================");
printf("\n1. Nasi Goreng Informatika");
printf("\n2. Nasi Soto Ayam Internet");
printf("\n3. Gado-gado Disket");
printf("\n4. Bubur Ayam LAN");
printf("\n============================");
printf("\n\nMasukkan Pilihan Anda... :");scanf("%d",&no_menu);
if (no_menu==1)
printf("\nPilihan No.1 Nasi Goreng Informatika Rp.5.000,-");
else if (no_menu==2)
printf("\nPilihan No.2 Nasi Soto Ayam Internet Rp.7.000,-");
else if (no_menu==3)
printf("\nPilihan No.3 Gado-gado Disket Rp.4.500,-");
else if (no_menu==4)
printf("\nPilihan No.4 Bubur Ayam LAN Rp.4.500,-");
else printf("\nPilihan Anda tidak terdaftar pada menu...!");
getch();
}

Hasil :
Menu Restaurant X’ Net Indonesia
=====================================
1. Nasi Goreng Informatika Rp. 5.000,-
2. Nasi Soto Ayam Internet Rp. 7.000,-
3. Gado-gado Disket Rp. 4.500,-
4. Bubur Ayam LAN Rp. 4.000,-
=====================================
Masukkan Pilihan Anda... :1
Pilihan No.1 Nasi Goreng Informatika Rp.5.000,-

E. Statemen Switch
Pernyataan switch adalah pernyataan yang digunakan untuk menjalankan salah
satu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah

24
ungkapan dan nilai penyeleksi. Atau digunakan untuk pengambilan keputusan berganda
dengan menguji ungkapan bernilai bulat.

Sintak dari statemen switch adalah sebagai berikut :

switch(kondisi){

case konstanta1:
statemen-statemen;
break;
case konstata2:
statemen-statemen;
break;
.
.
default:
statemen-statemen;
}

 Keterangan :

• ungkapan, pada pernyataan switch dapat berupa sebuah


ungkapan, konstanta atau variabel.

• ungkapan_1, ungkapan_2 sampai dengan ungkapan_n , dapat


berupa sembarang konstanta atau variabel bertipe int dan char.

• Pencocokan ungkapan dengan ungkapan_1, ungkapan_2 sampai


dengan ungkapan_n dapat dilakukan secara berurutan, dimulai dari yang pertama.
Sekiranya cocok, pernyataan yang mengikuti case bersangkutan akan dijalankan.
Kalau selanjutnya pernyataan break ditemukan, eksekusi dari pernyataan switch
berakhir.
 Pengunaan pernyataan break.
– Pernyataan break digunakan untuk memaksa proses untuk keluar dari
suatu pernyataan ( memotong proses iterasi pada kalang ).

Contoh 1:
#include<stdio.h>
#include<conio.h>
main()
{
int Pilih;
float Sisi, Jari, Tinggi;

clrscr();
printf("<<MENU>>\n");
printf("\n");

25
printf("1. Menghitung Isi Kubus\n");
printf("2. Menghitung Luas Lingkaran\n");
printf("3. Menghitung Isi Silinder\n");
printf("\n");
printf("Pilih Nomor(1-3) ?");
scanf("%d",&Pilih);
printf("\n");

switch(Pilih){
case 1:
printf("Panjang sisi Kubus ?");
scanf("%f",&Sisi);

printf("Isi Kubus=%f\n",Sisi*Sisi*Sisi);
break;
case 2:
printf("Jari-jari Lingkaran ?");
scanf("%f",&Jari);
printf("Luas Lingkaran=%f\n",3.14*Jari*Jari);
break;
case 3:
printf("Jari-Jari Lingkaran ?");
scanf("%f",&Jari);
printf("Tinggi Silinder ?");
scanf("%f",&Tinggi);
printf("Isi Silinder=%f\n",3.14*Jari*Jari*Tinggi);
break;
}
getch();
}

Hasil dari program diatas

<<MENU>>

1. Menghitung Isi Kubus


2. Menghitung Luas Lingkaran
3. Menghitung Isi Silinder

Pilih Nomor(1-3) ?3

Jari-Jari Lingkaran ?2
Tinggi Silinder ?4
Isi Silinder=50.240000

Contoh 2:
#include<stdio.h>
main(){
int kd;
printf("masukkan kode hari:");
scanf("%d",&kd);
switch(kd)
{
case 0:
printf("minggu\n");
break;
case 1:

26
printf("senin\n");
break;
case 2:
printf("selasa\n");
break;
default:
printf("bukan hari\n");
}
}

Latihan 4.6
#include<stdio.h>
main()
{
int kelas;
float harga,pajak;
clrscr();
printf("\nHarga Barang : Rp. "); scanf("%f",&harga);
printf("\nMasukkan Jenis Kelas (1-4) : "); scanf("%d",&kelas);
switch (kelas)
{
case 1 :
printf("\n\nJenis Barang : Makanan");
printf("\nHarga Barang : Rp. %6.2f",harga);
pajak = 0.1 * harga;
printf("\nPajak : Rp. %6.2f",pajak);
break;
case 2 :
printf("\n\nJenis Barang : Pakaian, Sepatu");
printf("\nHarga Barang : Rp. %6.2f",harga);
pajak = 0.15 * harga;
printf("\nPajak : Rp. %6.2f",pajak);
break;
case 3 :
printf("\n\nJenis Barang : Mesin-mesin");
printf("\nHarga Barang : Rp. %6.2f",harga);
pajak = 0.175 * harga;
printf("\nPajak : Rp. %6.2f",pajak);
break;
default :
printf("\n\nPilihan Kelas salah...!");
}

27
getch();
}

Hasil :
• Harga Barang : Rp. 50000
• Masukkan Jenis Kelas (1-4) : 2
Tampilkan
• Jenis Barang : Pakaian, Sepatu
• Harga Barang : Rp. 50000.00
• Pajak : Rp. 7500.00

TUGAS
1. Buatlah Struktur program hari dengan ketentuan input kode hari 1-7, 1 untuk kode
hari SENIN, 2 untuk kode hari SELASA, 3 untuk kode hari RABU, 4 untuk kode
hari KAMIS, 5 untuk kode hari JUM’AT, 6 untuk kode hari SABTU dan 7 untuk
kode hari MINGGU. Jika kode yang diinput tidak dikenal maka, proses program akan
berhenti dan akan menampilkan dilayar berupa (Kode yang Anda masukkan salah).

28
BAB V
PERULANGAN

Penjelasan Operasi perulangan selalu dijumpai didalam bahasa pemrograman,

disini akan dibahasa beberapa perintah perulangan diantaranya.

5.1 Struktur Perulangan While


Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan
ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan
akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila
kondisinya bernilai salah.

Pernyataan While

• Sintak
while(kondisi)
pernyataan;
• Selama kondisi benar maka pernyataan dikerjakan
• Jika kondisi salah keluar loop

29
Proses perulangan akan dilakukan jika kondisi yang diseleksi di statemen while
masih bernilai benar, dan perulangan akan dihentikan jika kondisinya sudah bernilai
salah.

Contoh:

/* Program Perulangan menggunakan while */


#include “stdio.h“
#include “conio.h“

void main()
{ int x;
x = 1; /* awal variabel */
while (x <= 10) /* Batas akhir perulangan */
{ printf(“%d BAHASA C\n“, x);
x ++; /* variabel x ditambah dengan 1 */
}
getch();
}

Jika program tersebut dijalankan maka akan menghasilkan hasil sebagai


berikut:
1BAHASA C
2BAHASA C
3BAHASA C
4BAHASA C
5BAHASA C
6BAHASA C
7BAHASA C
8BAHASA C
9BAHASA C
10BAHASA C

Latihan 5.1 :

#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int i;
clrscr();
printf("*** TABEL SINUS DAN COSINUS DALAM SATUAN DERAJAT
***\n");
printf("%5s%12s%12s\n"," X"," Sinus(X)"," Cosinus(X)");
printf("%5s%12s%12s\n","----","---------","-----------");
i=0;
while(i<=360)
{
printf("%3d %11.5f %11.5f\n",i,sin(i/57.2958),cos(i/57.2958));
i+=30;
}

30
getch();
}

Hasil :
*** TABEL SINUS DAN COSINUS DALAM SATUAN DERAJAT ***
X Sinus(X) Cosinus(X)
---- --------- -----------
0 0.00000 1.00000
30 0.50000 0.86603
60 0.86603 0.50000
90 1.00000 0.00000
120 0.86603 -0.50000
150 0.50000 -0.86602
180 0.00000 -1.00000
210 -0.50000 -0.86603
240 -0.86602 -0.50000
270 -1.00000 -0.00000
300 -0.86603 0.50000
330 -0.50000 0.86602
360 -0.00000 1.00000

5.2 Statemen do-while


Pada dasarnya struktur perulangan do....while sama saja dengan struktur while,
hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya
di atas sementara pada perulangan do....while, seleksi while berada di bawah batas
perulangan.
Karakteristik do ... while() adalah:
1. Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan
pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap
dilakukan.
2. Perulangan dengan do...while() akan dilakukan sampai kondisi false.

Bentuk umum dari perulangan ini adalah :


do
{
pernyataan yang akan dijalankan
}
while (kondisi)

Perbedaan utama antara statemen do while dengan statemen while adalah letak
kondisi yang akan diseleksinya. Untuk while kondisi yang diseleksi terletak di awal
pernyataan
lingkup perulangan while, kondisinya harus benar dahulu.

benar
kondisi
31
salah

end
Contoh:
#include "stdio.h"
#include "conio.h"
void main()
{ int x;
x = 1;
do
{ printf("%d BAHASA C\n", x);
x ++;
}
while(x <= 10);
getch();
}

Latihan 5.2
#include "stdio.h"
#include "conio.h"
main ()
{
/* Kamus : */
int N;
int i;
/* Program */
printf ("Nilai N >0 = "); /* Inisialisasi */ scanf ("%d", &N);
i = 1; /* First Elmt */
printf ("Print i dengan REPEAT: \n");
do
{
printf ("%d \n", i); /* Proses */
i++; /* Next Elmt */
}
while (i <= N); /* Kondisi pengulangan */

printf ("Akhir program \n");

getch();
clrscr();
}

Latihan 5.3 :

#include <stdio.h>
#include <conio.h>

32
#include <math.h>
main()
{
int i,x;
printf(" X 1/X X^2 X^3\n");
printf("---------------------------\n");
x=1;
do
{
printf("%5d %8.5f",x,1.0/x);
i=2;
do
{
printf("%8.0f",pow(x,i));
i++;
}
while(i<=3);
printf("\n");
x++;
}while(x<=10);
getch();
}

Hasil :
X 1/X X^2 X^3
-----------------------------
1 1.00000 1 1
2 0.50000 4 8
3 0.33333 9 27
4 0.25000 16 64
5 0.20000 25 125
6 0.16667 36 216
7 0.14286 49 343
8 0.12500 64 512
9 0.11111 81 729
10 0.10000 100 1000

5.3. Statemen for

Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah
diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for
tampaknya lebih efisien karena susunannya lebih simpel dan sederhana.
Bentuk umum perulangan for adalah sebagai berikut :

for(ungkapan1; ungkapan2; ungkapan3)


pernyataan;
atau

for(Awal;Akhir;Peningkatan)statemen;

33
Keterangan :
• Awal adalah suatu ungkapan yang memeberikan nilai awal suatu variabel
untuk perulangannya (misal i=0).
• Akhir adalah suatu ungkapan yang menunjukkan suatu kondisi yang harus
dipenuhi supaya perulangan masih dapat terus dilakukan (misalnya i<=20 berarti
perulangan akan tetap terus dilakukan selama nilai variabel i masih lebih kecil atau
sama dengan 20).
• Peningkatan adalah suatu ungkapan yang merubah nilai-nilai variabel
pengontrol perulangan seetiap saat perulangan dilakukan (misal i++ berarti nilai i
ditambah dengan 1 setiap saat perulangan dilakukan)
Contoh 1:
bil = 10
#include <stdio.h>
main(){
int bil;
for(bil=10; bil<=100;bil+= 10)
printf("%d\n", bil);
} salah
bil <=100

benar

Cetak bil

bil = bil + 10

Contoh 2:
#include<stdio.h>
#include<conio.h>
main()
{
int i;
clrscr();
for(i=0;i<=5;i++)
printf("selamat pagi Indonesia\n");
getch();
}

Jika program ini dijalankan :

selamat pagi Indonesia


selamat pagi Indonesia
selamat pagi Indonesia
selamat pagi Indonesia
selamat pagi Indonesia

34
selamat pagi Indonesia

Berikut ini akan diberikan beberapa contoh prulangan dengan statemen for dan
variasinya.
1. Perulangan Positif
Merupakan perulangan yang peningkatannya positif untuk variabel pengontrol
perulangannya (misal i++)

Contoh 1 :
#include<stdio.h>
main()
{
int i;
for(i=-2;i<=3;i++)printf("%d\n",i);
}

Keterangan :
Program diatas variabel i dimulai dari -2 dan perulangan dihentikan setelah nilai 3
dengan peningkatan nilai 1, sehingga variabel akan bernilai -2,-1,0,1,2, dan 3.

Contoh 2 :
#include<stdio.h>
main()
{
int i;
for(i=0;i<=10;i+=3)printf("%d\n",i);
}
Keterangan :
Program diatas dimulai dari i=0 dan diakhiri nilai i<=10 dengan peningkatan 3

2. Perulangan Negatip
Contoh :
#include<stdio.h>
main()
{
int i;
for(i=5;i<=0;i--)printf("%d\n",i);
}

3. Perulangan dengan Blok Statemen


Perulangan dengan blok statemen memungkinkan sejumlah statemen di dalam blok
diproses berulang-ulang.
Contoh :
#include<stdio.h>
#include<conio.h>
main()
{
int i,n;

35
float x,rata,total=0;
clrscr();
//menanyakan banyak dari data
printf("Banyaknya Data ?");
scanf("%d",&n);
printf("\n");
//memasukkan masing-masing data dari nilai i=1 ke i=n
for(i=1;i<=n;i++)
{
printf("Data ke %3d ?",i);
scanf("%f",&x);
total=total+x;
}
rata=total/n;
printf("\n");
printf("Banyaknya Data =%3d\n",n);
printf("Total Nilai Data =%f\n",total);
printf("Rata-rata Nilai Data =%f\n",rata);
getch();
}

Jika program ini dijalankan :


Banyaknya Data ?3

Data ke 1 ?2
Data ke 2 ?3
Data ke 3 ?3

Banyaknya Data = 3
Total Nilai Data =8.000000
Rata-rata Nilai Data =2.666667

Keterangan :
Banyaknya perulangan adalah sebanyak n kali dan n adalah banyaknya data.

4. for tanpa nilai awal


Nilai awal dari variabel perulangan tidak harus ada di statemen for, tetapi dapat
ditentukan sebelum statemen ini.
Contoh :
#include<stdio.h>
#include<conio.h>
main()
{

int i;
clrscr();
i=3;
for(;i<=5;i++)
printf("%d\n",i);
getch();
}

5. for tanpa peningkatan


Contoh :
#include<stdio.h>
#include<conio.h>

36
main()
{
int i;
clrscr();
for(i=1;i<=5;)
{
printf("%d\n",i);

i++;
}
getch();
}
6. Perulangan tanpa nilai awal, akhir, dan peningkatan
Contoh :
#include<stdio.h>
#include<conio.h>
main()
{
int i;
clrscr();
for(;;)
printf("Perulangan tanpa berhenti\n",i);
getch();
}

37
BAB VI
FUNGSI

6.1 Dasar Fungsi


Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan
tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya.
Tujuan pemakaian fungsi :
1. Program menjadi terstruktur, sehingga mudah dipahami dan mudah
dikembangkan
2. Dapat mengurangi pengulangan kode (duplikasi kode)

BENTUK UMUM PENDEKLARASIAN FUNGSI :


tipe_fungsi nama_fungsi(parameter_fungsi);
BENTUK UMUM PENDEFINISIAN FUNGSI :
Tipe_fungsi nama_fungsi(parameter_fungsi)
{ statement
statement
………...
………...
}

Beberapa Fungsi Pustaka Dalam Bahasa C


Fungsi Operasi String (tersimpan dalam header file “string.h”)
1. strlen()
– Berfungsi untuk memperoleh jumlah karakter dari suatu string.
– Bentuk umum : strlen(string);
2. strcat()

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

Contoh :
#include "stdio.h"
#include "conio.h"
#include "string.h"
void main()
{ char nama[25];
strcpy(nama, "Muhammad Rosyid Al farabi");
printf("\nNama : %s", nama);
printf("\nBanyaknya karakter nama Anda adalah : %i", strlen(nama));
getch();
clrscr();
}

Latihan 6.1
#include "stdio.h"
#include "conio.h"
#include "string.h"
void main()
{
char satu[30] = "Fakultas Teknik";
char dua[30] = "Universitas Islam Attahiriyah";
clrscr();
strcat(satu, dua);
printf("Hasil penggabungannya : %s\n", satu);
printf("\nJika diubah menjadi huruf kapital semua :\n");
printf("%s", strupr(satu));
printf("\nJika diubah menjadi huruf kecil semua :\n");
printf("%s", strlwr(satu));

39
getch();
clrscr();
}

BAB VII
ARRAY

7.1 Dasar Array


Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu
yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut
dengan elemen-elemen array. Letak urutan dari elemen-elemen array ditunjukkan oleh
suatu subscript atau indeks

7.2. Array Dimensi Satu


a. Setiap elemen array dapat diakses melalui indeks.
b. Indeks Array dimulai dari 0
c. Deklarasi Array
Bentuk Umum:
Tipe_array_nama_array[ukuran];
Contoh: Nilai[0] Nilai[1] Nilai[2] Nilai[3] Nilai[4]
int Nilai[5]; 70 80 82 60 75

Contoh:
#include "stdio.h"
#include "conio.h"
void main()
{
int index;
int nilai[10];

40
printf("Input nilai 10 mahasiswa : ");
for(index=0; index < 10; index++)
{
printf("\nMahasiswa %i : ", index+1);
scanf("%i", &nilai[index]);
}

printf("Nilai mahasiswa yang telah diinput");


for(index=0; index < 10; index++)
{ printf("\n%5.0i", nilai[index]);
}
getch();
clrscr();
}

Latihan 7.1 :
/* File program : Array String */
#include <stdio.h>
void main()
{
int i,j;
char hari[][10] = {
"Minggu", "Senin",
"Selasa", "Rabu",
"Kamis", "Jumat",
"Sabtu"
};
/* Tampilkan data*/
for (i=0;i<7;i++)
printf ("%s\n", hari[i]);
getch();
clrscr();
}

41
Latihan7.2

/* latihan array statis : mengisi dg assignment, menulis */


#include <stdio.h>
main ()
{
/* Kamus */
int i;
int tab[5]; /* Cara mengacu elemen ke-i: tab[i] */ int N;
/* Program */
N = 5;
printf ("Isi dan print tabel untuk indeks 1 - 5 \n"); /* isi dengan
assignment */
for (i = 1; i <= N; i++)
{
tab[i] = i;
};
/* traversal: print */
for (i = 1; i <= N; i++)
{
printf ("i=%d tab[i]=%d \n", i, tab[i]);
};
getch();
clrscr();
}

7.3 Array Dimensi Dua

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

42
Int X[3][4];

Contoh :

#include <stdio.h>
void main()
{
int baris,kolom;

int bil[3][5] = {
{1, 2, 35, 7, 10},
{6, 7, 4, 1, 0},
{2,4,8,10,12}
};
for(baris = 0; baris < 3; baris++ )
for(kolom = 0; kolom < 5; kolom++ )

printf("Data [%d,%d] = %d\n",baris, kolom,


bil[baris][kolom]);

getch();
clrscr();
}

Hasil

0 1 2 3 4
0 1 2 35 7 10
1 6 7 4 1 0
2 2 4 8 10 12

7.4 Array Multi Dimensi

Bahasa C mengijinkan array dengan beberapa dimensi, contoh array 2 dimensi.


Array 2 dimensi adalah sebuah daftar yang terdiri atas array-array 1 dimensi. Misalnya
kita akan membuat array 2 dimensi dengan ukuran 3x5, bertipe int, maka deklarasinya
adalah : int a[3] [5];

Deklarasi array pada bahasa C tidak sama dengan bahasa-bahasa lain. Biasanya setiap
dimensi dipisahkan oleh tanda koma, tetapi bahasa C meletakan setiap dimensi di dalam kurung
siku.
Contoh :
main()
{

43
int i,j;
int b[3] [5];
clrscr();
for(i=1; i<=3; i++)
{
for(j=1; j<=5; j++)
{
b[i] [j] = i*j;
printf("%3d", b[i] [j]);
}
printf("\n");
}
getch();
}

Array 2 dimensi disimpan di dalam matriks yang tersusun menjadi baris dan kolom.
Index pertama menunjukkan barisnya dan index kedua menunjukkan kolomnya. Ukuran array
di dalam memori yaitu : total byte = baris * kolom * ukuran dari tipe. Untuk array di atas
total byte = 3*5*2 = 30 byte

7.5 ARRAY STRING


Array string sama dengan array karakter 2 dimensi. Indeks pertama menunjukkan
banyaknya string dan indeks kedua menunjukkan panjang maksimum string.
Contoh :
char nama[10] [25]

nama terdiri dari 10 elemen dengan panjang maksimum 25 karakter. Untuk membaca data
string, Anda dapat memakai fungsi gets(). Misalnya, Anda ingin membaca nama ketiga, maka
gets(nama[3]);

Contoh :
main()
{
char nama[10] [25];
float nilai[10], jumlah, rata;
int data,i;

clrscr();
printf("Banyaknya data : "); scanf("%d",&data);
for (i=1; i<=data; i++)
{
printf("Nama Mahasiswa : "); scanf("%s",&nama[i]);
printf("Nilai : "); scanf("%f",&nilai[i]);
jumlah += nilai[i];
}
clrscr();
printf("\nDaftar Nilai Ujian Bahasa C");
printf("\n==================================");
printf("\nNama Mahasiswa Nilai");
printf("\n==================================");
for (i=1; i<=data; i++)

44
{
printf("\n %-25s %5.1f", nama[i], nilai[i]);
}
printf("\n==================================");
rata= jumlah / data;
printf("\nRata-rata adalah %5.2f ", rata);
getch();
}

7.6 INISIALISASI ARRAY

Bentuk umum : tipe nama_array [ukuran1, ukuran2, …, ukuran n] = {daftar nilai};


Daftar nilai berisi konstanta yang sesuai dengan tipe array. Setiap konstanta dipisahkan oleh
tanda koma. Konstanta pertama akan mengisi elemen pertama, konstanta kedua untuk elemen
kedua dan seterusnya.
Misal : int i[10] = {12,45,67,34,2,5,60,7,19,21};
BAB VIII
STRING

8.1 Dasar String


String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman
untuk keperluan menampung dan memanipulasi data teks. Misalnya untuk menampung
(menyimpan) suatu kalimat. String adalah kumpulan dari nilai-nilai karakter yang
berurutan dalam bentuk array berdimensi satu.
8.2 Konstanta String
 Konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda
– “ABCDE”
 Komposisi penyimpanan string dalam memori

A B C D E \0
 Setiap karakter akan menempati memori sebesar 1 byte
 Byte terakhir otomatis akan berisi karakter NULL (\0)
8.3 Variabel String
 Variabel string adalah variabel yang dipakai utuk menyimpan nilai string
– char name[15];

 mendeklarasikan variabel string dengan panjang maksimal 15 karakter


(termasuk karakter NULL)

45
 Deklarasi tersebut sebenarnya tidak lain merupakan deklarasi array bertipe char

8.4 Inisialisasi String


 Suatu variabel string dapat diinisialisasi dengan elemen terakhirnya berupa
karakter NULL
– char name[]={'R',’I','N','I',’\0’};
– char name[] = “RINI”;
 penugasan suatu string ke variabel string seperti ini tidak diperkenankan
– name = “RINI”;
8.5 Input Output Data String
 gets(nama_array);
 scanf(“%s”, nama_array);
 nama_array adalah variabel bertipe array of char yang akan digunakan untuk
menyimpan string masukan
 Di depan nama_array tidak perlu ada operator & (operator alamat), karena
nama_array tanpa kurung siku sudah menyatakan alamat yang ditempati oleh
elemen pertama dari array tsb
Contoh:
#include <stdio.h>
main()
{
char name[15];
printf("Masukkan nama Anda : ");
gets(name);
printf("\nHalo, %s. Selamat belajar string.\n", name);
}

8.6 Menampilkan Isi Variabel String


 puts(var_string);
 printf("%s",var_string);
 Dalam hal ini var_string adalah sebuah variabel yang berupa sebuah array of
char

46
 Fungsi puts() akan menampilkan isi dari var_string dan secara otomatis
menambahkan karakter '\n' di akhir string
 Sedangkan fungsi printf() akan menampilkan isi variabel string tanpa
memberikan tambahan '\n'
8.7 Mengakses Elemen String
 Variabel string merupakan bentuk khusus dari array bertipe char
 Elemen dari variabel string dapat diakses seperti halnya pengaksesan elemen
pada array
Contoh:
#include <stdio.h>
#define MAKS 256
main()
{
int i, jumkar = 0;
char teks[MAKS];
puts("Masukkan suatu kalimat (maks 255 karakter).");
puts("Saya akan menghitung jumlah karakternya.\n");
fgets(teks, sizeof teks, stdin); //masukan dr keyboard
for(i=0; teks[i]; i++)
jumkar++;
printf("\nJumlah karakter = %d\n", jumkar);
}

Latihan 8.1
#include <stdio.h>
#define MAKS 30
main(){
int i;
char asal[] = “Saya menyukai bahasa C”;
char hasil[MAKS];
i=0;
while (asal[i] != ‘\0’){
hasil[i] = asal[i];
i++;
}
hasil[i] = ‘\0’; /* beri karakter NULL */
printf(“Isi hasil : %s\n”, hasil);
}

47
8.8 Fungsi-Fungsi Mengenai String
 Fungsi strcpy() untuk Menyalin Nilai String
 Fungsi strlen() untuk Mengetahui Panjang Nilai String
 Fungsi strcat() untuk Menggabung Nilai String
 Fungsi strcmp() untuk Membandingkan Dua Nilai String
 Fungsi strchr() untuk Mencari Nilai Karakter dalam String

BAB IX
POINTER

9.1 Konsep Dasar Pointer

Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain.
Variabel pointer berisi alamat dari suatu obyek lain. Sebagai contoh, px adalah variabel
pointer dan x adalah variabel yang ditunjuk oleh px. Kalau x berada pada alamat
memori (alamat awal) 1000, maka px akan berisi 1000

Variabel pointer px menunjuk ke variabel x

zzzz px
1000

px = &x;
address

?
1000
x

Mendeklarasikan Variabel Pointer

48
Bentuk Umum:

tipe *nama_variabel

Contoh :
int *px;

Mengatur Pointer agar Menunjuk ke Variabel Lain

px = &x;

Mengakses Isi Suatu Variabel Melalui Pointer

y = *px;

Contoh:
#include <stdio.h> Alamat x = 0012FF78
main() Isi px = 0012FF78
{ Isi x = 87
int y, x = 87; Nilai px = 87
int *px; Nilai y = 87
px = &x;
y = *px;
printf("Alamat x = %p\n", &x);
printf("Isi px = %p\n", px);
printf("Isi x = %d\n", x);
printf("Nilai px = %d\n", *px);
printf("Nilai y = %d\n", y);
}

Analisa
 Pada program di atas, dua pernyataan

px = &x;
y = *px;

 sebenarnya dapat digantikan dengan sebuah pernyataan berupa


y = x;

• Seandainya pada program di atas tidak terdapat pernyataan

px = &x;

49
• namun terdapat pernyataan

y = *px;

• mengakibatkan komputer tidak dapat dikendalikan (hang).

Contoh
Mengakses dan Mengubah isi Suatu Variabel Pointer

#include <stdio.h>
main()
{
float d = 54.5f, *pd;
printf("Isi d mula-mula = %g\n", d);
pd = &d;
*pd += 10;
printf("Isi d sekarang = %g\n", d);
}

Isi d mula-mula = 54.5


Isi d sekarang = 64.5
9.2. Operasi Pada Pointer
Operasi aritmatika pada pointer hanya ada 2, yaitu penambahan dan pengurangan.
Contoh :
main()
{
int a, *p1, *p2;
clrscr();
a=5; p1=&a;
printf("\n Isi p1 sebelum ditambah adalah %5u", p1);
p1++;
printf("\n Isi p1 sesudah ditambah adalah %5u", p1);
p2=&a;
printf("\n Isi p2 sebelum dikurangi adalah %5u", p2);
p2 --;
printf("\n Isi p2 sesudah dikurangi adalah %5u", p2);
p2 = p2 + 5;
printf("\n Isi p2 sesudah ditambah dengan 5 adalah %5u", p2);
getch();
}

Hasil :
Isi p1 sebelum ditambah adalah 65494
Isi p1 sesudah ditambah adalah 65496
Isi p2 sebelum dikurangi adalah 65494
Isi p2 sesudah dikurangi adalah 65492
Isi p2 sesudah ditambah dengan 5 adalah 65502

Keterangan :
 Variabel a bertipe int, variabel p1 dan p2 adalah pointer yang
menunjuk ke variabel int
 Pernyataan p1 ++ menyebabkan p1 bertambah dengan 2 sebab variabel
integer berukuran 2 byte juga dengan p2-- akan berkurang 2

50
 Pernyataan p2=p2+5 menunjuk ke 5 elemen berikutnya sesuai dengan
tipe int

POINTER DAN ARRAY

Contoh :
char nama[20], *p1;
p1=nama;

Variabel p1 berisi alamat dari elemen pertama dari variabel nama. Didalam bahasa C,
nama array tanpa index sama dengan alamat dari awal array. Pernyataan p1=nama
sama dengan p1=&nama[1]

Pernyataan p2=str[4] artinya p2 akan menunjuk elemen ke empat dari nama, cara
lainnya adalah :
p1=nama;
p2=*(p1+4);

Array dapat ditunjuk dengan index-nya dan dengan alamat. Penunjukan dengan alamat
akan lebih cepat daripada penunjukan dengan index-nya. Biasanya program C lebih
mementingkan kecepatan sehingga dipilih penggunaan alamat.
Contoh :
/* menggunakan index array */
main()
{
char str[80];
int i;
clrscr();
printf("Masukkan string dalam huruf besar : "); gets(str);
printf("String dalam huruf kecil : ");
for(i=0; str[i]; i++) printf("%c",tolower(str[i]));
getch();
}

/* menggunakan pointer */
#include <stdio.h>
#include <ctype.h>
main()
{
char str[80], *p;
clrscr();
printf("Masukkan string dalam huruf besar : "); gets(str);
printf("String dalam huruf kecil : ");
p=str;
while (*p) printf("%c",tolower(*p++));
getch();
}

POINTER DAN STRING

51
Nama array tanpa index adalah pointer ke elemen pertama dari array. Fungsi string yang
mempunyai parameter berupa string hanya mengirimkan alamatnya bukan stringnya sendiri.
Contoh :
#include <stdio.h>
main()
{
char s[80];
char *p;
int i;
clrscr();
printf("Masukkan dua buah kalimat : "); gets(s);
for (i=0; s[i] && s[i] != '.'; i++);
p=&s[i+1];
printf("Kalimat keduanya adalah : \n");
printf(p);
getch();
}

Keterangan :
 Pada pengulangan FOR akan berhenti jika pada string tersebut
ditemukan karakter titik atau null
 Pernyataan p=&s[i+1], akan menunjuk ke karakter sesudah titik atau
null. Misalnya karakter kelima adalah titik, maka p akan menunjuk
ke karakter ke enam. Pernyataan tersebut dapat diganti dengan
p=&s[i]+1

ARRAY POINTER
Pernyataan int *x[10] mendeklarasikan array x yang berisi pointer integer. Untuk
mengisi elemen keempat dengan alamat dari variabel a yang bertipe int, pakailah :
x[4] =&a, sedangkan untuk memperoleh isi variabel a adalah : *x[4]

Contoh :
main()
{
char *menu[] = {
"Nasi Goreng + Telur Mata Sapi\n",
"Bistik Ayam\n",
"Soto Ayam Madura\n",
"Gado-gado\n"
};
int no_menu;
clrscr();
printf("Masukkan menu pilihan Anda (1-4) : "); scanf("%d",&no_menu);
printf("\nMenu yang Anda minta adalah : \n");
printf("%s",menu[no_menu-1]);
getch();
}

52
DAFTAR PUSTAKA

Achmad Solihin, “ Pemrograman Bahasa C dengan Turbo C”, http://www.Ilmu


komputer.com, 2003.

Herianto, “ Presentasi Bahasa C ”, http://herianto.files.wordpress.com/2007/04/presentasi-c.ppt,


2007.

Inggriani Liem, “Contoh Program Kecil Dalam Bahasa C”, Institut Teknologi Bandung,
2003.

53
54

Anda mungkin juga menyukai