modul praktikum c

29
Algoritma dan Pemograman I ( Bahasa Pemograman C ) Rizal, S.Si., M.IT

Upload: dwi-anita

Post on 17-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

kkkkkkkkkkkkkkkkkkkk

TRANSCRIPT

 

 

� �������� ��� �

Algoritma dan Pemograman I ( Bahasa Pemograman C ) 

Rizal, S.Si., M.IT 

2  

MODUL I

PENGENALAN BAHASA C

A. MENGENAL BAHASA C

Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh

Martin Richards pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken

Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun

1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie

sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell

Laboratories). Bahasa C pertama kali digunakan di computer Digital Equipment

Corporation PDP-11 yang menggunakan system operasi UNIX. Hingga saat ini

penggunaan bahasa C telah merata di seluruh dunia. Hampir semua perguruan tinggi di

dunia menjadikan bahasa C sebagai salah satu mata kuliah wajib. Selain itu, banyak bahasa

pemrograman populer seperti PHP dan Java menggunakan sintaks dasar yang mirip bahasa

C. Oleh karena itu, kita juga sangat perlu mempelajarinya.

Banyak compiler yang telah dibuat untuk menjalakan program dalam bahasa C,

untuk praktikum ini akan digunakan compiler MinGW Developer Studio 2.05. Pemilihan

compiler ini disebabkan sudah dapat running (dijalankan) pada system windows XP dan

sudah bersifat GUI (Graphical User Interface), sehingga diharapkan akan memudahkan

praktikan dalam melakukan Praktikum ini.

B. MENGENAL EDITOR MinGW Developer Studio 2.05

Untuk menjalankan editor ini, hanya perlu menekan START PROGRAM

MinGW Developer Studio MinGW Developer Studio. Setelah ini dilakukan maka

akan tampilan layar seperti berikut ini:

3  

Pada dialog box New terdapat dua buah Tab yaitu Project dan Files. Tab Project

digunakan untuk memilih jenis project yang akan dibangun, sedangkan tab Files digunakan

untuk memilih jenis file yang akan dimasukkan kedalam project.

Untuk praktikum ini, kita menggunakan project yang berjenis Win32 Console

Application (project yang berbasis DOS). Hal ini disebakan resource computer tidak

banyak digunakan untuk praktikum ini, sehingga program bisa berjalan dengan cepat.

Pada textbox project name, diisikan dengan nama project yang akan kita

buat/bangun ini. Sedangkan pada textbox location, kita memilih lokasi tempat

penyimpanan project di harddisk. Setelah tombol OK di tekan, layar akan berganti dengan

gambar berikut:

4  

Terdapat sebuah listbox bernama FileView, itu merupakan navigasi untuk project kita ini.

Kemudian di menu bar klik File New sehingga akan mengeluarkan sebuah dialog menu

lagi, seperti gambar berikut:

Pada textbox File Name, diisi dengan nama file yang akan kita insert kedalam Project.

Terdapat 4 jenis file yang bias diinputkan kedalam project yaitu source file, header file,

resource file, dan text file.

Source file digunakan untuk menuliskan source code (coding/sintaks-sintaks) dari

program yang akan dibangun. Header file digunakan untuk membuat sebuah file header

(file library) yang baru yang tidak disediakan oleh compiler. Resource file digunakan

untuk menghubungkan coding program dengan coding dari program yang lain. Textfile

digunakan untuk menuliskan file teks (seumpama file read me, instruction, dll).

Silahkan tuliskan nama file di textbox file name, misal coba, kemudian klik sekali

pada source file (C/C++ source file) dan klik OK. Tampilan program akan berubah seperti

gambar berikut:

5  

Pada tab coba.cpp (nama file sesuai dengan nama yang anda berikan pada textbox

file name). Dilayar tersebut kita menuliskan sintak-sintak (source code) program yang akan

kita buat. Untuk percobaan pertama ini, dilayar tersebut silahkan ketikkan source code

sebagai berikut: #include<stdio.h> #include<conio.h> int main() { printf(“Selamat Belajar Bahasa C”); return 0; }

Harus diperhatikan, compiler C bersifat case sensitive. Artinya penulisan sintaks harus

diperhatikan huruf besar dan huruf kecil. Nim dan nim merupakan dua penulisan yang

berbeda di dalam bahasa C.

Setelah selesai, silahkan compile coding tersebut dengan mengklik icon compile atau

dengan menekan shortcut CTRL+F7. Perintah ini dilakukan untuk mengcompile coding

