47
MODUL PRAKTIKUM 1 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN REVISI II EDY BUDIMAN, M.T PROGRAM STUDI TEKNIK INFORMATIKA UNIT PELAKSANA FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI UNIVERSITAS MULAWARMAN 2015

MODUL PRAKTIKUM - FKTI Unmul

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

1 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN

REVISI II

EDY BUDIMAN, M.T

PROGRAM STUDI TEKNIK INFORMATIKA

UNIT PELAKSANA

FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI

UNIVERSITAS MULAWARMAN

2015

Page 2: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

2 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

KATA PENGANTAR

Puji syukur kepada Tuhan Yang Maha Esa, sehingga modul praktikum mata kuliah

Algoritma dan Pemrograman ini dapat disusun dengan baik. modul praktikum ini

disusun sedemikian rupa agar dapat digunakan dengan mudah oleh mahasiswa

teknik informatika sebagai panduan dalam memahami praktikum matakuliah

Algoritma dan Pemrograman, meliputi Profil lulusan dan kompetensi matakuliah,

Pengantar Bahasa C dan penulisan Program, tipe data dan variabel, Operasi Input

Output, Pemilihan (Decision : if & if … else Nested if & else if ) dan Pengulangan

(Looping : For while, do … while), Array dan dasar Fungsi. Translasi notasi

algoritma kebahasa pemrograman menggunakan bahasa C, editor source Borland C

dan Aplikasi Raptor sebagai interpreter flowchartnya.

Terima kasih yang sebesar-besarnya kami ucapkan pada berbagai pihak yang telah

membantu dan mendukung pembuatan Modul praktikum ini, tim asisten

laboratorium UP. FTIK Unmul, Tim creative INTEGER. Harapan kami semoga ini

dapat memberikan manfaat bagi para pembacanya.

Samarinda, September 2015

Penulis

Page 3: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

3 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

DAFTAR ISI

hal

Profil lulusan dan kompetensi matakuliah

Modul 1 Pengantar Algoritma & FlowChart

Modul 2 Pengantar Bahasa C dan penulisan Program

Modul 3 Tipe Data dan Variabel

Modul 4 Operasi Input Output

Modul 5 Decision : if & if … else

Nested if & else if

Modul 6 Looping : For

while, do … while

Modul 7 Array

Modul 8 Dasar Fungsi

Daftar Pustaka

Page 4: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

4 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

PROFIL LULUSAN DAN

KOMPETENSI MATAKULIAH

1. Deskripsi Singkat

1.1 Profil Lulusan dan Program Studi

Profil lulusan program studi Teknik Informatika berdasarkan hasil lokakarya

kurikulum yang diselenggarakan pada tanggal 23 Juni 2014. Profil mahasiswa S1 Teknik

Informatika diarahkan untuk menghasilkan lulusan sebagai berikut:

Profil Deskripsi Keahlian

System Analyst

Mampu menganalisis systems, memilih Alternatif

pemecahan masalah, dan Dapat menyelesaikannya

menggunakan Program aplikasi

1, 2 , 3

Competitive

Intelligence

Analyst

Mampu merekayasa suatu mesin Sehingga

mempunyai intelligence Tertentu, merupakan area

penelitian Aplikasi dan instruksi yang terkait

Dengan pemrograman computer Cerdas

1

Graphics &

Visualization

Specialist

Mampu untuk membuat program Aplikasi yang

terkait dengan Memanipulasi model-model

gambar, Graphics dan citra.

1

Development game

and animation

Mampu untuk membuat dan mengembangkan

program Aplikasi yang terkait dengan animasi dan

game

1

Computational

science specialist,

Mampu menganalisis, dan Memformulasikan

masalah dunia Nyata ke dalam model-model

Matematika, serta mampu

Mengimplementasikannya dalam Program

aplikasi komputer

1

Programmer Mampu membuat program Plikasi/perangkat

lunak sehingga Dapat menjalankan program 1 & 2

Manager project

Application

Mampu untuk merencanakan,menganalisis,

mendesain,mengimplementasi dan memelihara

Proses pengembangan system

2

Database

Administrator

Mampu membuat disain database dan dapat

mengimplementasikannya serta mampu

melakukan instalasi konfigurasi, apgrade,

adaptasi, monitoring dan maintenance, database

dalam suatu organisasi

2 & 3

Webmaster

Mampu mengembangkan Web, bertanggung

jawab merancang Web, membangun, memelihara

web, Dan memodifikasi web. Merupakan Pelaku

bisnis media online yang Menjual produk/jasa

2 & 3

Page 5: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

5 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Manager data

Sequrity

Mampu membuat disain database dan Dapat

mengimplementasikannya serta Mampu

melakukan instalasi Konfigurasi, apgrade,

adaptasi, Monitoring dan maintenance, Database

dalam suatu organisasi

2 & 3

Network Engineer

Mampu melakukan pengawasan semua kegiatan

yang berkaitan dengan instalasi jaringan (manager

data security) dan pelayanan peralatan baru dan

yang ada terkait dengan data, suara, dan video

3

Keterangan Keahlian :

1. System Cerdas (Intellegensia) dan Visualisasi

2. Rekayasa Perangkat Lunak :

3. System Komputasi Komputasi Berbasis Jaringan

1.2 Kompetensi Lulusan

Kompetensi lulusan dari Program Studi Sarjana Teknik Informatika adalah :

a. Lulusan memiliki integritas dan kedisiplinan yang tinggi, serta berkemauan keras,

jujur dan bertanggungjawab

b. Lulusan yang berorientasi pada dunia kerja dengan sumber daya manusia yang

memiliki keahlian di bidang Teknik Informatika.

c. Lulusan mampu menerapkan ilmu pengetahuan dan teknologi sesuai dengan

kebutuhan masyarakat.

d. Menghasilkan lulusan yang mempunyai jiwa wiraswasta yang mampu

menciptakan lapangan kerja serta mampu berkompetisi sebagai tenaga kerja pada

bidang industri

1.3 Capaian Pembelajaran (Learning Outcome)

Capaian pembelajaran matakuliah Algoritma dan Pemrograman yang tertuang

dalam kurikulum baru program studi Teknik Informatika tahun 2014 adalah :

Learning Outcome :

Lulusan memiliki kemampuan computational thinking yang tinggi, mampu

mengabstraksikan domain problem dan solusinya ke dalam representasi data dan algoritma

secara efektif dan efisien dalam berbagai paradigma, bahasa, dan platform (hardware and

software) pemrograman untuk membangun perangkat lunak khususnya program yang

berkaitan dengan pemecahan masalah-masalah matematika.

Page 6: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

6 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

1.4 Standard Kompetensi Matakuliah

a. Standar Kompetensi

Standard Kompetensi (learning Outcome) matakuliah adalah :

Lulusan memiliki kemampuan computational thinking yang tinggi, mampu

mengabstraksikan domain problem dan solusinya ke dalam representasi data dan

algoritma secara efektif dan efisien dalam berbagai paradigma, bahasa, dan

platform (hardware and software) pemrograman untuk membangun perangkat

lunak khususnya program yang berkaitan dengan pemecahan masalah-masalah

matematika

b. Kompetensi Dasar

Kompetensi dasar matakuliah ini adalah :

1) Mahasiswa akan dapat menjelaskan konsep dasar dan notasi algoritmik

dalam pemecahan masalah

2) Mahasiswa akan dapat menjelaskan struktur dasar algoritma dan

memecahkan masalah dengan beberapa paradigma pemrograman tanpa

tergantung pada bahasa pemrograman apapun

3) Mahasiswa akan dapat merepresentasikan data dan algoritma secara efektif

dan efisien kedalam bahasa pemrograman

4) Mahasiswa akan dapat menjelaskan berbagai jenis tipe data, variabel,

konstanta dan operator serta penggunaanya dalam bahasa pemrograman

5) Mahasiswa akan dapat menjelaskan struktur kontrol kondisional maupun

kontrol pengulangan dalam bahasa pemrograman

6) Mahasiswa akan dapat membuat macam array, function dan procedure

dalam bahasa pemrograman

