Anda di halaman 1dari 42

BAB 2

STRUKTUR DASAR PROGRAM

Sebelum kita mempelajari struktur data dalam bahasa C kita harus mengetahui dulu
struktur dasar pemrograman dalam bahasa C. Struktur dasar program bahasa C ada
beberapa komponen :
Fungsi main()
Deklarasi variable
Perintah (statement)
Keyword include
Komentar
Kurung kurawal .
Contoh :

#include<stdio.h> 4.include
Voidmain()
{ 6.KurungKurawal
//Pendeklarasianvariable5.Komentar
intpanjang,lebar,luas; 2.DeklarasaiVar
panjang=10; 1. Fungsimain
lebar=5; 3.Statement
luas=panjang*lebar;
printf(LuasSegiempat=%d,luas);
}

1. Fungsi Utama / Fungsi main()

Void main ()
Berisi perintah yang akan dilakukan computer.
Fungsi main () adalah sekumpulan perintah yang akan dikerjakan ketika kita
menjalankan program. Dari contoh diatas Fungsi main berisi perintah yang akan
dikerjakan ketika kita menjalankan program menghitung segiempat. Secara garis
besar isi dari fungsi main () pada program luas segiempat diatas adalah :
a. Perintah untuk memberikan nilai panjang dan lebar
b. Perintah untuk menghitung luas segiempat
c. Perintah untuk menampilkan luas yang telah dihitung ke layar.

2. Deklarasi Variabel
Variabel adalah sebuah tempat untuk menyimpan data . Deklarasi variable
adalah sebuah perintah agar computer menyediakan variable yang akan kita pakai.
Untuk mendeklarasikan sebuah variable , penulisan dalam bahasa C adalah sebagai
berikut :
TipeVariabel NamaVariabel;

Pada contoh program Luas Segiempat sebelum menghitung luas segiempat, kita
memberikan nilai 10 dan 5 untuk disimpan oleh computer didalam variable. Ada
beberapa tipe variable yang dapat kita gunakan dalam memprogram, contoh
variable integer (int) kita gunakan untuk menyimpan bilangan bulat (misalnya 12,
1, 76 atau 99); variable float untuk menyimpan bilangan berkoma/real(misal 12.8,
0.01)
Contoh :
int firstVariabel;
float secondvariabel;
Type data dasar (basic data type) yang digunakan dalam bahasa C adalah :
Bentuk Penulisan Jumlah Jangkauan nilai numeric yang dapat
Sebutan Type Data
Dalam Bahasa C Byte disimpan oleh tipe data tersebut
1. Integer int atau signet int 2 -32768 s.d 32767
atau signet
unsignet int atau 2 0 s.d 255
unsignet
long int atau long 4 -2147483648 s.d 2147483648
atau signet long atau
signet long int
unsignet long atau 4 0 s.d 4294967295
unsignet long int
2. Floating point float 4 Positif : 3.4 E 38 s.d 3.4E38
single precision Negatif : -3.4 E 38 s.d -3.4E38
3. Floating point double 8 Positif : 1.7 E 308 s.d 1.7E308
doble precision Negatif : -1.7 E 308 s.d -1.7E308
long double 10 Positif : 3.4 E 4932 s.d 1.14E4932
Negatif : -3.4 E 4932 s.d -1.14E4932
4. Character char atau signed 1 - 128 s.d 127
char
Unsigned char 1 0 s.d 255

Aturan pemberian nama variable :


Nama variable hanya boleh terdiri dari huruf, angka dan garis bawah (_)
Karakter pertamanya harus huruf
Huruf besar dan kecil dianggap berbeda (case sensitive)
Kata kunci (keyword) yang sudah ada didalam bahasa yang kita gunakan tidak
boleh dipakai sebagai nama variable. (contoh : include, using, import, for, print,
int, float dll)

3. Statement
Statement adalah perintah yang menginstruksikan computer untuk melakukan tugas
tertentu. Biasanya sebuah statement ditulis dalam 1 baris dan diakhiri dengan ;.
Contoh :
Panjang = 10; memerintahkan computer untuk mengisi variable panjang dengan
nilai 10.
luas = panjang * lebar ; memerintahkan computer untuk menghitung hasil
perkalian dari panjang dan lebar, lalu mentimpannya dalam variable luas.
Perintah printf(Luas segiempat = %d, luas); memerintahkan computer
menampilkan isi variable panjang, lebar dan luas ke layar.
Sebuah statement biasanya diakhiri dengan titik koma (;) kecuali statement-
statement tertentu seperti if( ), for( ), #include dsb.
a = 17;
b = 1+2;
c = a + 2;
printf (%d, a);
a =17 : a adalah operand, = adalah operator.
Didalam bahasa pemrograman bahasa C terdapat 4 macam operator yang
sering digunanakan :
a. Assignment Operator (=)
Assignment operator digunakan untuk memasukkan nilai pada sebuah
variable. Dalam bahasa Indonesia assignment adalah penugasan tetapi bisa
kita artikan = adalah diisi, contoh a = 17 artinya adalah a diisi dengan angka
17

b. Operator matematika biner


Operator (+) untuk menambahkan dua buah operand
Operator () untuk mengurangi operand ke-1 dengan operand ke -2
Operrator kali (*) untuk mengalikan operand ke-1 dengan operand ke -
2
Operator bagi (/) untuk membagi operand ke satu dengan operand ke
dua
Operator mod (%) untuk mencari sissa dari pembagian operand ke 1
dengan operand ke 2.
c. Operator matematika tunggal adalah operator matematika yang hanya
membutuhkan satu buah operand.
Operator increment (++) untuk menambahkan nilai suatu operand
dengan satu.
Operand decrement (--) untuk mengurangi nilai suatu operand dengan
satu.
Penulisan bisa di depan operand atau dibelakang operand.
b = ++a (jika a=10 maka nilai b adalah 11)
b = a++ (jika a = 10 maka nilai b adalah 10 dan a adalah 11)
d. Konstanta
Konstanta adalah sesuatu yang bernilai tetap. Ada 2 macam konstanta :
Konstanta literal adalah ditulis secara langsung contoh 12,5
Konstanta simbolik adalah konstanta yang ditulis dengan symbol.
Contoh PI mewakili 3,14