sebelum coding tersebut di-generate file objeknya. Apabila ada kesalahan, dapat dilihat di

layar Build (layar dibawah layar coding). Pesan-pesan kesalahan akan ditampilkan dilayar

tersebut jika ada.

6  

Apabila tidak ada kesalahan, untuk men-generate file objek, klik icon menruning

program atau dengan menekan shortcut CTRL+F5. Keluar sebuah kotak dialog dan klik

OK. Apabila berhasil, maka dilayar akan keluar tampilan seperti berikut ini:

Silahkan ubah source code (coding) di layar coba.cpp dengan sintaks berikut: #include<stdio.h> #include<conio.h> int main() { printf(“Nama: nama saya”);

printf(“Nim: Nim Saya”); printf(“Angka 100 nilai yang mau saya dapat”);

return 0; }

Setelah selesai, silahkan compile dan run lagi program tersebut dan lihat/perhatikan

hasilnya.

C. STRUKTUR DASAR BAHASA C

Bahasa C memiliki beberapa eleman dasar antara lain :

1. Karakter

Mengacu dari sistem stardard kode internasional ANSI karakter yang dikenal didalam

bahasa C adalah karakter abjad/huruf, angka, dan simbol-simbol khusus.

2. Keyword

7  

Seperti bahasa program lainnya,bahasa C memiliki keyword atau dalam istilah

lainnya adalah reserverd word. Keyword adalah suatu kata yang memiliki makna dan

fungsi tertentu. Hampir semua keyword didalam C dituliskan dalam dalam format

huruf kecil.

3. Identifier

Merupakan pengenal baru yang digunakan secara bebas untuk penamaan variabel,

konstanta, fungsi, kelas, template, dan namespace.

4. Tipe data

Merupakan pengelompokan data yang digunakan untuk merepresentasikan jenis

sebuah nilai yang terdapat pada program. Sebuah tipe data dikelompokkan

berdasarkan nilai jangkauan, penggunaan sejumlah memori (RAM), dan faktor

ketelitian. Bahasa C mengelompokkan

a. Tipe data dasar

Bahasa C memiliki beberapa tipe data dasar

Tipe data Nama Memory (bit) Jangkauan nilai Presisi

(digit)

Bilangan bulat int 16 atau 32

-32768 s/d 32767 Atau

-2147483648 s/d 2147483647 -

Bilangan riil Float 32 1.2E-38 s/d 3.4E+38 6 Double 64 2.3E-308 s/d 1.7E+308 15 Long double 80 3.4E-4932 s/d 1.1E+4932 19

Karakter Char 8 -128 s/d 127 - Enumerasi Enum 16 -32768 s/d 32767 -

b. Tipe data pemodif

Terdiri dari long, short, signed, unsigned. Keempat tipe tersebut digunakan

untuk memodifikasi tipe data dasar yang ada. Seperti contoh berikut ini :

int main() { /*variabel angka bertipe int dengan jangkauan antara - 2147483648 s/d 2147483647*/ long int angka; /*variabel nilai bertipe int dengan jangkauan antara 0 s/d 65,535*/ unsigned int nilai; }

8  

c. Tipe data tersturktur

Terdiri dari tipe data array dan struktur

d. Tipe data pointer

Yaitu tipe yang digunakan untuk membuat variable memory yang dinamis bisa

digunakan untuk menyimpan alamat memori ataupun data.

5. Operator

Operator berkaitan erat dengan kata operasi. Operator ditandai dengan sebuah atau

beberapa simbol dan kata. Bahasa C memiliki beragam jenis operator dengan

kelompok operator BINARY sebagai berikut :

a. Operator assignment operator Symbol Operator Symbol

Penugasan = Penugasan perkalian *= Penugasan hasil bagi /= Penugasan sisa bagi %= Penugasan penjumlahan += Penugasan pengurangan -= Penugasan geser kiri <<= Penugasan geser kanan >>= Penugasan operasi AND &= Penugasan operasi XOR ^= Penugasan operasi OR !=

b. Operator aritmatika operator Symbol Operator Symbol

Penjumlahan + Sisa bagi % Pengurangan - Penambahan dengan nilai ++ Perkalian * Pengurangan dengan nilai -- Pembagian /

c. Operator Bit operator Symbol Operator Symbol

Geser Kiri << Operator OR ! Geser Kanan >> Operator XOR ^ AND & Komplemen ~

d. Operator Logika Operator Symbol Operator Symbol Operator Symbol

AND && OR || NOT !

e. Operator relasi

operator Symbol Operator Symbol

