modul telgj104p

79
Blue Print Modul Pemrograman Dasar PANDUAN PRAKTIKUM PEMROGRAMAN DASAR (TEL 104 P) LABORATORIUM KOMPUTER DAN INFORMATIKA 1

Upload: prayoga-akbar

Post on 12-Jul-2016

21 views

Category:

Documents


0 download

DESCRIPTION

jgi

TRANSCRIPT

Page 1: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

PANDUAN PRAKTIKUM

PEMROGRAMAN DASAR(TEL 104 P)

LABORATORIUM KOMPUTER DAN INFORMATIKA

JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS GADJAH MADA

2006

1

Page 2: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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 Komputer dan Informatika Jurusan Teknik Elektro akhirnya sepakat untuk mengulas 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 [email protected] . Semoga modul praktikum ini memberikan manfaat yang besar dan dapat memacu kita untuk mempelajari lebih dalam pemrograman dengan bahasa C / C++.

2

Page 3: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

3

Page 4: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

perlu membajak untuk meng-install-nya (biasanya menjadi 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

4

Page 5: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Tim Penyusun,Night Login IT Community

UNIT IPENGENALAN GCC

TUJUAN PRAKTIKUM1. Memahami fungsi dan kegunaan dasar gcc.2. Mampu menggunakan gcc untuk membuat program dalam

bahasa C

DASAR TEORIGNU 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++.

HINTKita 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 luas2. Bersifat Open Community3. Dapat digunakan sebagai cross-compiler

engapa GCC ? GCC adalah

kompiler bahasa C / C++ yang bersifat free dan open source. Artinya, tanpa membajak pun kita bisa memdistribusikannya secara

5

Page 6: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Untuk meng-compile sebuah source code yang ditulis dalam bahasa C, digunakan perintah gcc. Sebagai contoh, untuk meng-compile 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 .

LinkingLinking 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] ...

6

Page 7: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

DebuggingSelain 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 Fungsirun Menjalankan programlist Melihat di mana program berhentiquit Keluar dari gdb

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

7

Page 8: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

LANGKAH PERCOBAANPercobaan 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 !

8

Page 9: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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 ).

9

Page 10: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 11: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

TUGASProgram 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 ONLINEDi 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-on-

unix.html http://www.cs.wisc.edu/~beechung/ref/gcc-intro.html http://www.network-theory.co.uk/docs/gccintro/

SEKILAS MATERI UNIT BERIKUTNYAMateri 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

Page 12: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

LAPORAN SEMENTARA PRAKTIKUMUNIT 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

Page 13: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

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

UNIT IIPENGENALAN GCC II

TUJUAN PRAKTIKUM1. 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 CDalam struktur penulisannya, program dalam bahasa C terdiri

dari kumpulan fungsi-fungsi, dan paling sedikit harus ada sebuah

13

Page 14: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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.

HINTJika pada program terdiri dari beberapa fungsi, maka proses pemanggilan fungsi – fungsi tersebut adalah dari fungsi main().

Tipe-tipe data dan operator dalam bahasa CTipe 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.

HINTPendeklarasian 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

Page 15: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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 berbeda-beda. 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 PERCOBAANBerikut 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

Page 16: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Pseudocode

Hitung (first number, second number)First number <- angka pertamaSecond number <- angka keduaSum = first number / second number

End Hitung

TUGASOperator 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 ONLINEDi bawah ini adalah referensi online dari UNIT II. Apabila

mengalami kesulitan dalam memahami materi, silahkan buka referensi di bawah ini :

Masukkan first numberMasukkan second number

sum = first number

second number

Cetak sum

FINISH

16

START

Page 17: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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 BERIKUTNYAMateri 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

Page 18: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 19: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

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

19

Page 20: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

UNIT IIIALGORITMA I : SELECTION STRUCTURE

TUJUAN PRAKTIKUM1. Mengenal pola algoritma dasar, dengan menggunakan flowchart

dan menggunakan pseudocode2. Mengenal pola algoritma pengendalian kondisi (selection

structure) dan mampu mengimplementasikannya dalam program (coding).

