modul praktikum c
DESCRIPTION
kkkkkkkkkkkkkkkkkkkkTRANSCRIPT
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