Kurang dari < Tidak sama dengan !=

9  

Lebih dari > Kurang sama dengan <= Sama dengan == Lebih sama dengan >=

f. Operator Pointer Operator Simbol

Mengambil data alamat memori & Mengambil data dari alamat memori *

6. Punctuator

Punctuator adalah simbol-simbol yang berkenaan sebagai tanda baca pada struktur

penulisan bahasa C. Punctuator tersebut adalah sebagai berikut :

[ ] Bracket , Koma … Ellipsis ( ) Parentheses : Colon * Asterisk { } Braces ; Semicolon = Equal Sign# Pound Sign

7. Variable dan konstanta

Variabel dan konstanta identik dengan penamaan identifier. Identifier untuk variabel

digunakan nilai yang dinamis, sedangkan konstanta untuk nilai tetapan. Sebagai

contoh : int angka=10; //identifier angka digunakan sebagai konstanta char ch; // indentifier ch digunakan sebagai variabel

8. Operasi I/O dalam C/C++

Bahasa C mengenalkan banyak ragam jenis operasi I/O (input/output). Hal ini

dipengaruhi oleh file header yang digunakan. Misalkan pada bahasa C, diperkenalkan

operasi I/O printf dan scanf, dimana perintah I/O ini berada didalam file header

stdio.h. Lalu kemudian bahasa C++ mengembangkannya pada file header lainnya

yaitu iostream.h, dimana didalamnya diperkenalkan standart I/O lainnya, salah

satunya adalah cout dan cin. Perhatikan contoh berikut ini : #include <stdio.h> #include <conio.h> int main() { int no_absen; char nama[15]; printf(“hallo, selamat datang\n”); printf(“Masukkan nama anda : “); scanf(“%s”,&nama); printf(”Masukkan no absen anda : “);

10  

scanf(“%d”,&no_absen); return 0; }

dari contoh diatas, file header yang digunakan adalah stdio.h dan conio.h

Latihan:

1. Ketik source code berikut, kemudian perhatikan hasilnya:

#include <stdio.h> #include<conio.h> int main() { int c; double a; float b; long int x; char nama[15]; char F; printf("Masukkan angka berdasarkan tipe data\n"); printf("Bilangan Bulat (int):");scanf("%d",&c); printf("Bilangan Riil (float):");scanf("%f",&b); printf("Bilangan double:");scanf("%lf",&a); printf("Bilangan long Integer:");scanf("%li",&x); printf("Bilangan Karakter:");scanf("%c",&F); printf("Masukkan nama anda (string) : ");scanf("%s",&nama); printf("\n Tampilkan kembali yang anda input tadi\n"); printf("integer: %d\nLong Integer: %li\nFloat: %f\nLong Float: %lf\nKarakter: %c\nString: %s",c,x,b,a,F,nama); return 0; }

2. Buatlah program menjumlahkan dua buah angka dimana angka yang akan dijumlahkan merupakan angka yang diinputkan

3. Buatlah program untuk output berikut Laboratorium Pemograman Teknik Informatika Unimal

=============================================================== NIM : <input nim> NAMA : <input_nama> ALAMAT : <input_alamat> =============================================================== IDENTITAS ANDA: NIM NAMA ALAMAT =============================================================== <input_nim> <input_nama> <input_alamat> ===============================================================

11  

MODUL II

PERNYATAAN KENDALI - PENGUJIAN

A. PERNYATAAN KENDALI IF

Dalam bahasa C, penyataan kendali IF pada dasarnya memiliki struktur sebagai berikut: jika digambarkan dengan diagram alir:

Pengembangan dari bentuk dasar diatas apabila ada pernyataan lainnya adalah sebagai

berikut :

Jadi, dari bentuk dasar sebelumnya bisa dikembangkan lagi menjadi bentuk diagram alir

dibawah ini.

Namun jika jumlah kondisi lebih dari 2 keadaan maka penyusunannya bisa dituliskan

seperti sintaks berikut ini :

If (kondisi/ekspresi) { pernyataan;}

If(ekspresi) {pernyataan benar;}else {pernyataan salah;}

If(ekspresi1) {pernyataan_1;} Else if(ekspresi2) {pernyataan_2;} … … Else if(ekspresiN) {pernyataan_N;} Else { Pernyataan lain;}

...... 2.1

...... 2.2

...... 2.3

12  

Pada kondisi tertentu, terkadang terdapat kasus berantai,dimana didalam proses seleksi

terdapat proses seleksi juga. Hal ini dapat dilakukan oleh if. Kasus ini disebut oleh if