DASAR TEORIAlgoritma 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.

FlowchartFlowchart 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

Page 21: Modul Telgj104p

TIDAK

Jumlahkan N data

Dibagi dengan N data

YA

Umur < 12

Bayar Rp.2000

Bayar Rp.50

00

Blue Print Modul Pemrograman Dasar

urutan langkah – langkah algoritma tersebut. Box – box tersebut memiliki bentuk yang berbeda – beda dan masing – masing bentuk memiliki arti sendiri – sendiri.

contoh:

HINTUntuk 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.

PseudocodePseudocode 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 nilai1Y nilai2Buff XX YY Buff

End Tukar

Contoh 2 :Maksimum

21

Page 22: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

If X > YMax X

ElseMax Y

End Maksimum

Pernyataan kontrol :

Pernyataan ifPernyataan if digunakan untuk pengambilan keputusan

berdasarkan suatu kondisi tertentu.Deklarasi :

if(kondisi)pernyataan;

Pernyataan if ..... elseApabila 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

Page 23: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

pernyataan2;

else if(kondisi3)

pernyataan3;

else if(kondisi4)

pernyataan4;

else

pernyataanN;

HINTPernyataan if – else ini adalah salah satu fungsi kontrol yang penting. Hal ini dibuktikan dengan digunakan hampir pada semua bahasa pemrograman.

Pernyataan switch dan casePernyataan 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

Page 24: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

LANGKAH PERCOBAANKali 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

Page 25: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

TUGASSetelah 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 ONLINEDi 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/

SYNTAX/if.html http://irc.essex.ac.uk/www.iota-six.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 BERIKUTNYAMateri 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

Page 26: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

26

Page 27: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 28: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Khusus Asisten (beri tanda √ pada kotak di bawah ini ) : Program berjalan. Catatan :.................................................................................................................................... Program tidak berjalan. Alasan :.......................................................................................................

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

UNIT IVALGORITMA II : REPETITION STRUCTURE

TUJUAN PRAKTIKUM1. Memahami konsep dan kegunaan algoritma iteratif

(pengulangan) dalam pemrograman.2. Mampu menerapkan penggunaan algoritma iteratif dalam

bahasa C.

DASAR TEORIRepetition 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

Page 29: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Algoritma pengulangan dalam bahasa C dapat dilakukan dengan 3 pernyataan, yaitu pernyataan While, pernyataan Do…While, dan pernyataan For.

HINTPernyataan While dan Do...While, adalah pernyataan pengulangan yang mempunyai kemampuan untuk menyaring (filter) laju/jalannya eksekusi program (mirip dengan pernyataan if)

Pernyataan WhilePernyataan 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...whilePernyataan 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 {

............ //blok pernyataan

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

Pernyataan forPernyataan 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:

29

Page 30: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

for(inisialisasi; kondisi; pengatur variabel){

................ //blok pernyataan

................}

30

Page 31: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

LANGKAH PERCOBAANFlowchart 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

Page 32: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

32

Page 33: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

REFERENSI ONLINEDi 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.iota-six.co.uk/c/

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

SEKILAS MATERI UNIT BERIKUTNYAMateri 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

Page 34: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 35: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

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

UNIT VPOINTER & ARRAY

TUJUAN PRAKTIKUM1. Memahami konsep dan kegunaan dasar pointer dan array.2. Mampu menggunakan pointer dan array untuk membuat

program dalam bahasa C.

DASAR TEORIPointerPointer 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]

35

Page 36: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Jadi, untuk mendeklarasikan sebuah pointer xp yang menunjuk ke alamat data integer, digunakan perintah sebagai berikut:

int *xp

HINTPointer adalah salah satu keunggulan bahasa pemrograman C 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; // a berisi alamat yang ditunjuk pointer x b = *x; // a berisi data yang alamatnya ditunjuk x

ArraySecara sederhana, array atau larik adalah sekumpulan variabel-

