MODUL PRAKTIKUM “PEMROGRAMAN KOMPUTER” Bahasa C
Disusun oleh: TIM ASISTEN Edisi II
LABORATORIUM FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA YOGYAKARTA 2013
0
I.
PENDAHULUAN
A. ALGORITMA Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu. Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa pemograman seperti bahasa C.
B. SEPENGGAL SEJARAH BAHASA C Bahasa C merupakan bahasa pemrograman yang sangat populer pada saat ini, lahirnya bahasa pemrograman diawali oleh terbentuknya bahasa assembly yang dikembangkan oleh IBM pada tahun 1956-1963. Bahasa ini termasuk kedalam bahasa pemrograman tingkat rendah (low level language), pada tahun 1957, sebuah tim yang dipimpin oleh John W. Backus, berhasil mengembangkan sebuah bahasa pemrograman baru yang lebih diarahkan untuk proses analisa numerik. Bahasa pemrograman tersebut dinamai dengan bahasa pemrograman FORTRAN (Formula Translation). Setahun kemudian, yaitu pada tahun 1958, para ilmuwan komputer dari Eropa dan Amerika yang tergabung dalam sebuah komite menciptakan bahasa pemrograman baru yang lebih bersifat struktural dan dinamakan dengan bahasa ALGOL (Algorithmic Language). Kemudian pada tahun 1964, IBM kembali menciptakan bahasa pemrograman baru dengan nama PL/I (Programing Language 1) yang lebih ditujukan untuk keperluan bisnis dan penelitian. Tahun 1969 laboratorium Bell AT&T di Murray, New Jersey menggunakan bahasa assembly untuk mengembangkan sistem operasi Unix yang bertujuan untuk membuat program antarmuka yang bersifat programmer friendly. Setelah Unix berjalan, lahirlah bahasa pemrograman baru yang ditulis oleh Martin Richards dengan nama bahasa BCPL (Basic Combined Programming Language). Kemudian pada tahun 1970, seorang pengembang sistem dari laboratorium tersebut yang bernama Ken Thompson membuat bahasa B yang akan digunakan untuk menulis ulang sistem operasi Unix. Nama 'B' ini konon diambil dari huruf pertama dalam kata BCPL. Karena alasan bahwa bahasa B masih terkesan lambat, maka pada tahun 1971 seorang 1
pengembang sistem bernama Dennis Ritchie, yang juga bekerja di laboratorium yang sama, menciptakan bahasa baru dengan nama C yang bertujuan untuk menulis ulang dan menutupi kelemahan-kelemahan yang ada pada sistem operasi Unix sebelumnya. Menurut sumber yang ada, nama 'C' ini juga konon diambil dari huruf kedua dalam kata BCPL. Sejak itu bahasa C terus digunakan untuk memelihara sistem operasi Unix, sampai akhirnya pada tahun 90-an bahasa C ini digunakan untuk mengembangkan sistem operasi Windows dan sekarang ini digunakan untuk mengembangkan sistem operasi Linux. Selain untuk menulis program yang merupakan embedded system, di kalangan industri hiburan, bahasa C juga banyak digunakan dalam mengembangkan perangkat lunak untuk permainan. Hal inilah yang menyebabkan bahasa C menjadi bahasa yang sangat populer di kalangan industri perangkat lunak.
C. LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM C-FREE Langkah-langkahnya: 1. Bukalah software C-Free, klik File>New atau tekan Ctrl+N pada keyboard, akan terlihat tampilan sebagai berikut :
2. Tulislah source code program bahasa C. Source code C dapat ditulis pada text editor C-Free. 2
3. Kompile file dengan memilih menu Build>Compile atau tekan F11 pada keyboard. Kompile file ini dijalankan untuk mengubah source code menjadi sebuah program, kita gunakan compiler. Setelah source code ter-compile, terbentuklah sebuah file objek dengan ekstension “ .cpp “. File “ .cpp “ ini belum merupakan sebuah program executable. 4. Jalankan Program dengan memilih menu Build>Run atau tekan F5 pada keyboard. Setelah kita kompile file yang berisi source code, maka sebagai hasil kompilasi tersebut kita akan mendapatkan suatu file yang bisa dijalankan (executable file). Menjalankan program yang kita buat berarti menjalankan file hasil proses kompilasi tersebut. 5. Untuk menyimpan, pilih menu File>Save As.
II.
PENGENALAN C
Di dalam kelas teori, kita telah mempelajari apa itu algoritma, pengertian algoritma, dan bagaimana cara kita menyajikan suatu algoritma agar dapat menyelesaikan suatu masalah dengan benar namun efisien. Ada beberapa cara antara lain dengan menggunakan kalimat deskriptif, pseudocode, dan flowchart. Pada pertemuan kali ini, kita akan mencoba menyusun algoritma itu didalam bahasa C sehingga menjadi sebuah program, yang tentunya disini kita akan membahas kaidah-kaidah dalam menyusun kode progam. Sebelum kita menyusun kode program dalam bahasa C, hendaknya kita perlu mengetahui apa saja yang perlu kita kenal dalam bahasa C. Antara lain: header file, preprocessor directive, void, main, statement, kata kunci, tipe data dan tipe data terformat. CONTOH 1 : Ketiklah program di bawah ini : #include void main()
Lalu klik RUN! Apa yang anda lihat??
{ printf(“hallo semua”); }
3
Setiap program C mempunyai bentuk umum seperti di bawah, yaitu:
#prepocessor directive void main() { // Batang Tubuh Program Utama ; ; } Penjelasan : 1. Include Adalah salah satu pengarah prepocessor directive yang tersedia pada C. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya : # include tidak diakhiri
dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk
pernyataan, tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h (file header) yaitu file yang berisi sebagai deklarasi contohnya: #include
: diperlukan pada program yang melibatkan input dan output data.
#include
: diperlukan bila melibatkan clrscr(), yaitu perintah untuk membersihkan layar.
#include
: diperlukan bila melibatkan setw() yang bermanfaat untuk mengatur lebar dari suatu tampilan data.
#include
: diperlukan pada program yang menggunakan operasi sqrt () yang bermanfaat untuk operasi matematika kuadrat.
2.Fungsi main() Fungsi ini menjadi awal dan akhir eksekusi program C. main adalah nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main( ). Berarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang pemrogram/programmer menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang 4
sekarang coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi main(). 3.Komentar Komentar tidak pernah di-compile oleh compiler. Dalam C terdapat 2 jenis komentar, yaitu: Jenis 1
: /* Komentar anda diletakkan di dalam ini Bisa mengapit lebih dari satu baris */
Jenis 2
: // Komentar anda diletakkan disini ( hanya bisa perbaris )
4.Tanda Semicolon Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. 5. Mengenal printf() dan scanf() Pernyataan printf() merupakan sebuah objek di dalam C, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar). Sedangkan pernyataan scanf() mengarahkan data ke dalam standar input (masukan data). 6. Statement Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma(;).
III.
VARIABEL, TIPE DATA
A. IDENTIFIER Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut : 1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja). 2. Case sensitive: membedakan huruf besar dan huruf kecilnya. 3. Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh angka. 4. Tidak boleh mengandung spasi atau blank. 5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi. 5
B. VARIABEL Variabel adalah identifier yang nilainya dapat berubah atau diubah selama program berjalan (dieksekusi). Pengubahnya adalah user atau proses. - Deklarasi variabel (tipe_data nama_variabel;) Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenis data yang bisa disimpan di dalamnya. Contoh : int a, b, c; - Inisialisasi variabel (tipe_data nama_variabel = nilai;) int a=1, b=6; C. KONSTANTA Konstanta adalah identifier yang nilainya tetap selama program berjalan/ dieksekusi. Cara untuk mengubahnya hanya melalui source codenya saja seperti halnya variabel, konstanta juga memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri, sesuai dengan tipe masing-masing. D. TIPE DATA - Tipe data Integer Tipe data bilangan bulat decimal yang dapat menampung angka antara -2147483648 dan 2147483647. Tipe data ini berukuran 32 bits atau 4 bytes. - Tipe data Character Tipe data yang hampir mirip dengan tipe data integer tetapi hanya cukup untuk menampung 1 karakter ASCII. Karena tipe data character hanya memiliki ukuran 1 byte, tipe data ini sangat sering digunakan untuk menyimpan tipe data karakter sesuai dengan namanya. Tipe data ini dikatakan ideal untuk menampung data karakter karena ukuran 1 byte cukup besar untuk menyediakan 1 slot untuk tiap karakter ASCII. Saat compile, semua tipe data karakter akan diubah ke bentuk integer kode ASCIInya. - Tipe data Float Float merupakan kependekan dari floating point. Tipe data ini dapat menampung bilangan real tetapi kurang presisi karena hanya dapat menyimpan single precision floating point numbers. - Tipe data Double menyimpan double precision floating point numbers. Biasanya memiliki ukuran 8 bytes. (VARIASINYA DIBAHAS DI KELAS TEORI) 6
- Tipe data Void Tipe data yang tidak bertipe. E. FUNGSI OUTPUT TERFORMAT Untuk menampilkan hasil ke dalam alat output di dalam bahasa C, semua prosesnya dilakukan oleh fungsi-fungsi yang ada di dalam header file stdio.h dan conio.h .:: Fungsi-fungsi yang umum digunakan adalah:
putchar() dan puts() Fungsi putchar() dipakai untuk menampilkan nilai karakter tidak terformat sedangkan
fungsi puts() dipakai untuk menampilkan nilai string tidak terformat. maksud dari tidak terformat adalah lebar dan bentuk dari tampilannya tidak dapat diatur.
printf()
Fungsi ini fungsinya menampilkan hasil dengan kode terformat. Berikut adalah kodekode format untuk fungsi printf() Kode Format
Kegunaan
%c
Menampilkan sebuah karakter
%s
Menampilkan nilai string
%d dan %i %u
Menampilkan nilai desimal integer Menampilkan nilai desimal integer tak bertanda
%x
Menampilkan nilai heksadesimal integer
%o
Menampilkan nilai oktal integer
%f
Menampilkan nilai pecahan
%e
Menampilkan nilai pecahan dalam notasi saintifik
%p
Menampilkan suatu alamat memori untuk pointer 7
CONTOH : #include int main() { int a=900; float b=450; printf(“%i\n”,a); printf(“%f”,b); }
CONTOH 2 (input ditentukan pengguna); #include int main() { char nama[30]; int nilai; printf(“masukkan nama anda= “); scanf(“%s”,&nama); printf(“masukkan nilai anda= “); scanf(“%i”,&nilai); printf(“nama anda = %s\n”,nama); printf(“nilai anda=%i”,nilai); }
8
CONTOH 3 (rumus luas lingkaran) #include #define phi 3.14 int main() { int r=20; float hasil; hasil=phi*r*r; printf(“maka luas lingkaran tersebut adalah = %f”,hasil); }
LATIHAN : 1. Buatlah program yang bisa memunculkan nama lengkap anda, nim, tanggal lahir, prodi, no.hp, e-mail, alamat asal, alamat di DIY, asal sekolah, hobby, dan motto hidup! 2. Buatlah program untuk menghitung volume kerucut, dengan tinggi dan diameter kerucut diinput oleh pengguna! 3. Buatlah program untuk menampilkan data diri dan 3 nilai mahasiswa dengan inputan diisi oleh pengguna, dan keseluruhan nilai dijumlah!
F. TIPE STRUKTUR Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam operasi. Bentuk umumnya : tyedef struct{ tipe nama_field1; tipe nama_field2; tipe nama_field3; .... }nama_variabel;
9
CONTOH (pencatat jumlah anggota keluarga) #include typedef struct{ char nama[30]; int anggota_keluarga; }data_tunggal dataku; int main(){ printf (“nama = “); scanf(“%s,&dataku.nama); printf(“jumlah anggota keluarga = “); scanf(“%i”,&dataku.anggota_keluarga); printf(“nama = %s\n”,dataku.nama); printf(“jumlah anggota keluarga = %i\n”,dataku.anggota_keluarga); }
LATIHAN : Buatlah program untuk menghitung selisih antara 2 waktu (jam:menit:detik) dengan menggunakan typedef struct!
IV.
OPERATOR
Operator adalah simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi. Macam-macam operator adalah sebagai berikut. 1.
OPERATOR PENUGASAN Operator Penugasan ( Assignment operator ) dalam bahasa C berupa tanda sama dengan (“=”). Contoh : nilai = 80; A = x * y; Penjelasan : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian antara x dan y. 10
2.
OPERATOR ARITMATIKA Operator aritmatika biasa digunakan dalam perhitungan matematika seperti terlihat dalam tabel berikut. Operator
Deskripsi
Contoh
+
Penjumlahan ( Add )
m+n
-
Pengurangan ( Substract )
m–n
*
Perkalian ( Multiply )
m*n
/
Pembagian ( Divide )
m/n
Sisa Pembagian Integer ( Modulus )
m%n
Negasi ( Negate )
-m
% -
Operator negasi (-) disebut unary operator, karena hanya membutuhkan satu buah operand. Operator % (m0dulus) digunakan untuk mencari sisa pembagian antara dua bilangan. Contoh: 15 % 4 = 3 ( sisa pembagian 15 dibagi 4 adalah 3) 16 % 2 = 0 (sisa pembagian 16 dibagi 2 adalah 0)
Contoh program:
11
Outputnya berupa:
Karena tipe datanya int, maka 77/16 = 4 (hasilnya berupa pembulatan ke bilangan bulat). Supaya mempresentasikan nilai yang sebenarnya, gunakan tipe data float. 3.
OPERATOR HUBUNGAN Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C adalah sebagai berikut:
Operator
Arti
==
Sama dengan (bukan
Contoh x= =y
Apakah x sama dengan y
x != y
Apakah x tidak sama
assignment ) !=
Tidak sama dengan
dengan y >
Lebih besar
x>y
Apakah x lebih besar dari y
<
Lebih kecil
x
Apakah x lebih kecil dari y
>=
Lebih besar atau
x >= y
sama dengan <=
Lebih kecil atau sama dengan
Apakah x lebih dari sama dengan y
x <= y
Apakah x kurang dari sama dengan y
12
Cobalah contoh berikut!
Output:
Maksud dari output diatas adalah nilai 1 menyatakan bahwa pernyataan bernilai benar, sedangkan nilai 0 menyatakan bahwa pernyataan bernilai salah.
4.
OPERATOR NAIK DAN TURUN (INCREMENT DAN DECREMENT) Operator increment disimbolkan dengan ++ Operator decrement disimbolkan dengan -Selanjutnya apa bedanya n++ dan ++n ? Bagaimana pula dengan m- - dan - -m?
n++ merupakan post increment yaitu nilai n naik 1 setelah variabel n diakses
++n merupakan pre increment yaitu nilai n naik 1 sebelum variabel n diakses.
m- - merupakan post decrement yaitu nilai m turun 1 setelah variabel m diakses
- - m merupakan pre decrement yaitu nilai m turun 1 sebelum variabel m diakses.
13
Contoh:
Outputnya:
Terlihat bahwa operator pre-increment dan post-increment memiliki akibat yang sama, yaitu manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m (m=m+1). Hal yang sama juga terjadi pada operator pre-decrement dan post-decrement yang memberikan akibat yang sama, yaitu mengurangi nilai satu dari n ( n = n - 1).
14
Selanjutnya silahkan coba program berikut!
Output:
Adakah diantara kalian yang bisa menjelaskan mengapa outputnya demikian?
5.
OPERATOR LOGIKA Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi. Operator && || !
Deskripsi logic AND logic OR logic NOT
Contoh m && n m ||n !m
15
Contoh:
Output:
0 menyatakan bahwa pernyataan tersebut salah, sedangkan 1 menyatakan bahwa pernyataan tersebut benar.
Latihan
1. Buatlah program untuk menghitung luas bangunan geometri (bujursangkar, lingkaran, segitiga dan trapesium). Data masukkan dibaca dari piranti masukkan dan luas bangun ditampilkan sebagai keluaran. 2. Buatlah program untuk menghitung harga total suatu barang, dimana jumlah barangnya 5, harga tiap barang merupakan inputan dari user. 3. Buatlah program untuk penggunaan operasi aritmatika yaitu penjumlahan, pembagian, perkalian, dan pengurangan dengan variabel yang diinputkan.
16
V.
1.
PERCABANGAN
Pernyataan If Pernyataan if merupakan sebuah blok program yang menyatakan bahwa sebuah aksi akan dijalankan jika kondisi percabangan dipenuhi. Jika kondisi tidak dipenuhi maka aksi tidak akan dialankan. Pernyataan if biasa digunakan untuk mengerjakan aksi aksi yang memiliki syarat tertentu untuk menjalankannya. Bentuk pernyataan ini ada dua macam : - if saja dan - else Bentuk Umumnya Satu Kasus: if (kondisi) pernyataan ; Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak program tidak memberikan hasil apa-apa. Contoh:
Output:
Coba kalau usia yang Kalian inpitkan lebih dari 17. Apa yang terjadi?
17
Bentuk umum pernyataan satu baris :
if (kondisi) pernyataan1 ; else pernyataan2;
Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak, lakukan pernyataan2. Jika Anda tidak mempergunakan pernyataan else program tidak akan error, namun jika anda mempergunakan pernyataan else tanpa didahului pernyataan if , maka program akan error. Jika pernyataan1 atau pernyataan 2 hanya terdiri dari satu baris, maka tanda { } tidak diperlukan, namun jika lebih maka diperlukan.
Bentuk umum pernyataan yang lebih dari satu baris: if (kondisi) { pernyataan1; pernyataan1a; pernyataan1b; } else { pernyataan2; pernyataan2a; pernyataan2b; }
18
Contoh:
Output:
Jika tidak memenuhi persyaratan kondisi pertama maka otomatis akan yang akan muncul adalah pernyataan pada else.
19
Bentuk umum struktur if dengan banyak kondisi : if(kondisi1) { StatementA } else if(kondisi2) { StatementB } else { StatementC } Contoh:
20
Outputnya:
Bilangan yang kita inputkan akan mencari kondisi yang memenuhi. Sehingga pernyataan akan keluar sesuai dengan kondisi yang dipenuhi.
2.
Pernyataan Switch
Pernyataan swich adalah pernyataan yang digunakan untuk menjalankan salah satu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksian. Pernyataan if … else if jamak dapat dibangun dengan pernyataan switch .
Bentuk Umumnya : switch ( ekspresi ) { case konstanta1 : pernyataan1 ; break ; case konstanta2 : pernyataan2 ; break ; case konstanta3 : pernyataan3 ; break ; : : 21
case konstantaN : pernyataanN ; break ; default : pernyataanlain; }
Hal – hal yang perlu diperhatikan adalah : 1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikuti oleh ekspresi ataupun variable. 2. Konstanta yang digunakan bertipe int atau char 3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta2 maka pernyataan2, pernyataan3 sampai dengan pernyataanlain dieksekusi. Untuk mencegah hal tersebut, gunakan keyword break; . Jika keyword break digunakan maka setelah pernyataan2 dieksekusi program langsung keluar dari pernyataan switch . Selain digunakan dalam switch , keyword break banyak digunakan untuk keluar dari pernyataan yang berulang ( looping ). 4. Pernyataan lain dieksekusi jika konstanta1 sampai konstantaN tidak ada yang memenuhi ekspresi.
22
Contoh: Program untuk mengkonversi nilai huruf menjadi IP.
Outputnya:
Huruf A adalah inputan dari user. 23
Contoh lain: Program untuk melihat nilai akhir dari suatu test. Nilai A jika nilai ≥ 80 Nilai B jika 70 ≤ nilai < 80 Nilai C jika 50 ≤ nilai < 70 Nilai D jika 30 ≤ nilai < 50 Nilai E jika 0 ≤ nilai < 30
24
Outputnya:
Latihan 1. Buatlah program dalam bahasa C yang menerima sebuah masukan berupa jam lembur. Jika jam lembur kurang dari 12 jam maka akan menampilkan gaji lembur sebesar Rp 100.000,00. Jika jam lembur sama dengan 12 jam maka akan menampilkan gaji lembur sebesar Rp 200.000,00. Jika jam lembur lebih dari 12 jam maka akan menampilkan gaji lembur sebesar Rp 300.000,00! 2. Buatlah program dalam bahasa C yang menerima sebuah masukan berupa tiga buah sisi segitiga, periksa apakah segitiga tersebut merupakan segitiga siku-siku atau bukan. 3. Buatlah program konversi nilai angka 0 -100 ke dalam nilai huruf, sesuai dengan ketentuan nilai yang ada dalam buku panduan akademik Fakultas Sains dan Teknologi.
25
VI.
PERULANGAN
Sebelum masuk ke intinya, mari kita belajar dulu mengenai OPERATOR UNARY. Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam bahasa C terdapat beberapa operator unary yang sering digunakan, yaitu :
Agar lebih paham, coba pelajari source code berikut :
Nah, coba di-RUN dan disimpulkan perbedaannya ya!!!
26
Perulangan merupakan sebuah / kelompok instruksi diulang untuk jumlah perulangan tertentu. Baik yang terdifinisikan sebelumnya ataupun tidak. Struktur perulangan terdiri atas dua bagian : 1. Kondisi perulangan yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan 2. Isi atau badan perulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang.
Perintah atau notasi dalam struktur pengulangan adalah : 1. Pernyataan for 2. Pernyataan while 3. Pernyataan do..while 4. Pernyataan continue dan break 5. Pernyataan go to Adapun penjelasannya sebagai berikut : 1. Perintah for() Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Bentuk umumnya adalah :
Keterangan :
Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol.
kondisi : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan.
penambahan : pengatur perubahan nilai variabel kontrol
27
contoh source code:
2. Perintah while() Perintah ini menyatakan pengulangan selama kondisi tertentu terpenuhi. Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah.
28
Contoh source code:
3. Perintah do…while() Perintah ini menyatakan perulangan proses selama kondisi tertentu terpenuhi. Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan.
29
Source code :
4. Perintah continue dan break Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengakhiri loop dan akan menghentikan itrasi pada saat tersebut. Pernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya.
30
Contoh : #include main() { int i; for (i=0;i<10;i++) { if (i==4) continue; printf("Bilangan %i\n",i); if (i==6) break; } }
Output :
5. Perintah go to Diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “. Bentuk Umumnya : goto bawah; pernyataan1; pernyataan2; bawah : pernyataan 3;
Pada contoh di atas, pada saat goto ditemukan maka program akan melompat. pernyataan berlabel bawah dan melakukan pernyataan 3.
31
Contoh: #include
int i, angka; main() { for(i = 0; i >= 0; i++) { printf("Masukkan angka: ");scanf("%i", &angka); if (angka == 7) // kalo angka yang dimasukkan 7, keluar // dari loop menuju blok keluar goto keluar; }
keluar: printf("Keluar dari looping!\n"); }
32
LATIHAN Buatlah program untuk mencetak tampilan sebagai berikut: a. Program yang membuat deret bilangan seperti di bawah ini dan menghitung rata-rata deret tersebut… (Gunakan while)
b. Buatlah program menggunakan for sehingga hasilnya seperti berikut:
******* ****** ***** **** *** ** *
c. Program Menghitung Jumlah Deret Bilangan prima dengan ketentuan: -
Deretnya lebih dari batas bawah dan kurang dari batas atas
-
Batas bawah tidak boleh lebih besar daripada batas atas
-
Bila batas bawah lebih besar dari pada batas atas maka program akan mencetak tanda error dan kembali menanyakan batas bawah dan batas atasnya
-
Setelah menampilkan deretnya maka program akan menghitung jumlah deret tersebut
-
Contoh outputnya :
33
VII.
FUNGSI
Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return) Nama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengan nama build-in function pada compiler C. Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian program (kode) berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan kemudahan dalam debugging program. Parameter adalah nama-nama peubah yang dideklarasikan pada bagian header fungsi. Pemrogram dapat membuat fungsi yang didefinisikan sendiri olehnya.
fungsi main ( )
fungsi a ( )
fungsi b ( )
fungsi c ( )
fungsi c1 ( )
fungsi c2 ( )
fungsi c3 ( )
Bentuk umumnya : Deklarasi parameter { Isi fungsi }
34
A. PROTOTIPE FUNGSI Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklarasikan, deklarasi fungsi dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa : 1. Nama Fungsi 2. Tipe nilai fungsi 3. Jumlah dan tipe argumen Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh: 1. long kuadrat ( long l) ; Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai balik bertipe long . 2. void garis ( ); Pada contoh kedua, fungsi garis ( ) tidak memiliki argumen dan nilai baliknya tidak ada ( void ). 3. double maks ( double x, double y) Pada contoh ketiga, fungsi maks( ) mempunyai dua buah argumen, dengan masingmasing argumen bertipe double. Contoh :
35
Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul ( header ) dan isi ( body ). Nah, dari program di atas, mana yang disebut dengan judul fungsi? Isi fungsi? Pernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi dan mengembalikan nilainya ke program pemanggil. Bentuk umum pernyataan return adalah : return ekspresi ;
Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variable yang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak memberikan nilai balik atau tipe return-nya void. Coba flashback lagi pada materi awal, ada yang fungsi dengan void kan?
B. VARIABEL LOKAL DAN VARIABEL EKSTERNAL Variabel lokal adalah variabel yang didefinisikan dalam suatu fungsi tertentu, sehingga hanya dikenal dalam fungsi tersebut. Dalam hal ini artinya suatu fungsi tidak akan mengenal variabel lokal dan fungsi lain. Suatu fungsi hanya akan mengenal variabel yang didefinisikan dalam fungsi yang bersangkutan. Variabel eksternal adalah variabel yang bersifat global yang dapat dikenali oleh seluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan mengenal variabel yang bersifat eksternal ini. Variabel eksternal dideklarasikan diluar fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler.
36
Contoh:
Bagaimanakah hasil outputnya? Penjelasan : Dalam pemograman tersebut terdapat variabel lokal dan variabel eksternal yang namanya sama yaitu data. Dalam fungsi main ( ) dan fungsi_satu ( ) terdapat variabel lokal dengan nama sama tetapi sebetulnya lokasi penyimpanannya dalam memori berbeda, sehingga dua variabel itu berbeda dan tidak saling mengenal. Fungsi_satu ( ) sebetulnya mengenal variabel eksternal data yang nilainya 100, tetapi karena dalam fungsi tedapat variabel lokal data yang bernilai 300, maka diprioritaskan untuk diproses dalam fungsi tersebut adalah variabel lokalnya. Jika dalam fungsi terdapat variabel lokal dan variabel eksternal yang sama, maka diprioritaskan untuk diproses variabel lokal. Dalam fungsi_dua( ) tidak terdapat variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel eksternalnya.
37
LATIHAN 1. Buatlah fungsi untuk menghitung luas segitiga! 2. Buatlah fungsi untuk mengetahui apakah tiga titik tersebut merupakan Triple Pythagoras atau tidak? (tiga titik diinputkan oleh pengguna/user)
38
REVIEW PRAKTIKUM PEMROGRAMAN KOMPUTER
1. Soal typedef Buatlah program untuk mencatat data peminjaman buku diperpustakaan yang terdiri dari field nama peminjam, NIM, fakultas, judul buku yang dipinjam, pengarang, tanggal peminjaman, tanggal pengembalian. 2. Soal define Buat program dengan menggunakan define untuk mencari luas dan keliling lingkaran jika diketahiu jari-jari lingkaran tersebut 35 cm, kemudian buat juga program yang serupa tanpa menggunakan define. Apakah ada perbedaan?? 3. Soal operator logika a. Seorang pelari menempuh jarak tertentu dengan rekor waktu 1 jam 20 menit 45 detik, buatlah program untuk mengkonversi jumlah waktu tersebut dalam satuan detik. 4. Soal pemilihan a. Buatlah program untuk menentukan tahun yang di input merupakan tahun kabisat atau bukan. b. Buatlah algoritma untuk membaca bilangan bulat, kemudian menentukan apakan bilangan itu merupakan bilangan positif, negatif atau nol. Setelah itu buatlah programnya. 5. Pengulangan Buatlah program yang menampilkan output gambar segitiga dengan nilai tinggi diinputkan. Sehingga namppak seperti berikut: ******** ******* ***** *** ** * 6. Buatlah fungsi untuk menghitung volume kerucut.
39
SOAL REVIEW 1. Seorang pelari maraton menmpounyai rekor waktu lari 1 jam 5 menit 40 detik. Buatlah program untuk menghitung waktu tersebut dalam hitungan detik. 2. Buatlah program untuk menghitung IP mahasiswa yang terdiri dari nilai UAS,UTS,Tugas, dan keaktifan. Dengan ketentuan: a. Data diinput b. Komposisi nilai UAS 30%, UTS 25%, Tugas 30% dan keaktifan 15%. c. Kemudian konversi kedalam bentuk huruf, misal IP 4 = A, IP 3=B dst. 3. Buatlah program untuk menentukan nilai terbesar dari 3 bilangan yang di inputkan. 4. Butlah program untuk menampilkan jumlah hari setiap bulannya, Misal, bulan januari ada 31 hari, kemudian februari ada 28 hari namun jika tahun kabisat februari berjumlah 29 hari. 5. Buatlah program untuk mengurutkan 4 bilangan yang diinputkan dari yang terkecil hingga terbesar.
40
DAFTAR PUSTAKA
Ariani, Rosa Sukamto. 2010. Diktat Kuliah IK-310 Algoritma dan Pemrograman I. UPI Griffith, Arthur. 2002. GCC : The Complete Reference. McGraw-Hill Book Co. Ikhwan, Arief Wicaksono. 2010. Modul Praktikum Pemrograman Komputer : Bahasa C++. UIN Sunan Kalijaga Yogyakarta. Liem, Inggriani. 2003. Diktat Kuliah IF1281 Algoritma dan Pemrograman. ITB
41