sebagai nested if (if bersarang) dan digambarkan seperti gambar berikut :

B. PERNYATAAN KENDALI SWITCH

Selain if, ada juga alternatif pemilih kondisi yaitu menggunakan pernyataan kendali switch.

Sedikit berbeda dengan if, switch digunakan untuk menguji nilai konstanta atau tetapan,

sedangkan if bisa bervariasi. Bentuk umum switch adalah berikut :

Seperti halnya if, switch juga bisa dituliskan secara bersarang (nested switch).

If(ekspresi_1) { If(ekspresi_11) { Pernyataan_jika_ekspresi_11_benar;} Else { pernyataan_jika_ekspresi_11_salah;} } Else { pernyataan_jika_ekspresi_1_salah;}

...... 2.4

switch(ungkapan) { Case nilai_1: pernyataan_jika_nilai_1_benar; break; Case nilai_2: pernyataan_jika_nilai_2_benar; break; … … Case nilai_N: pernyataan_jika_nilai_N_benar; break; Default: pernyataan_lain; }

switch(ungkapan) { Case nilai_1: switch(ungkapan) { Case nilai_1: jika_nilai_1_benar; break; Case nilai_2: jika_nilai_2_benar; break; … … Case nilai_N: jika_nilai_N_benar; break; Default: pernyataan_lain; }break; Case nilai_2: pernyataan_jika_nilai_2_benar; break; … … Case nilai_N: pernyataan_jika_nilai_N_benar; break; Default: pernyataan_lain; }

...... 2.5

.... 2.6

13  

C. LATIHAN a. Latihan untuk struktur 2.1. Tulislah listing program berikut:

#include <stdio.h> #include<conio.h> int main() {

int a,c=10; printf("masukkan sebuah nilai:");scanf("%d",&a); if(a<10) { printf("Nilai %d lebih kecil dari %d\n",a,c);} printf("Jumlah %d+%d=%d\n",a,c,a+c); return 0;

} Perhatikan Output yang diberikan oleh program jika di berikan input angka yang lebih

kecil dari 10 dan angka yang lebih besar dari 10.

b. Latihan untuk struktur 2.2. Tulislah listing program berikut: #include <stdio.h> #include<conio.h> int main() { int a,c; printf("masukkan nilai angka pertama:");scanf("%d",&a); printf("masukkan nilai angka kedua:");scanf("%d",&c); if(a<c) {printf("Nilai %d lebih kecil dari %d\n",a,c);} else {printf("Nilai %d lebih besar dari %d\n",a,c);} return 0; }

Perhatikan Output yang diberikan oleh program jika di berikan input angka pertama 4

dan angka kedua 5, serta angka pertama 5 dan angka kedua 4.

c. Latihan untuk struktur 2.3. Tulislah listing program berikut: int main() { int a,b,c; printf("masukkan nilai angka pertama:");scanf("%d",&a); printf("masukkan nilai angka kedua:");scanf("%d",&b); printf("masukkan nilai angka ketiga:");scanf("%d",&c); if(a>c && a>b) { printf("Angka %d terbesar dari %d dan %d \n",a,b,c);} else if (c>a && c>b) {printf("Angka %d terbesar dari %d dan %d \n",c,b,a);} Else

{printf("Angka %d terbesar dari %d dan %d \n",b,c,a);} return 0; }

Perhatikan Output yang diberikan oleh program

14  

d. Latihan untuk struktur 2.4. Tulislah listing program berikut:  int main() { int a,b,c; printf("masukkan nilai angka pertama:");scanf("%d",&a); printf("masukkan nilai angka kedua:");scanf("%d",&b); printf("masukkan nilai angka ketiga:");scanf("%d",&c); if(a>c) { if(a>b) printf("Angka %d terbesar dari %d dan %d \n",a,b,c); else printf("Angka %d terbesar dari %d dan %d \n",b,c,a); } else if (c>a) { if(c>b) printf("Angka %d terbesar dari %d dan %d \n",c,b,a); else printf("Angka %d terbesar dari %d dan %d \n",b,c,a); } else { printf("Angka %d terbesar dari %d dan %d \n",b,c,a); } return 0; } Perhatikan Output yang diberikan oleh program

e. Latihan untuk struktur 2.5. Tulislah listing program berikut: int main() { int a,b,c; printf("masukkan sebuah angka antara 1 - 3:");scanf("%d",&a); switch(a) { case 1: printf("Anda Memasukkan angka satu");break; case 2: printf("Anda Memasukkan angka dua"); break; case 3: printf("Anda Memasukkan Angka Tiga");break; default: printf("Inputan Salah, Input angka 1-3"); } return 0; } Perhatikan Output yang diberikan oleh program jika diinputkan angka 3 dan angka 5