Table 2.1. Prioritas operator matematika


Operator Prioritas
++ -- 1
% / % 2
+- 3

e. Operator Relasional
Operator relasional adalah operator yang menguji apakah hubungan antar
operand betul atau salah. Semua operator relational hanya menghasilkan

nilai benar (TRUE) atau salah (FALSE) . Ada 6 buah operator relational
yang dapat kita gunakan dalam bahasa C yaitu :
Lebih besar ( > ) , operator ini menguji apakah operand yang satu lebih
besar dari operand yang lain atau tidak.
Lebih besar sama dengan ( >= ) , operator ini akan menguji apakah
sebuah operand bernilai lebih besar atau sama dengan operator
lainnyaatau tidak.
Operator lebih kecil ( < ) , operator ini akan menguji apakah sebuah
operand bernilai lebih kecil dari operand yang lain atau tidak.
Operator lebih kecil sama dengan ( <= ), operator ini akan menguji
apakah sebuah operand bernilai lebih kecil atau sama dengan operand
yang lain atau tidak.
Operator sama dengan ( == ) , operator ini akan menguji apakah operand
yang satu sama dengan operand lainnya.
Operator tidak sama dengan ( != ) , operator ini akan menguji apakah
sebuah operand tidak bernilai sama dengan operand yang lain atau tidak.

f. Operator Logika
Operator logika menghasilkan nilai TRUE atau FALSE. Ada 3 macam
operator logika :
And ( && )
Or ( | | )
Not ( ! )
4. Keyword include
Keyword dalam bahasa C disebut juga dengan fungsi . Fungsi digunakan untuk
membungkus perintah-perintah yang rumit sehingga mudah digunakan secara
instan. Cara penulisan (syntax) menggunakan include dalam bahasa C:

#include <NamaFileLibrary>

Misalnya perintah printf dalam bahasa C digunakan untuk menampilkan


informasi ke layar. Daftar fungsi-fungsi yang sudah disediakan dalam bahasa C
disimpan dalam file yang disebut library file.

Contoh:
Library file yang mencatat fungsi printf adalah file stdio.h (stdio=standart
input/output)
#include <stdio.h> : artinya kita berbicara pada computer bahwa kita akan memakai
fungsi-fungsi yang ada di stdio.
Beberapa library file dalam bahasa C antara lain :
Stdio.h (standart input output) menyimpan fungsi-fungsi untuk input output dan
terdapat 33 buah library functions (fungsi pustaka) antara lain :
( clear(), fclose(), fcclosea11(), fdopen(), fhlush(), fgetc(), fgetchar, fgetpost(),
fgets(), flushall(, fopen(), fprintfputchar(), fputs(), fread(), free(), freopen(),
fcan(), fsetpost(), ftell(), gets(), getw(), perror(), printf( ), puts( ), putw( ),
rename( ), rewind( ), scanf( ), unlink( ) ).
math.h menyimpan fungsi-fungsi matematika seperti sin, cos dan sqrt (akar).
Ada beberap library function(fungsi pustaka) dalam fungsi math.h antara lain
adalah sebagai berikut:
( abs( ), acosh( ), asin( ), atan( ), atof9 ), ceil( ), cos( ), cosh( ), exp( ), exp( ),
floor( ), fmod9 ), labs( ), ldexp( ), log( ), pow( ), sin9 ), sqrt( ), tan( ), tanh( ) ).
string.h menyimpan fungsi-fungsi yang berhubungan dengan string.
Ada beberapa library function(fungsi pustaka) dalam fungsi string.h antara lain
adalah sebagai berikut:
( strcpy( ), strcat( ), strchr( ), strcmp( ), strlen( ), )
stdlib.h( standart library)
Ada beberap library function(fungsi pustaka) dalam fungsi stdlib.h antara lain
adalah sebagai berikut:
( abs( ), atof ( ), atoi( ), atoll( ), div( ), exit( ), free( ), rand9 ) , srand( ), system(
)) .
conio.h (console input/output)
Ada beberap library function(fungsi pustaka) dalam fungsi conio.h antara lain
adalah sebagai berikut:
( clrscr( ), getch( ), getche( ), gotoxy( ), khbit( ), putch( ),).
- io.h (input/output)
Ada beberap library function(fungsi pustaka) dalam fungsi conio.h antara lain
adalah sebagai berikut:

( access( ), close( ), eof( ), open( ), read( ), write( )


ctype.h (character type)
Ada beberap library function(fungsi pustaka) dalam fungsi conio.h antara lain
adalah sebagai berikut:
stlower( ), toupper( )
5. Komentar
Memberikan catatan kepada computer. Komentar tidak akan dibaca oleh computer,
ini hanya bersifat sebagai catatan/note supaya kita tidak lupa dengan apa yang kita
kerjakan di program tersebut.
6. Kurung Kurawal
Menandakan awal dan akhir sekelompok statement. Kurung Kurawal berfungsi
untuk memberitahu computer bahwa perintah-perintah didalamnya merupakan satu
kesatuan.

BAB III
FUNGSI INPUT / OUTPUT DASAR

3.1. Fungsi Printf ( ) Dalam Bahasa C


Fungsi printf ( ) adalah fungsi yang digunakan untuk menampilkan informasi ke
layar. Berikut adalah cara penulisan (syntax) dari fungsi printf() :

Printf (format.string, argument);

Format string adalah informasi yang akan ditampilkan ke layar.


Argument adalah variable / pernyataan yang akan dipakai untuk menggantikan
conversion specifier (jika ada) yang terdapat dalam format string.
Conversion specifier digunakan untuk menampilkan informasi yang nilainya tidak
pasti . Contoh :
Printf (Luas segitiga = %d, luas);
%d diatas adalah conversion specifier yang digunakan untuk menampilkan sebuah
bilangan bulat (integer) yang nilainya tergantung pada variable luas.
Jika isi variable luas adalah 100 maka tampilan dilayar adalah sebagai berikut :
Luas Segitiga = 100
Tabel 3.1. Jenis-jenis conversion specifier yang akan sering kita pakai dalam bahasa
C
Specifier Untuk menampilkan variable atau pernyataan
berjenis
%d Bilangan bulat (integer)
%f Bilangan berkoma (floating point)
%c Karakter
%s String

Fungsi printf() juga memiliki beberapa escape sequence untuk menampilkan


karakter khusus seperti ENTER(pindah baris) , TAB (indentasi), , , %, \.

Tabel 3.2. Escape sequence yang sering dipakai dalam bahasa C


Sequnce Untuk menampilkan variable atau pernyataan berjenis
\n Membuat baris baru (ENTER)
\t Memberikan indentasi (TAB)
\\ Menampilkan karakter backslash
\ Menampilkan tanda kutip satu
\ Menampilkan tanda kutip dua
%% Menampilkan lambang %

Contoh penggunaan escape sequence adalah sebagai berikut :


Printf (Hasil dari 7 %% 4 adalah :\n%d, 7 % 4) ; informasi ke layar adalah sebagai
berikut
Hasil dari 7 % 4 adalah
3

3.2 Fungsi scanf( ) dalam Bahasa C


Fungsi scanf( ) digunakan untuk meminta nilai yang dimasukkan oleh user
(disebut juga input). Berikut adalah syntax dari fungsi scanf() :

Scanf(Format-String , argument);

Tabel 3.3. Tabel perbedaan printf( ) dan scanf( )


No Printf() Scantf()
1 Conversion specifier dipakai untuk Conversion specifier dipakai untuk
memberi tahu jenis nilai yang akan memberitahu jenis nilai yang akan
ditampilkan ke layar dimasukkan.
2 Argument adalah variable/pernyataan yang Argument adalah variable yang
akan menghasilkan sebuah nilai untuk akan dipakai untuk menyimpan
ditampilkan nilai yang akan dimasukkan
3 Di depan variable yang nilainya akan Harus menggunakan tanda &
ditampilkan tidak perlu menggunakan didepan variable yang akan
tanda & menyimpan nilai input
4 Format String berisi segala sesuatu yang Format string hanya berisi
ingin ditampilkan ke layar (kalimat, escape conversion specifier. Jika terdapat
sequence, specifier) lebih dari 1 conversion , pisahkan
dengan spasi.

Contoh :
Scanf (%d, &A) ;
Scanf ( Masukkan nilai A: %d, &A) ;

3.3. Memulai Membuat Program Sederhana Dengan Bahasa C

Kenapa belajar struktur data dengan bahasa C ? Bahasa C adalah bahasa yang
sangat powerfull dan fleksibel. Bahasa ini tidak memberikan batasan pada kita dan
sering digunakan dalam proyek-proyek Operating System , Word Processor dll.
Bahasa C adalah bahasa yang popular. Sebagain besar programmer handal pasti
menguasai bahasa ini. Banyak bahasa-bahasa pemrograman terkenal lainnya (seperti
C#, Java, C++, Action Script, PHP) yang dibuat berdasarkan bahasa C. Dengan
mempelajari bahasa C kita akan sedikit menyesuaikan diri ketika belajar bahasa
bahasa pemrograman tersebut di kemudian hari.
Untuk membangun program dengan bahasa C kita memerlukan IDE (Integrated
Development Environment) . Ada banyak IDE yang dapat kita gunakan untuk
membangun program dengan bahasa C secara gratis. Antara lain DJGPP, Dev C++,
Visual C++ Ekspress Edition dan lain-lain. Untuk mata kuliah struktur data ini kita
akan menggunakan Dev C++ , berikut adalah link yang dapat kalian akses untuk
memperoleh IDE Dev C++ :

http://www.bloodshet.net/dev/devcpp.html

Instalasai Code Block dan Dev C++


Caranya :
Instal Code Block dengan versi yang sesuai dengan laptop anda dan sesuaikan
dengan operating system yang anda pakai.
Instal compiler bahasa C (misalnya Dev ++ )
Aturlah setting Code Block
a. Masuklah ke menu Setting -> Compiler ->

10

b. Pastikan compiler Klik pada Compliler Setting -> Pilih GNU CC Compiler
-> centang lah isian paling atas -> Klik ToolChain Executable

c. Klik ToolChain Executable

d. Pada Compilers Installation Directory pilih Auto Detect atau pada


Compiler yang sudah anda install pada directory C: ( misal : Devcpp ++ )

11

e. Klik OK
f. Anda berada pada halaman code block dan siap untuk memulai membuat
program

12

g. Memulai membuat program Pilih New Project -> Pilih Console Aplication
-> pilih Go -> Klik Next -> pilih Bahasa C

h. Ketiklah nama project di mana anda akan menyimpan project anda -> Klik
Next

13

i. Anda sudah mempunyai Project selanjutnya Klik Finish


j. Anda akan masuk ke halaman code block dan siap untuk membuat program

k. Klik Nama Project yang sudah anda buat lalu Pilih Menu File -> New ->
File -> Klik C Source -> Klik GO

L. Klik Next Pilih C -> Klik Next

14

m. Isilah nama File pada path (alamat ) penyimpanan Project -> Centang lah
semua kolom pada bulid target atau klik All -> Klik Finish.

15

n. Anda akan masuk ke lembar kerja untuk memulai membuat program .

OK .. HAPPY CODING MISTAKES !!

EVALUASI :
1. Buatlah program sederhana untuk menghitung luas lingkaran
Deklarasikan variable
Meminta input untuk jari-jari
Menampilkan hal perhitungan tersebut ke layar

2. Buatlah sebuah program yang meminta nilai sisi sebuah segitiga dan
menampilkan luas segitiga tersebut ke layar .
Contoh input :
4
Contoh output :
16

16

BAB IV
PERINTAH PERCABANGAN

4.1. Perintah IF ()
Perintah IF( ) digunakan untuk memberikan syarat pada 1 atau sekumpulan
statement. Berikut ini adalah cara penulisan perintah if ( ) :

If ( syarat )
{
.. // perintah-perintah yang akan dilakukan jika terdapat syarat
}
else
{
.
}

If ( syarat 1 )
{
.. // perintah-perintah yang akan dilakukan jika terdapat syarat
}
else if ( syarat 2 )
{
.
}
else
{

}

Jika hanya terdapat 1 buat statement di dalam if, elese if, atau else, statement
tersebut tidak perlu diberikan tanda kurung kurawal. Jika terdapat lebih dari 1 buah
statement di dalam if , else if atau else, statement tersebut harus diberikan kurung
kurawal.
Contoh :
Int a, b;
A = 6;
If (a > 2)
A = 4;
Else

17

{
A = a+10;
B = a;
}

4.2. Perintah SWITCH ( )


Perintah switch ( ) hanya dapat dipakai untuk percabangan yang memiliki satu
nilai yang pasti. Berikut ini adalah cara penulisan (syntax) dari switch ( ):

switch(ekspresi)
{
casenilai1:perintah
break;
casenilai2:perintah
break;

casenilain:perintah
break;
default:perintah
}

Ekspresi adalah variable /pernyataan yang akan diperiksa diperiksa nilainya.


Perintah adalah perintah-perintah yang akan dilakukan jika ekspresi memenuhi
nilai tertentu. Perintah pada default adalah perintah yang akan dijalankuan jika
ekspresi tidak sama dengan nilai-nilai yang telah ditulis diatasnya. Default
memuliki fungsi yang sama dengan else pada perintah if ( ).

18

EVALASI :
1. Buatlah program yang meminta sebuah bilangan dan menentukan apakah
bilangan tersebut adalah bilangan ganjil dan genap.
Contoh input 1 :
5
Contoh output1:
Ganjil
2. Buatlah program untuk menentukan apakah tahun yang dimasukkan adalah
tahun kabisat atau bukan. Tahun kabisat adalah tahun yang habis dibagi 4,
tetapi tidak habis dibagi 100 kecuali kelipatan 400.

19

BAB V
PERINTAH PERULANGAN

Perintah perulangan / loop statement adalah perintah untuk mengulang satu atau lebih
statement sebanyak beberapa kali. Loop statement digunakan agar kita tidak perlu
menuliskan satu atau sekmpulan statement berulang-ulang.
Dalam bahasa C ada 3 macam perintah yang unum digunakan yaitu :
Perintah for ( )
Perintah while ()
Perintah do while ()

5.1. Perintah for ( )

Penulisan (syntax ) dari perintah for :

for(inisialisasi nilai; syarat pengulangan; perubahan nilai)


{
.. perintah-perintah yang akan dilakukan
}

Inisialisasi adalah tempat dimana kita akan memberikan nilai awal pada variable
counter (variable yang digunakan untuk menghitung jumlah perulangan).
Syarat pengulangan adalah syarat yang harus dipenuhi agar perulangan tetap
dilakukan.
Perubahan nilai adalah perubahan yang akan dilakukan pada tiap putaran untuk
menjamin bahwa perulangan tersebut tidak akan berlangsung terus menerus.
Contoh :
int jumlah;
for(jumlah = 1; jumlah <=100; jumlah = jumlah+1)
{
printf(Coding in fly \n);
}

20

5.2. Perintah While ( )


Berikut ini adalah cara penulisan (syntax) dari perintah while ( ) :

while(syarat pengulangan)
{
.. perintah-perintah yang akan dilakukan
}

Perbedaan for () dengan while adalah while ( ) tidak memiliki inisialisasi. Oleh
karena itu inisialisasi harus diberikan sebelum perintah while (). Statement yang
melakukan perubahan nilai juga perlu diberikan di dalam perintah-perintah yang akan
diulang.
while ( ) digunakan untuk mengulang satu / beberapa perintah hingga syarat yang
ditentukan terpenuhi.
Misalnya :

int input;
scanf(%d, &input);
while(input >= 0 )
{
scanf (%d, &input);
}

5.3. Perintah Do While ( )

Cara penulisan (syntax) dari perintah do while ( ) :

do
{
.. perintah-perintah yang akan dilakukan
} while (syarat pengulangan);

21

Pada prinsipnya , perintah do while ( ) sama dengan while ( ). Perintah do while ( ) akan
mengulang statement miliknya selama syarat pengulangan terpenuhi. Hanya saja
perintah do while ( ) menjalankan statementnya terlebih dahulu. Setelah itu, ia
memeriksa apakah syarat perulangan masih terpenuhi atau tidak. Sedangkan perintah
while ( ) memeriksa syarat perulangan terlebih dahulu. Oleh karena itu perintah do
while akan menjalankan statement miliknya minimal sebanyak 1 kali, meskipun syarat
perulangan tidak terpenuhi.
Contoh :

int number;
scanf (%d, &number);
do
{
printf (%d, number);
number = number-1;
} while (number > 0 );

*) Jika input yang dimasukkan ke dalam variable number bernilai 5, semua statement
di dalam do while () akan diulang sebanyak 5 kali, yaitu ketika number bernilai
5,4,3,2,1. Namun jika input yang diberikan adalah -1 statement di dalam do while()
akan dijalankan terlebih dahulu. Oleh karena itu computer akan menampilkan nilai
number yaitu -1 lalu mengurangi number dengan 1 menjadi -2. Setelah itu do
while() akan memeriksa apakah syarat yang diberikan bernilai TRUE atau FALSE.
Karena -2 lebih kecil dari nol maka syarat perulangan do while() bernilai FALSE
sehingga di while () berarti melakukan perulangan.
Perintah perulangan juga boleh diletakkan di dalam perintah perulangan
lainnya. Hal ini dilakukan ketika kita ingin mengulang sebuah perulangan sebanyak
beberapa kali.

22

Contoh:

Int baris, kolom;


For(baris=0; baris<5; baris++)
{
For (kolom=0; kolom<5; kolom++)
{
Printf( * );
}
Printf(\n);
}

23

EVALUASI :

1. Buatlah code program jika tampilan yang akan dihasilkan dilayar computer
adalah sebagai berikut :
*
**
***
****
*****

2. Buatlah program untuk menampilkan * sebanyak 25 kali ke layar


Contoh output adalah :
*************************

3. Buatlah program untuk menampilakan bilangan dari 1 25 ke layar


Contoh output adalah :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

4. Buatlah program yang meminta sebuah bilangan n, lalu menampilkan seluruh


bilangan ganjil dari 1-n.
Contoh output :
12
Contoh output
1 3 5 7 9 11

24

BAB VI
ARRAY

6.1. Pendahuluan
Bab ini akan mengemukakan bahasan tentang definisi array, deklarasi array,
mengakses elemen array, array sebagai tipe data bentukan, array konstan, array sebagai
parameter, array multidimensi.

6.1.1 Relevansi
Pembahasan pada bab ini sangat penting dipahami, karena materi array ini
memberikan manfaat yaitu efisiensi program. Materi array sangat berkaitan dengan
materi lainnya dalam sebuah pemrograman terstruktur, karena array dapat digunakan
dan dikombinasikan dengan bahasan lain dalam sebuah program.

6.1.2.Capaian Pembelajaran :
Mahasiswa dapat mengorganisir data menggunakan konsep struktur data dan
mampu mengimplementasikan struktur data yang tepat ke dalam sebuah program

6.1.3 Kompetensi dasar


Mahasiswa mampu menjelaskan definisi array
Mahasiswa dapat mengimplementasikan operasi array dalam pemrograman
Mahasiswa dapat melakukan pencarian, penggabungan data dengan konsep struktur
data array

6.2. Penyajian

Bagi para pemrogram, efisiensi program merupakan hal utama yang harus
diperhatikan, baik itu dalam hal kecepatan jalannya program, memori yang digunakan,
banyak baris kode yang dituliskan dan juga ketepatan algoritma yang digunakan. Salah
satu komponen yang harus dikuasai untuk memperoleh program yang baik adalah
pengetahuan tentang array.

1) Definisi Array
Array (larik) adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai
sejenis (memilikii tipe data sama). Hal ini berbeda dengan variabel biasa yang hanya

