• Tidak ada hasil yang ditemukan

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN REVISI II EDY BUDIMAN, M.T PROGRAM STUDI TEKNIK INFORMATIKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN REVISI II EDY BUDIMAN, M.T PROGRAM STUDI TEKNIK INFORMATIKA"

Copied!
47
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

MODUL PRAKTIKUM

PROFIL LULUSAN DAN

KOMPETENSI MATAKULIAH

1.

DeskripsiSingkat

1.1 Profil Lulusan dan Program Studi

Profil lulusan program studi Teknik Informatika berdasarkan hasil lokakarya kurikulum yang diselenggarakan pada tanggal 23 Juni 2014. Profil mahasiswa S1 Teknik Informatika diarahkan untuk menghasilkan lulusan sebagai berikut:

Profil Deskripsi Keahlian

System Analyst

Mampu menganalisis systems, memilih Alternatif pemecahan masalah, dan Dapat menyelesaikannya menggunakan Program aplikasi

1, 2 , 3

Competitive Intelligence

Analyst

Mampu merekayasa suatu mesin Sehingga mempunyai intelligence Tertentu, merupakan area penelitian Aplikasi dan instruksi yang terkait Dengan pemrograman computer Cerdas

1

Graphics & Visualization

Specialist

Mampu untuk membuat program Aplikasi yang terkait dengan Memanipulasi model-model gambar, Graphics dan citra.

1

Development game and animation

Mampu untuk membuat dan mengembangkan program Aplikasi yang terkait dengan animasi dan game

1

Computational science specialist,

Mampu menganalisis, dan Memformulasikan masalah dunia Nyata ke dalam model-model

Matematika, serta mampu

Mengimplementasikannya dalam Program aplikasi komputer

1

Programmer Mampu membuat program Plikasi/perangkat

lunak sehingga Dapat menjalankan program 1 & 2 Manager project

Application

Mampu untuk merencanakan,menganalisis, mendesain,mengimplementasi dan memelihara Proses pengembangan system

2

Database Administrator

Mampu membuat disain database dan dapat mengimplementasikannya serta mampu melakukan instalasi konfigurasi, apgrade, adaptasi, monitoring dan maintenance, database dalam suatu organisasi

2 & 3

Webmaster

Mampu mengembangkan Web, bertanggung jawab merancang Web, membangun, memelihara

(5)

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.

(6)

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

(7)

MODUL PRAKTIKUM

LIFE

CYCLE

c. Bagan Analisis Kompetensi

Mahasiswa akan dapat menjelaskan konsep dasar dan

notasi algoritmik dalam pemecahan masalah

1

Mahasiswa akan dapat merepresentasikan data dan algoritma secara efektif dan efisien

kedalam bahasa pemrograman

3

Mahasiswa akan dapat menjelaskan struktur kontrol kondisional maupun kontrol pengulangan

dalam bahasa pemrograman

5

Mahasiswa akan dapat menjelaskan struktur dasar algoritma dan memecahkan masalah dengan beberapa paradigma pemrograman

tanpa tergantung pada bahasa pemrograman apapun

2

Mahasiswa akan dapat menjelaskan berbagai jenis tipe data, variabel,

konstanta dan operator serta penggunaanya dalam bahasa

pemrograman

4

Mahasiswa akan dapat membuat macam array, function dan procedure dalam

bahasa pemrograman

6 6

Lulusan memiliki kemampuan computational thinking yang tinggi, mampu mengabstraksikan domain problem dan solusinya ke dalam representasi data dan algoritma secara efektif dan efisien dalam berbagai

paradigma, bahasa, dan platform (hardware and software) pemrograman untuk membangun perangkat lunak khususnya program yang berkaitan dengan pemecahan masalah-masalah matematika

SK

Mahasiswa akan dapat membuat dan menyelesaikan

berbagai macam kasus menggunakan bahasa program

8

Mahasiswa akan dapat membuat sub program dan program yang

berkaitan dengan pemecahan masalah-masalah matematika.

7

5 4

(8)

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.

(9)

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.

(10)

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)

(11)

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.

(12)

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

(13)

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

(14)

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:

(15)

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.

(16)

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

(17)

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

(18)

MODUL PRAKTIKUM

MODUL 3

T

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.

(19)

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

(20)

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

(21)

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

(22)

MODUL PRAKTIKUM

MODUL 4

O

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 :

(23)

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.

(24)

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

(25)

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 :

(26)

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:

(27)

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 :

(28)

MODUL PRAKTIKUM

MODUL 5

D

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 :

(29)

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.

(30)

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

(31)

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

(32)

MODUL PRAKTIKUM

MODUL 6

L

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

(33)

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)

(34)

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

(35)

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?

(36)

MODUL PRAKTIKUM

MODUL 7

A

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 :

(37)

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

(38)

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.

(39)

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.

(40)

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.

(41)

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 :

(42)

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

(43)

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.

(44)

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

(45)

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)

(46)

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.

(47)

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

Gambar

Gambar 1.2 Flowchart  untuk  Menentukan Bilangan Genap atau Ganjil
Diagram  alir dapat dilihat seperti gambar 5.1
Gambar  7.1  berikut    memberikan  ilustrasi  untuk  memudahkan  pemahaman  tentang  array berdimensi dua
Gambar 8.1 Fungsi sebagai sebuah kotak gelap
+2

Referensi

Dokumen terkait

Berdasarkan hasil pengujian blackbox yang dilakukan, disimpulkan bahwa sistem pendeteksi outlier ini dapat menghasilkan keluaran yang sesuai dengan yang

Berdasarkan hasil pengujian blackbox yang dilakukan, disimpulkan bahwa sistem pendeteksi outlier ini dapat menghasilkan keluaran yang sesuai dengan yang diharapkan

1) Model yang sudah dibuat dapat dipergunakan berulang untuk menganalisis tujuan. 2) Analisis dengan metode simulasi dapat dilakukan dengan masukan data yang bervariasi. 3)

Saran bagi Politeknik Negeri Medan yaitu mengadakan diseminasi modul pembelajaran yang dikembangkan dan langkah kegiatan pengembangan yang dilakukan, serta model

Dengan demikian terjadi suatu kondisi di mana proses penginputan record baru untuk kode matakuliah dilakukan pada tabel matakuliah, maka secara otomatis akan terlihat perubahan

Setelah ditentukan lokasi yang tepat untuk data center , maka langkah selanjutnya yang dilakukan adalah identifikasi infrastruktur untuk data center dari berbagai aspek, meliputi

Selama ini proses tersebut masih dilakukan secara manual, dan menimbulkan berbagai permasalahan, diantaranya tidak adanya informasi yang tertata dengan rapi yang menyediakan

Bakti Putra Meratus BPM adalah pengelolaan untuk tahapan rekrutmen yang masih dilakukan manual sehingga sulit melakukan proses seleksi dan promosi lowongan kerja, selain itu