f. Latihan untuk struktur 2.6. Tulislah listing program berikut: int main() { char unit; int j; printf("Anda Unit Apa? (A/B/C):");scanf("%c",&unit); switch(unit)

15  

{ case 'A': printf("Apa Jenis Kelamin Anda (L/P)?:\n");

printf("Angka 1 untuk laki-laki dan angka 2 untuk perempuan: ");scanf("%d",&j);

switch(j) {

case 1: printf("Anda dari Unit %c yang berjenis kelamin Laki-laki",unit);break;

case 2: printf("Anda dari Unit %c yang berjenis kelamin Perempuan",unit);break;

default: printf("Inputan jenis jelamin salah"); } break;

case 'B': printf("Apa Jenis Kelamin Anda (L/P)?:\n"); printf("Angka 1 untuk laki-laki dan angka 2 untuk perempuan: ");scanf("%d",&j); switch(j) { case 1: printf("Anda dari Unit %c yang berjenis kelamin

Laki-laki",unit);break; case 2: printf("Anda dari Unit %c yang berjenis kelamin

Perempuan",unit);break; default: printf("Inputan jenis jelamin salah");

} break; case 'C': printf("Apa Jenis Kelamin Anda (L/P)?:\n");

printf("Angka 1 untuk laki-laki dan angka 2 untuk perempuan: ");scanf("%d",&j);

switch(j) { case 1: printf("Anda dari Unit %c yang berjenis kelamin

Laki- Laki",unit);break; case 2: printf("Anda dari Unit %c yang berjenis kelamin

Perempuan",unit);break; default: printf("Inputan jenis jelamin salah");

} break; default: printf("Inputan Salah, Input Unit A/B/C");

} return 0; } Perhatikan Output yang diberikan oleh program.

D. TUGAS:

Pada sebuah toko terdapat beberapa jenis produk susu dan beberapa ukuran seperti tampak

pada table harga berikut:

Produk Susu Ukuran 400gr (K) Ukuran 900gr (B) NUTRILON Rp. 77.000,- Rp. 145.000,- PROMIL Rp. 45.000,- Rp. 90.000,- SIMILAC Rp. 90.000,- Rp. 175.000,-

Buatlah program dengan inputan nama produk dan ukuran yang akan menghasilkan output

harga dari produk tersebut.

16  

MODUL III

PERNYATAAN KENDALI – PERULANGAN

A. TEORI DASAR

Looping adalah pengulangan perintah-perintah sampai mencapai keadaan tertentu. Struktur

perulangan terdiri atas dua bagian :

1) Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk

melaksanakan perulangan

2) Isi atau badan perulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang.

Pada dasarnya sebuah proses looping berkaitan erat dengan kendali uji. Dimana kendali uji

digunakan untuk menghentikan segala aktifitas berulang jika memenuhi suatu persyaratan

tertentu. Pada umumnya proses looping bisa digambarkan pada diagram alir berikut ini :

B. BENTUK PERULANGAN FOR

Pernyataan for digunakan untuk menghasilkan pengulangan (looping) beberapa kali tanpa

penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah

diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka

pernyataan akan terus dieksekusi.

Bentuk struktur dari perulangan for adalah sebagai berikut:

……….. 3.1

Penjelasan bagian-bagian for :

Bagian inisialisasi wajib diberikan sebagai batas awal sebuah perulangan.

for (insialisasi; kondisi; perubahan) { Pernyataan; }

17  

Bagian kondisi bersifat optional, yaitu jika diberikan maka proses looping akan

berlangsung selama syarat memenuhi kondisi. Namun jika tidak, maka proses

looping akan dilakukan tanpa batas.

Bagian perubahan juga bersifat optional, yaitu jika diberikan maka proses looping

akan berlangsung seiring dengan proses perubahan variabel peubah. Sebaliknya

proses looping akan berlangsung dengan isi variable peubah konstan/tetap.

Pernyataan (bentuk) perulangan for juga bisa dibuat sebagai sebuah perulangan bersarang

(nested loop), dimana strukturnya adalah sebagai berikut:

…… 3.2

C. BENTUK PERULANGAN WHILE

Pernyataan while merupakan salah satu pernyataan yang berguna untuk memproses suatu

pernyataan atau beberapa pernyataan beberapa kali tanpa diketahui pasti berapa kali