variabel sejenis yang dinamakan elemen dari array tersebut. Elemen-elemen 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]; // x berisi elemen pertama dari array A y = A[5]; // y berisi elemen array A dengan indeks 5

36

Page 37: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

z = A[9]; // z berisi element terakhir dari array A

HINTProgrammer 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

Page 38: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

LANGKAH PERCOBAANBuatlah 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 = [ i ; j ] b = [ k ; l ] c = a + b

= [ i+k ; j+l ] M = abT

= [ ik il ; jk jl ]

Flowchartnya ditunjukkan di bawah ini:

START

read i,jread k,l

a[] = [i; j]

b[] = [k, l]

*c1 = a[0] + b[1]

*c2 = a[1] + b[1]

print

c = [ *c1 ; *c2 ]

STOP

*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 ]

38

Page 39: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

TUGASBuatlah 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 ONLINEDi 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/programming-bbrown/

c_034.htm

SEKILAS MATERI UNIT BERIKUTNYAMateri 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

Page 40: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 41: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

.............................UNIT VIFungsi Input/Output (I/O)

TUJUAN PRAKTIKUM1. 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 TEORIOperasi-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

Page 42: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Macam-macam tipe akses antara lain :“r” Membuka dan membaca (read) file yang telah ada

“w” Membuat file baru yang belum ada (write)

“a” 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 memoryContoh 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

Page 43: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

43

Page 44: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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 PERCOBAANDibawah 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.

HINTBahasa 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++) {

44

Page 45: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

Printf(“Nama ke %d ?”,I); Flush(stdin); Scanf(“%[^\n]”,Nama); Fputs(Nama, penunjuk_file);

} Fclose(penunjuk_file);

REFERENSI ONLINEDi 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/c- tutorial/io.html

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

http://en.wikibooks.org/wiki/Programming:C_File_I/O http://www.cprogramming.com/tutorial/cfileio.html

SEKILAS MATERI UNIT BERIKUTNYAMateri 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

Page 46: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

46

Page 47: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 48: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

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

48

Page 49: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

UNIT VIIMODULARITAS

TUJUAN PRAKTIKUM1. 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 TEORIKonsep 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 langkah-langkah 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

Page 50: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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 dalam bentuk fungsi-fungsi. Selanjutnya bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut.

HINTModularitas 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 FungsiSuatu 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

Page 51: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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;....................... // tubuh fungsi return (...); // 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 FungsiSuatu 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

Page 52: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

sebagai kompiler C akan mendeteksi bahwa tipe deklarasi tidak sesuai dan akan muncul peringatan dari kompiler.

LANGKAH PERCOBAANPercobaan 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

Page 53: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

}

53

Page 54: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

Page 55: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

}

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

void Quick_Sort (float X[],int Bawah,int Atas){

int I,J,Kfloat 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

Page 56: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

TUGAS Khusus untuk program yang ke-2, buatlah flowchart dan pseudo-

code dari program tersebut. Cantumkan dalam laporan resmi anda (dalam bab jawaban pertanyaan / tugas).

REFERENSI ONLINEDi 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/c-tutorial/

basic2.html http://en.wikibooks.org/wiki/

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

SEKILAS MATERI UNIT BERIKUTNYAMateri 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

Page 57: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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. .......................................................................................................

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

57

Page 58: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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

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

58

Page 59: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

UNIT VIIITUGAS AKHIR

TUJUAN PRAKTIKUM1. 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 TEORIUntuk 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

HINTMetode Doolitle adalah sebuah metode yang cukup dikenal dalam perkalian dan manipulasi matriks. Metode Doolitle diajarkan juga pada mata kuliah Komputasi Dasar di Jurusan Teknik Elektro.

59

Page 60: Modul Telgj104p

Blue Print Modul Pemrograman Dasar

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).

HINTMerancang program bukan sekedar coding. Algoritma yang baik akan menghasilkan efektivitas penggunaan code-code program. Code program yang efektif memudahkan programmer untuk melakukan debugging dan pengembangan program.

------------ Not only coder , but also an Artist. Software is an art property --------------

60