2. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 2 dari 41 halaman
Formatted using Open Office
Printed and bound in the Indonesia
Cetakan pertama
www.bangunw.multiply.com
3. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 3 dari 41 halaman
Daftar Isi
Mengenai C................................................................................................................5
Bahasa Mesin (Mnemonic Code) ................................................................................................5
Bahasa Assembly........................................................................................................................6
Bahasa Tingkat Tinggi (High Level Language)...........................................................................6
Variable dan Kontrol Alur Eksekusi Program ............................................................8
Variabel......................................................................................................................................8
Scope dari Variabel................................................................................................................8
Tipe Data ..............................................................................................................................9
Tipe Data Primitive ...........................................................................................................9
Operator...............................................................................................................................10
1. Operator Penugasan .....................................................................................................10
2. Operator Matematika ...................................................................................................11
Seleksi .................................................................................................................................12
1. If .................................................................................................................................12
2. Switch .........................................................................................................................14
1. While...........................................................................................................................15
2. Do-While.....................................................................................................................16
3. For..............................................................................................................................17
M E T H O D............................................................................................................19
Jenis Fungsi..............................................................................................................................20
Deklarasi sebuah method ..........................................................................................................21
Mendeklarasikan Fungsi ...........................................................................................................22
Method Name ......................................................................................................................23
Parameter.............................................................................................................................23
Return type...........................................................................................................................25
Parameter..................................................................................................................................26
Parameter input ...................................................................................................................26
Parameter input/output ........................................................................................................26
Array........................................................................................................................27
Tipe Bentukan..........................................................................................................30
Nilai Ekstrim & Sorting............................................................................................32
Pencarian Nilai Ekstrim ............................................................................................................32
Nilai Maximum model 1 ......................................................................................................32
Nilai Maksimum model 2.....................................................................................................33
Sorting......................................................................................................................................34
Count Sort............................................................................................................................34
Buble Sort............................................................................................................................36
Insertion Sort........................................................................................................................37
Mengenal IDE..........................................................................................................39
4. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 4 dari 41 halaman
*
"Ya Tuhan kami terimalah daripada kami (amalan kami), sesungguhnya Engkaulah Yang Maha
Mendengar lagi Maha Mengetahui".
*
5. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 5 dari 41 halaman
Mengenai C
Sebagai suatu bahasa pemrograman, C seperti halnya pascal maupun fortran. Nilai
disimpan dalam suatu variable. Program terstruktur dan dedifinisikan serta melakukan
pemanggilan fungsi.
Bahasa C merupakan bahasa yang sukses. Mulai dikembangkan oleh Brian Kernighan
dan Dennis Ritchie pada awal tahun '70-an, bahasa C banyak mengalami berbagai
kemajuan, perubahan, dan hingga kini (38 tahun lebih) bahasa C masih banyak
digunakan dan dipelajari. Belajar menjadi programmer professional seakan belum
lengkap tanpa mempelajari C. Tidak mengherankan bila beberapa universitas
menjadikan bahasa C sebagai bahasa pemrograman yang wajib. Sistem-sistem operasi
yang terkemuka seperti UNIX dan Windows juga dibangun dengan menggunakan
bahasa C (dan juga C++).
Sistem operasi berbasiskan UNIX dituliskan dalam bahasa C. Dalam kenyataannya C di
buat untuk diimplementasikan secara spesifik dalam system operasi UNIX .
Sebelum melangkah lebih jauh ada baiknya kita review perkembangan bahasa
pemrograman
Bahasa Mesin (Mnemonic Code)
Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat
diinterpretasikan langsung oleh mesin komputer. Bahasa ini merupakan bahasa
level terendah dan berupa kode numerik 0 dan 1. Sekumpulan instruksi dalam
bahasa
Keuntungan: Eksekusi cepat
Kerugian: Sangant sulit dipelajari manusia
6. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 6 dari 41 halaman
Bahasa Assembly
Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa
mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk
penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain.
Kelebihan: Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil
Kekurangan: Tetap sulit dipelajari, program sangat panjang.
Bahasa Tingkat Tinggi (High Level Language)
Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih tinggi daripada
bahasa assembly. Bahasa ini lebih dekat dengan bahasa manusia. Bahasa inilah
yang akan dibahas pada matakuliah ini. Bahasa ini juga memberikan banyak
sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data,
konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh: Pascal,
Basic, C++, dan Java.
Keuntungan:
Mudah dipelajari
Mendekati permasalahan yang akan dipecahkan
Kode program pendek
Kerugian: Eksekusi lambat
Bahasa generasi ini disebut juga bahasa generasi ke-3 (3rd Generation
Programming Language). Bahasa inilah yang akan kita pelajari dalam Dasar
Pemrograman
C/C++ adalah bahasa pemrograman tingkat menengah yang dirancang oleh Dennis M
Ritchie di Bell Laboratories pada tahun 1972. Pada tahun 1978 Dennis dan Brian W.
Kernighan mempublikasikan bahasa C melalui The C Programming Language.
7. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 7 dari 41 halaman
Kemudian C distandarisasi ANSI tahun 1989. Bahasa C adalah bahasa yang general,
tidak dikhususkan untuk suatu bidang/aplikasi tertentu.
Algoritma ke C
Algoritma tidak terkait dengan suatu bahasa pemrograman apapun sehingga ketika anda
belajar dikelas anda akan belajar algoritma untuk memprogram bukan bahasa
pemrogramannya, berikut adalah beberapa contoh perbuahan algoritma ke dalambahasa
C
Algoritma
=
Not
*
+
-
/
mod
Bahasa C
=
==
!
*
+
-
/
%
8. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 8 dari 41 halaman
Variable dan Kontrol Alur Eksekusi Program
Variabel
Variable merupakan lokasi penyimpanan dalam memori. Setiap variable memiliki
kemampuan menyimpan suatu informasi sesuai dengan tipe data yang dideklarasikan
untuk variable tersebut. Sintaks pendeklarasian varaibel secara umum adalah sebagai
berikut:
Tipe_data nama_variable;
Tipe_data meliputi semua tipe data yang dikenal dalam C, sedangkan nama_variabel
adalah identifier yang akan digunakan untuk menunjuk ke variable tersebut didalam
program.
Contoh :
int hitung;
kode diatas mendeklarasikan suatu varaibel bernama hitung dengan tipe data integer.
Beberapa kata dalam penamaan variable tidak diperkenankan. Hal ini dikarenakan
compiler telah mengenali kata tersebut sebagai bagian dari bahasa pemrograman
diantara kata kata tersebut adalah (reserved word)
Scope dari Variabel
Dalam C, secara garis besar scope dari variabel dapat dibedakan menjadi dua bagian,
yaitu variabel yang dideklarasikan didalam blok (dikenal juga sebagai property) dan
variabel.
9. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 9 dari 41 halaman
Tipe Data
Setiap variabel harus memiliki tipe data. Sebuah variabel tipe datanya menentukan nilai
dari variabel yang dapat memuat dan operasi-operasi yang dapat dilakukannya.
Contohnya sebuah tipe data integer (int) dapat memuat hanya nilai-nilai integer (baik
positif maupun negative).
Tipe Data Primitive
Type Length Range
unsigned char 8 bits 0 to 255
char 8 bits -128 to 127
short int 16 bits -32,768 to 32,767
unsigned int 32 bits 0 to 4,294,967,295
int 32 bits -2,147,483,648 to 2,147,483,647
unsigned long 32 bits 0 to 4,294,967,295
enum 16 bits -2,147,483,648 to 2,147,483,647
long 32 bits -2,147,483,648 to 2,147,483,647
float 32 bits 3.4 x 10-38 to 3.4 x 10+38
double 64 bits 1.7 x 10-308 to 1.7 x 10+308
long double 80 bits 3.4 x 10-4932 to 1.1 x 10+4932
near (pointer) 32 bits not applicable
far (pointer) 32 bits not applicable
Kata
Kunci
Keterangan Size/Format
(integers)
byte Byte-length integer 8-bit two's complement
short Short integer
16-bit two's
complement
int Integer
32-bit two's
complement
long Long integer
64-bit two's
complement
(real numbers)
float Single-precision floating point 32-bit IEEE 754
double Double-precision floating point 64-bit IEEE 754
(other types)
char A single character 16-bit Unicode
10. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 10 dari 41 halaman
character
boolean A boolean value (true or false) True or false
Contoh penggunaan Tipe data
Contoh Tipe Data
178 Int
8864L Long
37.266 Double
37.266D Double
87.363F Float
26.77e3 Double
“MIPA UNSOED” String
' c ' Char
True Boolean
False Boolean
Operator
Operator merupakan simbol yang biasa digunakan dalam menulis suatu penyataan
(statement) dalam bahasa pemrograman apapun. Operator akan melakukan suatu operasi
terhadap operand sesuai dengan fungsinya. Contoh operasi antara lain penjumlahan,
pengurangan, pembagian dan sebagainya.
3 + 8 * 4
3 8 4 adalah operand
+ * adalah Operator
1. Operator Penugasan
Operator ini adalah operator yang paling sederhana dan hanya dilambangkan dengan
karakter ’=’. Operator ini digunakan untuk menugaskan suatu nilai ke suatu variabel.
int hitung = 4;
11. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 11 dari 41 halaman
yang unik dari operator ini dalam C adalah kita dapat menggunakan operator ini secara
berantai dalam suatu ekspresi, contoh:
int a, b, c;
2. Operator Matematika
Operator ini digunakan dalam ekspresi matematika. Berikut ini daftar operator
matematika yang dikenal dalam C:
Operator Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus (sisa bagi)
3. Operator Penaikan dan Penurunan
Operator ini digunakan untuk menaikkan atau menurunkan suatu nilai integer (bilangan
bulat) sebanyak satu satuan, dan hanya digunakan pada variabel.
Operator Keterangan
++ Penambahan dengan nilai satu
-- Pengurangan dengan nilai satu
Sebagai contoh :
x = x + 1;
y = y -1;
dapat ditulis menjadi:
x++ ; atau ++x ;
y-- ; atau --y ;
12. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 12 dari 41 halaman
Kontrol Alur Eksekusi Program
Sebagai bahasa pemrograman, C memiliki cara untuk mengontrol alur eksekusi program
bergantung pada kondisi yang telah dietentukan. Secara garis besar, kontrol alur
eksekusi ini dapat dikelompokkan ke dalam tiga bagian besar, yaitu seleksi, iterasi /
perulangan, dan jump.
Seleksi
Terdapat dua kunci (keyword) yang dapat digunakan untuk melakukan seleksi dalam C,
yaitu if dan switch. Keduanya menentukan alur eksekusi program maman yang akan
dijalankan pada suatu percabangan.
1. If
Secara umum penggunaan if mengikuti ketentuan sebagai berikut:
If (kondisi)
Pernyataan1;
Else
Pernyataan2;
Kondisi harus berupa ekspresi yang menghasilkan nilai Boolean (true atau false),
sedangkan pernyataan1 dan pernyataan2 merupakan kode atau blok kode yang akan
dieksekusi sesuai dengan nilai yang dihasilkan oleh kondisi. Jika kondisi bernilai true
13. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 13 dari 41 halaman
maka pernyataan1 yang akan dieksekusi dan sebaliknya jika nilai kondisi adalah false
maka pernyataan2 lah yang akan dieksekusi.
Dalam penerapannya penggunaan else bersifat opsional, boleh menggunakannya atau
tidak sesuai dengan kebutuhan, seperti berikut:
If (kondisi)
Pernyataan;
Dengan demikian pernyataan hanya akan dieksekusi jika kondisi bernilai true.
If – else bertingkat (nested)
Pada prinsipnya penggunaan if – else adalah sama, namun untuk yang bertingkat dapat
mengkombinasikan penggunaannya menjadi bertingkat seperti berikut:
If (kondisi1)
Pernyataan1;
Else if (kondisi2)
Pernyataan2;
:
:
else if (kondisiN)
pernyataanN;
else
pernyataanLain;
14. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 14 dari 41 halaman
Untuk lebih jelasnya perhatikan contoh berikut
2. Switch
penggunaan switch sebenarnya hamper sama dengan if bertingkat, dimana kita bisa
menggunakan switch untuk percabangan yang berjumlah lebih darisatu. Karena itu
switch bisa dijadikan alternative lain dibandingkan menggunakan if bertingkat. Secara
umum bentuk penggunaannya sebagai berikut:
switch (ekspresi) {
case nilai1: pernyataan1;
break;
:
case nilaiN: pernyataanN;
break;
default : pernyataanDefault;
}
#include <stdio.h>
int main(){
int suhu;
printf("Program mengetahui jenis zatn");
printf("============================nn");
printf("Masukan suhu zat:");
scanf("%d",&suhu);
if (suhu<0){
printf("Padat Beku");
}
else if((0<=suhu)&&(suhu<=100)){
printf("Padat");
}
else{
printf("uap");
}
}
15. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 15 dari 41 halaman
Iterasi (pengulangan )
1. While
Statement while digunakan untuk mengeksekusi sebuah blok secara berulang selema
memenuhi kondisi tertentu. Sintaks penggunaannya adalah sebagai berikut:
while (ekspresi) {
....Statement….
}
#include <stdio.h>
//Program penghitung faktorial
int main(void)
{
//kamus
int i = 1;
int hasilfaktorial=1;
int faktorial;
//Algoritma
printf("Masukan nilai faktorialn");
scanf("%d",&faktorial);
while (i <= faktorial)
{
hasilfaktorial=hasilfaktorial*i;
i=i+1;
}
printf("hasilnya adalah %d",hasilfaktorial);
return 0;
}
16. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 16 dari 41 halaman
2. Do-While
Sama seperti halnya while pernyataan Do-While digunakan untuk mengeksekusi blok
secara berulang sampai tidak memenuhi kondisi tertentu. Pada Do-While ekspresi tidak
diperiksa di awal eksekusi sehingga minimal blok statement do-while akan dieksekusi
sekali. Sintaks penggunaannya adalah sebagai berikut:
do{
…..Statement….
} while (ekspresi)
#include <stdio.h>
//Program pembalik bilangan
int main(void)
{
//Kamus
int value, r_digit;
//Algoritma
printf("Masukan Bilangan.n");
scanf("%d", &value);
do
{
r_digit = value % 10;
printf("%d", r_digit);
value = value / 10;
} while (value != 0);
printf("n");
return 0;
}
17. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 17 dari 41 halaman
3. For
Statement For digunakan untuk mengeksekusi sebuah blok secara berulang dalam range
tertentu.
Karakteristik:
1. Digunakan untuk perulangan yang batasnya sudah diketahui dengan jelas,
misalnya dari 1 sampai 10.
2. Memerlukan 2 buah variabel awal dan akhir perulangan.
3. Nilai variabel penghitung akan secara otomatis bertambah atau berkurang tiap
kali sebuah pengulangan dilaksanakan
For(Inisialisasi;terminasi;increment){
…..Statement….
}
#include<stdio.h>
void main()
{
int i,j,k,s,n;
printf("Masukan banyaknya baris");
scanf("%d",&n);
for(i=1,s=n;i<=n;i++,s--)
{
printf(“%d”,i);
}
}
18. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 18 dari 41 halaman
Inisialisasi dalam for merupakan ekspresi yang dieksekusi pada awal eksekusi for.
Terminasi digunakan untuk menentukan kapan pengulangan akan dihentikan. Increment
merupakan ekspresi yang akan dieksekusi setiap selesai melakukan satu looping
(pengulangan).
Kesimpulan Bab III
1. Penggunaan Variable dalam C dideklarasikan dengan Tipe_data nama_variable;
2. Operator merupakan karakter yang digunakan untuk melakukan fungsi tertentu terhadap operasi
dari variable
3. Alur Kontrol program secara garis besar terbagi menjadi 2:
a. Pilihan
b. Perulangan/iterasi
19. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 19 dari 41 halaman
M E T H O D
Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer
didalam suatu file C. Method dapat dibagi menjadi fungsi dan prosedur. Fungsi adalah
bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan
suatu masalah dengan mengembalikan hasil. Prosedur adalah bagian atau sub dari
program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa
mengembalikan suatu nilai hasil. Secara umum method dalam C adalah sebuah fungsi.
Fungsi/function adalah bagian dari program yang memiliki nama tertentu, digunakan
untuk mengerjakan suatu pekerjaan tertentu, serta letaknya dipisahkan dari bagian
program yang menggunakan fungsi tersebut.
Keuntungan Menggunakan fungsi
1. program besar dapat dipisah menjadi program-program kecil.
2. Dapat dikerjakan oleh beberapa orang sehingga koordinasi mudah.
3. Kemudahan dalam mencari kesalahan-kesalahan karena alur logika jelas dan
kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
4. Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa
mengganggu program keseluruhan.
5. Mempermudah dokumentasi.
6. Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain
Sifat Fungsi yang baik
1. Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil oleh pengguna
semakin tinggi nilai fan-in
2. Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah
nilai fan-out
20. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 20 dari 41 halaman
3. Self-contained tinggi: artinya kemampuan untuk memenuhi kebutuhannnya
sendiri.
Kategori Fungsi
1. Standard Library Function
Yaitu fungsi-fungsi yang telah disediakan oleh Compiler dalam file-file header
atau librarynya.
Misalnya: clrscr(), printf(), getch(),writeln(),readln()
2. Programmer-Defined Function
Adalah function yang dibuat oleh programmer sendiri. Function ini memiliki
nama tertentu yang unik dalam program, letaknya terpisah dari program utama,
dan bisa dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang
kemudian juga di-includekan untuk penggunaanya.
Jenis Fungsi
1. Fungsi yang Non-Void
Fungsi non-void disebut juga fungsi (terutama di bahasa pemrograman seperti
Pascal dan Basic)
Disebut non-void karena mengembalikan nilai kembalian yang berasal dari
keluaran
hasil proses function tersebut
Ciri: ada keyword return
Ciri: ada tipe data yang mengawali deklarasi fungsi
2. Function yang Void
Fungsi yang void sering disebut juga prosedur
21. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 21 dari 41 halaman
Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran
yang didapat dari hasil proses fungsi tersebut.
Ciri: tidak adanya keyword return.
Ciri: tidak adanya tipe data di dalam deklarasi fungsi.
Deklarasi sebuah method
Method terdiri atas dua bagian yakni :
1. Method declaration
2. Method Body
22. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 22 dari 41 halaman
Mendeklarasikan Fungsi
dalam Algoritma
berikut adalah contoh penulisan fungsi dalam Algoritma
Function Tambah(x:integer;y:integer):integer
Kamus
i:integer
Begin
i:=x+y;
return i;
End;
Dalam bahasa C
Method Name
Setiap fungsi dalam pemrograman mempunyai identitas nama fungsi. Penamaan fungsi/
method mengikuti aturan :
a. tidak menggunakan spasi atau menggunakan spasi dengan diganti “_” (missal
method Hitung_integral)
b. Tidak menggunakan kata-kata yang telah dipakai oleh compiler (reserved Word,
lihat bab sebelumnya)
Int Perkalian (int y,int z)
Return
Type
Method
Name
Argument / Parameter
{
int x =0;
x=y*z;
return x
}
int Perkalian (int y;int z) Declaration
Method Bo
23. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 23 dari 41 halaman
Parameter
Bagian parameter diisi dengan parameter-parameter fungsi yang diperlukan. Parameter
apabila lebih dari satu akan dipisahkan dengan tanda koma (“,”) parameter-parameter
pada fungsi-fungsi di C akan di by pass value yang artinya pada tiap fungsi tidak akan
dapat merubah isi dari variable parameter yang dimasukan.
Setelah ada sedikit gambaran mengenai fungsi timbul pertanyaan dimana letak fungsi
dan bagaimana menggunakannya?
Berikut adalah contoh didalam bahasa C
#include <stdio.h>
//Kamus
int Alas,Tinggi;
float hitungSegitiga(int A, int T){
float hasil;
hasil=0.5*A*T;
return hasil;}
//Algoritma
void main(){
Alas=5;
Tinggi=6;
Luas=hitungSegitiga(Alas,Tinggi);
24. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 24 dari 41 halaman
Return type
Setiap fungsi menghasilkan suatu nilai dengan tipe data tertentu. Apabila terdapat suatu
fungsi yang tidak menghasilkan suatu nilai apapun maka bagian return type ini diganti
dengan void . berikut adalah contoh fungsi yang tidak menghasilkan apapun:
Contoh dalam algoritma
Procedure CetakTambah1(x:integer);
Begin
x <-- x+1
Writeln(x);
End;
Contoh dalam C
Latihan
Sebuah fungsi rumus matematika didefinisikan sebagai berikut:
F(x)=3*x1+x2
Dimana nilai x1 dan x2 adalah bilangan bulat, buatlah algoritma fungsi dari rumus
matematika tersebut dan gunakan dalam program utama
void CetakTambah1(int x){
x=x+1;
printf(“%d”,x);
}
25. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 25 dari 41 halaman
Parameter
1. Parameter formal : parameter yang ditulis pada deklarasi fungsi.
2. Parameter aktual : parameter yang diinputkan dalam program pemanggil fungsi
tersebut. Dapat berupa variabel atau langsung berupa nilai tertentu sesuai dengan
tipe data yang dideklarasikan untuk masing-masing parameter fungsi.
Dalam prosedur parameter dapat memiliki dua sifat:
1. Parameter Input
2. Parameter Input/output
Parameter input
digunakan untuk memasukan inputan pada suatu prosedur atau fungsi.Tipe data dari
parameter input ini harus sama dengan tipe data pada parameter formal di fungsi.
Parameter input/output
pada prinsipnya sama dengan parameter input. Perbedaannya parameter ini dapat
berubah nilai atau isinya sehingga akan merubah nilai parameter tersebut pada alamat
memorinya.
26. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 26 dari 41 halaman
Array
Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data
sama) yang jumlahnya tetap dan diberi suatu nama tertentu.
Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki
alamat yang berdekatan. Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-
dimensi. Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-
beda.
Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu
Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks
tertentu secara langsung.
Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset
nilai atau menampilkan nilai pada indeks yang dimaksud.
Deklarasi Array
dalam Algoritma
X : array [ 1.. N ] of Type
dalam bahasa C
tipedata <spasi> nama_var_array[ukuran];
tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var_array : menyatakan nama variabel yang dipakai.
ukuran : menunjukkan jumlah maksimal elemen larik.
27. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 27 dari 41 halaman
Tanda [] disebut juga “elemen yang ke- „. Misalnya kondisi[0] berarti elemen yang ke
nol.
Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa saja
hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada kondisi
yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap sebanyak 10
tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan kosong.
Untuk meng-instantiate (atau membuat) sebuah array,
1. Tulislah new keyword,
2. Diikuti oleh tanda kurung [] yang berisi angka dari elemen yang Anda
inginkan pada array tersebut.
3. Contoh,
int ages[];
Untuk mengakses sebuah elemen dalam array , atau mengakses sebagian elemen dari
array , Anda menggunakan penomoran yang disebut sebagai index atau subscript.
1. Diberikan kepada tiap anggota array, agar program dapat mengakses
anggota dari array.
2. Dimulai dari nol dan kemudian akan terus bertambah sampai list value dari
array tersebut berakhir.
28. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 28 dari 41 halaman
CATATAN: elemen di dalam array anda dimulai dari 0 sampai (sizeOfArray-1)
Contoh, pada array yang telah kita deklarasikan tadi, kita mempunyai
//memberikan nilai 10 kepada elemen pertama array
int ages[0] = 10;
//mencetak elemen array ke 99
printf(“%d” ,ages[99]);
//Program Aray
void main() {
int ages[100] ;
//isi data ke array
for( int i=0; i<100; i++ ){
ages[i]=i;
//cetak isi data
for( int i=0; i<100; i++ ){
printf(“%d”, ages[i] );
}
}
29. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 29 dari 41 halaman
Tipe Bentukan
Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung
dalam satu nama yang sama.
Berbeda dengan array yang berisi kumpulan variabel yang bertipe data sama, struct
dapat memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa
menyimpan variabel yang bertipe data array atau struct
Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct
Struct bisa diumpamakan sebagai sebuah class, misalnya: Mahasiswa
Struct Mahasiswa memiliki property atau atribut atau variabel yang melekat padanya:
- NIM yaitu karakter sejumlah 8
- Nama yaitu karakter
- IPK yaitu bilangan pecahan
Struct hampir mirip dengan class pada Java, namun struct tidak memiliki method atau
function.
Deklarasi Struct
dalam Algoritma
Type
[<nama tipe komposisi >] = Record
<Anggota-1 > : <type-1>;
<Anggota-2> : <type-2>;
………………………
End;
dalam bahasa C
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk;
};
30. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 30 dari 41 halaman
cara menggunakannya
Mahasiswa mhs,mhs2;
Penggunaan struct dilakukan dengan membuat suatu variabel yang bertipe struct
tersebut
Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama
variabel struct diikuti dengan operator titik (.)
Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses
elemenelemennya seperti contoh berikut:
#include <stdio.h>
//Pendeklarasian tipe data baru struct Mahasiswa
typedef struct Mahasiswa{
char NIM[9];
char nama[30];
Float ipk;
};
void main(){
//Buat variabel mhs bertipe data Mahasiswa
Mahasiswa mhs;
clrscr();
printf("NIM = ");scanf("%s",mhs.NIM);
printf("Nama = ");scanf("%s",mhs.nama);
printf("IPK = ");scanf("%f",&mhs.ipk);
printf("Data Anda : n");
printf("NIM : %sn",mhs.NIM);
printf("Nama : %sn",mhs.nama);
printf("IPK : %fn",mhs.ipk);
}
31. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 31 dari 41 halaman
Nilai Ekstrim & Sorting
Sering kali kita menemukan permasalahan dimana kita harus mengambil nilai
terbesar atau terkecil dari suatu urutan atau kita harus mengurutkan bilangan dari
terkecil ke yang terbesar atau sebaliknya. Bab ini akan mempelajari mengenai
penggunaan beberapa algoritma sorting dan pencarian nilai maksimum pada suatu tabel /
array. Pada buku ini hanya di berikan beberapa algoritma saja, algoritma yang lain
diharapkan anda dapat menemukannya melalui pustaka yang ada.
Pencarian Nilai Ekstrim
Nilai Maximum model 1
int tabelAsli[6];
int MAX,N,i;
main(){
MAX=-9999;
tabelAsli[0]=2;
tabelAsli[1]=5;
tabelAsli[2]=5;
tabelAsli[3]=100;
tabelAsli[4]=3;
tabelAsli[5]=2;
N=6;
for (i=0;i<N;i++){
if (tabelAsli[i]>MAX){
MAX=tabelAsli[i];
}
}
printf("%d",MAX);
}
32. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 32 dari 41 halaman
Nilai Maksimum model 2
int MAX,i,N;
main(){
MAX=tabelAsli[0];
tabelAsli[0]=2;
tabelAsli[1]=5;
tabelAsli[2]=5;
tabelAsli[3]=100;
tabelAsli[4]=3;
tabelAsli[5]=10001;
N=6;
for (i=1;i<N;i++){
if (tabelAsli[i]>MAX){
MAX=tabelAsli[i];
}
}
printf("%d",MAX);
}
Latihan
Coba anda bandingkan 2 algoritma diatas lalu berikan komentar
Buat algoritma pencari nilai minimum dengan memodifikasi algoritma diatas
33. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 33 dari 41 halaman
Sorting
Pada bagian ini akan dipelajari mengenai beberapa algorita untuk melakukan pengurutan
/ sorting, ada banyak sekal algoritma untuk melakukan pengurutan, kita akan
mempelajari beberapa diantaranya
Count Sort
Ide dari metode/algoritma ini adalah menghitung banyaknya nilai yang dijumpai pada
suatu tabel kemudian dimasukan ke dalam tabel count dimana pada tabel count tersebut
bagian indexnya menggambarkan nilai dari tabel yang akan diurutkan dan begian
valuenya menggambarkan jumlah value yang ada.
Untuk lebih jelasnya perhatikan listing program C berikut
34. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 34 dari 41 halaman
int tabelAsli[6];
int tabelCount[6];
int i,k,l;
void main(){
i=0;
k=0;
tabelAsli[0]=2;
tabelAsli[1]=5;
tabelAsli[2]=5;
tabelAsli[3]=4;
tabelAsli[4]=3;
tabelAsli[5]=2;
//menginisialisasi isi tabel count dengan nilai 0
for (i=0;i<6;i++){
tabelCount[i]=0;
}
//dihitung ke tabel count
for (i=0;i<6;i++){
tabelCount[tabelAsli[i]]=tabelCount[tabelAsli[i]]+1;
}
// mengisikan kembali ke tabel count
for (i=0;i<6;i++){
if (tabelCount[i] !=0){
for (l=0;l<tabelCount[i];l++){
tabelAsli[k]=i;
k=k+1;
}
}
}
}
35. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 35 dari 41 halaman
Buble Sort
Penggunaan algoritma Count Sort akan memboroskan memory karena kita harus
membuat tabel count yang berisi jumlah dari tiap value yang ada pada tabel aslinya,
metode cont sort juga tidak efektif karena proses yang dilakukan lebih lama (2 kali
proses penyalinan isi array). Buble Sort dapat mengatasi masalah ini. Idenya adalah
mengambangkan nilai terkecil ke variabel temporary untuk lebih jelasnya perhatikan
source C berikut
int tabel[8];
int i,k,pass,temp,N;
void main(){
//i=0;
k=0;
pass=0;
N=8;
tabel[0]=7;
tabel[1]=5;
tabel[2]=5;
tabel[3]=4;
tabel[4]=3;
tabel[5]=2;
tabel[6]=9;
tabel[7]=1;
for (pass=0; pass<N;pass++){
for (k=N-1;k>(pass);k--){
if (tabel[k]<tabel[k-1]){
temp=tabel[k];
tabel[k]=tabel[k-1];
printf ("tabelk[%d] temp=%dn",k,tabel[k-
1]);
tabel[k-1]=temp;
printf ("tabel[%d] temp=%dn",k-1,temp);
}
}
}
36. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 36 dari 41 halaman
Insertion Sort
Ide dari algoritma ini adalah mencari tempat yang tepat untuk setiap eleman tabel,
dengan cara sequential search, kemudian setiap kali menyisipkan sebuah elemen tabel
yang diproses ke tempatnya yang seharusnya. Proses dilakukan sebanyak N
1. tabel[0] dianggap sudah pada tempatnya
2. tabel[1] dicarikan tempat yang tepat pada index tabel 1..0
3. tabel[2] dicarikan tempat yang tepat pada index tabel 2..0
37. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 37 dari 41 halaman
#include <stdio.h>
int tabel[8];
int i,k,pass,temp,N;
void main(){
i=0;
pass=0;
N=8;
tabel[0]=7;
tabel[1]=5;
tabel[2]=5;
tabel[3]=4;
tabel[4]=3;
tabel[5]=2;
tabel[6]=100;
tabel[7]=1;
for (pass=1; pass<(N);pass++){
temp=tabel[pass];
i=pass-1;
while ((temp<tabel[i])&&(i>0)){
tabel[i+1]=tabel[i];
i=i-1;
}
if (temp>tabel[i]){
tabel[i+1]=temp;
}else if(temp<=tabel[i]){
tabel[i+1]=tabel[i];
tabel[i]=temp;
}
}
}
38. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 38 dari 41 halaman
Mengenal IDE
Dalam praktikum ini akan digunakan tools (kakas) MinGW Developer Studio.
MinGWDeveloper Studio adalah IDE (Integrated Development Environment/
Lingkungan pengembangan) yang digunakan sebagai editor. MinGW Developer Studio
melakukan kompilasi terhadap kode sumber bahasa C yang anda buat dengan GNU
GCC ( http://gcc.gnu.org/ ). GCC adalah GNU Compiler Collection, yang berisi front
end C, C++, Objective-C, Fortran, Java, dan Ada
Gambar 1. MinGW Developer Studio
39. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 39 dari 41 halaman
Untuk menjalankan MinGW Developer Studio klik pada icon yang terdapat di desktop
atau pada start MinGW Developer Studio
1 2 3 4
1. Tombol untuk membuat file C baru
2. Tombol untuk melakukan kompilasi program
3. Tombol untuk membangun aplikasi (build)
4. Tombol untuk menjalankan aplikasi
Membuat Project Baru
Dalam praktikum ini usahakan anda menggunakan 1 project saja. Berikut adalah
langkah langkah membuat project baru
1. Buka MinGW Developer Studio
2. klik file new akan muncul tampilan sebagai berikut
3. Pilih Win32 Console Application
4. Tuliskan nama project anda dengan NIM anda misal H1B006006 dan lokasi
penyimpanan project anda
40. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 40 dari 41 halaman
5. klik OK, maka akan muncul tampilan sebagai berikut
6. Untuk mengerjakan praktikum klik tombol nomor 1 (lihat gambar petunjuk
tombol) akan muncul tampilan sebagai berikut
7. Pilih C/C++ Source file, pada bagian file name isikan nama file yang akan dibuat
misal latihan1.c kemudian tekan OK
8. sekarang anda telah membuat file latihan1.c file tersebut bisa anda edit
41. “Pemrograman Komputer : C & Algoritma”, Bangun Wijayanto, ST.
Fakultas Sains & Teknik Unsoed 2008
halaman 41 dari 41 halaman
9. Pada FileView terlihat bahwa project H1B006006 memiliki satu file yakni
latihan1.c tuliskan kodenya pada bagian editor yang ada disebelah kanan
10.untuk melakukan kompilasi dan pembuatan serta pengujian program silahkan
gunakan tombol yang telah dijelaskan diatas.
Hasil Aplikasi
Hasil aplkasi yang telah terkompilasi bisa di copy atau di ambil pada folder
<folder penyimpnan project>Debug
misal
C:Documents and SettingsBangun wijayantoMy DocumentscobaDebug