perulangan tersebut akan dilakukan. Pernyataan while memungkinkan statemen-statemen

yang ada didalamnya tidak diakukan sama sekali. Struktur umum dari perulangan while

adalah sebagai berikut:

…… 3.3

Pernyataan akan dilaksanakan (dijalankan) apabila kondisi bernilai benar (kondisi

terpenuhi), jika kondisi sudah bernilai salah maka perulangan akan berhenti.

D. BENTUK PERULANGAN DO…WHILE

Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…while,

pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi.

Bentuk umum dari perulangan do…while adalah:

for (insialisasi; kondisi; perubahan) { Pernyataan; for (insialisasi; kondisi; perubahan) { Pernyataan; } }

Inisialisasi; while (kondisi) { Pernyataan; Perubahan; }

18  

….. 3.4

Pernyataan akan dilaksanakan selama kodisi masih dalam keadaan benar. Sama seperti

perulangan while, hanya saja pernyataan paling sedikit akan dilaksanakan sekali.

E. BENTUK PERULANGAN CONTINUE-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 iterasi pada saat tersebut. Pernyataan continue

digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya.

Bentuk struktur dari perulangan for adalah sebagai berikut:

….. 3.5

F. PERNYATAAN GOTO

Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel

yang ditandai dengan tanda “ : “.

Bentuk Umumnya :

….. 3.6

Dari bentuk diatas dapat dilihat bahwa apabila pernyataan goto dijalankan, maka

pernyataan_3 akan dijalankan sedangkan pernyataan_1 dan pernyataan_2 akan dilewati

(tidak akan dijalankan).

Inisialisasi; do { pernyataan; perubahan; } while(kondisi);

for(insialisasi; kondisi; perubahan) { if(kondisi) continue; { pernyataan; } if(kondisi) break; }

goto bawah; Pernyataan_1; Pernyataan_2; bawah: pernyataan_3;

19  

G. LATIHAN

1) Latihan untuk struktur 3.1 int main() { int i; for(i=1;i<=10;i++) { printf(“%d\t”,i); } return 0; }

Perhatikan output yang diberikan oleh program.

2) Latihan untuk struktur 3.2 int main() { int i,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { printf(“*”); } printf(“\n”); } return 0; }

Perhatikan output yang diberikan oleh program.

3) Latihan untuk struktur 3.3 int main() { int i; i=1; while(i<=10) { printf(“%d\t”,i); i=i+1; } return 0; }

Perhatikan output yang diberikan oleh program.

4) Latihan untuk struktur 3.4 int main() { int i; i=1; do

20  

{ printf(“%d\t”,i); i=i+1; }while(i<=10); return 0; }

Perhatikan output yang diberikan oleh program.

5) Latihan untuk struktur 3.5 int main() { int i,j; for(i=1;i<=10;i++) { if(i==4) continue; { printf("%d\t",i); } if(i==8) break; } return 0; }

Perhatikan outputnya, ketika nilai i=4, maka program akan menambahkan nilai i

sehingga nilai i menjadi 5. Dan perulangan akan berhenti (dihentikan) apabila nilai i

sudah bernilai 8 (i=8).

6) Latihan untuk struktur 3.6 int main() { printf("Pernyataan Pertama\n"); goto bawah; printf("Pernyataan Kedua\n"); bawah: printf("Pernyataan Ketiga"); return 0; }

Perhatikan output yang dihasilkan, pernyataan “Pernyataan Kedua” tidak akan

ditampilkan ke output disebabkan ketika baris goto bawah; ditemukan, maka program

akan langsung menuju ke baris “ bawah: printf(“Pernyataan Ketiga”); “.

H. TUGAS

1) Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1

2) Buatlah program untuk mencetak (gunakan perulangan while atau for)

* * * * * * * * * *

21  

3) Buatlah program yang menampilkan 5 buah bilangan, yaitu mulai dari bilangan ke 5

sampai bilangan ke 1 dengan nilai awal bilangan 8. Tampilan bilangan tersebut

adalah menurun dan contohnya adalah : bilangan ke 5, i=3 (diperoleh dari 8-5) dan

seterusnya sampai bilangan 1, i=7 (diperoleh dari 8-1=7).

22  

MODUL IV

FUNGSI

A. TEORI DASAR

Secara harfiah, struktur penulisan didalam bahasa C disusun secara modular (ter-

subprogram). Bahkan pada program utamanya juga berbentuk modul. Secara umum bentuk

fungsi didalam C adalah sebagai berikut :

