modul praktikum algoritma dan struktur data pertemuan 1 jurusan

advertisement
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
Download