Anda di halaman 1dari 60

PANDUAN PRAKTIKUM

PEMROGRAMAN DASAR
(TEL 104 P)

LABORATORIUM KOMPUTER DAN INFORMATIKA


JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
2006

PENGANTAR

Alhamdulillah, puji syukur kita panjatkan ke hadirat Tuhan YME,


karena atas limpahan rahmat dan anugerah-Nya, akhirnya modul
pemrograman dasar dengan menggunakan GCC sebagai kompiler
utamanya dapat disusun dengan baik.
Modul

pemrograman

dasar

ini

disusun

untuk

memenuhi

kebutuhan praktikum pemrograman dasar di Laboratorium Komputer


dan Informatika, Jurusan Teknik Elektro Universitas Gadjah Mada.
Terkait dengan kebijakan Universitas, sekaligus Jurusan Teknik Elektro
untuk bermigrasi pada perangkat lunak opensource secara bertahap,
beberapa dosen dan mahasiswa yang mengampu praktikum di
Laboratorium
akhirnya

Komputer

sepakat

untuk

dan

Informatika

mengulas

Jurusan

Teknik

Elektro

pemrograman

dasar

dengan

menggunakan perangkat lunak opensource. Pilihan ini akhirnya jatuh


pada GCC, sebuah kompiler bahasa C / C++ berbasis platform UNIX.
Akhirnya, kesempurnaan adalah sesuatu yang membutuhkan
proses perbaikan dan saran. Modul pemrograman dasar ini bukanlah
tanpa cacat dan cela. Segala masukan, kritik dan saran bisa
disampaikan melalui laboran lab, asisten, maupun dikirimkan langsung
ke email Bapak Bimo Sunarfrihantono di bimo@te.ugm.ac.id . Semoga
modul praktikum ini memberikan manfaat yang besar dan dapat
memacu kita untuk mempelajari lebih dalam pemrograman dengan
bahasa C / C++.

SEPATAH KATA DARI TIM PENYUSUN

Modul praktikum Pemrograman Dasar ini membahas tentang


konsep-konsep dasar bahasa C. Bahasa C adalah bahasa pemrograman
internasional yang sesuai dengan standar dari ANSI (American National
Standard Institute). Bahasa C sangat penting untuk dikuasai karena
bahasa ini memiliki konsep dasar untuk bahasa pemrograman tingkat
tinggi yang lain, seperti PHP, Java, maupun Shell Programming.
Dalam praktikum kali ini, kita akan menggunakan kompiler GCC.
GCC atau sering disebut GNU C adalah bagian tak terpisahkan dari
perkembangan mesin-mesin komputer berbasis sistem operasi UNIX
atau LINUX. GCC merupakan proyek andalan FSF (Free Software
Foundation) sebagai bagian dari proyek GNU/ GPL (General Public
License). Sebagaimana kita ketahui, proyek GNU bertujuan untuk
menghasilkan implementasi secara gratis. Jika dilihat ke belakang, GCC
merupakan hasil kerja sama ratusan hacker dan programmer yang
tersebar di seluruh dunia. Walaupun bersifat gratis, GCC dapat
bersaing dengan kompiler-kompiler lainnya. GCC telah dilangkapi
dengan berbagai macam cara-cara mengoptimalkan layar, terminal,
bahkan dengan standar input/output yang tidak kalah dengan kompiler
C yang lain yang sifatnya komersial.
Beberapa keuntungan yang bisa diambil jika kita menguasai GCC
sebagai kompiler dasar untuk bahasa C, antara lain :

Secara otomatis terbebas dari permasalah HAKI (Hak Atas


Kekayaan Intelektual) karena GCC bersifat gratis dan tidak
perlu membajak untuk meng-install-nya (biasanya menjadi
3

satu paket apabila kita meng-install Linux atau sistem


operasi lain berbasis Unix). Lebih jelasnya, untuk instalasi
GCC anda tidak perlu membayar lisensi serupiah pun
kepada siapa pun juga.

Jika berminat, source code dari GCC bahkan bisa kita buka
dan kita ubah semau kita. Berbeda dengan kompiler lain
yang Windows Based, Anda nggak bakalan bisa membuka
source code program tersebut, kecuali anda menjadi salah
satu

bagian

dari

tim

developer

yang

direstui

oleh

Microsoft ......
Dari praktikum pemrograman dasar ini diharapkan praktikan
memiliki empat buah kemampuan dasar yang diperlukan seorang
programmer :

Mengenal dan mampu menggunakan GCC sebagai sebuah


kompiler bahasa C/C++

Memahami

dan

mampu

membuat

sebuah

program

berdasarkan flowchart dan atau pseudo-code yang ada.

Mampu

membuat

program

untuk

memecahkan

permasalahan yang ada.

Mampu melakukan bug tracking / debugging terhadap


program-program yang memiliki bug / kesalahan dalam
coding.

Semoga modul praktikum ini memberikan manfaat dan mampu


memotivasi kita untuk belajar lebih jauh tentang pemrograman dengan
bahasa C/C++ serta bahasa-bahasa pemrograman lainnya. Terakhir
dari kami ...... happy coding
Yogyakarta, 5 Februari 2006

Tim Penyusun,
Night Login IT Community

UNIT I
PENGENALAN GCC

engapa

GCC

GCC

adalah

kompiler bahasa C / C++ yang


bersifat

free

dan

open

source.

Artinya, tanpa membajak pun kita


bisa

memdistribusikannya

secara

TUJUAN PRAKTIKUM
1. Memahami fungsi dan kegunaan dasar gcc.
2. Mampu menggunakan gcc untuk membuat program dalam
bahasa C

DASAR TEORI
GNU Compiler Collection (GCC) adalah sebuah program yang
berupa kumpulan compiler berbagai bahasa pemrograman seperti C,
C++, Fortran, dan lain-lain. Implementasi GCC yang paling luas saat
ini adalah untuk meng-compile program-program yang ditulis untuk
bahasa C dan bahasa C++.
HINT
Kita dapat mengubah source code dari GCC, seperti menambahi patch,
dsb. Dengan demikian dimungkinkan untuk menjalankan program yang
dicompile dengan GCC ini dalam sistem operasi Windows
Sebagai sebuah compiler bahasa pemrograman, GCC memiliki
beberapa keuntungan, antara lain sebagai berikut:
1. Tersedia luas
2. Bersifat Open Community
3. Dapat digunakan sebagai cross-compiler

Untuk meng-compile sebuah source code yang ditulis dalam


bahasa C, digunakan perintah gcc. Sebagai contoh, untuk mengcompile program yang ditulis dalam file coba.c digunakan perintah
sebagai berikut:
$ gcc coba.c

Perintah di atas akan meng-compile coba.c menjadi suatu file


executable bernama

a.out.

Untuk mengganti nama file output

standard a.out tersebut menjadi nama lain yang diinginkan, digunakan


option o dengan perintah sebagai berikut:
$ gcc o [output] [source]

Selain langsung membuat executable file, GCC dapat juga


