Anda di halaman 1dari 47

MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 1


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 2


MODUL PRAKTIKUM

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

Decision : if & if … else


Modul 5
Nested if & else if
Looping : For
Modul 6
while, do … while

Modul 7 Array

Modul 8 Dasar Fungsi

Daftar Pustaka

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 3


MODUL PRAKTIKUM

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
Mampu menganalisis systems, memilih Alternatif
System Analyst pemecahan masalah, dan Dapat menyelesaikannya 1, 2 , 3
menggunakan Program aplikasi
Mampu merekayasa suatu mesin Sehingga
Competitive
mempunyai intelligence Tertentu, merupakan area
Intelligence 1
penelitian Aplikasi dan instruksi yang terkait
Analyst
Dengan pemrograman computer Cerdas
Graphics & Mampu untuk membuat program Aplikasi yang
Visualization terkait dengan Memanipulasi model-model 1
Specialist gambar, Graphics dan citra.
Mampu untuk membuat dan mengembangkan
Development game
program Aplikasi yang terkait dengan animasi dan 1
and animation
game
Mampu menganalisis, dan Memformulasikan
Computational masalah dunia Nyata ke dalam model-model
science specialist, Matematika, serta mampu 1
Mengimplementasikannya dalam Program
aplikasi komputer
Mampu membuat program Plikasi/perangkat
Programmer 1&2
lunak sehingga Dapat menjalankan program
Mampu untuk merencanakan,menganalisis,
Manager project
mendesain,mengimplementasi dan memelihara 2
Application
Proses pengembangan system
Mampu membuat disain database dan dapat
mengimplementasikannya serta mampu
Database
melakukan instalasi konfigurasi, apgrade, 2&3
Administrator
adaptasi, monitoring dan maintenance, database
dalam suatu organisasi
Mampu mengembangkan Web, bertanggung
jawab merancang Web, membangun, memelihara
Webmaster 2&3
web, Dan memodifikasi web. Merupakan Pelaku
bisnis media online yang Menjual produk/jasa

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 4


MODUL PRAKTIKUM

Mampu membuat disain database dan Dapat


mengimplementasikannya serta Mampu
Manager data
melakukan instalasi Konfigurasi, apgrade, 2&3
Sequrity
adaptasi, Monitoring dan maintenance, Database
dalam suatu organisasi
Mampu melakukan pengawasan semua kegiatan
yang berkaitan dengan instalasi jaringan (manager
Network Engineer 3
data security) dan pelayanan peralatan baru dan
yang ada terkait dengan data, suara, dan video
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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 5


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 6


MODUL PRAKTIKUM

c. Bagan Analisis Kompetensi

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 Mahasiswa akan dapat


sub program dan program yang membuat dan menyelesaikan
berkaitan dengan pemecahan 7 8 berbagai macam kasus
masalah-masalah matematika. menggunakan bahasa program

7 8
6
Mahasiswa akan dapat
membuat macam array,
function dan procedure dalam
bahasa pemrograman

5 4
Mahasiswa akan dapat menjelaskan Mahasiswa akan dapat menjelaskan
struktur kontrol kondisional berbagai jenis tipe data, variabel,
maupun kontrol pengulangan 5 4 konstanta dan operator serta
dalam bahasa pemrograman penggunaanya dalam bahasa
LIFE pemrograman
CYCLE
Mahasiswa akan dapat menjelaskan
Mahasiswa akan dapat struktur dasar algoritma dan
merepresentasikan data dan memecahkan masalah dengan
algoritma secara efektif dan efisien 3 2 beberapa paradigma pemrograman
kedalam bahasa pemrograman tanpa tergantung pada bahasa
pemrograman apapun

1
Mahasiswa akan dapat
menjelaskan konsep dasar dan
notasi algoritmik dalam
pemecahan masalah

Gambar 1. Struktur Hirarkis SK Matakuliah Algoritma & Pemrograman

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 7


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 8


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 9


MODUL PRAKTIKUM

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)

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 10


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 11


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 12


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 13


MODUL PRAKTIKUM

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)

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 14


MODUL PRAKTIKUM

%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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 15


MODUL PRAKTIKUM

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);
}

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 16


MODUL PRAKTIKUM

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);
}

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 17


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 18


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 19


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 20


MODUL PRAKTIKUM

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);
}

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 21


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 22


MODUL PRAKTIKUM

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,%Eatau %F
%G bergantung pada kepresisian data (digit 0yang 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);

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 23


MODUL PRAKTIKUM

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);

Ab a d 2 0

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 24


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 25


MODUL PRAKTIKUM

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,-

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 26


MODUL PRAKTIKUM

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 6_05 floating _1312


r
calloc Xx A$ ReInitialize alpha_beta_routine
xxx z

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 27


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 28


MODUL PRAKTIKUM

 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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 29


MODUL PRAKTIKUM

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).

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 30


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 31


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 32


MODUL PRAKTIKUM

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;

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 33


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 34


MODUL PRAKTIKUM

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?

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 35


MODUL PRAKTIKUM

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 :

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 36


MODUL PRAKTIKUM

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];

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 37


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 38


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 39


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 40


MODUL PRAKTIKUM

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 :

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 41


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 42


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 43


MODUL PRAKTIKUM

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);

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 44


MODUL PRAKTIKUM

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)

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 45


MODUL PRAKTIKUM

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.

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 46


MODUL PRAKTIKUM

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

ALGORITMA & PEMROGRAMAN – Edy Budiman, M.T 47

Anda mungkin juga menyukai