25

mampu menampung satu buah nilai. Setiap nilai yang disimpan di dalam array disebut
dengan elemen array, sedangkan nilai urut yang digunakan untuk mengakses
elemennya disebut dengan indeks array. Sebagai contoh, misalkan terdapat array A
yang memiliki 10 buah elemen nilai yang bertipe integer, maka dapat dipresentasikan
sebagai berikut :

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
0 1 2 3 4 5 6 7 8 9

10 20 30 40 50 60 70 80 90 100

Nilai elemen array


Indeks array
Elemen array

Gambar 6.1 Komponen Array (sumber :Rahardjo)

Setiap elemen array di atas menyimpan nilai bertipe integer dan akan menempati
alamat memori yang berbeda, hal ini akan menyebabkan array tersebut memiliki ukuran
40 byte, yang berasal dari 10 x 4. Nilai 10 menunjukkan banyaknya elemen array
sedangkan nilai 4 merupakan ukuran dari tipe data integer (dalam 32 bit).

Array adalah sekumpulan tempat penyimpanan data yang bertipe dan bernama sama
dan memiliki index. Untuk membedakan varibel-variabel tersebut maka kita
menggunakan index.

2). Array Satu Dimensi


Array satu dimensi adalah array yang memiliki 1 index.

Variablebertipeinteger