Setiap fungsi harus didefinisikan tipe datanya, hal ini dikarenakan bahwa fungsi memiliki

return value (nilai balik) dan setiap nilai balik harus diketahui tipe datanya. Bahasa C

memiliki built-in function (fungsi internal), namun fungsi dapat juga diciptakan sendiri oleh

pemrogram. Setiap fungsi yang diciptakan harus memiliki nama yang unik atau berbeda

antara satu dengan yang lain. Pada bagian lain dari fungsi, terdapat daftar parameter.

Parameter adalah nama-nama peubah yang dideklarasikan pada bagian header fungsi. Daftar

parameter dipisahkan oleh tanda koma, dan setiap parameter harus bertipe data. Terkadang

fungsi tidak memiliki daftar parameter, namun merupakan keharusan menempatkan tanda

parentheses ‘()’ pada fungsi tersebut.

B. DEKLARASI

Ada dua cara yang dapat digunakan untuk mendeklarasikan fungsi, yaitu:

1) Secara Langsung

Yaitu dengan menempatkan fungsi diatas fungsi main(), Seperti contoh berikut ini :

Tipe_data nama_fungsi ( daftar_parameter) { Tubuh_fungsi; }

int kali(int angka_1, int angka_2) { return angka_1*angka_2; } int main(); { printf(“Hasil kali antara 2 dan 3 adalah”,kali(2,3)); return 0; }

23  

2) Secara Tak Langsung

Yaitu dengan menempatkan nama prototype fungsi diatas fungsi main() dan

implementasi prototype fungsi dibawahnya Seperti contoh berikut ini :

C. PARAMETER

Seperti yang telah dijelaskan sebelumnya, bahwa parameter merupakan sebuah peubah. Dari

penggunaannya, parameter bisa dilewatkan kedalam sebuah fungsi dengan 2 cara, antara lain:

1) Call by Value

Adalah suatu cara melewatkan sebuah nilai pada parameter. Perhatikan contoh

sebelumnya yaitu pada fungsi kali saat dijalankan di program utama.

2) Call by Reference

Adalah suatu cara melewatkan alamat sebuah variabel pada sebuah parameter. Untuk

jenis parameter ini, perlu ditambahkan operator pointer yaitu & atau * didepannya.

Coba latih contoh berikut ini #include<conio.h> #include<stdio.h> int kali(int angka_1, int angka_2); //Prototype fungsi int jumlah(int *angka_1, int *angka_2); //Prototype fungsi int main() { int a, b; a=10; b=10; printf("Hasil kali antara a dan b adalah %d\n",kali(a,b)); printf("Hasil jumlah antara a dan b adalah %d",jumlah(&a,&b)); return 0; }

int kali(int angka_1, int angka_2); //Prototype fungsi int main(); { printf(“Hasil kali antara 2 dan 3 adalah”, kali(2,3)); return 0 } int kali(int angka_1, int angka_2);//implementasi prototype fungsi { return angka_1*angka_2 }

24  

int kali(int angka_1, int angka_2) //implementasi prototype fungsi { angka_1=angka_1 * angka_2; return angka_1; } int jumlah(int *angka_1, int *angka_2) //implementasi prototype fungsi { *angka_1=*angka_1+*angka_2; return *angka_1; }

D. REKURSIF

Rekusif adalah pemanggilan oleh dirinya sendiri. Oleh karena fungsi bisa

menghasilkan nilai balik, maka fungsi bisa juga bisa memanggil dirinya sendiri. Contohnya

adalah sebagai berikut : int faktorial(int); //deklarasi fungsi int main() { printf("%d",faktorial(5)); return 0; } int faktorial(int angka_1) //implementasi prototype fungsi { if (angka_1==0) return 1; else return angka_1*faktorial(angka_1-1); }

Dari contoh tersebut, akan menghasilkan nilai: 120, yaitu berasal dari perkalian: 1*2*3*4*5.

E. TUGAS

1) Buatlah fungsi untuk menghitung luas suatu bangun (segitiga, persegi panjang, kubus)?

2) Buatlah fungsi untuk menghitung hasil pangkat bilangan misalkan 2 pangkat 3 hasilnya

adalah 8.

25  

MODUL V

ARRAY

A. DASAR TEORI

Array atau larik merupakan sekumpulan data yang mempunyai nama dan tipe yang

sama. Array sering disebut juga sebagai variabel berindeks. Nilai suatu data dalam array

ditentukan oleh nama dan indeks. Array banyak digunakan pada operasi yang melibatkan