7) Mahasiswa akan dapat membuat sub program dan program yang berkaitan

dengan pemecahan masalah-masalah matematika

8) Mahasiswa akan dapat membuat dan menyelesaikan berbagai macam kasus

menggunakan bahasa program

Page 7: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

7 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

LIFE

CYCLE

c. Bagan Analisis Kompetensi

Gambar 1. Struktur Hirarkis SK Matakuliah Algoritma & Pemrograman

Mahasiswa akan dapat

menjelaskan konsep dasar dan

notasi algoritmik dalam

pemecahan masalah

1

Mahasiswa akan dapat

merepresentasikan data dan

algoritma secara efektif dan efisien

kedalam bahasa pemrograman

3

Mahasiswa akan dapat menjelaskan

struktur kontrol kondisional

maupun kontrol pengulangan

dalam bahasa pemrograman

5

Mahasiswa akan dapat menjelaskan

struktur dasar algoritma dan

memecahkan masalah dengan

beberapa paradigma pemrograman

tanpa tergantung pada bahasa

pemrograman apapun

2

Mahasiswa akan dapat menjelaskan

berbagai jenis tipe data, variabel,

konstanta dan operator serta

penggunaanya dalam bahasa

pemrograman

4

Mahasiswa akan dapat

membuat macam array,

function dan procedure dalam

bahasa pemrograman

6

6

Lulusan memiliki kemampuan computational thinking yang tinggi, mampu mengabstraksikan domain

problem dan solusinya ke dalam representasi data dan algoritma secara efektif dan efisien dalam berbagai

paradigma, bahasa, dan platform (hardware and software) pemrograman untuk membangun perangkat

lunak khususnya program yang berkaitan dengan pemecahan masalah-masalah matematika

SK

Mahasiswa akan dapat

membuat dan menyelesaikan

berbagai macam kasus

menggunakan bahasa program

8

Mahasiswa akan dapat membuat

sub program dan program yang

berkaitan dengan pemecahan

masalah-masalah matematika.

7

5 4

7 8

Page 8: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

8 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 1

Pengantar Algoritma & FlowChart

1.1. TUJUAN PEMBELAJARAN

a. Mampu memahami suatu masalah dan mampu mencari solusi pemecahannya

dan mampu menuangkan langkah-langkah pemecahan masalah tersebut

dalam bentuk algoritma

b. Mengenal dan memahami pemakaian simbol-simbol pada flowchart

c. Mampu membuat flowchart untuk memecahkan masalah

d. Mampu menganalisa masalah dan menerjemahkannya ke dalam bentuk

flowchart

e. Mampu membaca flowchart untuk kemudiah menterjemahkan ke dalam

bentuk program komputer

1.2. DASAR TEORI

Beberapa langkah yang umumnya dilakukan dalam proses pembuatan

suatu program atau software adalah sebagai berikut:

a. Mendefinisikan masalah dan menganalisanya

Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah

antara lain apa masukan dari permasalahan, keluaran dari permasalahan, proses

dari masukan agar menjadi keluaran sebagai solusi permasalahan. Dari sini ketika

pemrogram berpikir tentang proses, maka pemrogram akan berpikir parameter-

parameter apa yang digunakan, kemudian menentukan metode atau algoritma apa

yang akan diterapkan untuk menyelesaikan masalah tersebut dan terakhir

menentukan bahasa program yang digunakan untuk pembuatan program.

b. Merealisasikan dengan langkah-langkah seperti yang diilustrasikan

pada gambar 1.1.

Page 9: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

9 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Gambar 1.1 Proses dalam Pembuatan Program

Algoritma

Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu tugas dalam

menyelesaikan suatu masalah atau problem. Lambang-lambang flowchart yang

digunakan dalam menggambarkan sebuah algoritma dalam program dapat dilihat pada

Tabel 1.1.

Contoh :

Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan

ganjil atau bilangan genap.

Algoritmanya :

1) Masukkan sebuah bilangan sembarang

2) Bagi bilangan tersebut dengan bilangan

3) Hitung sisa hasil bagi pada langkah 2.

4) Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi

bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil

Page 10: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

10 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Dari contoh algoritma menentukan apakah suatu bilangan adalah bilangan ganjil atau

bilangan genap, flowchart dari program diilustrasikan pada gambar 1.2.

Gambar 1.2 Flowchart untuk Menentukan Bilangan Genap atau Ganjil

Buat algoritma untuk menuliskan bilangan 1 sampai dengan n, dimana n

merupakan masukan.

Algoritmanya :

1. Masukkan sebuah bilangan sembarang

2. Inisialisasi sebuah variable i dengan 1

3. Tulis i, kemudian tambahkan i dengan 1

4. Lakukan pengecekan apakah i<=n, jika ya ulangi langkah 3, jika tidak selesai

1.3. TUGAS PENDAHULUAN

Untuk semua persoalan di bawah ini, desainlah algoritma dan flowchartnya :

1.4. PERCOBAAN

a. Menjumlahkan 2 buah bilangan dan mencetak hasilnya

b. Memberikan pilihan untuk menghitung luas segitiga dan luas lingkaran

(gunakan konstanta pi)

Page 11: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

11 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

c. Menentukan apakah umur yang dimasukkan termasuk telah tua atau masih

muda, dengan aturan jika umur lebih kecil dari 45 masih muda dan jika umur

lebih besar dari 45 sudah tua.

d. Mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah

lebih besar salah satunya, dan tampilkan hasilnya Menulis kata

“ALGORITMA” sebanyak 5 kali

e. Menghitung sigma (akumulasi) dari bilangan 1 sampai dengan n, dan

menampilkan hasilnya.

1.5. LAPORAN RESMI

Kumpulkan hasil percobaan di atas , tambahkan dalam laporan resmi flow chart

untuk menghitung nilai rata-rata dari n bilangan yang diinputkan, hitung jumlah

totalnya, hitung maksimal dan minimal bilangan.

Page 12: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

12 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 2

Pengantar Bahasa C dan Penulisan Program

2.1. TUJUAN PEMBELAJARAN

a. Mampu memahami struktur penulisan bahasa C

b. Mengerti perintah keluaran di C

c. Mengenal Lingkungan Borland C

d. Mengerti cara membuat, meng-compile, dan melakukan running sebuah

program C di Borland C

2.2. DASAR TEORI

Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin

Richards pada tahun 1967. Bahasa C pertama kali digunakan pada komputer

Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX.

Standar bahasa C yang asli adalah standar dari UNIX. Sistem operasi,

kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa

C. Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat

untuk komputer mikro. Untuk membuat versi-versi tersebut menjadi standar,

ANSI (American National Standards Institute) membentuk suatu komite (ANSI

committee X3J11) pada tahun 1983 yang kemudian menetapkan standar ANSI untuk

bahasa C. Standar ANSI ini didasarkan kepada standar UNIX yang diperluas.

Struktur Penulisan Program C

Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah

program minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada

dalam program C dan sudah ditentukan namanya adalah main(). Setiap fungsi

terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan

untuk melaksanakan tugas khusus. Bagian pernyataan fungsi (sering disebut tubuh

fungsi) diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda

Page 13: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

13 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

kurung kurawal tutup (}). Di antara kurung kurawal itu dapat dituliskan statemen-

statemen program C. Namun pada kenyataannya, suatu fungsi bisa saja tidak

mengandung pernyataan sama sekali.

Walaupun fungsi tidak memiliki pernyataan, kurung kurawal haruslah tetap ada.

Sebab kurung kurawal mengisyaratkan awal dan akhir definisi fungsi.

Berikut ini adalah struktur dari program C

Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena strukturnya

menggunakan fungsi-fungsi sebagai program-program bagiannya (subroutine).

Fungsi- fungsi yang ada selain fungsi utama (main()) merupakan program-

program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan

di file pustaka (library). Jika fungsi-fungsi diletakkan di file pustaka dan akan

dipakai di suatu program, maka nama file judulnya (header file) harus dilibatkan

dalam program yang menggunakannya dengan preprocessor directive berupa

#include.

Pengenalan Fungsi-Fungsi Dasar

a. Fungsi main()

Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi titik awal

dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan awal tubuh