17 Isinilaidarivariabel

Bilanganbulat Namavariabel
26

Variabel adalah tempat penyimpanan data yang telah diberi nama. Satu buah
variable hanya dapat menyimpan satu buah nilai. Pada contoh diatas terdapat
variable bertipe integer yang bernama bilangan bulat dan berisi nilai 17.

NamaArray Arraybertipeinteger
Isiandarielemenarrayke4

ArrayInteger 17 9 12 30 2

IndexArray 0 1 2 3 4

Array merupakan sekumpulan tempat penyimpanan data . Sebuah array dapat


menyimpan lebih dari satu buah nilai (tergantung dari besarnya / kapasitas array).
Nilai-nilai yang disimpan dalam sebuah array harus bertipe sama sesuai dengan
type array tersebut.
Pada contoh diatas adalah array bertype integer yang bernama ArrayInteger dan
memiliki kapasitas 5 buah bilangan Integer.
Jika array diibaratkan sebuah loker maka index array dibaratkan nomer dari
locker tersebut. Index array dalam bahasa C selalu dimulai dengan 0. Jadi index
terakhir dalam Array yang memiliki N element adalah N-1.
Sama seperti variabel lain, array juga dideklarasikan di dalam bagian deklarasi
variabel. Bila akan didefinisikan sebagai tipe bentukan, maka array juga akan
dideklarasikan di bagian definisi tipe (di bawah kata kunci type). Dalam bahasa C,
pendeklarasian array dilakukan dengan menggunakan kata kunci array dan tipe
data yang akan disimpan di dalamnya, selai itu juga harus disertai dengan batas-
batas indeksnya yang diapit oleh tanda bracket ([ ]).
Cara mendeklarasikan Array 1 dimensi :