digunakan untuk meng-compile source code dalam bahasa C menjadi
sebuah object file berakhiran .o menggunakan option c, dengan
bentuk perintahnya adalah seperti berikut:
$ gcc c [source]

Perintah di atas akan menghasilkan object file yang namanya


sama dengan file source nya, tetapi akhirannya tidak lagi .c ,
melainkan .o .
Linking
Linking adalah istilah yang sering digunakan untuk menyebut
proses pembuatan suatu executable file dari satu atau lebih object file.
Pada gcc, proses ini dilakukan dengan menggunakan option o. Bentuk
perintahnya adalah sebagai berikut:

$ gcc o [executable file] [object-file 1] [object-file 2] ...

Debugging
Selain untuk meng-compile source dan membuat executable,
GCC juga memiliki fasilitas untuk melakukan debugging pada program
yang dibuat, yaitu GDB (GNU DeBugger). Untuk menggunakan fasilitas
debugging GDB, source code harus di-compile dengan menggunakan
option g untuk memasukkan informasi debugging ke dalam file
executable yang dibuat. Bentuk perintahnya adalah sebagai berikut:
$ gcc g o [executable] [source]

Untuk melakukan debugging pada program yang telah dicompile


dengan option g, digunakan perintah gdb seperti di bawah ini:
$ gdb [executable]

Setelah mengetikkan perintah di atas, maka kita akan masuk ke


command line gdb, di mana kita dapat memasukkan berbagai perintah
debugging

yang

tersedia.

Beberapa

perintah

debugging

dasar

ditunjukkan oleh tabel di bawah ini:


Perintah
run
list
quit

Fungsi
Menjalankan program
Melihat di mana program berhenti
Keluar dari gdb

HINT
Untuk melihat fungsi-fungsi pada GCC lebih lanjut, dapat dilakukan
dengan mengakses manual GCC, yaitu dengan mengetikkan man gcc

LANGKAH PERCOBAAN
Percobaan 1 : Compiling Program dengan GCC
1.

Pada percobaan ini, tulislah 2 program berikut menggunakan text

editor dan simpan masing-masing dengan nama myfirstprogram.c dan


mysecondprogram.c :

myfirstprogram.c
#include <stdio.h>
main(){
printf(this is my first program \n);
}

mysecondprogram.c
#include <stdio.h>
main(){
printf(this is my second program \n);
}

2.

Setelah itu, bukalah console dan masuklah ke dalam direktori di

mana kedua file tadi disimpan, kemudian masukkan perintah-perintah


di bawah ini:
$ gcc myfirstprogram
$ a.out
$ gcc mysecondprogram
$ a.out

Bagaimanakah keluaran yang dihasilkan oleh masing-masing


perintah a.out di atas? Jelaskan dalam laporan resmi yang anda buat !

Percobaan 2 : Linking Object File


1.

Untuk

percobaan

ini,

tulislah

kedua

program

berikut

menggunakan editor dan simpanlah masing-masing dengan nama


linking1.c dan linking2.c pada direktori Anda:

linking1.c
#include <stdio.h>
main(){
printf(first file to be linked

\n);

linking2();
}

