Laporan Praktikum Aplikasi Pemprograman Bahasa C
\
Hendri.Setiawan T.Elektro B 151!"11!5#
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS AKULTAS TEKNIK TEKN IK UNIVERSITAS SINGAPERBANGSA KARAWANG TAHUN 2017 2 017
ALGORITMA DAN FLOWCHART
1.1 TUJUAN 1. $ampu memahami persoalan 2. $endesain pen%elesaian persoalan ke dalam algoritma 3. $enotasikan algoritma %ang sudah di&uat menggunakan menggunakan notasi flowchart notasi flowchart
1.2 TEORI DA DASAR Be&erapa langkah dalam proses pem&uatan suatu program atau so'tware ( 1. Mende!n!"!#$n M$"$%$& d$n Men'$n$%!"$n($
Langkah awal %ang harus dilakukan adalah mengidenti'ikasikan masalah antara lain tu)uan dari pem&uatan program* parameter+parameter %ang digunakan* 'asilitas apa sa)a %ang akan disediakan oleh program. ,emudian menentukan ap a %ang akan diterapkan untuk men%elesaikan masalah metode atau algoritma apa
terse&ut dan terakhir menentukan &ahasa program pem&uatan program. Me)e$%!"$"!#$n den'$n %$n'#$&*%$n'#$& +e)!#,2. Me)e$%!"$"!#$n
%ang digunakan untuk
A%')!-/$
Algoritma adalah urutan langkah+langkah logika %ang men%atakan suatu tugas dalam men%elesaikan suatu masalah atau pro&lem. Contoh ( Buat Buatla lah h
algo algori ritm tmaa untu ntuk menen enentu tuk kan apak apakah ah suat suatu u &ila &ilan ngan gan meru erupakan akan &ilangan
gan)il atau &ilangan genap. Algoritman%a ( 1. $asukka $asukkan n se&uah se&uah &ila &ilanga ngan n sem&ar sem&arang ang -. Bagi Bagi &ilanga &ilangan n terse&u terse&utt dengan dengan &ilan &ilangan gan ". Hitung Hitung sisa hasil hasil &agi &agi pada pada lang langkah kah -. -. . Bila Bila sisa sisa hasil &agi &agi sama dengan dengan maka maka &ilangan &ilangan itu adalah adalah &ilang &ilangan an genap genap tetapi &ila sisa hasil &agi sama dengan 1 maka &ilangan itu adalah &ilangan gan)il
/ari 0ontoh algoritma di atas tentang menentukan apakah suatu &ilangan adalah &ilangan gan)il atau &ilangan genap* 'low0hart dari program adalah se&agai &erikut
1. PERCOBAAN
ntuk semua persoalan di &awah ini &uatlah programn%a 1. $enghitung luas lingkaran dan men0etak hasiln%a -.Proses pengiriman email* )ika email tidak terkirim maka akan dilakukan proses pengiriman email lagi. ".Proses melakukan panggilan telepon* )ika tidak diangkat maka dilakukan panggilan telepon lagi. . Perusahaan daerah air minum menentukan tari' ketentuan se&agai &erikut(
"
per m
air &erdasarkan
Buatlah program %ang mem&a0a )umlah pemakaian air* untuk menghitung &ia%a %ang harus di&a%ar dan menampilkan hasiln%a di la%ar 5. Buatlah program untuk men)umlahkan &ilangan 1 sampai 1* tapi %ang di)umlahkan &ilangan gan)il sa)a.
1. LAPORAN 1.5 Cetak listing program %ang anda &uat pada per0o&aan diatas 1.! Cetak keluaran setiap per0o&aan diatas untuk &e&erapa kali per0o&aan 1.# Buat kesimpulan
DASAR PROGRAM BAHASA C 2.1 TUJUAN 1. $engenal sintaks dan 'ungsi+'ungsi dasar dalam &ahasa C -. $ampu mem&uat 'low0hart untuk algoritma untuk meme0ahkan suatu masalah sederhana* selan)utn%a mengimplementasikann%a dalam &ahasa
2.2 TEORI DASAR Akar dari &ahasa C adalah &ahasa BCPL %ang dikem&angkan oleh $artin
2i0hards
pada tahun 13!#. Bahasa ini mem&erikan ide kepada ,en Thompson %ang kemudian mengem&angkan &ahasa %ang dise&ut dengan B pada tahun 13#.
Perkem&angan
selan)utn%a dari &ahasa B adalah &ahasa C oleh /ennis 2it0hie sekitar tahun 13#+an di Bell Telephone La&oratories 4n0. sekarang adalah AT6T Bell La&oratories7. Bahasa C pertama kali digunakan pada komputer /igital E8uipment
Corporation
P/P+11 %ang menggunakan sistem operasi 94:. P)"e" K/!%$"! d$n L!n#!n' P)')$/ C
Proses dari &entuk sour0e program* %aitu program %ang ditulis dalam &ahasa C hingga men)adi program %ang executable ditun)ukkan pada ;am&ar 1 di &awah ini(
Gambar 1 Proses Kompilasi Linking Program C
Praktikum Aplikasi Pemrograman Pemrograman dengan Bahasa C – Program tudi tudi !eknik !eknik "lektro #$%&A #$%&A
2- 1
S-),#-,) Pen,%!"$n P)')$/ C
Prog Progra ram m C pada pada hake hakeka katn tn%a %a ters tersus usun un ata atass se)u se)uml mlah ah &lo &lok k 'ung 'ungsi si.. Se&uah program mini minima mall meng mengan andu dung ng se&u se&uah ah 'ung 'ungsi si..
%ang %ang haru haruss ada ada dala dalam m
C dan sudah ditentukan naman%a adalah main7. Setiap 'ungsi terdiri atas satu atau &e&erapa pern%ataan* %ang se0ara keseluruhan dimaksudkan dimaksudkan untuk melaksanakan tugas khusus. Bagian pern%ataan 'ungsi sering dise&ut tu&uh 'ungsi7 diawali dengan tanda kurung kurawal &uka =7 dan diakhiri dengan tanda kurung kurawal tutup >7. /i antara kurung kurung kurawal kurawal itu dapat dapat dituliskan dituliskan statemen+st statemen+statemen atemen progra program m C. 9amun pada
ken%ataann%a* suatu 'ungsi &isa sa)a tidak mengandung pern%ataan sama sekali.
?alaupun 'ungsi tidak memiliki pern%ataan* kurung kurawal haruslah tetap ada. Se&a Se&a& &
kuru kurung ng kur kuraw awal al men mengi gis% s%ara aratk tkan an awa awall dan akhir de'inisi 'ungsi. Berikut ini
adalah struktur dari program C
Pemrograman dengan &ahasa C dikatakan &ahasa terstruktur karena strukturn%a mengguna menggunakan kan 'ungsi+'un 'ungsi+'ungsi gsi se&agai se&agai program+pr program+program ogram &agiann%a &agiann%a subroutine subroutine7. 7.
di
Praktikum Aplikasi Pemrograman Pemrograman dengan Bahasa C – Program tudi tudi !eknik !eknik "lektro #$%&A #$%&A
2- 2
akhir 'ungsi merupakan akhir tu&uh 'ungsi dan sekaligus adalah akhir eksekusi program. @ika program program terdiri atas le&ih dari dari satu 'ungsi* 'ungsi 'ungsi main'( &iasa main'( &iasa ditempatkan pada posisi %ang paling atas dalam pende'inisian 'ungsi. Hal ini
han%a merupakan
ke&iasaan. Tu)uann%a untuk
memudahkan pen0arian
terhad terhadap ap progra program m utama utama &agi &agi pemrog pemrogram ram.. @adi &ukanlah merupakan suatu keharusan. +. F,n'"! printf() F,n'"! printf()
Selamat belajar bahasa C misaln%a* pern%ataan %ang diperlukan &erupa( &erupa(
printf(“Selamat printf(“Selamat belajar bahasa C”);
Pern%ataan di atas &erupa pemanggilan 'ungsi printf'( dengan printf'( dengan argumen atau parameter &erupa string. /alam C suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik+ganda 7. Perlu )uga diketahui pern%ataan dalam C selalu diakhiri dengan tanda titik koma 7. Tanda titik koma dipakai se&ag se&agai ai tand tandaa pem& pem&er erhe hent ntia ian n se&ua se&uah h pern pern%a %ata taan an dan dan &uka &ukanl nlah ah se&ag se&agai ai pemisah antara dua pern%ataan. Tanda anda + pada pada string string %ang dilewa dilewatka tkan n se&aga se&agaii argum argumen en printf'( printf'( mempun%ai makna %ang khusus. Tanda ini &isa digunakan untuk men%atakan karakter khusus khusus seperti karakter karakter &aris+&aru &aris+&aru ataupun karakter backslash backslash miring kiri7. @adi @adi kara karakt kter er sepert sepertii +n se&enarn%a se&enarn%a men%atakan se&uah karakter karakter.. Contoh Contoh karakter %ang ditulis dengan diawali tanda \ adalah( \D men%atakan karakter petik+ ganda \\ men%atakan karakter backslash \t backslash \t men%atakan karakter ta&
Praktikum Aplikasi Pemrograman dengan Bahasa C – Program tudi !eknik "lektro #$%&A
2- 3
/alam &entuk %ang le&ih umum* 'ormat printf'(
printf(“string kontrol”, daftar argumen); dengan string kontrol dapat &erupa satu atau se)umlah karakter %ang akan ditampilkan ataupun &erupa penentu 'ormat %ang akan mengatur penampilan dari argumen %ang terletak pada da'tar argumen. $engenai penentu 'ormat di antaran%a &erupa( d untuk menampilkan &ilangan &ulat integer7 ' untuk menampilkan &ilangan titik+mengam&ang pe0ahan7 0 untuk menampilkan se&uah karakter s untuk menampilkan se&uah string
Contoh(
#include
$ %d&n”, ');
printf(“ama
$ %s&n”, “li”;
printf(“ilai $ %f&n”,*+; printf(“uruf $ %c&n”,-.); /
Praktikum Aplikasi Pemrograman dengan Bahasa C – Program tudi !eknik "lektro #$%&A
2- 4
P)$)"e") 3!n4%,de
,include merupakan salah satu )enis pengarah praprosesor preprocessor directi*e7. Pengarah praprosesor ini dipakai untuk mem&a0a 'ile %ang di antaran%a &erisi deklarasi 'ungsi dan de'inisi konstanta. Be&erapa 'ile )udul disediakan dalam C.
#include “namafile” Bentuk pertama ',include -namafile( mengis%aratkan &ahwa pen0arian 'ile dilakukan pada direktori khusus* %aitu direktori 'ile in0lude. Sedangkan &entuk kedua ',include /namafile0( men%atakan &ahwa pen0arian 'ile dilakukan pertama kali pada direktori akti' tempat program sum&er dan seandain%a tidak ditemukan pen0arian akan dilan)utkan pada direktori lainn%a %ang sesuai dengan perintah pada sistem operasi. ,e&an%akan program meli&atkan 'ile stdio.h 'ile+)udul 4FG standard* %ang disediakan dalam C7. Program %ang meli&atkan 'ile ini %aitu program %ang menggunakan pustaka 4FG inputoutput 7 standar seperti printf'(. K/en-$) d$%$/ P)')$/
ntuk keperluan dokumentasi dengan maksud agar program mudah dipahami di suatu saat lain* &iasan%a pada program disertakan komentar atau keterangan mengenai program. /alam C* suatu komentar ditulis dengan diawali dengan tanda F dan diakhiri dengan tanda F. Contoh ( F
Tanda ini adalah komentar untuk multiple lines
F in0lude Istdio.hJ main7 = print'Co&a\nD7 FF4ni komentar satu &aris >
2. PERCOBAAN 4mplementasikan semua permasalahan di&awah ini dengan menggunakan &ahasa pemrograman C ( 1. $en0etak kalimat dalam &e&erapa &aris* dengan tampilan se&agai &erikut(
0rogram Studi 1eknik 2lektro 3ampus 4S53 tahun 6'7 -. $en0etak kalimat dalam &e&erapa &aris* dengan tampilan se&agai &erikut (
Sa8a sekarang sedang makan 3antin 4S53 9urah meriah Cocok untuk kalangan mahasis:a ". Program di &awah \ini tidak &erhasil di+0ompile karena masih terdapat Be&erapa\kesalahan Betulkan kesalahan program di&awah ini* dan tampilkan hasiln%a(
#include perintah dasar 4ntuk itu ”programmer” harus menghafal aturan> aturan ?ang berlaku
2.5 LAPORAN PRAKTIKUM 1. Cetak listing program %ang anda &uat -. Berilah kesimpulan hasil praktikum
PENGAMBILAN KEPUTUSAN
.1 TUJUAN 1. $en)elaskan tentang operator kondisi operator relasi dan logika7 2. $en)elaskan penggunaan pern%ataan if 3. $en)elaskan penggunaan pern%ataan ifelse . $en)elaskan penggunaan pern%ataan if dalam if . $en)elaskan penggunaan pern%ataan elseif 4. $en)elaskan penggunaan pern%ataan switch
.2 TEORI DASAR ntuk keperluan pengam&ilan keputusan* C men%ediakan &e&erapa )enis pern%ataan* &erupa a. Pern%ataan if b. Pern%ataan ifelse* dan c. Pern%ataan switch Pern%ataan+pern%ataan terse&ut memerlukan suatu kondisi* se&agai &asis dalam pengam&ilan keputusan. ,ondisi umum %ang dipakai &erupa keadaan &enar dan salah.
Oe)$-) Re%$"!
Gperator relasi &iasa dipakai untuk mem&andingkan dua &uah nilai. Hasil pem&andingan &erupa keadaan &enar atau salah. ,eseluruhan operator relasi pada C ditun)ukkan pada Ta&el "+1 T$+e% 1 Oe)$"! Re%$"!
Praktikum Aplikasi Pemrograman dengan Bahasa C – Program tudi !eknik "lektro #$%&A
3-1
Oe)$-) Re%$"!
Gperator logika &iasa dipakai untuk menghu&ungkan ekspresi relasi. ,eseluruhan operator logika ditun)ukkan pada ta&el -. T$+e% 1 Oe)$"! L'!#$
Bentuk pemakaian operator 66 dan KK adalah Oe)$nd1 Oe)$-) Oe)$nd2 Pe)n($-$$n !
Pern%ataan i' mempun%ai &entuk umum ( i' kondisi7 pern%ataan Bentuk ini men%atakan ( )ika kondisi %ang diseleksi adalah &enar &ernilai logika 17* maka
pern%ataan %ang mengikutin%a akan diproses.
Se&alikn%a* )ika kondisi %ang diseleksi adalah tidak &enar &ernilai logika
7* maka pern%ataan %ang mengikutin%a tidak akan diproses. $engenai kodisi harus ditulis diantara tanda kurung* sedangkan pern%ataan dapat &erupa se&uah pern%ataan tunggal* pern%ataan ma)emuk atau pern%ataan kosong. /iagram alir dapat dilihat seperti gam&ar ".1
Arti dari pern%ataan ifelse ( @ika kondisi &enar* maka pern%ataan+1 di)alankan. Sedangkan &ila kondisi &ernilai salah* maka pern%ataaan+- %ang
di)alankan. $asing+masing pern%ataan+1 dan pern%ataan+- dapat &erupa se&uah pern%ataan tunggal* pern%ataan ma)emuk ataupun pern%ataan kosong. Contoh penggunaan pern%ataan ifelse adalah untuk men%eleksi nilai
suatu
&ilangan pem&agi. @ika nilai &ilangan pem&agi adalah nol* maka hasil pem&agian dengan nilai nol akan mendapatkan hasil tak &erhingga. @ika ditemui nilai pem&agin%a nol* maka proses pem&agian tidak akan dilakukan. Pe)n($-$$n if d! d$%$/ if
/i dalam suatu pern%ataan i' atau i'+else7 &isa sa)a terdapat pern%ataan if atau if else7 %ang lain. Bentuk seperti ini dinamakan se&agai nested if . Se0ara umum* &entuk dari pern%ataan ini adalah se&agai &erikut (
,ondisi %ang akan diseleksi pertama kali adalah kondisi %ang terluar kondisi+17. J!#$ #nd!"!*1 &ernilai salah* maka statemen else %ang terluar pasangan
if %ang &ersangkutan7 %ang akan diproses. @ika else pasangann%a ts&7 tidak ditulis* maka pen%eleksian kondisi akan dihentikan. J!#$ #nd!"!*1 &ernilai &enar* maka kondisi &erikutn%a %ang le&ih dalam
kondisi+-7 akan diseleksi. @ika kondisi+- &ernilai salah* maka statemen else pasangan dari if %ang &ersangkutan %ang akan diproses. @ika else untuk kondisi+-7 tidak ditulis* maka pen%eleksian kondisi akan dihentikan. /engan 0ara %ang sama* pen%eleksian kondisi akan dilakukan sampai
dengan kondisi+n* )ika kondisi+kondisi se&elumn%a &ernilai &enar.
Pe)n($-$$n else-if
Contoh implementasi nested i' ini misaln%a pem&uatan se&uah program kalkulator sederhana. ser mem&erikan masukan dengan 'ormat ( Oe)$nd1 e)$-) e)$nd2
@enis operasi %ang dikenakan &ergantung pada )enis operator ang dimasukkan oleh user. Gleh karena itu program akan menge0ek apakah operator &erupa tanda MN* MFN* MON* ataukah tanda M+M. @ika operator &erupa tanda MN maka e)$nd1 akan dikalikan dengan
e)$nd2 . @ika operator &erupa tanda MFN maka e)$nd1 akan di&agi dengan
e)$nd2 . @ika operator &erupa tanda MON maka e)$nd1 akan di)umlahkan dengan
e)$nd2 . @ika operator &erupa tanda M+N maka e)$nd1 akan dikurangi dengan
e)$nd2 .
,alau operator %ang dimasukkan &ukan merupakan salah satu dari )enis
operator di atas* maka ekspresi terse&ut tidak akan diproses* dan user akan mendapatkan pesan &erupa ( 4nalid operatorQD Pe)n($-$$n switch
Pern%ataan switch merupakan pern%ataan %ang diran0ang khusus untuk menangani pengam&ilan keputusan %ang meli&atkan se)umlah alternati'* misaln%a untuk menggantikan pern%ataan if &ertingkat. Bentuk umum pern%ataan switch adalah (
dengan ekspresi dapat &erupa ekspresi &ertipe integer atau &ertipe karakter. /emikian )uga #n"-$n-$*1 * #n"-$n-$*2 * R* #n"-$n-$*n dapat &erupa konstanta integer atau karakter. Setiap pern%ataan+i pern%ataan+1* R * pern%ataan+n7 dapat &erupa pern%ataan tunggal ataupun pern%ataan )amak. /alam hal ini urutan penulisan pern%ataan 0ase tidak &erpengaruh. Proses pen%eleksian &erlangsung se&agai &erikut ( pengu)ian pada switch akan dimulai dari #n"-$n-$*1 . ,alau nilai #n"-$n-$*
1 0o0ok dengan ekspresi maka e)n($-$$n*1 di)alankan. ,ata kun0i break
harus disertakan di &agian akhir setiap pern%ataan case* %ang akan mengarahkan eksekusi ke akhir swit0h. ,alau tern%ata e)n($-$$n*1 tidak sama dengan nilai ekspresi* pengu)ian
dilan)utkan pada konstanta+-* dan &erikutn%a serupa dengan pengu)ian pada #n"-$n-$*1 . @ika sampai pada pengu)ian case %ang terakhir tern%ata tidak ada ke0o0okan*
maka pern%ataan %ang mengikuti kata kun0i default %ang akan dieksekusi. ,ata kun0i default ini &ersi'at opsional. Tanda kurung kurawal tutup >7 menandakan akhir dari proses pen%eleksian
kondisi case.
. PERCOBAAN 1. /engan menggunakan pern%ataan ifelse &ertingkat* &uatlah program untuk memilih penghitungan luas segitiga* persegi pan)ang atau &u)ur sangkar.
-. /engan
menggunakan
pern%ataan
swit0h+0ase*
&uatlah
program
untuk
mengkonersikan nilai huru' ke nilai angka. Huru' A memiliki nilai angka * huru' B memiliki nilai angka "* huru' C memiliki nilai angka -* huru' / memiliki nilai angka 1* sedangkan huru' E memiliki nilai angka .
". /engan menggunakan nested if * &uatlah program untuk men0ari nilai terke0il dari " angka %ang diinputkan. Adapun potongan programn%a adalah(
. ,er)akan soal no - dengan menggunakan pern%ataan if else.
. LAPORAN PRAKTIKUM 1.2 ,er)akan program pada per0o&aan 1 dengan perintah switchcase 1.3 Buatlah flowchart dari per0o&aan 1 sampai per0o&aan dan output hasil eksekusi programn%a
PENGULANGAN PROSES
.1 TUJUAN 1. $en)elaskan proses pengulangan menggunakan pern%ataan for 2. $en)elaskan proses pengulangan menggunakan pern%ataan while 3. $en)elaskan proses pengulangan menggunakan pern%ataan dowhile
.2 TEORI DASAR Pe)n($-$$n for
$engulang suatu proses merupakan tindakan %ang &an%ak di)umpai dalam pemrograman. Pada semua &ahasa pemrograman* pengulangan proses ditangani dengan suatu mekanisme %ang dise&ut loop. /engan menggunakan loop* suatu proses %ang &erulang misaln%a menampilkan tulisan %ang sama seratus kali pada la%ar dapat diimpelementasikan dengan kode program %ang pendek. Pern%ataan pertama %ang digunakan untuk keperluan pengulangan proses adalah pern%ataan 'or. Bentuk pern%ataan ini (
Pern%ataan+pern%ataan terse&ut memerlukan suatu kondisi* se&agai &asis dalam pengam&ilan keputusan. ,ondisi umum %ang dipakai &erupa keadaan &enar dan salah.
for (ungkapan'; ungkapan6; ungkapan7) pern8ataan; ,egunaan dari masing+ masing ungkapan pada pern%ataan 'or. ngkapan1 ( digunakan untuk mem&erikan inisialisasi terhadap aria&el
pengendali loop.
ngkapan- ( dipakai se&agai kondisi untuk keluar dari loop.
ngkapan" ( dipakai se&agai pengatur kenaikan nilai aria&el pengendali loop.
,etiga ungkapan dalam for terse&ut harus dipisahkan dengan tanda titik koma 7.
/alam
hal ini pern%atan &isa &erupa pern%ataan tunggal maupun )amak. @ika
pern%ataann%a &er&entuk
)amak* maka pern%ataan+pern%ataan terse&ut harus
diletakkan di antara kurung kurawal &uka 5=7 dan kurung kurawal tutup 5>7* sehingga 'ormatn%a men)adi (
for (ungkapan'; ungkapan6; ungkapan7 " pern8ataan; pern8ataan; /
Contoh penggunaan 'or* misaln%a untuk menampilkan deretan angka se&agai &erikut (
6 7 + ' ntuk keperluan ini* pern%ataan for %ang digunakan &erupa (
for (bilangan @ 6; bilangan <@ '; bilangan A@ ') printf(B%d&nB, bilangan); ,alau digam&arkan dalam &entuk diagram alir* akan terlihat s&&
G$/+$) .1 D!$')$/ A%!) for
D Eile program $ for'c Contoh pemakaian for untuk membentuk deret naik D #include
6 7 + F G * H ' Pada program di atas* kenaikan terhadap aria&el pengendali loop se&esar 1 positi'7* %ang din%atakan dengan ungkapan
bilangan A@ ' %ang sama artin%a dengan
bilangan @ bilangan A ' Pada 0ontoh %ang meli&atkan pern%ataan for di atas* kenaikan aria&el pengendali loop &erupa nilai positi'. Se&enarn%a kenaikan terhadap aria&el pengendali loop &isa diatur &ernilai negati'. Cara ini dapat digunakan untuk memperoleh deret se&agai &erikut (
F + 7 6 '
ntuk itu selengkapn%a program %ang di&utuhkan adalah se&agai &erikut ( D Eile program $ for6c Contoh pemakaian for membentuk deret turun D #include @ ') printf(B%d&nB, bilangan); /
untuk
Cn-& e#"e#,"! 6
F + 7 6 ' ,adang+kadang di)umpai adan%apern%ataan 'or %ang tidak mengandung &agian ungkapan %ang lengkap &e&erapa ungkapan dikosongkan7. /engan 0ara ini* pern%ataan(
Tampak &ahwa ungkapan %ang &iasa dipakai untuk inisialisasi aria&el pengendali loop tak ada. Se&agai gantin%a pengendalian loop diatur se&elum pern%ataan 'or* &erupa
bilangan @ 6; Pengosongan ini )uga dilakukan pada ungkapan %ang &iasa dipakai untuk menaikkan nilai aria&el pengendali loop. Se&agai gantin%a* di dalam tu&uh loop di&erikan pern%ataan untuk menaikkan nilai aria&el pengendali loop* %aitu &erupa
bilangan A@ '; ngkapan %ang tidak dihilangkan &erupa &ilangan I1. ngkapan ini tetap disertakan karena dipakai se&agai kondisi untuk keluar dari loop. Sesungguhn%a ungkapan %ang dipakai se&agai kondisi keluar dari loop )uga &isa dihilangkan* sehingga &entukn%a men)adi(
for (;;) pern8ataan
Suatu pertan%aan mungkin tim&ul Lalu &agaimana 0aran%a kalau ingin keluar dari loop pada &entuk di atasD. Caran%a adalah dengan menggunakan pern%ataan %ang diran0ang khusus untuk keluar dari loop. $engenai hal ini akan di&ahas pada su& &a& %ang lain. Pe)n($-$$n &!%e
Pada pern%ataan while* penge0ekan terhadap loop dilakukan di &agian awal se&elum tu&uh loop7. Le&ih )elasn%a* &entuk pern%ataan while adalah se&agai &erikut (
:hile (kondisi) pern8ataan;
dengan pern%ataan dapat &erupa pern%ataan tunggal* pern%ataan ma)emuk ataupun pern%ataan kosong. Proses pengulangan terhadap pern%ataan di)elaskan pada gam&ar &erikut (
Gambar 4.2 iagram !lir while
/engan melihat gam&ar 5.-* tampak &ahwa ada kemungkinan pern%ataan %ang merupakan tu&uh loop tidak di)alankan sama sekali* %aitu kalau hasil pengu)ian kondisi while %ang pertama kali tern%ata &ernilai salah.
Contoh pemakaian while misaln%a untuk mengatur agar tom&ol %ang ditekan oleh pemakai program &erupa salah satu diantara U*%* T atau t. 4mpelementasin%a (
Praktikum Aplikasi Pemrograman dengan Bahasa C – Program tudi !eknik "lektro #$%&A
4-6
Contoh eksekusi ( 0ilihlah ? atau 1 0ilihan anda adalah ? 4nisialisasi terhadap aria&el sudahV&enar %ang akan di)alankan pada kondisi while dengan mem&eri nilai awal &ernilai 'alse sudahV&enar 7 dimaksudkan agar tu&uh loop di)alankan minimal sekali.
Pe)n($-$$n "o-while
Bentuk pern%ataan dowhile
do pern8ataan; :hile (kondisi) Pada pern%ataan dowhile* tu&uh loop &erupa pern%ataan*dengan pern%ataan &isa &erupa pern%ataan tunggal* pern%ataan ma)emuk ataupun pern%ataan kosong. Pada pern%ataan do* mula+mula pern%ataan di)alankan. Selan)utn%a* kondisi diu)i.
Seandain%a kondisi &ernilai &enar* maka pern%ataan di)alankan lagi* kemudian kondisi diperiksa kem&ali* dan seterusn%a. ,alau kondisi &ernilai salah pada saat dites* maka pern%ataan tidak di)alankan lagi. ntuk le&ih )elasn%a dapat dilihat pada ;am&ar .". Berdasarkan ;am&ar ." terlihat &ahwa tu&uh loop minimal akan di)alankan sekali.
G$/+$) . D!$')$/ A%!) "o*while
Program &erikut mem&erikan 0ontoh pemakaian do+while untuk mengatur penampilan tulisan WBAHASA CW se&an%ak sepuluh kali. Contoh(
i @ ; do " puts(BS CB); iAA; / :hile(i<'); Pada program di atas* aria&el pen0a0ah dipakai untuk menghitung )umlah tulisan %ang sudah ditampilkan pada la%ar. Selama nilai pen0a0ah kurang dari 1* maka perintah
puts(BS CB); akan dilaksanakan kem&ali Penanganan pem&a0aan tom&ol pada 0ontoh program pilihan.0 %ang memakai while di atas* kalau diimplementasikan dengan memakai dowhile adalah se&agai &erikutD
Contoh eksekusi (
0ilihlah ? atau 1 0ilihan anda adalah 1 $ula+mula tom&ol di&a0a dengan menggunakan getchar 7 dan kemudian di&erikan ke aria&el pilihan. Sesudah itu* aria&el ",d$&8+en$) akan diisi dengan nilai &enar 17 atau salah 7 tergantung dari nilai pilihan. ,alau pilihan &erisi salah satu diantara MUN*M%N* MTN atau MtN* maka sudah &erisi salah satu diantara MUN* M%N* MTN atau MtN* maka sudahV&enar akan &erisi &enar. 9ilai pada aia&el ",d$&8+en$) ini selan)utn%a di)adikan se&agai kondisi dowhile. Pengulangan terhadap pem&a0aan tom&ol akan dilakukan kem&ali selama sudahV&enar &enilai salah.
. PERCOBAAN 17 /engan menggunakan pern%ataan 'or* &uatlah program untuk men)umlahkan integer mulai dari 1 sampai dengan harga &atas %ang di&a0a dari ke%&oard. Pen)umlahan dapat dilakukan dengan menggunakan se&uah tempat penampungan hasil pen)umlahan* dan pen)umlahan dilakukan satu per satu terhadap angka mulai 1 sampai dengan angka %ang di&a0a dengan hasil sementara %ang telah disimpan. @ika angka terakhir telah di)umlahkan* maka penampungan hasil sementara men)adi hasil akhir.
1ampilan$ 9asukkan integer positif $' Iumlah ' sampai '@++
-7 ;unakan loop while untuk mem&uat program %ang dapat men0ari total angka %ang dimasukkan dengan tampilan se&agai &erikut (
9asukkan bilangan ke>' $ + 9au memasukkan data lagi J8tK L 8 9asukkan bilangan ke>6 $ 7 9au memasukkan data lagi J8tK L t 1otal bilangan @ * "7 Buatlah program %ang menentukan se&uah integer dengan a0ak* dan mem&a0a se&uah integer &erulang kali sampai integer %ang di&a0a sama dengan integer %ang ditentukan se0ara a0ak.
1ampilan$ misalkan angka hasil adalah) ngka tebakan$7
pengacakan
1ebakan terlalu kecil ngka 1ebakan$++ 1ebakan 1erlalu besar ngka 1ebakan$+ 1ebakan benar
.5 LAPORAN PRAKTIKUM Buatlah flowchart dari per0o&aan 1 sampai per0o&aan " dan output hasil eksekusi programn%a
FUNGSI DASAR 5.1 TUJUAN 17 $emahami 'ungsi dasar &aha0a C -7 $em&uat
5.2 TEORI DASAR Pen'e)-!$n
men)adi
terstruktur*
sehingga
mudah
dipahami
dan
mudah
dikem&angkan. /engan memisahkan langkah+langkah detail ke satu atau le&ih 'ungsi+'ungsi* maka
'ungsi utama main77 men)adi le&ih pendek* )elas dan mudah dimengerti. &7 /apat mengurangi pengulangan duplikasi7 kode. Langkah+langkah program %ang sama dan dipakai &erulang+ulang di program dapat dituliskan sekali sa)a se0ara terpisah dalam &entuk 'ungsi+'ungsi. Selan)utn%a &agian program %ang mem&utuhkan langkah+langkah ini tidak perlu selalu menuliskann%a* tetapi 0ukup memanggil 'ungsi'ungsi terse&ut.
F,n'"! D$"$)
printf'( * %aitu untuk menampilkan in'ormasi atau data ke la%ar.
scanf'( * %aitu untuk mem&a0a kode tom&ol %ang diinputkan.
Pada umumn%a 'ungsi memerlukan nilai masukan atau parameter %ang dise&ut se&agai argumen. 9ilai masukan ini akan diolah oleh 'ungsi. Hasil akhir 'ungsi &erupa se&uah nilai dise&ut se&agai return alue atau nilai keluaran 'ungsi7. Gleh karena itu 'ungsi
sering digam&arkan se&agai Wkotak gelapW seperti ditun)ukkan pada gam&ar di &awah ini.
G$/+$) 5.1 D!$')$/ Mde% F,n'"!
Penggam&aran se&agai kotak gelap di antaran%a men)elaskan &ahwa &agian dalam 'ungsi &ersi'at pri&adi &agi 'ungsi. Tak ada suatu pern%ataan di luar 'ungsi %ang &isa mengakses &agian dalam 'ungsi* selain melalui parameter atau aria&el eksternal %ang akan di&ahas &elakangan7. $isaln%a melakukan goto dari pern%ataan di luar 'ungsi ke pern%ataan dalam 'ungsi adalah tidak diperkenankan.
Bentuk umum dari de'inisi se&uah 'ungsi adalah se&agai &erikut
,eterangan ( tipe+keluaran+'ungsi* dapat &erupa salah satu tipe data C* misaln%a 0har atau int .
,alau penentu tipe tidak dise&utkan maka dianggap &ertipe int se0ara de'ault7. tu&uh 'ungsi &erisi deklarasi aria&el kalau ada7 dan statemen+statemen %ang akan
melakukan tugas %ang akan di&erikan kepada 'ungsi %ang &ersangkutan. Tu&uh 'ungsi ini ditulis di dalam tanda kurung kurawal &uka dan kurung kurawal tutup. Se&uah 'ungsi %ang sederhana &isa sa)a tidak mengandung parameter sama sekali dan tentu sa)a untuk keadaan ini deklarasi parameter )uga tidak ada. Contoh (
int inisialisasi() " return(); /
Pada 'ungsi di atas ( tipe keluaran 'ungsi tidak dise&utkan* &erarti keluaran 'ungsi &er tipe int. inisialisasi adalah nama 'ungsi Tanda 7 sesudah nama 'ungsi men%atakan &ahwa 'ungsi tak memiliki
parameter. Tanda = dan > adalah awal dan akhir 'ungsi return() merupakan se&uah pern%ataan dalam tu&uh 'ungsi.
Me/+e)!#$n N!%$! Ke%,$)$n F,n'"!
Suatu 'ungsi di&uat untuk maksud men%elesaikan tugas tertentu. Suatu 'ungsi dapat han%a melakukan suatu tugas sa)a tanpa mem&erikan suatu hasil keluaran atau melakukan suatu tugas dan kemudian mem&erikan hasil keluaran.
/alam tu&uh 'ungsi* pern%ataan %ang digunakan untuk mem&erikan nilai keluaran 'ungsi &erupa return. Se&agai 0ontoh* pada 'ungsi inisialisasi 7 di atas terdapat pern%ataan return7 merupakan pern%ataan untuk mem&erikan nilai keluaran 'ungsi &erupa nol. Selengkapn%a perhatikan program di &awah ini
D Eile program $ inisialc Contoh pembuatan fungsi D int inisialisasi(); #include
Contoh eksekusi :
M @ 8 @ Program di atas sekaligus men)elaskan &ahwa suatu 'ungsi 0ukup dide'inisikan satu kali tetapi &isa digunakan &e&erapa kali. Pada keadaan sema0am ini seandain%a tu&uh 'ungsi mengandung &an%ak pern%ataan* maka pemakaian 'ungsi dapat menghindari duplikasi kode dan tentu sa)a menghemat penulisan program maupun kode dalam memori.
G$/+$) 5.2 P)"e" Pe/$n''!%$n F,n'"!
$isaln%a pada saat pern%ataan
M @ inisialisasi(); di)alankan* mula+mula eksekusi akan diarahkan ke 'ungsi inisialisasi7* selan)utn%a suatu nilai keluaran hasil 'ungsi7 akhir 'ungsi di&erikan ke X. Proses %ang serupa* dilakukan untuk pern%ataan
8 @ inisialisasi(); Bagi suatu 'ungsi* )ika suatu pern%ataan return dieksekusi* maka eksekusi terhadap 'ungsi akan &erakhir dan nilai pada parameter return akan men)adi keluaran 'ungsi. ntuk 'ungsi %ang tidak memiliki pern%ataan return* tanda > pada &agian akhir 'ungsi akan men%atakan akhir eksekusi 'ungsi. /i &awah ini di&erikan 0ontoh se&uah 'ungsi %ang mengandung dua &uah pern%ataan return.
int minimum(int M, int 8) "
if (M < 8) return(M); else return(8); / Pada 'ungsi di atas terdapat dua &uah parameter &erupa X dan %. Gleh karena itu 'ungsi )uga mengandung &agian untuk mendeklarasikan parameter* %ang men%atakan X dan % &ertipe int . Adapun penentuan nilai keluaran 'ungsi dilakukan pada tu&uh 'ungsi* &erupa pern%ataan
if (M < 8) return(M); else return(8); %ang men%atakan ( )ika X I % maka nilai keluaran 'ungsi adalah se&esar nilai X. untuk keadaan lainn%a X J %7 maka keluaran 'ungsi adalah se&esar %.
Se%en'#$n($ e)&$-!#$n )')$/ d! +$$& !n!.
D Eile program $ minimum'c D #include
Contoh eksekusi : 9asukkan nilai a @ 9asukkan nilai b @ 6 ilangan terkecil antara dan 6 adalah 6 F,n'"! Den'$n Ke%,$)$n B,#$n In-e'e)
ntuk 'ungsi %ang mempun%ai keluaran &ertipe &ukan integer* maka 'ungsi haruslah dide'iniskan dengan diawali tipe keluaran 'ungsin%a ditulis di depan nama 'ungsi7. Se&agai 0ontoh untuk menghasilkan nilai terke0il di antara dua &uah nilai real* maka de'inisin%a &erupa (
float minimum(float M, float 8) " if (M < 8) return(M); else return(8); / Perhatikan* di depan nama minimum di&erikan tipe keluaran 'ungsi &erupa float . Seluruh parameter sendiri )uga dide'inisikan dengan tipe float . Selengkapn%a adalah se&agai &erikut (
D Eile program $ minimum6c D #include
return(M); else return(8); / Cn-& e#"e#,"! 6
9asukkan nilai a @ ++ 9asukkan nilai b @ F67 ilangan terkecil antara + dan F67 adalah ++ ,husus untuk 'ungsi %ang diran0ang tanpa mem&erikan nilai keluaran melainkan han%a men)alankan suatu tugas khusus7 &iasa dide'inisikan dengan diawali kata kun0i oid di depan nama 'ungsi7. Se&agai 0ontoh perhatikan program di &awah ini.
Contoh Keluaran
P)--!e F,n'"!
Prototipe 'ungsi digunakan untuk men)elaskan kepada kompiler mengenai (
tipe keluaran 'ungsi
)umlah parameter
tipe dari masing+ masing parameter
Bagi kompiler*
in'ormasi dalam prototipe akan dipakai untuk memeriksa
kea&sahan *aliditas7
parameter
dalam
pemanggilan 'ungsi. Salah
satu
keuntungann%a adalah* kompiler akan melakukan konersi seandain%a antara tipe parameter dalam 'ungsi dan parameter saat pemanggilan 'ungsi tidak sama* atau akan menun)ukan kesalahan &ila )umlah parameter dalam de'inisi dan saat pemanggilan &er&eda. Contoh prototipe 'ungsi
G$/+$) 5. P)--!e F,n'"!
5. PERCOBAAN 17 /engan menggunakan pern%ataan 'or* &uatlah program untuk men)umlahkan integer mulai dari 1 sampai dengan harga &atas %ang di&a0a dari ke%&oard. Pen)umlahan dapat dilakukan dengan menggunakan se&uah tempat penampungan hasil pen)umlahan* dan pen)umlahan dilakukan satu per satu terhadap angka mulai 1 sampai dengan angka %ang di&a0a dengan hasil sementara %ang telah disimpan. @ika angka terakhir telah di)umlahkan* maka penampungan hasil sementara men)adi hasil akhir.
1ampilan$ 9asukkan integer positif $' Iumlah ' sampai '@++
-7 ;unakan loop while untuk mem&uat program %ang dapat men0ari total angka %ang dimasukkan dengan tampilan se&agai &erikut (
9asukkan bilangan ke>' $ + 9au memasukkan data lagi J8tK L 8
9asukkan bilangan ke>6 $ 7 9au memasukkan data lagi J8tK L t 1otal bilangan @ * "7 Buatlah program %ang menentukan se&uah integer dengan a0ak* dan mem&a0a se&uah integer &erulang kali sampai integer %ang di&a0a sama dengan integer %ang ditentukan se0ara a0ak.
1ampilan$ misalkan angka hasil adalah) ngka tebakan$7
pengacakan
1ebakan terlalu kecil ngka 1ebakan$++ 1ebakan 1erlalu besar ngka 1ebakan$+ 1ebakan benar
5. LAPORAN PRAKTIKUM Buatlah flowchart dari per0o&aan 1 sampai per0o&aan " dan output hasil eksekusi programn%a
FUNGSI MATEMATIKA 9.1 TUJUAN 1. $en)elaskan 'ungsi matematika dalam &ahasa C. -. $enerapkan
'ungsi+'ungsi
matematika
%ang
terdapat
dalam
C
dalam
men%elesaikan permasalahan.
9.2 TEORI DASAR Bahasa C men%ediakan &awaan 'ungsi matematika %ang terdapat dalam pustaka 5ibrar)7 ( /$-&.&. Agar 'ungsi matematika terse&ut dapat digunakan dalam program maka 'ungsi matematika harus disertakan dalam program melalui
pern%ataan(
#include