Type namaarray[kapasitas];
Contoh :
Float arrayFloat[3];

27

Type adalah tipe dari array yang akan dibuat. Nama Array adalah nama dari
array yang akan dibuat. Kapasitas adalah banyaknya nilai yang dapat disimpan dalam
array yang akan dibuat.
Untuk mengakses atau membaca sebuah elemen dari array, kita hanya perlu
menuliskan nama dari array tersebut, lalu diikuti dengan index yang dituju dan diapit
tanda kurung siku [].
Contoh pendeklarasian array :

Void main()
{
Int bilangan[4];
bilangan[0] = 7;
bilangan[1] = 5;
bilangan[2] = 9;
bilangan[3] = 15;
printf(%d, bilangan[0]);
printf(%d, bilangan[1]);
printf(%d, bilangan[2]);
printf(%d, bilangan[3]);
}

Dalam mengakses (mengisi dan mengambil nilai) sebuah array, kita dapat
menggunakan perintah perulangan, sehingga kita tidak perlu mengakses elemen array
satu persatu. Contoh :
Void main()
{
Int bilangan[4], index;
bilangan[0]=7;
bilangan[1]=5;
bilangan[2]=9;
bilangan[3]=99;
for (index=0; index<4; index++)
printf(%d, bilangan[index]);
}
28

3. Array Multidimensi
Array multidimensi adalah array yang memiliki lebih dari satu index. Array
multidimensi dapat dikatakan sebagai array dari array (sekumpulan dari array)
Array Dua Dimensi
Array dua dimensi adalah array yang memiliki 2 buah index. Sedangkan pada array 3
dimensi adalah array yang memiliki 3 buah index, array 4 dimensi adalah array yang
memiliki 4 buah index. Begitu seterusnya.

Indexke2 1
Indexke2 0
Indexke22

Indexke10 20 10 17

Indexke11 11 76 54

Indexke12 33 78 99
Indexke13 31 48 21

Cara mengakses array multidimensi sama dengan cara mengakses array 1


dimensi yaitu nama array diikuti dengan index yang dituju. Banyaknya index
disesuaikan dengan dimensi array .
Cara mendeklarasikan array multidimensi adalah sebagai berikut :

Type namaarray[kapasitas]..[kapasitas];

Contoh program yang menggunakan array 2 dimensi :


Int main()
{
int bilangan[5][5];
int baris, kolom;
for(baris = 0 ; baris<5; baris++)
for(kolom = 0; kolom<5; kolom++)
bilangan[baris][kolom] = (baris+1)*(kolom+1)

29

for(baris=0; baris<5; baris++)


{
for(kolom=0; kolom<5; kolom++)
printf(%d\t, bilangan[baris][kolom]);
printf(\n);
}
}

4. Character dan String


Type data character adalah type data yang digunakan untuk menyimpan data berupa
huruf/karakter. Contoh huruf :a, b, c, d, e, f dan sebagainya. Dalam bahasa C
conversion yang digunakan untuk mewakili tipe data char adalah %c . Berikut ini
adalah contoh program yang menggunakan tipe data character.

Int main()
{
char karakter0, karakter1, karakter2, karakter3;
karakter0=4;
karakter1=e;
karakter2=v;
karakter3=e;
printf(%c, karakter0);
printf(%c, karakter1);
printf(%c, karakter2);
printf(%c, karakter3);
}

Perlu kita ingat bahwa ada perbedaan antara bilangan/angka 4 dan huruf/karakter
4. Dalam kode program kita menuliskan sebuah karakter dengan diapit tanda kutip
satu (), tanda kutip () ini dipakai untuk membedakan antara karakter 1 dengan angka
1.
Seperti yang telah kita ketahui computer hanya mengenal bahasa mesin dan angka-
angka.
30

Type Casting
Type data casting adalah type data yang memperlakukan sebuah type data tertentu
sebagai type data yang lainnya.
Contoh :
Int main()
{
char c;
c = a;
printf(Sebagai character , variable c = % c, c);
printf(Sebagai bilangan , variable c = % d, (int)(c));
}
Kode progam tersebut memperlakukan variable c dengan dua cara yang berbeda.
Yang pertama kita menampilkan variable c sebagai tipe data char, yang kedua ini
menampilkan variable c sebagai bilangan. Oleh karena itu, tampilan yang akan
dihasilkan oleh contoh program tersebut adalah :
Sebagai karakter, varibel c = a
Sebagai bilangan , variable c = 97
Variabel c adalah variable yang ingin dilakukan type casting. Variabel c bertipe data
char dan ingin diperlakukan sebagai integer. Oleh karena itu di depan variable c kita
berikan tipe data tujuan (int) yang diapit dengan tanda kurung. Tidak semua tipe data
dapat di casting ke tipe data yang lainnya. Misalnya tipe data char tidak dapat dicasting
ke tipe data float.

Type Data String


Type data string digunakan untuk menyimpan sekumpulan karakter atau bisa dikatakan
untuk menyimpan kata/kalimat. Tidak semua bahasa pemrograman memiliki type data
string. Bahasa C tidak mengenal type data string tetapi string dibentuk dari array 1
dimensi bertipe char yang diakhiri dengan karakter \0 (null).
Pendeklarasian string dalam bahasa C adalah sebagai berikut :

char namaString[panjangMax];

31

namaString adalah nama string yang akan dibuat. panjangMax adalah panjang
maximum dari string yang akan disimpan. Untuk menampilkan tipe data string kita
dapat menggunakan fungsi primtf() dengan convension specifier % s.

