MODUL PRAKTIKUM
MODUL PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN
REVISI IIEDY BUDIMAN, M.T
PROGRAM STUDI TEKNIK INFORMATIKA
UNIT PELAKSANA
FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI UNIVERSITAS MULAWARMAN
MODUL PRAKTIKUM
KATA PENGANTARPuji 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
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
Modul 5 Decision : if & if … else
Nested if & else if
Modul 6 Looping : For
while, do … while
Modul 7 Array
Modul 8 Dasar Fungsi
MODUL PRAKTIKUM
PROFIL LULUSAN DANKOMPETENSI MATAKULIAH
1.
DeskripsiSingkat1.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
MODUL PRAKTIKUM
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 (LearningOutcome)
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.
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
MODUL PRAKTIKUM
LIFE
CYCLE
c. Bagan Analisis KompetensiMahasiswa 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
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.
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.
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)
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.
MODUL PRAKTIKUM
MODUL 2Pengantar Bahasa C dan
Penulisan Program
2.1.TUJUAN PEMBELAJARANa.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
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
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:
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.
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);
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); }
MODUL PRAKTIKUM
MODUL 3T
ipe
D
ata
dan
V
ariabel
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.
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
MODUL PRAKTIKUM
3.3.TUGAS PENDAHULUANTuliskan 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
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);
MODUL PRAKTIKUM
MODUL 4O
perasi
I
nput
O
utput
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 :
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,%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.
MODUL PRAKTIKUM
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
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 :
MODUL PRAKTIKUM
4.3.TUGAS PENDAHULUANTuliskan 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:
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 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 :
MODUL PRAKTIKUM
MODUL 5D
ecision
:
i
f
&
i
f
…
e
lse
N
ested
i
f
&
e
lse
i
f
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 :
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.
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
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
MODUL PRAKTIKUM
MODUL 6L
ooping
:
F
or
w
hile,
d
o …
w
hile
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
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)
MODUL PRAKTIKUM
6.3.TUGAS PENDAHULUANBuatlah 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
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?
MODUL PRAKTIKUM
MODUL 7A
rray
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 :
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};
MODUL PRAKTIKUM
Array Berdimensi DuaArray 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.
MODUL PRAKTIKUM
7.3.TUGAS PENDAHULUANUntuk 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.
MODUL PRAKTIKUM
MODUL 8Dasar 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.
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 :
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);
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.
MODUL PRAKTIKUM
Fungsi Dengan Keluaran Bukan IntegerUntuk 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);
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)
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.
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