linking2.c
#include <stdio.h>
linking2(){
printf(second file to be linked

\n);

2.

Setelah itu, jalankan perintah-perintah berikut ini di dalam

direktori kerja Anda:


$ gcc c linking1.c
$ gcc c linking2.c
$ gcc o linkedprogram linking1.o linking2.o
$ linkedprogram

Jelaskan kegunaan masing-masing perintah di atas dan amati


hasilnya (Tuliskan dalam lembar Laporan Sementara di akhir bab ini ).

3.

Berikutnya, masukkan perintah-perintah berikut:


$ gcc o linkedprogram linking1.o
$ linkedprogram

Bagaimanakah hasil eksekusi linkedprogram kali ini? Jelaskan


alasannya dalam laporan resmi yang anda buat.
Percobaan 3 : Debugging
1.

Untuk percobaan kali ini, tulislah program berikut dan simpanlah

pada direktori Anda dengan nama debug.c :


debug.c
#include <stdio.h>
main(){
printf(for debugging use only

\n);

2.

Setelah itu, jalankan perintah-perintah berikut ini:


$ gcc g o debugfile debug.c
$ gdb debugfile
(gdb) run

Amati hasilnya.
3.

Keluarlah dari command line gdb dengan perintah quit, kemudian

masukkan perintah-perintah berikut:


$ gcc o debugfile debug.c
$ gdb debugfile
(gdb) run

Adakah

perbedaan

hasil

eksekusi

dengan

yang

sebelumnya?

Mengapa?(Jelaskan dalam laporan resmi Anda !)

10

TUGAS
Program GCC adalah sebuah software program yang bersifat
open source. Terangkan perbedaan antara software open source,
freeware, dan shareware. Lampirkan jawaban / tugas ini pada laporan
resmi yang akan Anda buat.

REFERENSI ONLINE
Di bawah ini adalah referensi online dari

UNIT I. Apabila

mengalami kesulitan dalam memahami materi, silahkan buka referensi


di bawah ini :

http://www.gnu.org/software/gcc/

http://users.actcom.co.il/~choo/lupg/tutorials/c-on-unix/c-onunix.html

http://www.cs.wisc.edu/~beechung/ref/gcc-intro.html

http://www.network-theory.co.uk/docs/gccintro/

SEKILAS MATERI UNIT BERIKUTNYA


Materi praktikum pemrograman dasar unit selanjutnya akan lebih
banyak membahas beberapa hal, terkait dengan operasi dasar dalam
pemrograman bahasa C. Beberapa hal yang patut Anda ketahui, antara
lain :
-

Struktur pemrograman bahasa C

Tipe data dan operator

Operasi operasi dasar dalam pemrograman dasar

11

LAPORAN SEMENTARA PRAKTIKUM


UNIT I . PENGENALAN GCC
Pertanyaan :
1. Jelaskan kegunaan perintah di bawah ini ! Bagaimanakah
hasilnya bila perintah tersebut di eksekusi ? (lihat langkah
percobaan 2).
$ gcc c linking1.c
$ gcc c linking2.c
$ gcc o linkedprogram linking1.o linking2.o
$ linkedprogram

2. Apakah

yang

anda

ketahui

tentang

debugging

dan

apa

gunanya ?
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
............................................
2. .......................................................................................................
............................. .........................................................................
...........................................................
.......................................................................................................
............................. ..............................................................................
......................................................
Khusus Asisten (beri tanda pada kotak di bawah ini ) :
12

Program berjalan. Catatan :


.......................................................................................................
.............................
Program tidak berjalan. Alasan :
.......................................................................................................
.............................

UNIT II
PENGENALAN GCC II

TUJUAN PRAKTIKUM
1. Memahami unsur-unsur dasar pemrograman dalam bahasa C.
2. Memahami operasi aritmatika dari yang sederhana sampai yang
rumit dalam bahasa C.
3. Memahami penulisan sintaks bahasa C dengan benar.
4. Mampu

meng-compile

program

dengan

benar

dengan

menggunakan GCC

DASAR TEORI
Unsur-unsur sebuah bahasa pemrograman yang akan dibahas
meliputi, unsur-unsur aritmatika, penulisan sintaks dari sebuah bahasa
pemrograman, dan proses compiling source code. Tetapi pembahasan
kita tidak akan terbatas pada hal-hal tersebut saja, tetapi mengarah
pada proses coding dengan compiler GCC menggunakan bahasa C.
Struktur program dalam bahasa C
Dalam struktur penulisannya, program dalam bahasa C terdiri
dari kumpulan fungsi-fungsi, dan paling sedikit harus ada sebuah
13

fungsi wajib yaitu fungsi main. Jadi bahasa C sudah bersifat moduler,
sehingga sangat memudahkan proses coding. Lebih jauh tentang
fungsi akan dibahas pada unit terakhir yang akan membahas
modularitas dan fungsi dalam bahasa C.
HINT
Jika pada program terdiri dari beberapa fungsi, maka proses
pemanggilan fungsi fungsi tersebut adalah dari fungsi main().

Tipe-tipe data dan operator dalam bahasa C


Tipe data dalam bahasa C tidak jauh berbeda dengan tipe data
dalam bahasa pemrograman lainnya, seperti integer, floating point,
character, dan seterusnya. Perbedaan yang menjadikan bahasa C lebih
unggul dalam sisi kecepatan (speed) dari bahasa lainnya adalah
adanya pointer dalam bahasa C. Tetapi bahasa C juga mempunyai
kelemahan, yaitu tidak mengenal tipe data string, sehingga biasanya
programmer akan menyiasati hal ini dengan menjadikan array dari
character sebagai string.
HINT
Pendeklarasian array dari character adalah sebagai berikut :
Char [5] contoh;
Sehingga array char contoh tersebut mampu mensubstitusi tipe data
string
Secara umum operator semua bahasa pemrograman adalah
sama, yaitu menurut operand yang dibutuhkan terdiri dari 2 macam
operator, binary dan unary. Yang dimaksud dengan operator binary
adalah operator yang memerlukan 2 operand untuk berfungsi dengan
baik (tidak ada syntax error) sebagai contoh, operator perkalian,
penambahan, pengurangan dan lain lain.

14

Sedangkan

operator

unary

adalah

operator

yang

hanya

memerlukan sebuah operand saja untuk melengkapinya menjadi


syntax yang benar. Sebagai contoh, operator increment (++ / --),
operator NOT ( ! ), operator tanda bilangan (+ / -), dan lain sebagainya.
Operator-operator tersebut mempunyai prioritas yang berbedabeda. Untuk operator aritmatika urutan prioritas tersebut adalah persis
sama dengan urutan pengerjaan suatu operasi hitung matematika.
Operasi perkalian dan pembagian akan dikerjakan lebih dulu dari pada
operasi penambahan dan pengurangan. Berarti, operator perkalian dan
pembagian mempunyai urutan prioritas yang lebih tinggi dari pada
operator penjumlahan dan pengurangan.

LANGKAH PERCOBAAN
Berikut ini adalah sebuah contoh flowchart dan pseudocode (Bila Anda
memerlukan penjelasan lebih jauh tentang flowchart dan pseudocode,
Anda bisa merujuk pada Unit III).
Tugas anda adalah menulis sebuah program berdasarkan pseudocode
dan flowchart, dengan menggunakan bahasa pemrograman C. Contoh
di bawah ini hanya terdiri dari sebuah fungsi, yaitu fungsi main.
Flowchart

15

START
Masukkan first number
Masukkan second
number
sum = first
number
second number
Cetak sum

FINISH

Pseudocode
Hitung (first number, second number)
First number <- angka pertama
Second number <- angka kedua
Sum = first number / second number
End Hitung

TUGAS
Operator unary hanya menggunakan satu operand saja. Selain
yang

sudah

disebutkan

dalam

dasar

teori,

dapatkah

Anda

menyebutkan operator-operator unary yang lainnya ? Sebutkan juga


fungsi masing-masing operator unary yang anda tuliskan tersebut !
(Lampirkan tugas ini dalam laporan resmi anda).

REFERENSI ONLINE
Di bawah ini adalah referensi online dari UNIT II. Apabila
mengalami kesulitan dalam memahami materi, silahkan buka referensi
di bawah ini :
16

http://www.le.ac.uk/cc/tutorials/c/ccccstrt.html

http://www.le.ac.uk/cc/tutorials/c/ccccvar1.html

http://publications.gbdirect.co.uk/c_book/chapter1/

SEKILAS MATERI UNIT BERIKUTNYA


Materi praktikum pemrograman dasar unit selanjutnya akan lebih
banyak membahas beberapa hal, terkait dengan algoritma seleksi
(pemilihan kondisi). Beberapa hal yang patut Anda ketahui, antara
lain :
-

Pengertian dasar algoritma seleksi.

Perbedaan dasar anatar flowchart dan pseudocode.

Operasi-operasi

dengan

algoritma

seleksi

(IF,

IF-ELSE,

SWITCH, CASE)

17

LAPORAN SEMENTARA PRAKTIKUM


UNIT II . PENGENALAN GCC II
Pertanyaan :
1. Sejauh yang saat ini Anda ketahui, apakah beda antara flowchart
dan pseudocode ?
2. Lampirkan program yang anda buat dalam laporan sementara ini
!
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
............................................
.......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................ ......................................................................................
.............................................. ........................................................
............................................................................ ..........................
.......................................................................................................
... ...................................................................................................
.................................
Khusus Asisten (beri tanda pada kotak di bawah ini ) :

18

Program berjalan. Catatan :


........................................................................................................
............................
Program tidak berjalan. Alasan :
.......................................................................................................
.............................

19

UNIT III
ALGORITMA I : SELECTION STRUCTURE

TUJUAN PRAKTIKUM
1. Mengenal pola algoritma dasar, dengan menggunakan flowchart
dan menggunakan pseudocode
2. Mengenal

pola

algoritma

pengendalian

kondisi

(selection

structure) dan mampu mengimplementasikannya dalam program


(coding).

DASAR TEORI
Algoritma adalah suatu urutan langkah langkah pasti dan jelas
menurut logika dan memiliki batasan tertentu yang dilakukan untuk
mencapai tujuan tertentu atau kondisi tertentu.
Algoritma harus memiliki syarat syarat berikut:

Komplit: setiap langkahnya harus didefinisikan secara


lengkap dan runtut.

Tidak ambigu: langkah langkahnya tidak boleh ambigu


(harus jelas).

Deterministik: jika setiap langkah langkahnya diikuti


maka akan mencapai hasil yang pasti atau tertentu.

Finite: algoritma harus selesai ketika mencapai kondisi


tertentu atau hasil tertentu.

Flowchart
Flowchart adalah suatu cara untuk menunjukkan urutan langkah
langkah dalam algoritma. Flwochart digambarkan dalam bentuk box
box yang dihubungkan dengan tanda panah yang menunjukkan alur
20

urutan langkah langkah algoritma tersebut. Box box tersebut


memiliki bentuk yang berbeda beda dan masing masing bentuk
memiliki arti sendiri sendiri.
contoh:

Jumlahkan N data

Umur

<

12
Dibagi dengan N
data

Bayar

Bayar

Rp.2000
YA

Rp.50
00

TIDAK

HINT
Untuk memudahkan menggambar flowchart, dapat digunakan fasilitas
pada Microsoft Word, yaitu pada Insert > Picture > AutoShape. Kemudian
pilih Flowchart. Pada Open Office mendisain flowchart bisa dilakukan
dengan fasilitas drawing.
Pseudocode
Pseudocode adalah salah satu cara untuk merepresentasikan
alur kontrol dalam algoritma. Pseudocode tidak dapat dicompile dan
tidak memiliki format penulisan atau sintaksis tertentu. Dengan
pseudocode maka programer dapat membuat gambaran sebuah
program tanpa memperhatikan bahasa pemrograman tertentu.
Contoh 1 :
Tukar(X,Y)
X nilai1
Y nilai2
Buff X
XY
Y Buff
End Tukar
Contoh 2 :
Maksimum
21

If X > Y
Max X
Else
Max Y
End Maksimum
Pernyataan kontrol :
Pernyataan if
Pernyataan

if

digunakan

untuk

pengambilan

keputusan

berdasarkan suatu kondisi tertentu.


Deklarasi :
if(kondisi)
pernyataan;

Pernyataan if ..... else


Apabila suatu kondisi yang ditentukan benar maka pernyataan
dalam kondisi tersebut akan diproses, jika kondisi yang ditentukan
salah maka pernyataan lain akan diproses oleh program.
Deklarasi:
if(kondisi)
pernyataan1;
else
pernyataan2;

Pernyataan if bersarang if ..... else if ...... else if else


if ..
Pernyataan if bersarang digunakan untuk menguji lebih dari satu
kondisi. Jika suatu kondisi salah maka kondisi lain akan diuji, jika
kondisi yang diuji tersebut salah maka kondisi yang lain lagi akan diuji
dan seterusnya.
Deklarasi :
if(kondisi1)
pernyataan1;
else if(kondisi2)

22

pernyataan2;
else if(kondisi3)
pernyataan3;
else if(kondisi4)
pernyataan4;
else
pernyataanN;

HINT
Pernyataan if else ini adalah salah satu fungsi kontrol yang penting.
Hal ini dibuktikan dengan digunakan hampir pada semua bahasa
pemrograman.
Pernyataan switch dan case
Pernyataan switch adalah pernyataan yang digunakan untuk
menjalankan salah satu pernyataan dari beberapa kemungkinan
pernyataan

berdasarkan

nilai

dari

sebuah

ungkapan

dan

nilai

penyeleksi.
Deklarasi :
switch(ungkapan)
{
case ungkapan1:
pernyataan1;
break;
case ungkapan2:
pernyataan2;
break;
case ungkapan3:
pernyataan3;
break;
.......
default:
pernyataanN;
}

23

LANGKAH PERCOBAAN
Kali

ini

Anda

akan

mencoba

membuat

sebuah

program

dari

pseudocode yang sudah ada. Pseudocode ini berfungsi sebagai


petunjuk untuk membuat program masukan nilai mahasiswa dan
menentukan index nilai ujian dengan rentang A s.d. E. Namai program
Anda dengan nama nilai.c
Pseudocode :
DEKLARASI
nilai : real
indeks : char
DESKRIPSI
read(nilai)
if (nilai>=80) then
indeks <-- 'A'
else
if (nilai >=70) and (nilai < 80) then
indeks <-- 'B'
else
if(nilai>=55)and(nilai<70) then
indeks <-- 'C'
else
if(nilai>=40) and (nilai < 55) then
indeks <-- 'D'
else
indeks <-- 'E'
endif
endif
endif
endif
write(indeks)

24

TUGAS
Setelah program yang Anda buat di atas bisa dijalankan dengan
sempurna,

cobalah

buat

flowchart

untuk

program

tersebut,

berdasarkan pseudocode yang ada. Lampirkan hasil kerja Anda pada


laporan resmi.

REFERENSI ONLINE
Di bawah ini adalah referensi online dari UNIT III. Apabila
mengalami kesulitan dalam memahami materi, silahkan buka referensi
di bawah ini :

http://www.cs.cf.ac.uk/Dave/C/node5.html

http://www.jchq.net/certkey/0201certkey.htm

http://www.phim.unibe.ch/comp_doc/c_manual/C/SYNTA
X/if.html

http://irc.essex.ac.uk/www.iotasix.co.uk/c/d2_if_and_else_statements.asp

http://www.cs.ntu.edu.au/sit/resources/cprogram/c_028
.htm

http://cermics.enpc.fr/~ts/C/SYNTAX/switch.html

SEKILAS MATERI UNIT BERIKUTNYA


Materi praktikum pemrograman dasar unit selanjutnya akan lebih
banyak membahas beberapa hal, terkait dengan algoritma seleksi
(pemilihan kondisi). Beberapa hal yang patut Anda ketahui, antara
lain :
-

Pengertian dasar algoritma repetisi.

Operasi-operasi dengan algoritma repetisi (WHILE, DO-WHILE,


FOR)

25

26

LAPORAN SEMENTARA PRAKTIKUM


UNIT III . ALGORITMA I : SELECTION STRUCTURE
Pertanyaan :
1. Pada ungkapan switch-case, ada code break. Menurut
Anda, apa fungsi dari perintah break tersebut ? (Anda
diperbolehkan mencari jawabannya dari internet atau
buku-buku referensi Anda).
2. Lampirkan

program

yang

anda

buat

dalam

laporan

sementara ini !
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
............................................
.......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................ ......................................................................................
.............................................. ........................................................
............................................................................ ..........................
.......................................................................................................
... ...................................................................................................
.................................

27

Khusus Asisten (beri tanda pada kotak di bawah ini ) :


Program berjalan. Catatan :
........................................................................................................
............................
Program tidak berjalan. Alasan :
.......................................................................................................
.............................

UNIT IV
ALGORITMA II : REPETITION STRUCTURE

TUJUAN PRAKTIKUM
1. Memahami

konsep

dan

kegunaan

algoritma

iteratif

(pengulangan) dalam pemrograman.


2. Mampu

menerapkan

penggunaan

algoritma

iteratif

dalam

bahasa C.

DASAR TEORI
Repetition Structure atau Algoritma iteratif adalah suatu
algoritma yang digunakan untuk melakukan pengulangan (iterasi /
repetisi) terhadap suatu pernyataan atau suatu blok pernyataan.
Algoritma iteratif sangat berguna apabila terdapat blok pernyataan
yang harus dikerjakan lebih dari satu kali, karena pemrogram cukup
menulis blok pernyataan tersebut satu kali saja, dan program
tersebut dengan sendirinya akan mengulangi pengerjaannya sesuai
persyaratan yang ditentukan.
28

Algoritma pengulangan dalam bahasa C dapat dilakukan


dengan 3 pernyataan, yaitu pernyataan While, pernyataan Do
While, dan pernyataan For.
HINT
Pernyataan While dan Do...While, adalah pernyataan pengulangan yang
mempunyai kemampuan untuk menyaring (filter) laju/jalannya eksekusi
program (mirip dengan pernyataan if)
Pernyataan While
Pernyataan while merupakan pernyataan pengulangan di mana
pengulangan blok pernyataan akan dilakukan selama kondisi syaratnya
dipenuhi. Adapun sintaks dari pernyataan while adalah sebagai berikut:
while(kondisi)
{
................
................
}

// blok pernyataan

Pernyataan do...while
Pernyataan do...while memiliki fungsi yang hampir sama dengan
perintah while, tetapi dalam pernyataan do...while ini, blok pernyataan
dilakukan terlebih dahulu sebelum pengecekan kondisi syarat. Dengan
demikian, blok pernyataan akan dikerjakan paling sedikit satu kali.
Sintaks dari pernyataan do...while ditunjukkan di bawah ini:
do
{

............
............
} while(kondisi)

//blok pernyataan

Pernyataan for
Pernyataan for adalah pernyataan pengulangan yang meminta
pendeklarasian nilai awal variabel kondisi, kondisi yang dipenuhi, dan
peningkatan (increments) dari variabel kondisi. Sintaks pernyataan for
adalah sebagai berikut:
for(inisialisasi; kondisi; pengatur variabel)
{
................
//blok pernyataan

29

................

30

LANGKAH PERCOBAAN
Flowchart di halaman selanjutnya adalah flowchart sebuah
program penghitung rata-rata dari beberapa nilai seorang mahasiswa.
Rerata akan dihitung dari Jumlah Total Nilai dibagi Banyaknya Nilai (n).
Setelah itu, program akan menampilkan nilai dalam bentuk huruf
sebagai representasi dari rata-rata yang telah dihitung. Tugas Anda
adalah membuat source code programnya saat ini dan membuat
pseudocode-nya saat di rumah. Jangan lupa untuk melampirkan listing
program pada laporan resmi Anda.
Namai program yang sedang Anda buat dengan nama : rerata.c

31

32

REFERENSI ONLINE
Di bawah ini adalah referensi online dari UNIT IV. Apabila
mengalami kesulitan dalam memahami materi, silahkan buka referensi
di bawah ini :

http://cplus.about.com/od/beginnerctutoria1/l/aa040402c.htm

http://irc.essex.ac.uk/www.iotasix.co.uk/c/d6_for_while_and_do_while_loops.asp

http://c-faq.com/~scs/cclass/int/sx4bc.html

SEKILAS MATERI UNIT BERIKUTNYA


Materi praktikum pemrograman dasar unit selanjutnya akan lebih
banyak membahas beberapa hal, terkait dengan pointer dan array.
Beberapa hal yang patut Anda ketahui, antara lain :
-

Pendefinsian Pointer dan Array

Jenis jenis penggunaan pointer

Merancang program dari flowchart dan pseudocode.

33

LAPORAN SEMENTARA PRAKTIKUM


UNIT IV . ALGORITMA II : REPETITION STRUCTURE
Pertanyaan :
1. Statemen do-while dan for sama-sama termasuk dalam struktur
pengulangan. Menurut Anda, apa yang membedakan keduanya ?
2. Lampirkan program yang anda buat dalam laporan sementara ini
!
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
............................................
.......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................ ......................................................................................
.............................................. ........................................................
............................................................................ ..........................
.......................................................................................................
... ...................................................................................................
.................................
Khusus Asisten (beri tanda pada kotak di bawah ini ) :

34

Program berjalan. Catatan :


........................................................................................................
............................
Program tidak berjalan. Alasan :
.......................................................................................................
.............................

UNIT V
POINTER & ARRAY

TUJUAN PRAKTIKUM
1. Memahami konsep dan kegunaan dasar pointer dan array.
2. Mampu

menggunakan

pointer

dan

array

untuk

membuat

program dalam bahasa C.

DASAR TEORI
Pointer
Pointer adalah suatu variabel khusus yang berisikan alamat
memori dari suatu data, tidak berisikan data itu sendiri. Pointer sangat
sering digunakan dalam program-program bahasa C, karena dapat
memberikan efisiensi dalam program.
Seperti

variabel

lainnya

dalam

C,

pointer

juga

harus

dideklarasikan dahulu sebelum dapat digunakan dalam program. Untuk


mendeklarasikan sebuah pointer, sintaks nya adalah sebagai berikut:
[type data] *[nama pointer]

Jadi, untuk mendeklarasikan sebuah pointer xp yang menunjuk


ke alamat data integer, digunakan perintah sebagai berikut:

35

int *xp

HINT
Pointer

adalah

salah

satu

keunggulan

bahasa

pemrograman

dibanding dengan bahasa lainnya.

Terdapat dua buah operator unary yang digunakan untuk


mengakses sebuah pointer, yaitu operator & dan operator * . Operator
& digunakan untuk mengakses alamat data yang ditunjuk oleh pointer,

sementara

operator

digunakan untuk

mengakses

data

yang

alamatnya ditunjuk oleh pointer.


a = &x;
b = *x;

// a berisi alamat yang ditunjuk pointer x


// a berisi data yang alamatnya ditunjuk x

Array
Secara sederhana, array atau larik adalah sekumpulan variabelvariabel sejenis yang dinamakan elemen dari array tersebut. Elemenelemen dalam suatu array, diorganisir sedemikian rupa dengan
menggunakan indeks. Untuk mendeklarasikan sebuah array digunakan
sintaks di bawah ini:
[tipe-data] [nama-array][[ukuran]]

Jadi, untuk mendeklarasikan sebuah array A yang terdiri dari 10


elemen bertipe integer, perintahnya adalah:
int A[10];

Untuk mengakses elemen dari suatu array, digunakan indeks


dari elemen tersebut yang dimulai dari 0. Jadi array A di atas akan
memuat 10 elemen, yaitu A[0] hingga A[9] .
x = A[0];
y = A[5];
z = A[9];

// x berisi elemen pertama dari array A


// y berisi elemen array A dengan indeks 5
// z berisi element terakhir dari array A

36

HINT
Programmer dapat mendeklarasikan array tanpa menuliskan ukuran
dari array tersebut. Misal int B[ ]; Ukuran array tersebut akan
tergantung pada jumlah integer yang dimasukkan ke dalam array ketika
program dieksekusi.

37

LANGKAH PERCOBAAN
Buatlah pseudocode dan program C untuk mendefinisikan 2 buah
vektor 2-dimensi, a dan b, kemudian melakukan penghitungan untuk
mencari vektor c = a + b , dan matriks M = abT , menggunakan array
dan pointer. Konsep perhitungannya adalah sebagai berikut :
a
b
c
M

=
=
=
=
=
=

[ i ; j
[ k ; l
a + b
[ i+k ;
abT
[ ik il

]
]
j+l ]
; jk jl ]

Flowchartnya ditunjukkan di bawah ini:


START
read i,j
read k,l

a[] = [i; j]
b[] = [k, l]
*c1 = a[0] + b[1]
*c2 = a[1] + b[1]
print
c = [ *c1 ; *c2 ]
*m11 = a[0] * b[0]
*m12 = a[0] * b[1]
*m21 = a[1] * b[0]
*m22 = a[1] * b[1]

print
M = [ *m11 *m12 ; *m12
*m22 ]

STOP

38

TUGAS
Buatlah flowchart dari program yang dapat membalik frase
praktikum

pemrograman

dasar

menjadi

rasad

namargormep

mukitkarp dan menampilkan hasilnya di layar, menggunakan array

dan pointer. (Lampirkan flowchart yang anda buat dalam laporan


resmi Anda ! ).

REFERENSI ONLINE
Di bawah ini adalah referensi online dari UNIT V. Apabila
mengalami kesulitan dalam memahami materi, silahkan buka referensi
di bawah ini :

http://home.netcom.com/~tjensen/ptr/pointers.htm

http://www.cs.cf.ac.uk/Dave/C/node10.html

http://www.cs.cf.ac.uk/Dave/C/node12.html

http://www.cs.cf.ac.uk/Dave/C/node7.html

http://gd.tuwien.ac.at/languages/c/programmingbbrown/c_034.htm

SEKILAS MATERI UNIT BERIKUTNYA


Materi praktikum pemrograman dasar unit selanjutnya akan lebih
banyak membahas beberapa hal, terkait dengan Fungsi Input/Output.
Beberapa hal yang patut Anda ketahui, antara lain :
-

Memahami beberapa fungsi dasar Input / Output (I/O) yang


sering digunakan pada pemrograman bahasa C.

Melakukan debugging atas source code yang mempunyai


kesalahan (bug).

39

LAPORAN SEMENTARA PRAKTIKUM


UNIT V . POINTER DAN ARRAY
Pertanyaan :
1. Apakah beda antara array dan variabel biasa, ditinjau dari
kemampuannya untuk menyimpan suatu nilai / elemen ?
2. Variabel pointer harus dideklarasikan dengan tipe yang sesuai
dengan tipe data di memori yang ditunjuknya. Apakah yang
terjadi jika suatu data di memori yang bertipe float (4 byte)
ditunjuk oleh pointer yang bertipe integer (2 byte) ? Anda bisa
mencobanya

dengan

program

sederhana

untuk

menjawab

pertanyaan ini.
2. Lampirkan program yang anda buat dalam laporan sementara ini
!
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................
2. .......................................................................................................
.......................................................................................................
..........................................................
.......................................................................................................
............................. .........................................................................
...........................................................
Khusus Asisten (beri tanda pada kotak di bawah ini ) :

40

Program berjalan. Catatan :


........................................................................................................
............................
Program tidak berjalan. Alasan :
.......................................................................................................
.............................

UNIT VI
Fungsi Input/Output (I/O)

TUJUAN PRAKTIKUM
1. Memahami fungsi I/O pada pemrograman bahasa C.
2. Memahami penerapan kemampuan I/O tersebut.
3. Mampu men-debug sebuah program dengan bantuan GCC
sebagai compiler.

DASAR TEORI
Operasi-operasi pada file stream secara umum adalah :
Buka file (open)
fopen(nama_file,tipe_akses)

Fungsi

fopen()

akan

menghasilkan

sebuah

pointer

yang

menunjuk pada file yang akan diolah. Selanjutnya operasi file akan
diasosiasikan pada pointer ini. Penggunaan pointer ini adalah sebagai
berikut :
infile = fopen("filename", "r");

41

Macam-macam tipe akses antara lain :


r

Membuka dan membaca (read) file yang telah ada

Membuat file baru yang belum ada (write)

Membuka file yang telah ada kemudian menambahinya (append)

Tutup file (close)


fclose(pointer_ke_file)

Digunakan untuk menutup file setelah pengaksesan selesai.


Penutupan file ini penting untuk dilakukan karena beberapa alasan,

Untuk menutup semua file yang masih terbuka sebelum


program dihentikan

Menutup file yang sudah tidak dipergunakan lagi dalam


program

Penghematan memory

Contoh penggunaan fclose adalah :


int fclose(infile);

Jika file berhasil ditutup, maka nilai integer akan nol, sedangkan
bila error nilai integer akan menjadi -1.
Operasi baca (read)
fread(variable_record,

ukuran_record,

jumlah_blok,

pointer_ke_file)
Fungsi ini digunakan untuk melakukan pembacaan data file. Data
yang dibaca adalah data yang sesuai dengan posisi pointer saat itu.
1. Operasi tulis (write)
fwrite(nama_record, ukuran_record, jumlah_blok, pointer_ke_file)
Fungsi fwrite digunakan untukmelakukan penulisan ke file
dengan data berupa record-record.

42

2. Pencarian (seek)
fseek(pointer_ke_file, offset, titik_acuan)
Fungsi ini digunakan untuk meletakkan pointer pada posisi yang
diinginkan.

43

Dan program-program yang banyak digunakan adalah :

standar input (biasanya berupa keyboard)

standar output (biasanya berupa layar monitor)

standar error (biasanya berupa layar monitor)

Pada bahasa C, pengaksesan file dapat dilakukan pada berbagai


tipe file, antara lain file biner, file teks atau sesuai dengan tipe data
yang terdapat dalam C.

LANGKAH PERCOBAAN
Dibawah ini adalah pseudo-code dan contoh program dalam
bahasa C yang masih mengandung bug. Tugas anda adalah
membuat flowchart dari pseudocode tersebut dan men-debug program
tersebut sehingga berfungsi sebagaimana mestinya.
HINT
Bahasa Pemrograman C bersifat case-sensitive, yang berartis huruf
kecil berbeda dengan huruf besar. Misal : int A berbeda dengan int a
Source Code
#include<Stdio.h>
#include<stdlib.h>
main()
{
FILE *penunjuk_file;
int I,N;
if ((penunjuk_file=Fopen(contoh.txt,W)) == NULL)
{
Printf(file tidak ada !!! \n);
exit(1);
}
Printf(Jumlah Dari Data ?);
Pcanf(%d,&N);
Printf(\n);
for(I=1;I<=N;I++)
{
Printf(Nama ke %d ?,I);

44

Flush(stdin);
Scanf(%[^\n],Nama);
Fputs(Nama, penunjuk_file);

}
Fclose(penunjuk_file);

REFERENSI ONLINE
Di bawah ini adalah referensi online dari UNIT VI. Apabila
mengalami kesulitan dalam memahami materi, silahkan buka referensi
di bawah ini :

http://vergil.chemistry.gatech.edu/resources/programming/ctutorial/io.html

http://www.gnu.org/software/libc/manual/html_node/I_002fOon-Streams.html

http://en.wikibooks.org/wiki/Programming:C_File_I/O

http://www.cprogramming.com/tutorial/cfileio.html

SEKILAS MATERI UNIT BERIKUTNYA


Materi praktikum pemrograman dasar unit selanjutnya akan lebih
banyak membahas beberapa hal, terkait dengan modularitas dan
fungsi. Beberapa hal yang patut Anda ketahui, antara lain :
-

Memahami konsep modularitas dalam pemrograman bahasa


C.

Implementasi modularitas program dengan menggunakan


fungsi.

Debugging source code yang mempunyai bug.

45

46

LAPORAN SEMENTARA PRAKTIKUM


UNIT VI . FUNGSI INPUT / OUTPUT
Pertanyaan :
1. Pada operasi fopen(), apabila operasi pengaktifan suatu file
gagal, apa yang terjadi ? Dapatkah kita mengetahui tanda-tanda
gagalnya operasi? Bagaimanakah caranya ?
2. Lampirkan program yang anda buat dalam laporan sementara ini
!
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................
.......................................................................................................
.......................................................................................................
..........................................................
.......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................ ......................................................................................
.............................................. ........................................................
............................................................................
Khusus Asisten (beri tanda pada kotak di bawah ini ) :

47

Program berjalan. Catatan :


.......................................................................................................
.............................
Program tidak berjalan. Alasan :
.......................................................................................................
.............................

48

UNIT VII
MODULARITAS

TUJUAN PRAKTIKUM
1. Mampu memahami konsep modularitas dalam pemrograman
dasar.
2. Mengimplementasikan

konsep

modularitas

dengan

menggunakan Fungsi.
3. Mampu melakukan bug tracking (debugging) source code yang
mempunyai bug-bug (kesalahan) untuk selanjutnya dibetulkan
sehingga menjadi sebuah source code utuh yang benar

DASAR TEORI
Konsep modularitas dalam pemrograman dikenal sebagai sebuah
metode untuk mempermudah penyusunan dan koreksi terhadap suatu
program. Modularitas dapat berupa memisahkan atau memecah
bagian-bagian tertentu dalam suatu program dan menyatukan /
memanggil komponen program tersebut dalam satu program utama
(main program). Salah satu implementasi dari konsep modularitas ini
adalah penggunaan Fungsi. Fungsi banyak digunakan dengan dua
alasan utama :
1. Fungsi menjadikan program yang ditulis dalam bahasa C
mempunyai struktur yang jelas. Dengan memisahkan langkahlangkah detail ke satu atau lebih fungsi-fungsi, maka fungsi
utama ( fungsi main( ) ) akan menjadi lebih pendek, jelas dan
mudah dimengerti. Hal seperti ini menunjukkan suatu struktur
program yang baik.
49

2. Fungsi-fungsi dapat digunakan untuk menghindari penulisan


yang berulang-ulang. Langkah-langkah program yang sama dan
sering digunakan berulang-berulang di program dapat dituliskan
sekali

saja

secara

terpisah

Selanjutnya

bagian

program

dalam
yang

bentuk

fungsi-fungsi.

membutuhkan

langkah-

langkah ini tidak perlu selalu menuliskannya, tetapi cukup


memanggil fungsi-fungsi tersebut.
HINT
Modularitas

adalah

salah

satu

konsep

yang

terkandung

dalam

pemrograman berorientasi obyek (Object Oriented Programming), yang


akan dibahas lebih lanjut dalam mata kuliah dan praktikum PBO.
Pendefinisian Fungsi
Suatu fungsi secara umum terdiri dari dua buah komponen
utama, yaitu definisi fungsi dan tubuh fungsi. Bentuk umum dari
definisi fungsi adalah sebagai berikut :
<tipe> <namafungsi> (argumen1,argumen2, ...)
/*definisi fungsi */
{
........................
// tubuh fungsi
........................
}

Keterangan :

Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri


dengan titik koma.

Tipe pada fungsi tergantung dari tipe data hasil balik


(return

type)

yang

akan

diberikan

oleh

fungsi.Tipe

keluaran fungsi dapat tidak ditulis jika keluaran bertipe


int atau char. Jika suatu fungsi memberikan hasil balik,
maka nilai hasil balik yang diberikan oleh fungsi dapat
dilakukan oleh statemen return yang diikuti oleh nilai

50

hasil baliknya yang ditulis dalam kurung. Jika fungsi tidak


memberikan hasil balik, maka tipenya adalah void.
Contoh :
int contohFungsi (A,B,C)
{
float A ;
int B ;
char C;
.......................
return (...);
}

// tubuh fungsi
// hasil balik

Selain itu, metode penulisan fungsi dapat pula ditulis dengan


cara lain yang lebih singkat sebagai berikut :
<tipe> <namafungsi> (<tipearg1> arg1,<tipearg2> arg2, ..)
/*deklarasi fungsi */
{
......................
// tubuh fungsi
.......................
}

Pendeklarasian Fungsi
Suatu fungsi yang memberikan hasil balik selain bertipe int perlu
dideklarasikan sebelum digunakan. Dengan demikian jika suatu fungsi
tidak dideklarasikan, maka akan dianggap fungsi tersebut memberikan
hasil balik berupa nilai yang bertipe int. Untuk mempermudah
dokumentasi dan debugging (mencari kesalahan pada source code
program

sebaiknya

semua

fungsi

yang

akan

digunakan

dideklarasikan terlebih dahulu, termasuk yang bertipe int . Deklarasi


fungsi umunya ditulis sebelum fungsi tersebut digunakan. Berikut ini
adalah bentuk umum dari deklarasi fungsi :
<tipe> <namafungsi> ( ) ;

/* titik koma harus ditulis */

Untuk deklarasi fungsi, argumen-argumen fungsi tidak perlu


dituliskan. Tipe fungsi di atas (pada baris pendeklarasian) harus sesuai
dengan tipe fungsi yang didefinisikan. Jika tipenya berbeda, gcc

51

sebagai kompiler C akan mendeteksi bahwa tipe deklarasi tidak sesuai


dan akan muncul peringatan dari kompiler.

LANGKAH PERCOBAAN
Percobaan 1 :
Program di bawah ini adalah program untuk menghitung deret
fibonacci. Penghitungan dengan program di bawah akan dilakukan
dengan memanfaatkan konsep iterasi biasa.
1.

Cobalah kompile program di bawah menggunakan gcc.

2.

Bila terdapat kesalahan, cobalah perbaiki program tersebut.

3.

Dalam laporan sementara, cantumkan program (yang telah


diperbaiki) dan hasil eksekusinya. Cantumkan dalam laporan
resmi Anda pesan kesalahan dan sebabnya (pada bab analisa
percobaan).

/*
/*
/*
/*
/*

------------------------------------------------------*/
File : fibonacci.c
*/
Program untuk menghitung nilai suku tertentu untuk
*/
deret fibonacci dengan mengimplementasikan fungsi.
*/
------------------------------------------------------*/

#include<stdio.h>
main()
{
int N;
printf(Suku bilangan ke?);
scanf(%d,&N);
printf(Nilai suku ke %d adalah %d \n,N,Fibbonaci());
}
/*---------- Fungsi deret Fibonacci---------------- */
int Fibonacci(int N) /* definisi fungsi */
{
int Fibo_Bawah,Fibo_Atas,X,I;
if(N<2)return(N);
Fibo_Bawah = 0;
Fibo_Atas
= 1;
for(I=2;I<=N;I++) {
X = Fibo_Bawah ;
Fibo_Bawah = Fibo_Atas ;
Fibo_Atas
= X+Fibo_Bawah;
}
return();

52

53

Percobaan 2 :
Program di bawah ini berfungsi untuk mengurutkan data dengan
sebuah metode yang disebut dengan metode Quick Sort. Program di
bawah ini mempunyai beberapa bug (kesalahan) yang harus
diperbaiki.
1. Kompile, debug dan perbaikilah program di bawah sehingga
pesan kesalahan tidak muncul dan program berjalan dengan
benar.
2. Dalam laporan sementara tulislah program yang telah diperbaiki
dan hasil eksekusi setelah program terbebas dari bug. Pesan
kesalahan dicantumkan dalam analisa percobaan pada laporan
resmi.
/*
/*
/*
/*
/*

------------------------------------------------------*/
File : quicksort.c
Program untuk melakukan sorting input data
berupa angka dengan mengimplementasikan fungsi.
------------------------------------------------------

*/
*/
*/
*/

#include <stdio.h>
void Input_Data (float X[],int Jumlah) ;
void Quick_Sort (float X[],int Atas, int Bawah);
void main ()
{
int N ;
float Nilai[1000];
printf (Jumlah Data ?);
scanf(%d,&n);
printf(\n);
Input_Data(Nilai,N);
Quick_Sort(Nilai,0,N-1) ;
printf(\n);
printf(Hasil setelah urut : \n);
Tampil_Data(Nilai,N);
}
/*----------- Fungsi untuk memasukkan data larik ---------- */
void Input_Data (float X[])
{
int I ;
for (I=0 ; I<Jumlah ;I++)
{
printf(Data ke %d ?, I+1);
scanf(%f, &X[I]);
}

54

/*--------- Fungsi untuk mengurutkan elemen larik-----------*/


void Quick_Sort (float X[],int Bawah,int Atas)
{
int I,J,K
float Sementara;
while (Atas > Bawah)
{
I=Bawah ;
J=Atas ;
Sementara=X[Bawah];
/* memecah larik menjadi dua bagian */
while (I<J)
{
while(X[J]>Sementara)
{ --J ;
X[I]=X[J] ;
}
while(I<J&&X[I]<=Sementara)
{
X[J]=X[I];
}
}
X[I]=Sementara ;
/*urutkan rekursi*/
Quick_Sort(X,Bawah,I-1);
Bawah = I+1 ;
}

/*----------Fungsi untuk menampilkan data elemen-elemen larik----- */


void Tampil_Data (float X[],int Jumlah)
{
int I;
for (I=0;I<Jumlah;I++)
printf(%f\n,X[I]);
}

55

TUGAS
Khusus untuk program yang ke-2, buatlah flowchart dan pseudocode dari program tersebut. Cantumkan dalam laporan resmi anda
(dalam bab jawaban pertanyaan / tugas).

REFERENSI ONLINE
Di bawah ini adalah referensi online dari UNIT VII. Apabila
mengalami kesulitan dalam memahami materi, silahkan buka referensi
di bawah ini :

http://www.its.strath.ac.uk/courses/c/section3_9.html

http://vergil.chemistry.gatech.edu/resources/programming/ctutorial/basic2.html

http://en.wikibooks.org/wiki/Programming:C_procedures_and_f
unctions

http://www.le.ac.uk/cc/tutorials/c/ccccfanp.html

SEKILAS MATERI UNIT BERIKUTNYA


Materi terakhir dari pemrograman dasar adalah Project Akhir.
Anda

diminta

untuk

melakukan

pembuatan

program

dengan

kriteria-kriteria yang telah ditentukan. Untuk membuat program,


Anda memerlukan beberapa tahap berikut :
a. Memahami konsep dan cara kerja program.
b. Menuangkan algoritma program yang akan Anda buat
dalam bentuk flowchart.
c. Membuat pseudocode dari program (untuk memudahkan
Anda dalam melakukan coding).
d. Melakukan coding dalam bahasa C.
e. Melakukan testing dan review terhadap program Anda.
f. Membahas program dalam laporan (cantumkan pula listing
program Anda sebagai lampiran)

56

LAPORAN SEMENTARA PRAKTIKUM


UNIT VII . MODULARITAS
Pertanyaan :
1. Jelaskan apa yang anda ketahui tentang metode Quicksort ?
(Anda bisa mencari definisinya melalui internet atau buku-buku
referensi lainnya).
2. Lampirkan program yang anda buat dalam laporan sementara ini
!
Jawaban Pertanyaan :
1. .......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................
.......................................................................................................
.......................................................................................................
..........................................................
.......................................................................................................
............................. .........................................................................
........................................................... ...........................................
......................................................................................... .............
.......................................................................................................
................ ......................................................................................
.............................................. ........................................................
............................................................................

57

Khusus Asisten (beri tanda pada kotak di bawah ini ) :


Program berjalan. Catatan :
........................................................................................................
............................
Program tidak berjalan. Alasan :

........................................................................................................
............................

58

UNIT VIII
TUGAS AKHIR

TUJUAN PRAKTIKUM
1. Mengerti dan memahami pemrograman dengan bahasa C lebih
lanjut.
2. Mampu menerapkan berbagai macam fungsi yang ada dalam
bahasa C untuk membuat suatu program.
3. Mampu membuat algoritma sebagai pemecahan sutau masalah
dan mengubahnya menjadi program

DASAR TEORI
Untuk dapat membuat program yang bagus kita harus dapat
memanfaatkan fungsi-fungsi dalam bahasa C sesuai dengan kebutuhan
agar program dapat berjalan dengan baik. Fungsi-fungsi tersebut telah
dijelaskan di bab-bab awal pada modul ini.
Tugas pada bab ini menggunakan metode Doolittle. Metode ini
bertujuan untuk memecahkan suatu matriks menjadi bentuk L dan U.

A = L*U

59

LANGKAH PERCOBAAN
1. Buatlah flowchart dan algoritma pemrograman (pseudocode)
untuk menyelesaikan persamaan linear dengan n peubah.
(Dengan n paling sedikit 3).
2. Berdasarkan flowchart dan pseudocode pada no.1, buatlah
program lengkapnya.
3. Dalam laporan akhir cantumkan flowchart, pseudocode , dan
listing program Anda. Dalam bab pembahasan, lakukan analisa
terhadap program yang Anda buat (berdasarkan source code
Anda).

60

Anda mungkin juga menyukai