indeks seperti pada statistik dan matriks. Tipe data array dapat berupa array satu dimensi, dua

dimensi, tiga dimensi atau banyak dimensi. Secara umum bentuk array didalam C adalah

sebagai berikut :

Tipe_data Nama_array[ukuran]; Untuk bentuk array lebih dari 1 dimensi, digambarkan bentuknya seperti berikut :

Tipe_data Nama_array[ukuran_1] [ukuran_2] …[ukuran_n]; Contoh, Char nama[10]; Array diatas menjelaskan bahwa array nama merupakan array berdimensi satu dengan

ukuran 10 kali jumlah memori tipe char. Posisi awal hitung array dimulai dari posisi 0

bukannya 1, sehingga jika nama dideklarasikan seperti contoh diatas, maka berarti bahwa

posisi awal array nama adalah 0 dan yang terakhir adalah 9 (bukanlah 10). B. REPRESENTASI ARRAY

Untuk bisa menggunakan tipe array didalam program maka perlu mendeklarasikan

seperti contoh sebelumnya. Sedangkan untuk pengisian nilai pada array dilakukan secara satu

persatu bersesuaian dengan nomor indeksnya misalkan : double nilai[5];

nilai[0]=7.5; nilai[1]=10; nilai[2]=5.5; nilai[3]=6.75; nilai[4]=8.25;

Atau dengan mendeklaraksikannya sebagai konstanta array, seperti contoh berikut : double nilai[5]={7.5,10,5.5,6.75,8.25};

Khusus untuk tipe char sebagai string bisa langsung dituliskan semua karakter didalam

tanda petik dua seperti contoh berikut :

26  

char nama[15]=”Marlena”;

C. LATIHAN

1) Array 1 dimensi

Berikut ini contoh coding (program) untuk menginputkan dan menampilkan kembali

array 1 dimensi. int main() { int i,bil_bulat[5]; float bil_real[5]; char nama[20]; /* menginputkan array bil_bulat, bil_ganjil */ for(i=0;i<5;i++) { printf("Masukkan bilangan bulat ke %d:",i+1);

scanf("%d",&bil_bulat[i]); printf("Masukkan bilangan pecahan ke %d:",i+1);

scanf("%f",&bil_real[i]); } /* menginputkan array nama */ printf("Masukkan Nama Anda :");scanf("%s",&nama); /* menampilkan isi array bil_bulat, bil_ganjil */ for(i=0;i<5;i++) { printf("bilangan bulat ke %d: %d\n",i+1,bil_bulat[i]); printf("bilangan bulat ke %d: %f\n",i+1,bil_real[i]); } /* menampilkan array nama */ printf("Nama Anda : %s",nama); return 0; } Perhatikan output yang diberikan.

2) Array 2 dimensi

Berikut ini contoh listing program yang menginputkan dan menampilkan kembali array 2

dimensi (matriks). Listing program berikut merupakan program penjumlahan dua buah

matriks dimana elemen-elemen dari matrik diinputkan oleh pengguna. int main() { int i,j; int matrikA[3][3], matrikB[3][3], matrikHasil[3][3];

27  

/* menginputkan elemen dari matriks A */ for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("Masukkan elemen A[%d][%d]:",i+1,j+1);

scanf("%d",&matrikA[i][j]); } } /* menginputkan elemen dari matriks B */ for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("Masukkan elemen B[%d][%d]:",i+1,j+1);

scanf("%d",&matrikB[i][j]); } } /* menampilkan elemen dari matriks A */ printf("\n Elemen dari matriks A adalah:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%d\t",matrikA[i][j]); } printf("\n"); } /* menampilkan elemen dari matriks B */ printf("\n Elemen dari matriks B adalah:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%d\t",matrikB[i][j]); } printf("\n"); } /* Operasi Penjumlahan 2 matriks */ for(i=0;i<3;i++) { for(j=0;j<3;j++) { matrikHasil[i][j]=matrikA[i][j]+matrikB[i][j]; } } /* menampilkan elemen dari matriks Hasil Penjumlahan */ printf("\n Matriks hasil Penjumlahan adalah:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) {

28  

printf("%d\t",matrikHasil[i][j]); } printf("\n"); } return 0; }

D. TUGAS

1) Buatlah program yang menghitung jumlah elemen dalam suatu array (larik) dengan array

(larik) 1 dimensi {1,3,5,4,7,2,99,16,45,67,89,45}.

2) Buatlah program yang membalikkan sebuah string, contoh: jika diinputkan sebuah string:

SELAMAT maka akan dikeluarkan output: TAMALES

29