fungsi dan sekaligus awal eksekusi program, sedangkan tanda } di akhir fungsi

merupakan akhir tubuh fungsi dan sekaligus adalah akhir eksekusi program. Jika

program terdiri atas lebih dari satu fungsi, fungsi main() biasa ditempatkan pada

posisi yang paling atas dalam pendefinisian fungsi. Hal ini hanya merupakan

Page 14: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

14 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

kebiasaan. Tujuannya untuk memudahkan pencarian terhadap program utama bagi

pemrogram. Jadi bukanlah merupakan suatu keharusan.

b. Fungsi printf().

Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan suatu

keluaran pada layar peraga. Untuk menampilkan tulisan

Selamat belajar bahasa C

misalnya, pernyataan yang diperlukan berupa:

printf(“Selamat belajar bahasa C”);

Pernyataan di atas berupa pemanggilan fungsi printf() dengan argumen atau

parameter berupa string. Dalam C suatu konstanta string ditulis dengan diawali dan

diakhiri tanda petik-ganda (“). Perlu juga diketahui pernyataan dalam C selalu

diakhiri dengan tanda titik koma (;). Tanda titik koma dipakai sebagai tanda

pemberhentian sebuah pernyataan dan bukanlah sebagai pemisah antara dua

pernyataan.

Tanda \ pada string yang dilewatkan sebagai argumen printf() mempunyai makna

yang khusus. Tanda ini bisa digunakan untuk menyatakan karakter khusus seperti

karakter baris-baru ataupun karakter backslash (miring kiri). Jadi karakter

seperti \n sebenarnya menyatakan sebuah karakter. Contoh karakter yang ditulis

dengan diawali tanda \ adalah:

\” menyatakan karakter petik-ganda

\\ menyatakan karakter backslash

\t menyatakan karakter tab

Dalam bentuk yang lebih umum, format printf()

printf(“string kontrol”, daftar argumen);

dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan

ditampilkan ataupun berupa penentu format yang akan mengatur penampilan dari

argumen yang terletak pada daftar argumen. Mengenai penentu format di antaranya

berupa:

%d untuk menampilkan bilangan bulat (integer)

Page 15: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

15 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

%f untuk menampilkan bilangan titik-mengambang (pecahan)

%c untuk menampilkan sebuah karakter

%s untuk menampilkan sebuah string

Contoh:

#include <stdio.h>

main( )

{

printf(“No : %d\n”, 10);

printf(“Nama : %s\n”, “Ali”);

printf(“Nilai : %f\n”,80.5);

printf(“Huruf : %c\n”,„A‟);

}

2.3. TUGAS PENDAHULUAN

Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

a. Mencetak nama, kelas dan nim masing-masing

b. Menghitung penjumlahan 1024 + 4096 dan mencetak hasilnya

c. Mengisi nilai 2 variabel int, menjumlahkan kedua isi variabel tersebut

dan mencetak hasilnya

d. Mengisi nilai sebuah variabel float, mengalikan isi variabel tersebut

dengan 50 dan mencetak hasilnya

e. Menampilkan nilai sebuah bilangan float dengan tanpa

menentukan format tampilannya (default)

f. Menerima masukan sebuah variabel dengan format int dan char

kemudian menampilkannya kembali

2.4. PERCOBAAN

Implementasikan semua desain yang telah dibuat dalam tugas

pendahuluan menggunakan bahasa pemrograman C

2.5. LAPORAN RESMI

1. Untuk setiap listing program dari percobaan-percobaan di atas, ambil capture

outputnya.

2. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

Page 16: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

16 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

3. Kerjakan soal-soal di bawah ini, dan sertakan jawaban Anda pada Laporan

Resmi

a. Berapakah nilai jawaban yang ditampilkan oleh program di bawah ini :

main()

{

int jawab, hasil;

jawab = 100;

hasil = jawab - 10;

printf("Jawabannya adalah %d\n", hasil + 6);

}

b. Apakah keluaran dari potongan program di bawah ini

main()

