MODUL 0 PENDAHULUAN
0.1
Tujuan Praktikum Algoritma dan Pemrograman bertujuan untuk :
•
Memberikan
pengetahuan
kepada
praktikan
tahapan-tahapan
dalam
pembuatan algoritma. •
Praktikan bisa membuat algoritma untuk memecahkan suatu masalah secara logis.
•
Praktikan bisa membuat program dari suatu algoritma.
•
Praktikan bisa membiasakan diri untuk menyelesaikan program secara terstruktur dengan menggunakan algoritma.
•
Praktikan bisa menerapkan algoritma pada suatu kasus tertentu yang diberikan.
•
Praktikan dapat membuat algoritma yang diperlukan dalam membuat suatu program
•
Menunjang mata kuliah Algoritma dan Pemrograman
•
Memberikan wawasan kepada praktikan untuk menghadapi mata kuliah Struktur Data, Pemrograman Berbasis Objek, Tugas Besar Proyek I dan II, Kerja Praktek dan Tugas Akhir.
•
Membiasakan praktikan untuk menyelesaikan tugas/pekerjaan tepat waktu sesuai yang telah dijadwalkan.
0.2
Teori
0.2.1 Definisi Algoritma “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis”.
0-1
0-2
Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Suatu rancangan ilmiah biasanya memiliki kaidah-kaidah tertentu serta notasi-notasi yang bersifat baku, demikian juga algoritma. Notasi algoritma sering juga disebut pseudocode. Pseudocode pada dasarnya mengandung kata-kata kunci serta frasa bahasa inggris yang dimaksudkan untuk mengendalikan aliran kendali pada komputer. Struktur Dasar Algoritma Algoritma Nama_Algoritma {Penjelasan tentang algoritma, yang berisi uraian singkat mengenai apa yang dilakukan oleh algoritma} Deklarasi {Semua nama yang dipakai, meliputi nama tipe, nama tetapan, nama peubah, nama prosedur dan nama fungsi didefinisikan disini} Deskripsi {Semua langkah/aksi algoritma dituliskan disini}
0.2.2 Bahasa C Struktur dari program C dapat dilihat sebagai kumpulan dari sebuah atau lebih fungsi-fungsi. Fungsi pertama yang harus ada di program C adalah main(). Suatu fungsi di program C dibuka dengan kurung kurawal ({) dan ditutup dengan kurung kurawal tutup (}). Di antara kurung kurawal dapat dituliskan statemen program C. Berikut ini adalah struktur dari program C: /* Program nama program */ /* Semua pendefinisian tetapan dan tipe bentukan ditulis sebagai makro */ /* Purwarupa prosedur dan fungsi didefinisikan disini */ /* Deklarasi */ /* Semua nama yang penggunaannya global didefinisikan disini */ /* Deskripsi */ main()
0-3
{ /* disini juga mungkin ada deklarasi lokal */ /* semua instruksi program dituliskan disini */ } Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagian (subroutine). Fungsi-fungsi selain fungsi utama merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakan di file pustaka (library). Jika fungsi-fungsi ini diletakkan di file pustaka dan akan dipakai di suatu program, maka nama file judulnya (header file) harus dilihatkan di dalam program yang menggunakannya dengan prepocessor directive #include. Memecah Baris Statemen Suatu statemen di program C yang panjang dapat ditulis dalam beberapa baris penulisan. Akhir dari suatu baris yang menggunakan tanda ’\’ menunjukkan bahwa baris berikutnya adalah baris sambungannya. Contoh: Printf(”ini adalah bentuk string yang panjang yang ditulis \ dalam dua baris penulisan \n”); Contoh Algoritma 1: Algoritma tulis {Menuliskan nilai A di layar monitor} Deklarasi Nama : string A, B : integer Deskripsi A ← 25 B ← 100 A←B Write(‘Nilai A : ’, A)
//akan menghasilkan tulisan 100 di layar monitor}
Program Algoritma 1: /* Menuliskan nilai A di layar monitor */ #include <stdio.h>
0-4
main() { /* Deklarasi */ char Nama[20]; int A,B; A = 25; B = 100; A = b; /* Deskripsi */ printf ("masukan nama "); scanf("%s", Nama); printf("%s",Nama); printf(" mendapat nilai : %d\n", A); }
0.2.3 Elemen Dasar Yang Diperlukan Dalam C 1. Komentar Komentar program didefinisikan sebagai bagian dari sintaks program yang tidak ikut dibaca pada saat proses kompilasi. a. Menggunakan Tanda //, tanda ini digunakan untuk menuliskan komentar yang banyaknya hanya satu baris b. Menggunakan Tanda /*…*/, tanda ini digunakan untuk menuliskan komentar yang banyaknya satu baris atau lebih. 2. Identifier Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenalinya. Identifier sendiri dapat berupa nama variable, konstanta, dan fungsi. Identifier yang berperan sebagai variabel dan konstanta berfungsi untuk menampung sebuah nilai yang digunakan dalam program. Contoh program dari algoritma 1 di atas, maka a,b, dan nama merupakan identifier. Dalam menentukan
atau
membuat
identifier
dalam
program,
kita
harus
memperhatikan hal-hal berikut: a. Bahasa C bersifat case sensitive, artinya bahasa C membedakan variabel yang ditulis dengan huruf kapital dan huruf kecil.
0-5
b. Identifier tidak boleh berupa angka atau diawali dengan karakter yang berupa angka. Contoh: int 2x (salah), int 1000 (salah), int x2 (benar). c. Identifier tidak boleh mengandung spasi. Contoh: int bilangan bulat; (salah), int bilangan_bulat; (benar), int _bilanganbulat (benar). d. Identifier tidak boleh menggunakan karakter-karakter simbol (#, $, %, dll). e. Identifier tidak boleh menggunakan kata kunci (keyword) yang terdapat pada C. Contoh: int break; (salah). f. Nama identifier sebaiknya disesuaikan dengan kebutuhannya, artinya jangan sampai orang lain bingung hanya karena salah dalam penamaan identifier. g. Sebisa mungkin hindarilah penggunaan nama identifier yang sama dengan identifier yang digunakan oleh C. Identifier sendiri dibagi menjadi 2 (dua) yaitu: 1. Konstanta Konstanta adalah jenis identifier yang bersifat konstan atau tetap. Suatu konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string, contoh: 20; 3.14; 2.50005; ‘X’; ‘Bahasa C’. Contoh : #define PHI 3.14 #define nim "1043304" #define nama "Tasya Tembem" 2. Variabel •
Variabel adalah sebuah identifier yang mempunyai nilai dinamis. Artinya bahwa nilai variabel tersebut dapat diubah sesuai kebutuhan dalam program. Contoh penamaan variabel:
Benar : NIM, a, nama_mhs, A1043304, nilai Salah : %nilai_mhs, 80nama, rata-rata, ada spasi, penting!
Bentuk umum deklarasi variabel : tipe_data nama_Variabel;.
0-6
Variabel Global Program dalam bahasa C selalu terdapat fungsi utama dengan nama main(). Jika kita mendeklarasikan sebuah variabel di luar fungsi, maka dengan sendirinya komputer akan menganggap variabel tersebut sebagai variabel global. Variabel Lokal Variabel lokal adalah variabel yang hanya dikenali oleh suatu fungsi saja, artinya tidak dikenal oleh lingkungan luar di dalam program yang kita buat. Contoh variabel global dan lokal: #include <stdio.h> int A; //variabel global int main() { int B; // variabel lokal }
Contoh Algoritma 2: Algoritma KelilingPersegiPanjang {Menghitung keliling persegi dari panjang dan lebar yang bertipe bilangan bulat} Deklarasi P, L, Keliling : integer Deskripsi P ← 25 L ← 10 Keliling ← 2 * (P + L) Write(‘Keliling = ’, Keliling) Program Algoritma 2: //Menghitung keliling persegi panjang #include <stdio.h> main() { int P, L, Keliling;
0-7
P = 25; L = 10; Keliling = 2 * (P + L); printf("Keliling : %d\n", Keliling); } Contoh Algoritma 3: Algoritma NilaiAkhir {Masukan berturut-turut adalah nama mahasiswa, nilai tugas, UTS, dan UAS. Algoritma akan menghitung nilai akhir yang ditentukan dengan formula nilai akhir = 20% tugas + 30% UTS + 50% UAS serta menampilkan nama serta nilai akhir.} Deklarasi Nama : string Tugas, UTS, UAS : integer Nilai_akhir : real Deskripsi Read(Nama, Tugas, UTS, UAS) Nilai_akhir ← 0.2 * Tugas + 0.3 * UTS + 0.5 * UAS Write(‘Nilai akhir dari ’, Nama, ‘adalah ‘, Nilai_akhir) Program Algoritma 3: // Menghitung NilaiAkhir #include <stdio.h> main() { // Deklarasi char Nama[20]; int Tugas, UTS, UAS; float Nilai_akhir; /* Deskripsi: */ printf("Nama : ");scanf("%s",Nama); printf("Tugas : ");scanf("%d",&Tugas); printf("UTS : ");scanf("%d",&UTS); printf("UAS : ");scanf("%d",&UAS); Nilai_akhir = 0.2 * Tugas + 0.3 * UTS + 0.5 * UAS; printf("\nNama : %s\n",Nama); printf("Nilai akhirnya adalah %f",Nilai_akhir); }
0-8
Contoh Algoritma 4: Algoritma Jarak {Menghitung jarak (berupa panjang garis) antara 2 titik. Formula yang akan digunakan, adalah jarak ← SQR((x1 – x2)2 + (y1 – y2)2) dengan meminjam fungsi SQR dari C++ yang berupa fungsi untuk menghitung akar- pangkat-2} Deklarasi Type Titik <X , Y : integer> Var Titik1, Titik2 : Titik Jarak : real Deskripsi Write(’Masukan koordinat titik pertama ’) read(Titik1.X , Titik1.Y) Write(’Masukan koordinat titik kedua ’) read(Titik2.X , Titik2.Y) Jarak ← (Titik1.X – Titik2.X)2 + (Titik1.Y – Titik2.Y)2 Jarak ← SQRT(Jarak) Write(‘Jarak antara titik 1 dan titik 2 adalah : ’, Jarak) Program Algoritma 4: // Menghitung jarak (berupa panjang garis) antara 2 titik #include <stdio.h> #include <math.h> main() { // Deklarasi typedef struct { int X; int Y ; } Titik; Titik Titik1, Titik2; float Jarak; /* Deskripsi: */ printf("Titik1 X : ");scanf("%d",&Titik1.X); printf("Titik2 X : ");scanf("%d",&Titik2.X); printf("Titik1 Y : ");scanf("%d",&Titik1.Y); printf("Titik2 Y : ");scanf("%d",&titik2.Y); Jarak = (Titik1.X - Titik2.X)^2 + (Titik1.Y - Titik2.Y)^2; Jarak = sqrt(Jarak);
0-9
printf(" Jarak antara titik 1 dan titik 2 adalah : %f",Jarak); }
0.3 Referensi Referensi-referensi yang dapat digunakan selain modul praktikum dan materi mata kuliah Algoritma dan Pemrograman diantaranya : 1. Bambangwirawan Paulus. 2004, Struktur Data dengan C, Andi, Yogyakarta.. 2. Hariyanto Bambang, 2000, Buku Teks Ilmu Komputer Struktur Data. CV Informatika Bandung. 3. Hartono Jogiyanto, 2000, Konsep Dasar Pemrograman Bahasa C, Andi Yogyakarta. 4. Howel Jeff, 2003, C Programming, Student Workbook, IT Courseware Training Material for IT Professional, Englewood. 5. Liem Inggriani, 2003, Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika – ITB, Analisis Kasus, http://www. Ilmukomputer.com. 6. M. Tenenbaum Aaron, Langsam Yedidyah and J. Augenstein Moshe, 1995. Data Structures Using C, Prentice Hall of India Private Limited. New Delhi. 7. Munir Rinaldi, 2003, Buku Teks Ilmu Komputer Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Edisi Kedua Revisi, Buku 1, Informatika Bandung. 8. Munir Rinaldi, Leoni Lidya, 2003, Buku Teks Ilmu Komputer Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Edisi Kedua, Nuku 2, Informatika Bandung. 9. Solichin Achmad, 2003, Pemrograman Bahasa C dengan Turbo C, Kuliah Berseri Ilmukomputer.com , http://www. Ilmukomputer.com. 10. Wirth Niklaus, 1997, Algoritma + Struktur Data = Program, Andi. Yogyakarta.