Manipulasi String pada bahasa C


Dalam bahasa C terdapat fungsi-fungsi khusus untuk meminta input berupa string
dan memanipulasi string. Fungsi fungsi ini tersimpan dalam file library string.h.
Berikut adalah penjelasan dan contoh dari fungsi-fungsi tersebut :

Fungsi gets ()
Untuk meminta input string.

Syntax : gets (namaString);


Contoh :
char str[25];
gets(str);

Fungsi strcpy( )
Untuk menyalin sebuah string ke string lainnya.

Syntax : strcpy(namaStringTujuan, stringSumber);


Contoh :
char str1[25], str2[25];
strcpy(str1, halo world);
strcpy(str2, str1);
printf(% s \n %s, str1, str2);

Hasil yang akan ditampilkan :


halo world
halo world

Fungsi strlen( )
Untuk memriksa panjang dari sebuah string

Syntax : strlen(namastring)
Contoh :
32

char str[25]
int panjang;
strcpy(str, halo);
panjang = strlen(str);
printf(%d, panjang);
Hasilnya :
4

Fungsi strcat( )
Untuk menggabungkan 2 buah string. String hasil gabungan akan disimpan pada
string pertama.

Syntax : strcat(namastring1, namastring2);


Contoh :
char str1[50], str2[25];
strcpy(str1, halo);
strcopy(str2, apa kabar);
strcat(str1, str2);
printf(% s \n % s, str1, str2);

Hasil output adalah :

Halo apa kabar


Apa kabar ?

Fungsi strcmp( )
Untuk membandingkan apakah dua buah string sama atau tidak. Jika sama,
strcmp( ) akan menghasilkan nilai 0.

Syntax : strcmp(namaString1, namaString2);


Contoh :
char str[25], str[25];
strcpy(str1, halo);
strcpy(str2, str1);

33

if(strcmp(str1, str2) == 0)
printf(sama);
else
printf(tidak sama);
Hasil nya :
Sama

5. Type Data Struct


Struct adalah type data yang dibuat oleh kita sendiri untuk membungkus data-data
yang berhubungan. Struct terdapat dalam bahasa C dan C#.
Syntax dari struct adalah sebagai berikut :

struct namaStruct
{
deklarasi data;
};

Contoh :
struct Siswa
{
int id;
char nama;
float nilai;
};

Cara membuat variable struct adalah :

struct namaStruct namavariabelStruct;

Contoh :
struct siswa siswa1

34

Contoh pemakaian struct :

siswa1.nilai = 100;
printf(%d, siswa1.id);
gets(siswa1.nama);
scanf(%d, &siswa1.nama);

Dengan menggunkan struct kita dapat membuat sebuah variable struct siswa yang
masing-masing datanya memiliki id, nama dan nilai.

#include ,stdio.h>
struct Siswa
{
int id;
char nama[20];
float nilai;
}
int main( )
{
struct Siswa siswa[3];
float jumlah;

jumlah =0;
for (index=0; index<3; index++)
{
printf( Masukkan ID siswa ke %d : , index+1);
scanf( %d, &siswa[index].id);
printf( Masukkan Nama siswa ke %d : , index+1);
gets(siswa[index].nama);
printf( Masukkan nilai siswa ke %d : , index+1);
scanf( %d, &siswa[index].nilai);
jumlah=jumlah + siswa[index].nilai;
}

35

for(index=0; index<3; index++)


{
printf(Data siswa ke %d : , index+1);
printff( ID : %d , siswa[index].id);
printf(Nama : % s , siswa[index].nama);
printf(Nilai : %.2f, siswa[index].nilai);
}
printf( Rata-Rata : %.2f, jumlah/3);
}

36

BAB VII
FUNGSI

7.1. Definisi Fungsi / Function


Fungsi digunakan untuk mempermudah kita dalam membuat sebuah program,
terutama program yang besar dan banyak melakukan beberapa hal yang sama. Fungsi
memiliki ciri-ciri ebagai berikut :
Memiliki nama dari fungsi tersebut
Memiliki tugas spesifik tertentu
Memiliki sekumpulan statement / perintah untuk melakukan tugas tertentu.
Mengembalikan sebuah nilai kepada fungsi lain yang
memanggil/menggunakannya (jika perlu).

7.2. Fungsi Dalam Bahasa C


Berikut ini adalah cara mendeklarasikan sebuah fungsi di dalam bahasa C .

type namaFungsi(parameter)
{
.. -> statement / perintah yang akan dilakukan ketika fungsi
dipanggil
}

Type adalah type data dari nilai yang akan dikembalikan oleh fungsi. namaFungsi
adalah nama dari fungsi yang dibuat. Nama ini yang akan digunakan untukmemanggil
fungsi yang telah kita buat. Parameter adalah nama dan tipe variable yang akan
digunakan untuk menyimpan nilai yang dibutuhkan oleh fungsi tersebut. Jika terdapat
lebih dari 1 parameter, maka parameter ditulis dengan dipisahkan dengan koma.
Fungsi dapat dibuat diatas (sebelum) atau dibawah (sesudah) fungsi main ( ). Jika
fungsi dibuat dibawah fungsi main( ), maka prototype fungsi tersebut harus dibuat
terlebih dahulu diatas fungsi main( ). Prototipe fungsi adalah header dari fungsi dan
diberi tanda titik koma (;) di bagian belakangnya.
Contoh kasus yang menggunakan fungsi :

37

#include <stdio.h>
int FungsiF(int x); PrototipedariFungsiF()

int FungsiG(int x) FungsiG()tidakmemerlukanprototype karenadideklaraskandiatas


main()

