MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1
Disusun oleh : Tim Asisten
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA YOGYAKARTA 2011 0
A. Pengantar bahasa C a. Struktur Program C Sebelum membuat program, maka struktur dari program tersebut harus diketahui terlebih dahulu. Tiap bahasa komputer memiliki struktur program yang berbeda. Dengan berpedoman pada struktur tersebut, maka pemrogram dapat memulai bagaimana menulis program dan memahami dari program yang ia tulis. Struktur program bahasa C pada prinsipnya adalah terdiri dari fungsi-fungsi. Fungsi pertama yang harus ada dalam bahasa C adalah fungsi main(). Adanya fungsi main(), mengindikasikan bahwa instruksi-instruksi yang ada di dalam badan fungsi main() inilah yang akan pertama kali dijalankan. Suatu fungsi diawali dengan tanda kurung kurawal buka ( { ) dan diakhiri dengan tanda kurung kurawal tutup ( } ). Gambar berikut ini adalah struktur program dari bahasa C. main() { Statemen-statemen;
Fungsi utama
} fungsi_fungsi_lain() { Statemen-statemen;
Fungsi lain yang ditulis oleh pemrograman
}
Gambar 1. Struktur program bahasa C
1
b. Program Sederhana Setelah kita mengetahui struktur program dalam bahasa C, selanjutnya kita bisa membuat program yang sederhana seperti berikut ini :
Gambar 2. Program sederhana dengan bahasa C Ketarangan program : Baris 1 #Include <stdio.h> Perhatikan baris 8, pada baris 8 terdapat fungsi printf() dan scanf(). Jika kita menggunakan kedua fungsi ini maka nama file yang berisi prototype dari kedua fungsi ini harus disertakan dengan preprocessor directive #include. File yang berisi prototype tersebut disebut file judul atau header file (berekstensi .h). Untuk fungsi printf() dan scanf(), file judulnya (header file) adalah stdio.h. Baris 4 main() => ini adalah fungsi yang harus ada dalam program, fungsi ini menjadi titik awal acuan compiler C untuk melaksanakan perintah-perintah program. Baris 5 Tanda kurung kurawal buka ( { ) merupakan penanda awal dari fungsi main(). 2
Baris 6 – baris 15 Pada contoh kali ini kita menggunakan 8 buah statement (pernyataan). Setiap pernyataan dipisahkan oleh tanda titik koma (;).
Gambar 3. Setiap pernyataan dipisahkan oleh tanda titik koma Baris 16 Tanda kurung kurawal tutup ( } ) mengindikasikan akhir dari fungsi main(). Output : Jika program diatas kita running maka hasilnya kurang lebih sebagai berikut :
Gambar 4. Output program sederhana c. Memecah baris statement (pernyataan) Suatu pernyataan yang panjang dapat ditulis dalam beberapa baris penulisan. Cara memecah statemen ada dua veris. Versi pertama dapat diperlihatkan pada contoh berikut ini.
3
Versi 1
Gambar 5. Memecah baris statement versi pertama Jika program diatas kita simpan dan kita running, hasilnya adalah sebagai berikut :
Gambar 6. Hasil memecah statement versi pertama Versi 2
Gambar 7 Memecah baris statement versi kedua Jika program diatas kita simpan dan kita running, hasilnya adalah sebagai berikut :
Gambar 8 Hasil memecah statement versi kedua 4
d. Kata kunci Kaca kunci (keywords) merupakan kata-kata yang digunakan oleh kompiler dan tidak dapat digunakan oleh pemakai program sebagai nama pengenal. Bahasa C standar ANSI (American National Standards Institute) mendefinisikan 32 kaca kunci (keywords) sebagai berikut : auto
enum
short
volatile
break
extern
signed
while
case
float
sizeof
char
for
static
const
goto
struct
continue
if
switch
default
int
typedef
do
long
union
double
register
unsigned
else
return
void
Gambar 9. Daftar 32 kata kunci (keywords) bahasa C standard ANSI Bahasa C bersifat case sensitive artinya penulisan dengan huruf kecil dan huruf besar akan dianggap berbeda. Misalnya nama pengenal
angka1
dan
Angka1 adalah dua nama pengenal yang berbeda (perhatikan huruf pertama pada nama pengenal tersebut). e. Pengenal Nama pengenal (identifier name) adalah nama-nama yang ditentukan sendiri oleh pemrogram. Nama pengenal HARUS BERBEDA dengan kata-kata kunci (keywords).
Fungsi dari nama pengenal adalah untuk member nama variable,
konstanta, fungsi atau label. Berikut ini ketentuan-ketentuan dalam membuat nama pengenal dalam bahasa C
5
1. Karakter pertama harus diawali berupa huruf atau karakter garis bawah. 2. Karater khusus lainnya tidak boleh digunakan termasuk karakter blank (spasi). 3. Huruf besar dan huruf kecil berbeda meskipun memiliki nama yang sama 4. Tidak boleh sama dengan kata-kata kunci (keywords). Contoh : Nama pengenal yang salah : 4ngka
=> karakter pertama berupa angka.
@ngka => karakter pertama berupa karakter khusus yang dilarang. switch => sama dengan kata kunci rata rata => terdapat karakter blank (spasi) Nama pengenal yang benar: _4ngka => diawali dengan garis bawah _@ngka => diawali dengan garis bawah rata_rata =>dipisahkan dengan garis bawah f.
Tipe data Bahasa-bahasa pemrograman komputer, secara umum membedakan data ke dalam beberapa tipe dengan tujuan supaya operasi data menjadi efisien dan efektif. Misalnya, jika ada sebuah data bilangan yang merupakan umur seseorang dan disimpan di variabel umur, maka cukup disimpan dengan tipe integer. Sehingga data umur tersebut disimpan di memori selebar 16 bit atau 2 byte. Dibandingkan jika data umur tersebut disimpan dengan tipe pecahan ketepatan tunggal (float) yang di memori akan memakan tempat selebar 32 bit atau 4 byte. Bahasa C menyediakan lima tipe data dasar. Sebagian bahasa pemrograman tingkat tinggi pada umumnya memiliki tipe data ini. Tipe data dasar tersebut adalah : 1. Integer => Nilai numerik bilangan bulat dideklarasikan dengan tipe int
6
2. Floating point => nilai numeric pecahan ketepatan tunggal dideklarasikan dengan tipe float 3. Double-precision
=>
nilai
numeric
pecahan
ketepatan
ganda
yang
dideklarasikan dengan tipe double. 4. Karaker => dideklarasikan dengan tipe char. 5. Tipe data void (dijelaskan pada bab fungsi dan prosedur). Bahasa C tidak mempunyai tipe data Boolean (bool), sebagai alternatifnya bisa dibuat sebuah tipe data boolean denga typedef Typedef enum {false=0, true=1} Boolean; Untuk tipe data yang lain akan dijelaskan pada bab-bab selanjutnya. g. Operator Operator merupakan symbol yang digunakan untuk suatu operasi tertentu. Bahasa C menyediakan berbagai operator, misalnya operator pengerjaan, operator aritmatika, operator tipe, operator hubungan, operator logika, operator bitwise, ternary operator dan operator koma. Berikut ini adalah macam-maca operator dalam bahasa C Kategori
Operator
Kurung, indeks larik dan elemen struktur
() [] . ->
Arah proses Kiri - kanan
Jenjang 1
data Operator Unary
! ~ - ++ -- & * Kanan-kiri
2
(tipe) sizeof Operator Aritmatika perkalian, pembagian
*/%
Kiri – kanan
3
+-
Kiri – kanan
4
<< >>
Kiri – kanan
5
dan sisa pembagian Operator
aritmatika
pertambahan
dan
pengurangan Operator bitwise pergeseran bit
7
Operator Hubungan
< <= > >=
Kiri – kanan
6
Operator hubungan kesamaan dan ketidak
== !=
Kiri – kanan
7
Operator bitwise AND
&
Kiri – kanan
8
Operator bitwise XOR
^
Kiri – kanan
9
Operator bitwise OR
|
Kiri – kanan
10
Operator kondisi AND
&&
Kiri – kanan
11
Operator kondisi OR
||
Kiri – kanan
12
Operator ternary
?|
Kanan-kiri
13
Operator pengerjaan aritmatika
=+= -= *= /= Kanan-kiri
14
samaan
%= Operator pengerjaan bitwise
&= ^= |= <<= Kanan-kiri
15
..+ Operator koma
,
Kiri-kanan
16
Tabel 1. Macam-maca Operator dalam bahasa C berikut jenjangnya
h. Konstanta Konstantan merupakan suatu nilai yang tidak berubah selama proses dari program. Ada beberapa jenis konstantan yaitu : a. Konstantan Numerik integer b. Konstantan Numerik Pecahan c. Konstanta Karakter dan konstanta String d. Konstanta karakter Escape
8
Konstanta
karakter
escape banyak digunakan di statemen-statemen untuk
menampilkan hasil, misalnya untuk menggeser kursor ke baris berikutnya (ganti baris baru). Konstanta karakter escape diawali dengan karakter backslash (\). Konstanta Escape
Arti
\a
Bunyi bel (bell atau alert)
\b
Mundur satu spasi (backspace)
\f
Ganti halaman (form feed)
\n
Ganti baris baru (new line)
\r
Ke kolom pertama, baris yang sama (carriage return)
\t
Tabulasi horizontal
\v
Tabulasi vertical
\0
Nilai kosong (null)
\’
Karakter petik tunggal
\”
Karakter petik ganda
\\
Garis miring terbalik (backslash) Tabel 2. Macam-macam escape karakter
e. Variabel Variabel adalah suatu pengenal yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Misalnya ungkapan umur=19, umur adalah suatu variabel dan 19 adalah konstanta numerik integer. Semua variabel yang akan digunakan di program bahasa C harus terlebih dahulu dideklarasikan dengan format : Tipe variabel-variabel; Contoh : int umur, semester;
// umur dan semester bertipe integer 9
char nama[22]; //nama bertipe karakter float
luas;
//luas
bertipe
float
(pecahan
tunggal) B. Flowchar dan Contoh-contoh program sederhana dalam bahasa C a. Flowchart Ketarangan
Lambang
Mulai / selesai (terminator) Aliran data Input/output Proses Percabangan Pemberian nilai awal suatu variabel Memanggil prosedur atau fungsi Connector (di halaman yang sama) A Off page connector
B
Dokumen / multi dokumen Hardisk Sequence process P1
P2
10
ketepatan
Contoh : 1. Menghitung luas persegi Problem : Menghitung luas persegi Algoritma :
Masukkan nilai panjang persegi
Masukkan nilai lebar persegi
Hitung luas persegi, yaitu panjang * lebar
Tampilkan hasilnya Mulai
Masukkan P
Masukkan L
L uas=p * l
Tulis Luas
Selesai
11
2. Menentukan sebuah bilangan ganjil atau genap Problem : Menentukan sebuah bilangan apakah ganjil atau genap Algoritma: Masukkan sebuah bilangan (x) Jika x mod 2 == 0 maka x adalah genap Jika x mod 2 !=0 maka x adalah ganjil
Mulai
Masukkan x
X mod 2 ==0 Ya Tulis genap
Tulis ganjil
Selesai
12
Tidak
b. Translasi dalam bahasa C
1. Menghitung luas segitiga
Output
13
2. Menentukan sebuah bilangan ganjil atau genap
Output
Contoh kasus lain 1. Menukar 2 buah bilangan Awal : a=2 b=4 Akhir : a=4 b=2 14
2. Menghitung gaji bersih seorang karyawan Gaji bersih=gaji pokok + tunjangan - pajak 3. Mengonversi waktu ke dalam detik Jam=1 Menit=1 Detik=1 Total_detik=3661
Untuk mempelajari lebih lanjut silahkan baca buku berikut ini (semua tersedia di perpustakaan UIN Sunan KaliJaga:
Rinaldi Munir. Algoritma pemrograman dalam Bahasa Pascal dan C
Prof. Dr. Jogiyanto HM,MBA,Akt. Konsep Dasar Pemrograman Bahasa C
15