{

int value1, value2, sum;

value1 = 35;

value2 = 18;

sum = value1 + value2;

printf("Jumlah %d Ditambah %d hasilnya adalah

%d\n",value1,value2,sum);

}

c. Program di bawah ini tidak berhasil di-compile karena masih terdapat

beberapa kesalahan. Temukan paling sedikit 6 buah kesalahannya.

Selanjutnya tampilkan keluaran, setelah program ini berhasil dijalankan.

main ()

{

INT jumlah;

/* PERHITUNGAN HASIL

jumlah = 25 + 37 - 19;

/* TAMPILKAN HASIL

printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n);

printf("Jawabannya adalah %d\n" jumlah);

}

Page 17: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

17 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

d. Buatlah program yang menerima masukan dua buah bilangan.Tampilkan

keluaran berupa jumlah, rata-rata dan kuadrat dari kedua bilangan yang

dimasukkan.

e. Program di bawah ini seharusnya menampilkan keluaran satu baris sbb :

c * c = 25,000000

Namun, belum berhasil karena masih ada beberapa kesalahan.

Temukan minimal 3 kesalahan dalam program tersebut.

#include <Studio.h>

main ()

{

float a, b, c;

a = 3;

b = 4.0;

c = a * a + b

* b printf("c

* c = %d",c);

}

Page 18: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

18 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 3

Tipe Data dan Variabel

3.1. TUJUAN PEMBELAJARAN

a. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya)

b. Menjelaskan tentang Variabel

c. Menjelaskan tentang konstanta

d. Menjelaskan tentang berbagai jenis operator dan pemakaiannya

e. Menjelaskan tentang instruksi I/O

3.2. DASAR TEORI

Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan

sebagai tipe data dasar. Kelima tipe data dasar adalah:

Bilangan bulat (integer)

Bilangan real presisi-tunggal

Bilangan real presisi-ganda

Karakter

Tak-bertipe (void),

Kata-kunci yang berkaitan dengan tipe data dasar secara berurutan di

antaranya adalah int (short int, long int, signed int dan unsigned int), float, double,

dan char.

Variabel

Aturan penulisan pengenal untuk sebuah variabel, konstanta atau fungsi

yang didefinisikan oleh pemrogram adalah sebagai berikut :

Pengenal harus diawali dengan huruf (A..Z, a..z) atau karakter garis bawah ( _ ).

Selanjutnya dapat berupa huruf, digit (0..9) atau karakter garis bawah atau tanda

dollar ($).

Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter pertama

yang akan dianggap berarti.

Pengenal tidak boleh menggunakan nama yang tergolong sebagai kata-kata

cadangan (reserved words) seperti int, if, while dan sebagainya.

Page 19: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

19 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Konstanta

Konstanta menyatakan nilai yang tetap. Penulisan konstanta mempunyai aturan

tersendiri, sesuai dengan tipe masing-masing.

Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda

petik tunggal, contohnya : „A‟ dan „@‟.

Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tak

mengandung bagian pecahan, contohnya : –1 dan 32767.

Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa

titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e),

contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5

(maksudnya 2,1 x 105

).

Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan

tanda petik-ganda (“), contohnya :“Pemrograman Dasar C”.

Operator Aritmatika

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :

* perkalian

/ pembagian

% sisa pembagian

+ penjumlahan

- pengurangan

Page 20: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

20 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

3.3. TUGAS PENDAHULUAN

Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

a. Melakukan konversi valuta asing, misalnya mata uang dolar US ke mata uang

Rp, dimana satu dolar sama dengan Rp 11.090 ,-

Input : uang dalam US dolar

Proses : uang_rupiah = uang_dolar * 11090

Output : uang rupiah

b. Menentukan banyaknya uang pecahan yang dibutuhkan, urut dari pecahan

terbesar (100000,50000,20000,10000,5000,2000,1000) Input: jumlah uang

dalam rupiah (misal : 189000) Proses: ratusanribu = jml_uang dibagi 100000

sisa = jml_uang – (ratusanribu*100000)

limaplhribu = sisa dibagi 50000 sisa = sisa – (limaplhribu*50000) dst.

Output : 1 Lembar 100000

1 Lembar 50000

1 Lembar 20000

1 Lembar 10000

1 Lembar 5000

2 Lembar 2000

c. Diketahui variabel-variabel sebagai berikut:

int a = 12, b = 2, c = 3, d = 4;

Buat program untuk mencetak hasil :

a % b a - c a + b a / d

a / d * d + a % d a % d / d * a - c

d. Buatlah program untuk menghitung Diskriman dari sebuah persamaan

kuadrat dengan nilai a, b dan c yang diinputkan

e. Kerjakan soal no 4 dan 5 dengan mengubah tipe datanya menjadi float.

Page 21: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

21 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

3.4. LAPORAN RESMI

1. Untuk setiap listing program dari percobaan-percobaan di atas, ambil

capture outputnya.

2. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

3. Dari soal no 4 simpulkan hirarki dari operator-operator aritmatika yang ada

pada dasar teori.

4. Kerjakan soal-soal di bawah ini, sertakan dalam laporan resmi

a. Berapakah hasil akhir dari program berikut : #include <stdio.h>

main()

{

int a = 22;

a = a + 5;

a = a-2;

printf("a = %d\n", a);

}

b. Berapakah nilai x setelah pernyataan-pernyataan berikut dijalankan

apabila x bertipe int :

(1) x = (2 + 3) – 10 * 2;

(2) x = (2 + 3) – (10 * 2);

(3) x = 10 % 3 * 2 + 1;

c. Apa hasil eksekusi dari program berikut :

#include <stdio.h>

main()

{

char kar = „A‟;

kar = kar + 32;

printf("%c\n",kar);

}

Page 22: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

22 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 4

Operasi Input Output

4.1. TUJUAN PEMBELAJARAN

a. Memahami instruksi I/O

b. Memahami format-format yang sesuai untuk instruksi I/O

4.2. DASAR TEORI

Untuk keperluan menampilkan data/informasi, C menyediakan sejumlah

fungsi. Beberapa di antaranya adalah berupa printf() dan putchar() puts().

Fungsi putchar()

Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter di layar.

Penampilan karakter tidak diakhiri dengan perpindahan baris.

Contoh :

putchar(„A‟);

menghasilkan keluaran yang sama dengan

printf(“%c”,‟A‟);

Fungsi printf()

Bentuk umum pernyataan printf() :

printf(“string kontrol”,argumen1, argumen2,...);

String kontrol dapat berupa keterangan yang akan ditampilkan pada layar

beserta penentu format (seperti %d, %f,%c). Penentu format dipakai untuk

memberi tahu kompiler mengenai jenis data yang akan ditampilkan.

Argumen sesudah string kontrol (argumen1, argumen2,...)adalah data yang

akan ditampilkan ke layar. Argumen ini dapat berupa variabel, konstanta dan

bahkan ungkapan. Misal :

printf(“%d”,20); //argumen berupa konstanta

Page 23: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

23 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

printf(“%d”,a); //argumen berupa variabel

printf(“%d”,a+20); //argumen berupa ungkapan

Penentu format pada printf() :

%u untuk menampilkan data bilangan tak bertanda (unsigned) dalam bentuk desimal.

%d untuk menampilkan bilangan integer bertanda (signed) dalam bentuk desimal %i

%o untuk menampilkan bilangan bulat tak bertanda dalam bentuk oktal.

%x untuk menampilkan bilangan bulat tak bertanda dalam bentuk heksadesimal

%X (%x notasi yang dipakai : a, b, c, d, e dan f sedangkan %X notasi yang dipakai : A, B, C, D, E dan F )

%f untuk menampilkan bilangan real dalam notasi : dddd.dddddd

%e untuk menampilkan bilangan real dalam notasi eksponensial %E

%g untuk menampilkan bilangan real dalam bentuk notasi seperti %f,%E atau %F

%G bergantung pada kepresisian data (digit 0 yang tak berarti tak akan ditampilkan)

l merupakan awalan yang digunakan untuk %d,%u,%x,%X,%o untuk menyatakan long int (misal %ld). Jika diterapkan bersama %e,%E,%f,%F,%g atau %G akan menyatakan double

L Merupakan awalan yang digunakan untuk %f,%e,%E,%g dan %G untuk

menyatakan long double

h Merupakan awalan yang digunakan untuk %d,%i,%o,%u,%x, atau %X, untuk

menyatakan short int.

Fungsi getchar()

Fungsi getchar() digunakan khusus untuk menerima masukan berupa sebuah

karakter dari keyboard. Contoh :

c = getchar();

maka variabel c akan berisi karakter yang diketikkan oleh user atau EOF (end of

file) jika ditemui akhir dari file. Selain fungsi scanf() dan getchar() adalagi fungsi

lain untuk menginputkan untuk sebaris karakter yaitu fungsi puts().

Fungsi scanf()

Fungsi ini digunakan untuk memasukkan berbagai jenis data. Misalnya untuk

memasukkan data jari-jari lingkaran pada program menghitung luas lingkaran.

scanf(“%f”,&radius);

Page 24: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

24 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

A b a d 2 0

Bentuk scanf() sesungguhnya menyerupai fungsi printf().

Fungsi ini melibatkan penentu format yang pada dasarnya sama

digunakan pada printf(). Secara umum bentuk scanf() adalah sebagai

berikut :

scanf(“string kontrol”, daftar_argumen); Dengan string kontrol dapat

berupa :

Penentu format

Karakter spasi-putih (white-space)

Karakter bukan spasi-putih

scanf(“%f”, &radius);

berarti (bagi komputer) : “bacalah sebuah bilangan real (%f) dan

tempatkan ke alamat dari radius (&radius)”.

Untuk menentukan panjang medan yang disediakan bagi tampilan

data, maka sesudah tanda % dalam penentu format dapat disisipi dengan

bilangan bulat yang menyatakan panjang medan.

Untuk data yang berupa bilangan bulat, misal pada :

printf(“Abad %4d”, 20);

%4d menyatakan medan untuk menampilkan bilangan 20 adalah sepanjang 4

karakter.

printf(“Abad %4d”, 20);

Untuk data yang berupa bilangan real, spesifikasi medannya berupa

Contoh pada pernyataan :

printf(“Harga : Rp %8.2f\n”, 500.0);

%8.2f menyatakan panjang medan dari bilangan real yang akan ditampilkan

adalah 8

karakter dengan jumlah digit pecahan 2 buah.

Page 25: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

25 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Kalau hanya jumlah digit pecahan yang perlu ditentukan, panjang medan tak perlu

disertakan, misal :

printf(“%.2f\n”, 600.0);

printf(“%.2f\n”, 7500.25);

hasilnya :

600.00

7500.25

Untuk data yang berupa string, contoh :

printf(“%12s”, “Bahasa C”);

maka akan ditampilkan sebagai berikut

B a h a s a C

Tampak dalam berbagai jenis data di atas, penentu format yang mengandung panjang

medan, secara default akan menampilkan data dalam bentuk rata kanan terhadap

panjang medan yang diberikan. Untuk data string yang biasanya dikehendaki untuk

ditampilkan dalam bentuk rata kiri, maka sesudah tanda % pada penentu format %s

perlu disisipkan tanda – (minus), contoh :

printf(“%-12s”, “Bahasa C”);

menyatakan bahwa string akan ditampilkan dalam medan dengan panjang 12 karakter

dan diatur rata kiri. Sehingga tampilan di atas berubah menjadi :

B a h a s a C

Page 26: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

26 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

4.3. TUGAS PENDAHULUAN

Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

1. Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan

rumus :

F = C * 1.8 + 32

Input : suhu dalam Celcius

Output : suhu dalam Fahrenheit

2. Buatlah program untuk menghitung total pendapatan bulanan seorang

karyawan dengan ketentuan sebagai berikut:

Tunjangan istri/suami = 10% dari gaji pokok

Tunjangan anak = 5% dari gaji pokok untuk setiap anak

THR = Rp 5000 kali masa kerja (tahun)

(-) Pajak = 15% dari gaji pokok, tunjangan istri & anak

Bantuan transport = Rp 3000 kali masuk kerja (hari)

(-) Polis asuransi = Rp 20000

tanda (-) artinya mengurangi pendapatan.

Tentukan dahulu apa-apa saja yang akan menjadi input dan output (ke layar)

dari program. Tentukan juga variabel-variabel yang akan digunakan beserta

tipenya.

3. Harga tiket pertandingan sepak bola, Rp 50.000,-. Bila membeli dua tiket

(seharga Rp 100.000,-), maka ada bonus 1 tiket gratis. Buatlah program untuk

menghitung biaya yang harus dibayar untuk sejumlah tiket yang diperlukan

(diinputkan).

Contoh:

Seandainya akan dibeli 10 tiket, maka:

10 tiket 3 x 3 + 1 3 x (2 x Rp 50.000,-) + Rp 50.000,-

= Rp 350.000,-

Seandainya akan dibeli 23 tiket, maka:

23 tiket 7 x 3 + 2 7 x (2 x Rp 50.000,-) + 2 x Rp 50.000,-

= Rp 800.000,-

Seandainya akan dibeli jmTiket buah tiket, maka:

Hitung jmTiket / 3 .

Seandainya diperoleh hasil bagi jm3 dan sisa bagi sm3, maka biaya adalah: jm3 x (2 x Rp 50.000,-) + sm3 x Rp 50.000,-

Page 27: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

27 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

4.4. PERCOBAAN

Implementasikan semua desain yang telah dibuat dalam tugas pendahuluan

menggunakan bahasa pemrograman C

4.5. LAPORAN RESMI

1. Untuk setiap listing program dari percobaan-percobaan di atas, ambil capture

outputnya.

2. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

3. Kerjakan semua soal di bawah ini, kumpulkan jawaban bersama laporan resmi

a. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?

int cha

r

6_05 floating _1312

calloc

xxx

Xx

z

A$ ReInitialize alpha_beta_routine

b. Apa yang dihasilkan oleh program di bawah ini :

main()

{

char c, d;

c = 'd';

d = c;

printf("d = %c", d);

}

c. Buatlah program untuk mengevaluasi polynomial di bawah ini :

3x2 – 5x + 6 dengan nilai x merupakan masukan dari user.

Page 28: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

28 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 5

Decision : if & if … else

Nested if & else if

5.1. TUJUAN PEMBELAJARAN

a. Menjelaskan tentang operator kondisi (operator relasi dan logika)

b. Menjelaskan penggunaan pernyataan if

c. Menjelaskan penggunaan pernyataan if-else

d. Menjelaskan penggunaan pernyataan if dalam if

e. Menjelaskan penggunaan pernyataan else-if

5.2. DASAR TEORI

Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis

pernyataan, berupa

Pernyataan if

Pernyataan if-else, dan

Pernyataan switch

Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis

dalam pengambilan keputusan. Kondisi umum yang dipakai berupa keadaan

benar dan salah.

Pernyataan if

Pernyataan if mempunyai bentuk umum :

if (kondisi )

pernyataan;

Bentuk ini menyatakan :

jika kondisi yang diseleksi adalah benar (bernilai logika = 1), maka pernyataan

yang mengikutinya akan diproses.

Page 29: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

29 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika = 0),

maka pernyataan yang mengikutinya tidak akan diproses.

Mengenai kondisi harus ditulis diantara tanda kurung, sedangkan pernyataan dapat

berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong.

Diagram alir dapat dilihat seperti gambar 5.1

Gambar 5.1. Diagram alir if

Pernyataan if-else memiliki bentuk :

if (kondisi)

pernyataan-1;

else

pernyataan-2;

Diagram alir dapat dilihat seperti gambar 5.2.

Gambar 5.2. Diagram alir if-else

Arti dari pernyataan if-else :

Jika kondisi benar, maka pernyataan-1 dijalankan.

Sedangkan bila kondisi bernilai salah, maka pernyataaan-2 yang dijalankan.

Page 30: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

30 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa sebuah pernyataan

tunggal, pernyataan majemuk ataupun pernyataan kosong.

Contoh penggunaan pernyataan if-else adalah untuk menyeleksi nilai suatu bilangan

pembagi. Jika nilai bilangan pembagi adalah nol, maka hasil pembagian dengan nilai

nol akan mendapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka

proses pembagian tidak akan dilakukan.

5.3. TUGAS PENDAHULUAN

Desainlah algoritma dan flowchart untuk semua soal pada percobaan

5.4. PERCOBAAN

1. Buat program yang membaca nilai integer dan menuliskan “Nilai a positif” jika

a >= 0 dan “Nilai a negatif” jika a < 0.

2. Buat program untuk menginputkan sebuah bilangan, kemudian cetak ke layar

bilangan

tersebut dan beri komentar apakah bilangan tersebut ganjil atau genap.

Contoh input = 15

Output = Bilangan yang diinputkan adalah 15.

Bilangan tersebut adalah bilangan ganjil.

3. Buat program menggunaan pernyataan if adalah untuk menentukan besarnya

potongan

harga yang diterima oleh seorang pembeli, berdasarkan kriteria :

tidak ada potongan harga jika total pembelian kurang dari Rp. 100.000

(dalam hal ini potongan harga diinisialisasi dengan nol).

bila total pembelian lebih dari atau sama dengan Rp. 100.000, potongan

harga yang diterima dirubah menjadi sebesar 5% dari total pembelian.

Contoh input = 50.000

Output = Total pembelian adalah Rp. 50.000

4. Buat program yang menerima dua buah bilangan. Output dari program adalah

“Bilangan pertama adalah kelipatan persekutuan bilangan kedua” jika bilangan

pertama habis dibagi bilangan kedua atau “Bilangan pertama bukan kelipatan

persekutuan bilangan kedua” jika tidak habis dibagi.

Contoh input = 36 dan 3

Output = Bilangan pertama adalah kelipatan persekutuan bilangan

kedua

5. Gunakan pernyataan if…else untuk membuat program yang menerima 2 buah

bilangan bulat masukan. Tampilkan hasil dari pembagian bilangan pertama

dengan bilangan kedua, dengan ketelitian 3 desimal.

Input : bil1 dan bil2

Output : hasil bagi bil1 dengan bil2

Nilai tambah : program bisa mengecek pembagian dengan nol, yaitu jika

bilangan kedua adalah nol, maka tidak dilakukan proses pembagian, namun

ditampilkan pesan kesalahannya (division by zero).

Page 31: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

31 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

5.5. LAPORAN RESMI

a. Untuk setiap listing program dari percobaan-percobaan di atas, ambil capture

outputnya.

b. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

c. Buatlah program untuk menghitung nilai absolut dari suatu bilangan.

d. Untuk 3 flow chart di bawah ini lakukan tracing flow chart untuk menemukan

outputnya, jika input yang diberikan adalah :

(1) bil = 10

(2) bil = -10

(3) bil = 0

Page 32: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

32 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 6

Looping : For

while, do … while

6.1. TUJUAN PEMBELAJARAN

a. Menjelaskan proses pengulangan menggunakan pernyataan for

b. Menjelaskan tentang variasi pernyataan for

c. Menjelaskan tentang pernyataan for dengan menentukan jumlah langkah

d. Menjelaskan perbedaan for dan while serta do-while

e. Menjelaskan proses pengulangan menggunakan pernyataan while

f. Menjelaskan proses pengulangan menggunakan pernyataan do-while

6.2. DASAR TEORI

Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam

pemrograman. Pada semua bahasa pemrograman, pengulangan proses ditangani

dengan suatu mekanisme yang disebut loop. Dengan menggunakan loop, suatu

proses yang berulang misalnya menampilkan tulisan yang sama seratus kali pada

layar dapat diimpelementasikan dengan kode program yang pendek.

Pada pemrograman proses perulangan dapat dibagi menjadi 2 bagian utama

yaitu:

a. Perulangan yang sudah di ketahui jumlah perulangannya sebelum perulangan

tersebut di lakukan.

b. Perulangan yang belum di ketahui jumlah perulangannya sebelum perulangan

tersebut di lakukan. Dalam hal ini dapat dibagi menjadi dua bagian yaitu:

a) kondisi perulangan diperiksa diawal perulangan.

b) kondisi perulangan diperiksa diakhir perulangan.

Untuk kasus 1 seharusnya menggunakan perulangan dengan penyataan for

dan akan dipelajari pada praktikum ini.

Page 33: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

33 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Bentuk pernyataan for :

for (ungkapan1; ungkapan2; ungkapan3)

pernyataan;

Keterangan:

Ungkapan1 : digunakan untuk memberikan inisialisasi terhadap variabel

pengendali loop.

Ungkapan2 : dipakai sebagai kondisi untuk keluar dari loop.

Ungkapan3 : dipakai sebagai pengatur kenaikan nilai variabel pengendali loop.

Ketiga ungkapan dalam for tersebut harus dipisahkan dengan tanda titik koma (;).

Dalam hal ini pernyatan bisa berupa pernyataan tunggal maupun jamak. Jika

pernyataannya berbentuk jamak, maka pernyataan-pernyataan tersebut harus

diletakkan di antara kurung kurawal buka ({) dan kurung kurawal tutup (}), sehingga

formatnya menjadi :

for (ungkapan1; ungkapan2; ungkapan3)

{

pernyataan;

pernyataan;

.

.

}

Pada pernyataan while, pemeriksaan terhadap loop dilakukan di bagian awal

(sebelum tubuh loop). Pernyataan while akan diulangi terus selama kondisi bernilai

benar, atau diulangi selama kondisinya benar, jika kondisinya salah maka perulangan

(loop) dianggap selesai. Lebih jelasnya, bentuk pernyataan while adalah sebagai

berikut :

dengan pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun

pernyataan kosong. Dengan melihat gambar 10.1, tampak bahwa ada kemungkinan

pernyataan yang merupakan tubuh loop tidak dijalankan sama sekali, yaitu kalau

hasil pengujian kondisi while yang pertama kali ternyata bernilai salah.

while (kondisi)

pernyataan;

Page 34: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

34 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

6.3. TUGAS PENDAHULUAN

Buatlah desain flowchart untuk setiap soal dalam percobaan

6.4. PERCOBAAN

1. Gunakan loop for untuk membuat program sebagai berikut:

input : n

output : 1 3 4 5 … m ( m = bilangan ganjil ke n)

2. Hitunglah bilangan triangular dari masukan pengguna, yang dibaca dari

keyboard dengan menggunakan scanf(). Bilangan triangular adalah

penjumlahan dari bilangan masukan dengan seluruh bilangan sebelumnya.

Contoh Input : 7

Output : 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28

3. Gunakan loop for dengan kenaikan varibel negatif untuk menampilkan seluruh

karaker dari Z sampai dengan A dalam baris-baris yang terpisah.

4. Gunakan loop for untuk membuat program sebagai berikut:

input : n

output : 1 -2 3 -4 5 -6 7 -8 … n

5. Gunakan loop for untuk mendefinisikan apakah sebuah bilangan adalah

bilangan pima atau bukan

input : 27

output : Bilangan adalah bilangan prima

6. Dengan menggunakan looping dan switch case atau else if buatlah program

dalam C untuk menghitung Indeks Prestasi Semester seorang

mahasiswa, dimana yang diinputkan adalah nilai huruf dari 5 mata kuliah

yang diikutinya dan jumlah jam mata kuliah tsb.

Dimana konversi nilai huruf ke angka untuk menghitung IPS adalah sebagai

berikut:

A -> 4, B->3, C->2, D->1, E->0 dan rumus IPS = jumlah (nilai *

jam)/jumlah jam keseluruhan

Contoh : Input :

Nilai Mata Kuliah 1 : A jumlah jam : 2

Nilai Mata Kuliah 2 : C jumlah jam : 2

Nilai Mata Kuliah 3 : B jumlah jam : 3

Page 35: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

35 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Nilai Mata Kuliah 4 : A jumlah jam : 3

Nilai Mata Kuliah 5 : C jumlah jam : 3

Output:

Indeks Prestasi Semester : 3

Output di atas didapatkan dari :

(4*2 + 2*2 + 3*3 + 4*3 + 2*3)/(2+2+3+3+3) = 39/13

7. Gunakan loop while untuk membuat program yang dapat menampilkan semua

karakter yang diketikkan di keyboard sampai yang diketikkan pada keybord

huruf „X‟ (x besar).

8. Gunakan loop while untuk membuat program yang dapat mencari total angka

yang dimasukkan dengan tampilan sebagai berikut : Masukkan bilangan ke-1 : 5

Mau memasukkan data lagi [y/t] ? y

Masukkan bilangan ke-2 : 3

Mau memasukkan data lagi [y/t] ? t

Total bilangan = 8

6.5. LAPORAN RESMI

1. Untuk setiap listing program dari percobaan-percobaan di atas, ambil

capture outputnya.

2. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

3. Seorang mau menabung untuk pembiayaan ibadah hajinya. Biaya ibadah haji

saat ini senilai a juta. Jika tiap bulan dia mampu menabung sebesar b rupiah.

Dengan program anda yang menggunakan fungsi, bantulah orang ini untuk

menghitung berapa bulan dia butuhkan agar biaya hajinya bisa terpenuhi. Yang

menjadikan masalah ini tidak dapat diselesaikan dengan pembagian langsung

a/b adalah bahwa setiap tahun biaya haji naik rata-rata c% dari biaya awal (a).

Nilai a, b, c dimasukkan oleh user.

4. Jika nilai c adalah kenaikan dari tahun sebelumnya dan setiap 6 bulan sekali

dia mendapatkan bonus gaji sebesar d ribu yang selalu dia gunakan untuk

menambah tabungan hajinya berapa bulan dia butuhkan agar biaya hajinya

terpenuhi?

Page 36: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

36 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 7

Array

7.1. TUJUAN PEMBELAJARAN

a. Memahami konsep array dan penyimpanannya dalam memori

b. Mempelajari pengunaan variabel array berdimensi satu

c. Memahami penggunaan variabel array berdimensi dua

d. Dapat menerapkan penggunaan array berdimensi satu dan dua pada program

sederhana

7.2. DASAR TEORI

Dalam beberapa literatur, array sering disebut (diterjemahkan) sebagai larik.

Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang

menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan

elemen-elemen array. Letak urutan dari elemen-elemen array ditunjukkan oleh suatu

subscript atau indeks.

Mendeklarasikan Array Berdimensi Satu

Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :

tipe_data nama_var[ukuran];

dengan :

tipe_data : untuk menyatakan tipe dari elemen array, misalnya int, char, float.

nama_var : nama variabel array

ukuran : untuk menyatakan jumlah maksimal elemen array.

Contoh pendeklarasian array :

float nilai_tes[5];

menyatakan bahwa array nilai_tes mengandung 5 elemen bertipe float.

Mengakses Elemen Array Berdimensi Satu

Pada C, data array akan disimpan dalam memori yang berurutan. Elemen pertama

mempunyai indeks bernilai 0. Jika variabel nilai_tes dideklarasikan sebagai array

dengan 5 elemen, maka elemen pertama memiliki indeks sama dengan 0, dan elemen

terakhir memiliki indeks 4. Bentuk umum pengaksesan array adalah sbb :

Page 37: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

37 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

nama_var[indeks]

sehingga, untuk array nilai_tes, maka :

nilai_tes[0] elemen pertama dari nilai_tes

nilai_tes[4] elemen ke-5 dari nilai_tes

Contoh :

nilai_tes[0] = 70;

scanf(“%f”, &nilai_tes[2]);

Contoh pertama merupakan pemberian nilai 70 ke nilai_tes[0]. Sedangkan contoh 2

merupakan perintah untuk membaca data bilangan dari keyboard dan diberikan ke

nilai_tes[2]. Pada contoh 2 ini

&nilai_tes[2]

berarti “alamat dari nilai_tes[2]”. Perlu diingat bahwa scanf() memerlukan argumen

berupa alamat dari variabel yang digunakan untuk menyimpan nilai masukan.

Inisialisasi Array Berdimensi Satu

Sebuah array dapat diinisialisasi sekaligus pada saat dideklarasikan. Untuk

mendeklarasikan array, nilai-nilai yang diinisialisasikan dituliskan di antara kurung

kurawal ({}) yang dipisahkan dengan koma.

int jum_hari[12] =

{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

Beberapa Variasi dalam Mendeklarasikan Array

Ada beberapa variasi cara mendeklarasikan sebuah array (dalam hal ini yang

berdimensi satu), di antaranya adalah sebagai berikut :

int numbers[10];

int numbers[10] = {34, 27, 16};

int numbers[] = {2, -3, 45, 79, -14, 5, 9, 28, -1,

0};

char text[] = "Welcome to Borneo.";

float radix[12] = {134.362, 1913.248};

double radians[1000];

Page 38: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

38 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Array Berdimensi Dua

Array berdimensi satu dapat disimpan pada sebuah array berdimensi dua.

Pendeklarasian array berdimensi dua adalah sebagai berikut :

int data_lulus[4][3];

Nilai 4 untuk menyatakan banyaknya baris dan 3 menyatakan banyaknya kolom.

Gambar 7.1 berikut memberikan ilustrasi untuk memudahkan pemahaman tentang

array berdimensi dua.

Gambar 7.1 Array berdimensi dua

Sama halnya pada array berdimensi satu, data array akan ditempatkan pada memori

yang berurutan. Perhatikan Gambar 7.2.

Gambar 7.2 Model penyimpanan array dimensi dua pada memori

Mengakses Elemen Array Berdimensi Dua

Array seperti data_lulus dapat diakses dalam bentuk data_lulus[indeks pertama,

indeks kedua] :

(1) data_lulus[0][1] = 540;

merupakan instruksi untuk memberikan nilai 540 ke array data_lulus untuk indeks

pertama = 0 dan indeks kedua bernilai 1.

(2) printf(“%d”,data_lulus[2][0]);

merupakan perintah untuk menampilkan elemen yang memiliki indeks pertama = 2

dan indeks kedua = 0.

Page 39: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

39 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

7.3. TUGAS PENDAHULUAN

Untuk semua persoalan di bawah ini, desainlah algoritma dan flowchartnya.

7.4. PERCOBAAN

a. Deklarasikan sebuah variabel array of int, selanjutnya isi array tsb kemudian

tampilkan isi variabel tersebut menggunakan statement for(). Ingat apabila

jumlah deklarasi index adalah n maka nilai index-nya adalah dimulai dari 0

sampai dengan n-1.

b. Deret fibonacci adalah deret yang dimulai dengan dua angka yang bernilai 0

dan 1, kemudian deret ketiga ditentukan dari penjumlahan kedua angka

tersebut, sedangkan deret keempat ditentukan dari dua angka sebelumnya

begitu seterusnya. Sehingga didapatkan deret fibonanci sebagai berikut:

0 1 1 2 3 5 8 13 21 …

Buatlah program untuk meminta input dari user berupa sebuah bilangan,

kemudian tampilkan deret fibonacci mulai dari 1 sampai dengan bilangan tsb.

c. Buat penjumlahan dua matriks A[2][2]dengan B[2][2]. Hasil

penjumlahan tersebut disimpan dalam matrik C. Tampilkan di layar masing-

masing isi dari matriks A, B dan C

Catatan modifikasi (gunakan nested loop) :

indeks MAKS dibuat konstanta

variabel ordo matriks diinputkan

memungkinkan pengulangan proses dengan menginputkan ordo yang lain

d. Buatlah sebuah variabel array of int yang memiliki ukuran MAKS. Dengan

menggunakan looping for(), masukkan sebanyak n data ke dalam array

tsb kemudian carilah nilai terbesar yang ada dalam array tsb.

7.5. LAPORAN RESMI

a. Untuk setiap listing program dari percobaan-percobaan di atas, ambil capture

outputnya.

b. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

Page 40: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

40 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

MODUL 8

Dasar Fungsi

8.1. TUJUAN PEMBELAJARAN

a. Memecah program dalam fungsi fungsi yang sederhana.

b. Menjelaskan tentang pemrograman terstruktur.

8.2. DASAR TEORI

Fungsi adalah suatu bagian dari program yang dirancang untuk

melaksanakan tugas tertentu dan letaknya dipisahkan dari program yang

menggunakannya. Elemen utama dari program bahasa C berupa fungsi-fungsi,

dalam hal ini program dari bahasa C dibentuk dari kumpulan fungsi pustaka

(standar) dan fungsi yang dibuat sendiri oleh pemrogram. Fungsi banyak digunakan

pada program C dengan tujuan :

a. Program menjadi terstruktur, sehingga mudah dipahami dan mudah

dikembangkan.

Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsi-

fungsi, maka fungsi utama (main()) menjadi lebih pendek, jelas dan mudah

dimengerti.

b. dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah program

yang sama dan dipakai berulang-ulang 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.

Dasar Fungsi

Fungsi standar C yang mengemban tugas khusus contohnya adalah ;

printf() , yaitu untuk menampilkan informasi atau data ke layar.

scanf() , yaitu untuk membaca kode tombol yang diinputkan.

Page 41: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

41 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Pada umumnya fungsi memerlukan nilai masukan atau parameter yang

disebut sebagai argumen. Nilai masukan ini akan diolah oleh fungsi. Hasil akhir

fungsi berupa sebuah nilai (disebut sebagai return value atau nilai keluaran

fungsi). Oleh karena itu fungsi sering digambarkan sebagai "kotak gelap"

seperti ditunjukkan pada gambar di bawah ini.

Parameter Keluaran

Fungsi

FUNGSI

Gambar 8.1 Fungsi sebagai sebuah kotak gelap

Penggambaran sebagai kotak gelap pada gambar 13.1 menjelaskan bahwa

bagian dalam fungsi bersifat pribadi bagi fungsi. Tak ada suatu pernyataan di luar

fungsi yang bisa mengakses bagian dalam fungsi, selain melalui parameter (atau

variabel eksternal yang akan dibahas belakangan). Misalnya melakukan goto dari

pernyataan di luar fungsi ke pernyataan dalam fungsi adalah tidak diperkenankan.

Bentuk umum dari definisi sebuah fungsi adalah sebagai berikut ;

tipe-keluaran-fungsi nama-fungsi (deklarasi argumen)

{

tubuh fungsi

}

Keterangan :

tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char

atau int

Kalau penentu tipe tidak disebutkan maka dianggap bertipe int (secara default).

tubuh fungsi berisi deklarasi variabel (kalau ada) dan statemen-statemen

yang akan melakukan tugas yang akan diberikan kepada fungsi yang

bersangkutan. Tubuh fungsi ini ditulis di dalam tanda kurung kurawal buka

dan kurung kurawal tutup.

Sebuah fungsi yang sederhana bisa saja tidak mengandung parameter sama

sekali dan tentu saja untuk keadaan ini deklarasi parameter juga tidak ada. Contoh :

Page 42: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

42 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

int inisialisasi()

{

return(0);

}

inisialisasi()

{

return(0);

}

Pada fungsi di atas :

tipe keluaran fungsi tidak disebutkan, berarti keluaran fungsi ber tipe int.

inisialisasi adalah nama fungsi

Tanda () sesudah nama fungsi menyatakan bahwa fungsi tak memiliki

parameter.

Tanda { dan } adalah awal dan akhir fungsi return(0) merupakan sebuah

pernyataan dalam tubuh fungsi.

Memberikan Nilai Keluaran Fungsi

Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi dapat

hanya melakukan suatu tugas saja tanpa memberikan suatu hasil keluaran atau

melakukan suatu tugas dan kemudian memberikan hasil keluaran. Fungsi yang hanya

melakukan suatu tugas saja tanpa memberikan hasil keluaran misalnya adalah fungsi

untuk menampilkan hasil di layar.

Dalam tubuh fungsi, pernyataan yang digunakan untuk memberikan nilai keluaran

fungsi berupa return. Sebagai contoh, pada fungsi inisialisasi() di atas terdapat

pernyataan return(0);

merupakan pernyataan untuk memberikan nilai keluaran fungsi berupa nol.

Gambar 8.1. Proses pemanggilan fungsi

Page 43: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

43 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Program pada gambar 8.1 sekaligus menjelaskan bahwa suatu fungsi cukup

didefinisikan satu kali tetapi bisa digunakan beberapa kali. Pada keadaan semacam ini

seandainya tubuh fungsi mengandung banyak pernyataan, maka pemakaian fungsi

dapat menghindari duplikasi kode dan tentu saja menghemat penulisan program

maupun kode dalam memori.

Misalnya pada saat pernyataan

x = inisialisasi();

dijalankan, mula-mula eksekusi akan diarahkan ke fungsi inisialisasi(), selanjutnya

suatu nilai keluaran (hasil fungsi) akhir fungsi diberikan ke x. Proses yang serupa,

dilakukan untuk pernyataan y = inisialisasi();

Bagi suatu fungsi, jika suatu pernyataan return dieksekusi, maka eksekusi terhadap

fungsi akan berakhir dan nilai pada parameter return akan menjadi keluaran fungsi.

Untuk fungsi yang tidak memiliki pernyataan return, tanda } pada bagian akhir

fungsi akan menyatakan akhir eksekusi fungsi.

Di bawah ini diberikan contoh sebuah fungsi yang mengandung dua buah pernyataan

return. Fungsi digunakan untuk memperoleh nilai minimum di antara 2 buah nilai

yang menjadi parameternya.

int minimum(int x, int y)

{

if (x < y)

return(x);

else

return(y);

}

Pada fungsi di atas terdapat dua buah parameter berupa x dan y. Oleh karena itu fungsi

juga mengandung bagian untuk mendeklarasikan parameter, yang menyatakan x dan y

bertipe int. Adapun penentuan nilai keluaran fungsi dilakukan pada tubuh fungsi,

berupa pernyataan

if (x < y)

return(x);

else

return(y);

yang menyatakan :

jika x < y maka nilai keluaran fungsi adalah sebesar nilai x.

untuk keadaan lainnya (x >= y) maka keluaran fungsi adalah sebesar y.

Page 44: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

44 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Fungsi Dengan Keluaran Bukan Integer

Untuk fungsi yang mempunyai keluaran bertipe bukan integer, maka fungsi haruslah

didefiniskan dengan diawali tipe keluaran fungsinya (ditulis di depan nama fungsi).

Sebagai contoh untuk menghasilkan nilai terkecil di antara dua buah nilai real, maka

definisinya berupa :

float minimum(float x, float y)

{

if (x < y)

return(x);

else

return(y);

}

Perhatikan, di depan nama minimum diberikan tipe keluaran fungsi berupa float.

Seluruh parameter sendiri juga didefinisikan dengan tipe float.

Khusus untuk fungsi yang dirancang tanpa memberikan nilai keluaran (melainkan

hanya menjalankan suatu tugas khusus) biasa didefinisikan dengan diawali kata kunci

void (di depan nama fungsi).

Prototipe Fungsi

Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :

tipe keluaran fungsi

jumlah parameter

tipe dari masing-masing parameter.

Bagi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan

(validitas) parameter dalam pemanggilan fungsi. Salah satu keuntungannya adalah,

kompiler akan melakukan konversi seandainya antara tipe parameter dalam fungsi dan

parameter saat pemanggilan fungsi tidak sama, atau akan menunjukan kesalahan bila

jumlah parameter dalam definisi dan saat pemanggilan berbeda.

Contoh prototipe fungsi;

float jumlah (float x, float y);

atau

float jumlah (float, float);

Page 45: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

45 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

Penjelasannya adalah sbb :

Gambar 5.4 Prototipe fungsi

Untuk fungsi yang tidak memiliki argumen (contoh program void.c), maka

deklarasinya adalah Untuk fungsi yang tidak memiliki argumen (contoh program

void.c), maka deklarasinya adalah

Catatan :

Untuk fungsi-fungsi pustaka, prototipe dari fungsi-fungsi berada di file-file

judulnya (header file). Misalnya fungsi pustaka printf() dan scanf() prototipenya

berada pada file dengan nama stdio.h

Untuk fungsi pustaka pencantuman pada prototipe fungsi dapat dilakukan dengan

menggunakan preprocessor directive #include.

8.3. TUGAS PENDAHULUAN

Buatlah desain flowchart untuk setiap soal dalam percobaan

8.4. PERCOBAAN

1. a. Buatlah sebuah fungsi yang berfungsi untuk menampilkan sebuah string

(dilayar) = “Pilihan Menu” (misalkan nama fungsinya = menu).

Fungsi tersebut tidak memiliki nilai kembalian (return value) dan juga

tidak menerima parameter masukan apapun.

b. Tulislah prototipe fungsi untuk fungsi tersebut.

c. Buat function main untuk memanggil function menu() secara berulang-

ulang, dengan jumlah perulangan yang merupakan input dari user.

2. a. Buatlah sebuah fungsi untuk menghitung jumlah triangular n (misal

nama fungsinya = triangular). Fungsi tersebut memiliki sebuah parameter

berupa bilangan int (n) yang akan dicari triangularnya serta tidak memiliki

nilai kembalian (return value)

Page 46: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

46 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

b. Tulislah prototipe fungsi untuk fungsi tersebut.

c. Buat function main untuk memanggil function triangular() tersebut dengan

nilai n yang merupakan input dari user.

3. a. Buatlah sebuah fungsi untuk menghitung nilai bilangan kuadrat (misal

nama fungsinya = kuadrat). Fungsi tersebut memiliki sebuah parameter

bertipe float, yaitu bilangan yang akan dikuadratkan serta memiliki sebuah

return value bertipe float, yaitu hasil kuadratnya

b. Tulislah prototipe fungsi untuk fungsi tersebut.

c. Buat function main untuk memanggil function kuadrat() tersebut dengan

bilangan x yang akan dicari kuadratnya merupakan input dari user.

4. Dengan menggunakan fungsi, buatlah program untuk mendapatkan

keluaran dari fungsi di bawah ini, dimana inputnya berupa bilangan untuk n

– Cn = 2 Cn-1 + 1 jika C0 = 1

– Sn = Sn-1 + n – 1 jika S1 = 0

Contoh input dan output untuk soal ini adalah sebagai berikut:

E. LAPORAN RESMI

1. Untuk setiap listing program dari percobaan-percobaan di atas, ambil capture

outputnya.

2. Tuliskan kesimpulan dari percobaan yang telah anda lakukan.

Page 47: MODUL PRAKTIKUM - FKTI Unmul

MODUL PRAKTIKUM

47 ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T

DAFTAR PUSTAKA

Aho, Hopcroft, Ullman, "Data Structures and Algorithms", Prentice Hall, 1987.

Knuth, D.E., "The Art of Computer Programming", Vol. 1 : "Fundamentals

Algoritms", Addison Wisley, 1968.

Sedgewick R., "Algorithms", Addison Wisley, 1984.

Wirth, N., "Algorithms & Data Stuctures", Prentice Hall, 1986.

Munir, R dan Lidya, L. 2001. Algoritma dan Pemrograman Dalam Bahasa Pascal

dan C. Bandung: Informatika.

Kadir, A dan Heriyanto. 2005. Algoritma Pemrograman Menggunakan C++.

Yogyakarta: Penerbit Andi.

Liem, Inggriani. Modul Kuliah Algoritma dan Pemrograman I . Bandung : ITB

Pranata, A. 2005. Algoritma dan Pemrograman. Yogyakarta: Penerbit Graha Ilmu.

P.J. Deitel, H.M. Deitel, “C How to Program”, Pearson International Edition Fifth

Edition, 2007.

Stephen Prata, “C Primer Plus”, Sams Publishing Fifth Edition, 2005.

Fathul Wahid, “Dasar-Dasar Algoritma & Pemrograman”, Penerbit Andi,

Yogyakarta, 2004.

Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran. “Computer Algorithms /

C++, Computer Science Press. 1998.

Thomas H Cormen, Charles E Leiserson, Ronald L. “Introduction to

Algorithms”,2nd Edition. The MIT Press. New York. 1990.

Robert Setiadi. “Algoritma Itu Mudah”, PT Prima Info sarana Media, Kelompok

Gramedia. Jakarta. 2008