{
int hasil;
hasil = FungsiF(x-1) + FungsiF(x) FungsiF(x+1);
return hasil;
}
void main ( )
{
int a, b, hasil;
scanf(%d %d, &a, &b);
hasil = FungsiG(a) + FungsiG(b);
//tampilkan hasil dari g(a0 + g(b)
printf(%d, hasil);
}
int FungsiF(int x)
{
int hasil;
hasil = (x*x) + (2*x) + 10;
return hasil;
}

Pada kode program tersebut , FungsiF( ) dideklarasikan dibawah main( ). Oleh


karena itu, prototype dari FungsiF( ) harus ditulis terlebih dahulu diatas main ( ) agar
main( ) dapat mengetahui bahwa di bawah dirinya ada fungsi yang bernama FungsiF(
). Prototipe FungsiG( ) tidak harus ditulis karena ia dideklarasikan diatas main( ).

Tipe Void
Sebuah fungsi tidak harus selalu mengembalikan nilai. Tipe dari fungsi yang tidak
mengembalikan nilai adalah void. Contoh fungsi yang tidak mengembalikan nilai, yaitu
fungsi untuk menampilkan kata Hello ke layar sebanyak n kali.

38

Void FungsiHello(int n)
{
int;
for(i=0; i<n; i++)
{
printf(Hello\n);
}
}

7.3. Cara Kerja Sebuah Fungsi


Sebelumnya kita sudah mengenal Fungsi main( ), yaitu fungsi yang akan
dijalankan oleh computer secara otomatis. Jadi ketika kita menjalankan sebuah program
maka fungsi main( ) dari program tersebut akan langsung dijalankan.
Fungsi selain main fungsi main( ) hanya akan dijalankan jika ada yang memanggilnya.
Contoh :

void main( ) miemasakJulie(mieinstanx)


{ 3
1
{ miemasakhasil; 4
Pho();
mieinstan m;
Hasil=masakx;
miemasak n; 8 Returnhasil; 7
}
2
n= Julie(n)
makan n; 9

}
6
voidPho()
{
ambilkayubakar;
kayubakar; 5
}

39

1. Pertama kali computer akan menjalankan fungsi main( )


2. Fungsi main( ) memanggil fungsi Julie()
3. Komputer menjalankan fungsi Julie( )
4. Fungsi Julie ( ) memanggil fungsi Pho ( )
5. Computer menjalankan fungsi Pho( )
6. Setelah fungsi Pho selesai dikerjakan, komputer kembali pada fungsi yang
memanggil fungsi Pho ( ) yaitu fungsi Julie( )
7. Komputer melanjutkan statement / perintah pada fungsi Julie yang belum
dikerjakan.
8. Setelah fungsi Julie ( ) selesai dijalankan , fungsi Julie( ) mengembalikan nilai
kepada fungsi main( ), yaitu isi dari variable hasil.
9. Nilai yang dikembalikan oleh fungsi Julie ( ) disimpan dalam variable n , lalu
computer melanjutkan perintah-perintah fungsi main( ) yang belum dikerjakan.

7.4. Fungsi Rekursif


Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Jika kita dapat
menggunakan fungsi rekursif dengan baik, ada beberapa kasus perulangan yang rumit
dapat dilakukan dengan mudah.
Contoh :
int DuaPangkat(int n)
{
if (n == 0 )
return 1;
else
return 2 = DuaPangkat(n-1);
}

40

BAB VIII
POINTER

8.1. Pengertian Pointer


Pointer adalah variable khusus yang hanya digunakan untuk menyimpan alamat
memori dari variable lain. Seperti yang telah kita pelajari bahwa variable adalah tempat
menyimpan data dan terletak didalam memori. Setiap kita mendeklarasikan variable
artinya kita memesan tempat didalam memori dan memberinya nama sesuai nama
variable yang sudah kita deklarasikan. Alamat memori tersebut yang disimpan oleh
pointer.
Cara mendeklarasikan sebuah pointer hampir sama dengan variable. Berikut adalah
cara mendeklarasikan pointer :

tipePointer namaPointer;

Tipe pointer adalah tipe variabel yang alamatnya akan disimpan. Jika kita menyimpan
alamat variable bertipe float maka kita harus membuat pointer bertipe float juga. Untuk
mengambil alamat dari suatu variabel kita perlu menambahkan operator & (address of
/ alamat dari) di depan variabel yang diinginkan.
Contoh pendeklarasian sebuah variabel integer , pointer integer dan menyimpan alamat
variabel kedalam pointer :

#include <stdio.h>
void main( )
{
int variabel_integer;
int *pointer_integer;

variabel_integer = 17;
pointer_integer = &variabel_integer;
}

Jika alamat sebuah variabel telah disimpan dalam sebuah pointer, maka isi dari
variabel tersebut juga dapat diakses (dibaca/diganti) dari pointer yang mencatat
41

alamatnya. Untuk mengakses isi dari variabel yang alamatnya disimpan oleh sebuah
pointer , kita harus menggunakan tanda * didepan nama pointer yang diinginkan.
Contoh :

#include <stdio.h>
void main( )
{
int variabel_integer;
int *pointer_integer;

pointer_integer = &variabel_integer;
*pointer_integer = 17;
}

Setiap tipe data membutuhkan kapasitas memori yang berbeda-beda. Misalnya


sebuah variabel float membutuhkan 4 byte untuk dirinya sedangkan variabel char hanya
memibutuhkan 1 byte. Oleh karena itu ada kemungkinan sebuah variabel menempati
lebih dari 1 byte dan memiliki lebih dari 1 alamat memori.

8.2. Manfaat Pointer


Pointer digunakan untuk mengakses memori secara langsung . Programmer yang
sering menggunakan pointer adalah mereka yang berurusan langsung dengan system
computer, selain itu pointer juga sering digunakan untuk membuat tipe data
abstrak(ADT) seperti list, queue, stack dan lainnya.

42