• Tidak ada hasil yang ditemukan

bukuajar 2011/9/22 13:39 page i #1

N/A
N/A
Protected

Academic year: 2021

Membagikan "bukuajar 2011/9/22 13:39 page i #1"

Copied!
97
0
0

Teks penuh

(1)
(2)
(3)

Pemrograman

Menggunakan

Bahasa C

Taufik Fuadi Abidin

Irvanizam Zamanhuri

Program Studi Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala

(4)

The work in this project was partially supported by Program Studi Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala

(5)

Kata Pengantar

Syukur Alhamdulillah penulis panjatkan ke hadirat Allah SWT yang telah melimpahkan rahmat-Nya sehingga penulis dapat menyele-saikan penulisan Buku Ajar yang berjudul "Pemrograman Meng-gunakan Bahasa C". Selawat dan salam penulis sanjungkan kepada Nabi Besar Muhammad SAW, keluarga dan sahabat beliau.

Buku Ajar ini sangat bagus digunakan untuk mengajarkan Mataku-liah Pemrograman bagi mahasiswa-mahasiswa baik Strata Satu (S1) Informatika atau Matematika maupun Diploma Tiga (D3) Manaje-men Informatika. Di dalam buku ini disajikan tentang konsep-konsep dasar bahasa pemrograman C yang meliputi Input/Output serta Pernyataan, Tipe Data, Pernyataan Bersyarat, Perulangan, Array, Pointer, Fungsi, File, dan Typedef dan Struct. Semua materi tersebut disajikan sangat jelas dengan dilengkapi visualisasi dari program serta contoh-contoh program yang efektif dan efisien sehingga mahasiswa dengan mudah memahami konsep-konsep bahasa C.

Penulisan Buku Ajar ini merupakan salah satu kegiatan akademik program studi Informatika, Fakultas Matematika dan Ilmu Penge-tahuan Alam (FMIPA), Universitas Syiah Kuala (Unsyiah) dan di-danai sepenuhnya oleh FMIPA Unsyiah melalui Dana Rutin Tahunan. Oleh karena itu, penulis ingin mengucapkan terimakasih kepada Pihak Dekanan FMIPA, Unsyiah dan pihak-pihak terkait lainnya yang telah mendukung secara langsung atau tidak langsung dalam penyempurnaan penulisan buku ajar ini.

Akhirnya penulis juga menyadari bahwa penulisan Buku Ajar ini masih jauh dari kesempurnaan. Oleh karena itu kritik dan saran yang membangun sangat penulis harapkan. Semoga buku ini bermanfaat bagi semua pihak yang terkait dan menjadi lebih sempurna pada masa yang akan datang.

Banda Aceh, Juni 2011 Taufik Fuadi Abidin & Irvanizam Zamanhuri

(6)
(7)

Daftar Isi

Kata Pengantar v

Daftar Isi vii

Daftar Gambar xi

Daftar Tabel xiii

1 Pendahuluan ANSI/C dan Contoh 1

1.1 Pengantar . . . 1

1.2 Objektif . . . 1

1.3 ANSI/C . . . 2

1.4 Penulisan Program yang Baik . . . 2

1.5 Kompilasi Menggunakan gcc . . . 3

2 Input Output dan Pernyataan 5 2.1 Pendahuluan . . . 5

2.2 Objektif . . . 5

2.3 Penggunaan printf() dan scanf() . . . 5

2.4 Contoh Program . . . 7

2.5 Penggunaan Library ctype . . . 10

3 Tipe Data 11 3.1 Pendahuluan . . . 11

3.2 Objektif . . . 11

3.3 Tipe Data Primitif . . . 11

3.4 Presidensi dan Urutan Pemrosesan (Associativity) Op-erator dalam C . . . 13

3.5 Operator-Operator . . . 13

3.5.1 Operator Aritmatik, Relasional, dan Incre-ment/Decrement . . . 13

(8)

3.5.2 Operator Assignment (=) . . . 14

3.5.3 Assignment Operator . . . 15

3.6 Konversi Tipe Data . . . 16

4 Pernyataan Bersyarat (Conditional Statement) 19 4.1 Pendahuluan . . . 19

4.2 Objektif . . . 19

4.3 Konsep Pernyataan Bersyarat . . . 20

4.4 Serangkaian Pernyataan (Compound Statement) . . . . 20

4.5 Lokal Variabel . . . 21

4.6 if dan if else Statement . . . 22

4.7 Switch Statement . . . 25

4.8 Break dan Continue Statements . . . 26

4.9 Continue Statement Lanjutan . . . 28

4.10 Conditional Operator . . . 29

5 Perulangan (Loop) 31 5.1 Pendahuluan . . . 31

5.2 Objektif . . . 31

5.3 do while Statement . . . 31

5.3.1 do while Statement (Dasar) . . . 31

5.3.2 do while Statement (Lanjutan) . . . 33

5.4 for Statement . . . 34

5.4.1 for Statement (Dasar) . . . 34

5.4.2 for Statement (Lanjutan) . . . 35

5.5 while statement . . . 37

6 Lanjutan Perulangan (Loop) dan Contoh 41 6.1 Pendahuluan . . . 41

6.2 Objektif . . . 41

6.3 Contoh Perulangan for (Lanjutan) . . . 41

6.3.1 Contoh 1 . . . 41 6.3.2 Contoh 2 . . . 42 6.3.3 Contoh 3 . . . 42 6.3.4 Contoh 4 . . . 42 6.3.5 Contoh 5 . . . 43 6.3.6 Contoh 6 . . . 43 6.3.7 Contoh 7 . . . 44 6.3.8 Contoh 8 . . . 44

(9)

7 Array Satu Dimensi 45

7.1 Pendahuluan . . . 45

7.2 Objektif . . . 45

7.3 Definisi dan Pendeklarasian Array . . . 45

7.4 Inisialisasi Nilai . . . 46

7.5 Indeks (Subscript) Dari Array . . . 47

7.6 Alokasi Memory Array . . . 47

8 Array Dua Dimensi 49 8.1 Pendahuluan . . . 49

8.2 Objektif . . . 49

8.3 Pendeklarasian Array Dua Dimensi . . . 49

8.4 Inisialisasi Nilai . . . 50

8.5 Indeks (Subscript) Dari Array Dua Dimensi . . . 51

8.6 Alokasi memori untuk Array Dua Dimensi . . . 51

8.7 Contoh Program Menggunakan Array Dua Dimensi . . 52

8.7.1 Inisialiasi Nilai Array Dua Dimensi . . . 52

8.7.2 Pengurutan Data Dalam Array . . . 54

8.7.3 Penjumlahan Matrix Menggunakan Array . . . 54

9 Pointer 55 9.1 Pendahuluan . . . 55 9.2 Objektif . . . 55 9.3 Pendeklarasian Pointer . . . 55 9.4 Visualisasi Pointer . . . 56 9.5 Operator Dereferensing . . . 57 9.6 Pointer Vs Array . . . 60 9.7 String . . . 61 10 Fungsi 63 10.1 Pendahuluan . . . 63 10.2 Objektif . . . 63 10.3 Pendeklarasian Fungsi . . . 63

10.4 Fungsi Bertipe Void . . . 65

10.5 Jenis-Jenis Fungsi . . . 66

10.5.1 Fungsi Called by Value . . . 66

10.5.2 Fungsi Called by Reference . . . 67

(10)

11 File 73

11.1 Pendahuluan . . . 73

11.2 Objektif . . . 73

11.3 File . . . 73

11.4 Beberapa Contoh Manipulasi File . . . 74

11.5 Beberapa Fungsi untuk Manipulasi File Teks . . . 76

12 Typedef & Struct 77 12.1 Pendahuluan . . . 77

12.2 Objektif . . . 77

12.3 Typedef . . . 77

12.4 Penggunaan Typedef Pada Array . . . 78

12.5 Contoh Penggunaan Typedef . . . 79

12.6 Struct . . . 79

12.7 Pointer ke Sebuah Struct . . . 80

(11)

Daftar Gambar

1.1 Contoh penulisan program yang baik. . . 3

3.1 Presidensi dan Urutan Pemrosesan (Associativity) . . 13

3.2 Operator Aritmatik. . . 14

3.3 Operator Relasional. . . 14

3.4 Operator Increment/Decrement. . . 15

3.5 Contoh Operator Assignment. . . 15

4.1 Contoh penggunaan variabel lokal . . . 21

4.2 Contoh penggunaan if else statement . . . 23

4.3 Contoh penggunaan if else statement . . . 23

4.4 Contoh penggunaan switch statement . . . 25

4.5 Contoh penggunaan break statement . . . 27

4.6 Contoh continue statement lanjutan . . . 29

4.7 Contoh conditional operator . . . 29

4.8 Contoh conditional operator . . . 30

5.1 Contoh penggunaan do while statement lanjutan . . . 33

5.2 Dua buah program menggunakan do while statement . 34 5.3 Konversi program C yang menggunakan for statement ke do while statement . . . 35

5.4 Program untuk menghitung total penjumlahan 10 bilangan integer positif pertama . . . 36

5.5 Beberapa program dengan menggunakan for statement 36 5.6 Contoh program dengan menggunakan double for state-ment . . . 37

5.7 Konversi statement while ke dalam bentuk do while dan for . . . 38

7.1 Contoh penginisialisasi array . . . 46

7.2 Visualisasi alamat array . . . 47

(12)

7.4 Contoh penggunaan array dan visualisasinya . . . 48

8.1 Visualisasi pendeklaraisin array dua dimensi . . . 50

8.2 Contoh penginisialisasi array dua dimensi . . . 51

8.3 Indeks (Subscript) dari array dua dimensi . . . 51

8.4 Visualisasi array dua dimensi dalam bentuk satu dimensi 52 8.5 Visualiasai array num[i][j] . . . 53

9.1 Visualisasi pointer . . . 56 9.2 Visualisasi pointer . . . 58 9.3 Visualisasi pointer . . . 59 9.4 Visualisasi pointer . . . 59 9.5 Visualisasi pointer . . . 59 9.6 Visualisasi pointer . . . 60

9.7 Visualisasi pointer pada array . . . 60

9.8 Kesamaan array dengan pointer . . . 60

10.1 Visualisasi fungsi . . . 66

10.2 Visualisasi fungsi . . . 68

10.3 Visualisasi fungsi . . . 68

12.1 Visualisasi struct . . . 80

(13)

Daftar Tabel

2.1 Format Tipe Data . . . 6 4.1 Operator relasional . . . 20 11.1 Parameter Mode untuk Akses File . . . 74

(14)
(15)

Bab 1

Pendahuluan ANSI/C dan

Contoh

1.1

Pengantar

Bahasa C adalah bahasa pemrograman yang sangat populer dan powerful. Bahasa ini mulai dirancang sekitar tahun 70-an oleh Dennis Ritchie di Bell Laboratories dan menjadi ANSI C (standard C) pada awal tahun 1980. Bahasa pemrograman C banyak digunakan sebagai kernel bagi bahasa-bahasa yang baru dan lebih spesifik seperti C++ yang merupakan pengembangan lebih lanjut dari standard C. Contoh lain adalah Java, walau bukan merupakan kelanjutan dari standard C, tetapi banyak sintaks dalam Java yang mirip dengan sintaks C.

1.2

Objektif

Objektif dari materi ini adalah (i) memberikan gambaran awal tentang bahasa C, (ii) memperkenalkan bahasa C dengan contoh, (iii) mengajarkan teknik-teknik penulisan program yang baik, (iv) memilih nama untuk variabel, (v) indentation, dan (vi) penjelasan dalam program (comment).

(16)

2 Bab 1. Pendahuluan ANSI/C dan Contoh

1.3

ANSI/C

• Didesain oleh Dennis Ritchie di Bell Laboratory (Sekarang AT&T)

• Diimplementasi sebagai bahasa pemograman Operating System (OS) Unix pada mini komputer PDP-11 di tahun 1972

• Berkembang dari bahasa B yang berjalan di mesin BCPL yang dikembangkan oleh Martin Richard di tahun 1967.

• Tujuannya adalah menyempurnakan B dan merealisasikan ide pemograman berstruktur.

• Tradisional C terwujud di tahun 80-an dan berhasil menjadi ANSI/ISO standard di tahun 1990.

Adapun karakteristik adalah • Portable:

– Dapat dengan mudah dipindahkan dari satu perangkat keras ke perangkat keras yang lain

– Menyediakan standard library (fungsi-fungsi)

• Mendukung modular programming: Program ditulis dalam beberapa modul atau dipisahkan dalam beberapa file

• Dapat dikategorikan sebagai ’middle level language’

1.4

Penulisan Program yang Baik

Program yang ditulis dengan baik akan mengikuti kaidah-kaidah penulisan program yang telah disepakati. Penulisan program yang baik harus disertai dengan beberapa komen yang dapat memudahkan orang lain memahami alur dari program. Selain itu, penulisan program yang baik harus memiliki indent untuk blok program dan konsistensi dalam penamaan variabel.

(17)

1.5. Kompilasi Menggunakan gcc 3

Gambar 1.1: Contoh penulisan program yang baik.

1.5

Kompilasi Menggunakan gcc

Kompile program di atas dengan menulis perintah berikut pada terminal (Linux):

gcc -Wall -pedantic -g -o konversi konversi.c

Hasil kompilasi di atas akan membuat sebuah file dengan nama konversi (dibangkitkan dari sebuah buah konversi.c). Selanjutnya, file konversi tersebut dapat dijalankan secara langsung melalui terminal dengan perintah:

(18)
(19)

Bab 2

Input Output dan

Pernyataan

2.1

Pendahuluan

Pemahaman Bahasa Pemrograman C akan lebih mudah melalui contoh. Dengan memperhatikan dan memahami contoh-contoh program, mahasiswa diharapkan dapat memahami konsep bahasa pemrograman yang dipelajari secara lebih mudah dan cepat. Pada bab ini, pemahaman terhadap konsep dasar pemrograman C dilakukan dengan membahas dan memahami beberapa contoh program.

2.2

Objektif

Objektif dari materi ini adalah (i) memperkenalkan fungsi input dan output, (ii) pernyataan (Statement), dan iii mengajarkan teknik-teknik penulisan program yang baik.

2.3

Penggunaan printf() dan scanf()

Fungsi printf() digunakan untuk output, sedangkan scanf() digunakan untuk input. Huruf "f" dalam printf dan scanf merupakan

(20)

kepen-6 Bab 2. Input Output dan Pernyataan dekan dari kata "formatted". Kedua fungsi tersebut dideklarasi dalam header file stdio.h. Header file ini harus disertakan dalam program menggunakan kata kunci include.

/* standard library dimana EXIT_SUCCESS, EXIT_FAILURE, dan Lain-lain didefinisikan*/

#include <stdlib.h>

/* standard I/O dimana printf dan scanf didefinisikan*/ #include <stdio.h>

printf dan scanf secara garis besar menerima dua argumen, yaitu string pengatur (control string) dan argumen lainnya. String pengatur digunakan untuk menentukan format dari argumen yang dikirim. Contoh:

Tabel 2.1: Format Tipe Data Karakter Konversi Format argumen

c Character d Decimal integer

u Unsigned decimal integer

e Floating point dalam notasi scientific f Floating point (pecahan)

s String

ld Long integer

lf Double

(21)

2.4. Contoh Program 7

2.4

Contoh Program

Pada sub bab 2.4 akan menampilkan beberapa contoh program C menggunakan fungsi printf , scanf, dan beberapa operator matem-atika. Selain itu juga pada sub bab 2.4 juga menampilkan contoh program penjumlahan dua variabel dan perintah assingment, peng-gunaan string pengatur %x untuk mengkonversi integer (basis 10) menjadi dalam format hexa desimal (basis 16), dan penggunaan string pengatur %o untuk mengkonversi integer (basis 10) menjadi dalam format hexa desimal (basis 8).

Program 1 Penggunaan fungsi printf. #include < stdio.h> void main(void) { printf("\n"); printf("Hello Students."); printf("\n"); }

Program 2 Penjumlahan dua variabel dan perintah assingment. #include <stdio.h> void main(void) { int i,j,k; i = 4; j = 5; k = i + j;

printf("Penjumlahan dua variabel i+j=%d\n",k); }

Program 6 memperlihatkan penggunaan pernyataan penjumlahan menggunakan perintah (operator)= dan pernyataan increment (++). Walaupun keduanya akan menghasilkan keluaran yang sama, namun pernyataan yang ditulis menggunakan (operator)= dan increment (++) diyakini, walaupun tidak signifikan, akan lebih cepat.

(22)

8 Bab 2. Input Output dan Pernyataan

Program 3 Penggunaan string pengatur %x untuk mengkonversi integer (basis 10) menjadi dalam format hexa desimal (basis 16) #include <stdio.h> void main(void) { int i = 100; printf(" %x\n",i); }

Program 4 Penggunaan string pengatur %o untuk mengkonversi integer (basis 10) menjadi dalam format hexa desimal (basis 8). #include <stdio.h> void main(void) { int i = 74; printf(" %o\n",i); }

Program 5Penggunaan scanf untuk beberapa tipe data. #include <stdio.h> #include <stdlib.h> int main(void){ char c1, c2; int ibil; float fbil; double dbil;

printf("\n%s\n%s\n", "Demo scanf untuk beberapa tipe data","Input dua karakter, sebuah

integer, float dan double");

scanf("%c,%c,%d,%f,%lf", &c1, &c2, &ibil, &fbil, &dbil); printf("\nOutput:\n"); printf("%4c %4c %5d %12.3f %15e\n\n",c1, c2, ibil, fbil,dbil); exit(EXIT_SUCCESS); }

(23)

2.4. Contoh Program 9

Program 6 Penggunaan pernyataan increment dan (operator)=. #include <stdio.h>

#include <stdlib.h> #define MAXLOOP 10 int main(void)

{

int counter = 1, total = 0; while(counter <= MAXLOOP) { total += counter; counter++; } printf("Total = %d\n ", total); exit(EXIT_SUCCESS); } #include <stdio.h> #include <stdlib.h> #define MAXLOOP 10 int main(void) {

int counter = 1, total = 0; while(counter <= MAXLOOP){

total = total + counter; counter = counter + 1; } }

printf("Total = %d\n ", total); exit(EXIT_SUCCESS);

(24)

10 Bab 2. Input Output dan Pernyataan

2.5

Penggunaan Library ctype

Library ctype dapat digunakan untuk memanipulasi karakter. Library ini sudah build-in pada bahasa pemrograman C.

Program 7Contoh program menggunakan library ctype. #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void) { int character;

while((character = getchar()) != EOF){ if(character == ’\n’) putchar(’\n’); else if(islower(character)) putchar(character = toupper(character)); else putchar(character); } exit(EXIT_SUCCESS); }

(25)

Bab 3

Tipe Data

3.1

Pendahuluan

Setiap bahasa pemograman menyediakan tipe data. C memiliki beberapa tipe data primitif (intrinsic data type) yang merupakan bagian dari bahasa C itu sendiri. C juga memiliki tipe data lain yang biasa dikenal dengan istilah aggregate data type seperti array. Komplek data tipe dapat dibuat dengan kombinasi antara kedua tipe data tersebut. Bab ini akan membahas bagaimana deklarasi, ekspresi serta cara memanipulasi tipe data dalam C.

3.2

Objektif

Objektif dari bab ini adalah (i) memperkenalkan tipe data dan opera-tor dalam C, (ii) menjelaskan beberapa contoh yang dapat menjebak programmer berkaitan dengan tipe data sehingga menimbulkan error, dan (iii) menjelaskan cara mengkonversi satu tipe data ke tipe data yang lain

3.3

Tipe Data Primitif

Pada dasarnya keyword signed sangat jarang digunakan karena signed int sama artinya dengan int. Compiler mengerti bila suatu variable

(26)

12 Bab 3. Tipe Data dideklarasikan bertipe int maka variable tersebut adalah signed int atau bilangan integer positif maupun negatif. Unsigned int berarti bilangan yang dimaksud adalah bilangan integer positif saja.

char signed char unsigned char signed short int signed int signed long int unsigned short int unsigned int unsigned long int float double long double

Untuk tipe komputer 16 bits, tipe data short dan int membu-tuhkan memori sebesar 2 byte dan long 4 byte. Sedangkan untuk komputer 32 bits, tipe data short membutuhkan memori sebesar 2 byte dan int dan long sebesar 4 byte.

• Signed int – Komputer 16 bits −215≤ int ≤ 215− 1 = −32768 ≤ int ≤ +32767 – Komputer 32 bits −231 ≤ int ≤ 231 − 1 = −2147483648 ≤ int ≤ +2147483647 • Unsigned int – Komputer 16 bits 0 ≤ int ≤ 216− 1 = 0 ≤ int ≤ +65535 – Komputer 32 bits 0 ≤ int ≤ 232− 1 = 0 ≤ int ≤ +4294967295

Fungsi sizeof digunakan untuk mengetahui ukuran memori yang dibutuhkan oleh suatu variabel bertipe data tertentu. Penyataan berikut memperlihatkan penggunaan dari fungsi sizeof tersebut.

printf("Ukuran int = %d, Ukuran double = %d\n", sizeof(int), sizeof(double));

(27)

3.4. Presidensi dan Urutan Pemrosesan (Associativity) Operator

dalam C 13

3.4

Presidensi dan Urutan Pemrosesan

(Asso-ciativity) Operator dalam C

Gambar 3.1 memperlihatkan urutan pemrosesan dan presidensi dari sebuah operator dalam pemrograman C. Urutan pemrosesan dan presidensi harus diketahui agar keluaran dari pernyataan gabungan tidak keliru.

Gambar 3.1: Presidensi dan Urutan Pemrosesan (Associativity)

3.5

Operator-Operator

3.5.1 Operator Aritmatik, Relasional, dan Increment/Decrement

Gambar 3.2 menampilkan operator aritmatika. Gambar 3.3 menampilkan operator relasional dan gambar 3.4 menampilkan operator incre-ment/decrement.

(28)

14 Bab 3. Tipe Data

Gambar 3.2: Operator Aritmatik.

Gambar 3.3: Operator Relasional.

Contoh: x = 5; y = x++; x = 5; y = ++x; x = 5; y = x + x++; Berapakah nilai y ? 3.5.2 Operator Assignment (=)

Penggunaan operator assignment (=) sering menjebak programmer karena operator ini bukanlah operator boolean (= =) yang digunakan untuk membandingkan dua buah nilai.

(29)

3.5. Operator-Operator 15

Gambar 3.4: Operator Increment/Decrement.

Gambar 3.5: Contoh Operator Assignment.

3.5.3 Assignment Operator

Penggunaan pernyataan: variabel(operator)=ekspresi memberikan keluaran yang sama dengan pernyataan variabel=variable (operator) ekspresi. Contoh:

y += x; y = y + x;

y /= (x + 2); y = y / (x + 2);

y += (x %= 3)-(t *= 5); y= y+ (x=x%3) - (t=t*5); y += (x == 2)

(30)

16 Bab 3. Tipe Data

3.6

Konversi Tipe Data

Konversi data dapat dilakukan secara otomatis (automatic con-version/promotion) dan konversi secara manual (eksplisit/casting). Pengkonversian secara otomatis terjadi apabila dalam suatu perny-ataan memiliki dua variabel dengan tipe yang berbeda sehingga salah satu dari variabel tersebut akan dikonversikan berdasarkan urutan berikut:

int<unsigned<long<unsigned long<float<double<long double

Contoh char c; short s; int i; long l; unsigned u; float f; double d; long double ld;

c - s / i dikonversi menjadi int u * 3.1 - i dikonversi menjadi double c + 3 dikonversi menjadi int

u - ld dikonversi menjadi long double

Pengkonversian secara manual (casting) dilakukan secara ekslisit oleh programmer. Jika i adalah variabel bertipe int, maka

• (double) i : Mengakibat i secara eksplisit terkonversi menjadi tipe double

• (float) i + 3 : Equivalen dengan ((float) i) + 3 Berhubung operator casting lebih tinggi presidensinya dari pada operator + maka tanda kurung tidak perlu digunakan

(31)

3.6. Konversi Tipe Data 17

x = (float) ((int) y + 1);

(double) (x = 77) Tidak sama artinya dengan

(double) x = 77, mengapa? int x = 7;

int y = 3; float f;

f = x / y; Nilai f = 2 f = (float) x / float (y); Nilai f = 2.3

(32)
(33)

Bab 4

Pernyataan Bersyarat

(Conditional Statement)

4.1

Pendahuluan

Pernyataan bersyarat (conditional statement) dalam pemrograman lebih dikenal dengan istilah flow control of statement. C memiliki beberapa jenis conditional statement, antara lain:

• if dan if...else statement • switch statement

• break dan continue statement • conditional operator (?:)

4.2

Objektif

Objektif dari materi ini adalah (i) memperkenalkan dan menjelaskan loop dan conditional statement, dan (ii) menjelaskan perbedaan antara satu statement dengan statement yang lain

(34)

20 Bab 4. Pernyataan Bersyarat (Conditional Statement)

4.3

Konsep Pernyataan Bersyarat

Program-program bahasa C dieksekusikan secara berurutan dari baris ke baris. Namun, program tersebut bisa dikontrol eksekusinya dengan menggunakan suatu mekanisme pengontrol. Mekanisme pengontrol tersebut membandingkan suatu pernyataan dengan pernyataan lain yang dikenal sebagai kondisi, lalu mengeksekusi perintah-perintah yang memenuhi kondisi tersebut. Dengan kata lain, jika kon-disinya bernilai Benar (TRUE) maka compiler C akan menggerjakan semua perintah-perintah yang berada dalam prosedur mekanisme pengontrol.

Mekanisme pengontrol dapat diimplementasikan dengan mengu-nakan operator relasional. Tabel 4.1 menampilkan operator-operator relasional.

Tabel 4.1: Operator relasional Operator Simbol sama dengan == tidak sama dengan !=

lebih kecil < lebih besar > lebih kecil atau sama dengan ≤ lebih besar atau sama dengan ≥ tidak (not) !

dan (and) && atau (or) ||

4.4

Serangkaian Pernyataan (Compound

State-ment)

Compound statementatau serangkaian statement yang saling berkai-tan biasanya ditulis secara berkelompok dalam berkai-tanda kurung kurawal { dan }. C menggunakan { dan } untuk mengapit beberapa statement dalam satu blok. Program 8 merupakan potongan program C dengan menggunakan Compound statement.

(35)

4.5. Lokal Variabel 21

Program 8 Potongan program dengan menggunakan Compound statement. { a = 1; if (a > 0) { int b = a; b++; a += b; } }

Biasanya statement if, if..else, while, for, do dan switch selalu diikuti dengan statement yang berkaitan dengannya. Statement yang mengikuti if, if..else, while, for, do dan switch dapat berupa single statement maupun compound statement.

4.5

Lokal Variabel

C membenarkan pendeklarasian lokal variabel. Lokal variabel yang dideklarasikan dalam suatu blok akan bersifat private (tidak dapat diakses diluar blok). Gambar 4.1 menunjukkan contoh penggunaan variabel lokal.

(36)

22 Bab 4. Pernyataan Bersyarat (Conditional Statement)

4.6

if

dan if else Statement

Bentuk umum dari if statement adalah sebagai berikut:

if (<conditional expression>) { <one or more statements> }

Jika <conditional expression> bernilai true maka perintah <one or more statements> akan dieksekusikan. Program 9 merupakan potongan program C menggunakan if statement

Program 9Potongan program dengan menggunakan if statement. int main(){

int x=0; if(x !=0){

printf("Nilai x sama dengan nol"); }

printf("Nilai x tidak sama dengan nol"); }

Sedangkan Bentuk umum dari if else statement adalah sebagai berikut:

if (<conditional expression>) <statement #1>

else

<statement #2>

Dimana jika <conditional expression> bernilai benar, maka <state-ment #1>dieksekusikan. Sebaliknya, jika <conditional expression> bernilai salah, maka <statement #2> yang akan dieksekusikan. Namun pada realita, kadang-kadang sebuah program C mempunyai dua buah atau lebih ekspresi if else yang berada secara berdekatan. Hal ini membuat sedikit bingung bagi programmer untuk mengetahui ekspresi statement else mana yang akan menjadi "pasangan" bagi if tertentu. Akan tetapi, kompiler C secara automatis mengetahui setiap pasangan if else dan ini akan ditunjukkan melalui gambar 4.2

(37)

4.6.if dan if else Statement 23

Gambar 4.2: Contoh penggunaan if else statement

dan 4.3. Pada gambar 4.2 terlihat bahwa else pertama (else a–) sangat dekat dengan statement if(y>0). Oleh karena itu, statement else itu merupakan else bagi if(y>0). Sedangkan statement else b = b/2 menjadi statement else bagi statement if (x>0).

Gambar 4.3: Contoh penggunaan if else statement

Sebagai tambahan, jika pada kondisi statement if mempunyai lebih dari dua statement, maka statement-statement tersebut akan diapit oleh tanda kurung kurawal { dan }. Berikut bentuk umum dari if else statement untuk kondisi ini.

if (<conditional expression>) { <dua atau lebih statement> }

else {

<dua atau lebih statement> }

(38)

24 Bab 4. Pernyataan Bersyarat (Conditional Statement) Program 10 merupakan potongan program C menggunakan if else statementdan menghasilkan sebuah program untuk menentukan nilai huruf dari kalkulasi nilai tugas, ujian tengah semester(uts) dan ujian akhir semester(uas). Kompiler C mengecek hasil dari variabel nilai. Jika nilai lebih kecil dari 90, kompiler C akan mengeksekusi statement else yang terdapat di dalamnya statement if(nilai ≥ 80). Setelah itu, jika nilai lebih kecil dari 80 maka kompiler C akan mengeksekusi statement else yang ke dua dan begitu juga seterusnya.

Program 10 Potongan program dengan menggunakan if else statement.

int main() {

float uts, nilai, uas, tugas;

printf("Tugas: "); scanf("\%f",\&tugas); printf("UTS: "); scanf("\%f",\&uts); printf("UAS: "); scanf("\%f",\&uas);

nilai = 0.2 * tugas + 0.3 * uts + 0.5 * uas; if (nilai >= 90) printf("Nilai A"); else if (nilai >= 80) printf("Nilai B"); else if (nilai >= 65) printf("Nilai C"); else if (nilai >= 50) printf("Nilai D"); else printf("Nilai E"); return 0; }

Adapun luaran dari program di atas adalah tergantung dari nilai inputan tugas, uas, dan uts. Setiap inputan nilai-nilai tersebut dimasukkan ke dalam sebuah alamat memory melalui perintah scanf. Inputan nilai tersebut ditampung ke dalam sebuah memory yang berbeda-beda. Asumsikan inputan tugas, uts, dan uas adalah 75, 70, 90, maka luaran dari program 10 adalah:

Nilai B

(39)

4.7. Switch Statement 25 tersebut dengan menambahkan tanda kurung kurawal { dan } pada setiap statement if else.

4.7

Switch Statement

Bentuk umum dari switch statement adalah sebagai berikut :

switch (ekspresi) {

case ekspresi 1 : statement1 case ekspresi 2 : { statement1 statement2 ... } ... ...

default : statement lainnya }

Gambar 4.4: Contoh penggunaan switch statement Cara kerja switch statement adalah sebagai berikut: • cek (ekspresi) dari switch

• Kerjakan semua statement dari ekspresi case yang bernilai benar (true)

• Jika tidak ada ekspresi case yang benar maka kerjakan state-ment pada bagian default

(40)

26 Bab 4. Pernyataan Bersyarat (Conditional Statement)

Program 11Contoh penggunaan switch statement lain. int main() {

int grade = 3; switch (grade) {

case 1: printf("Fall (F)\n"); break; case 2: printf("Bad (D)\n"); break; case 3: printf("Good (C)\n");

case 4: printf("Very Good (B)\n"); break; case 5: printf("Excellent (A)\n"); break; default:

printf("You have inputted false grade\n"); break; // break disini tidak perlu

} }

Bagaimana hasil dari eksekusi Program 11? Output atau luaran dari Program 11 adalah:

Good (C) Very Good (B)

Hasil tersebut diperoleh karena pada case 3 tidak ada perintah break. Ingat kembali bahwa kompiler C mengeksekusi program C secara berurutan dari baris ke baris. Oleh karena itu, setelah mengeksekusi case 3, kompiler C juga mengeksekusi bagian di case 4 dan keluar dari bagian switch setelah menjumpai break pada bagian case 4. Perintah break termasuk salah satu mekanisme pengontrol dan akan dibahas pada sub bab 4.8.

4.8

Break

dan Continue Statements

Bentuk umum dari break statement adalah:

break;

Tujuan break statement adalah:

• memerintahkan compiler untuk keluar dari satu tingkat (bi-asanya digunakan pada statement pengulangan dan pilihan bercabang)

(41)

4.8.Break dan Continue Statements 27 Gambar 4.5 menunjukkan contoh dan penjelasan dari break statement.

Gambar 4.5: Contoh penggunaan break statement Bentuk umum dari continue statement adalah:

continue;

Tujuan break statement adalah:

• memerintahkan compiler untuk melanjutkan pengeksekusian program dalam satement pengulangan tanpa pengeksekusian program yang berada dibawah statement continue

• Melanjutkan pengeksekusian program di dalam perulangan Program 12 memperlihatkan penggunaan break dan continue dalam sebuah perulangan do while. Pada program ini kompiler akan keluar dari perulangan do while ketika inputan nilai n < 0 atau n = 0 dan akan melanjutkan pengeksekusian program serta sekaligus mencetak string "Skip the value" ketika n > 0. Akan tetapi bila inputan nilai n = 0 maka kompiler akan keluar dari perulangan dengan mencetak string "The number is: 0". Namun, jika inputan nilai n tidak pernah sama dengan 0, maka string "the number is:"tidak akan pernah dicetak. Hal ini dikarenakan statement pencetakan string tersebut berada setelah statement continue di dalam perulangan.

(42)

28 Bab 4. Pernyataan Bersyarat (Conditional Statement)

Program 12 Sebuah program C penggunaan break dan continue statement.

int main() { int n; do {

printf("\nEnter the number:"); scanf("%d",&n);

if (n < 0) { break;

}

if(n>10) {

printf("Skip the value\n"); continue;

}

printf("The number is: %d", n); } while (n != 0);

}

Hasil atau luaran dari program 12 adalah:

Enter the number :1 The number is:1 Enter the number :51 Skip the value

Enter the number:-1

4.9

Continue Statement Lanjutan

Pada sub bab ini akan memperlihatkan perbedaan antara state-ment continue dan next. Statestate-ment continue melanjutkan eksekusi statement-statement yang berada di dalam perulangan secara beru-rutan dan tidak mengeksekusikan statement-statement yang berada setelah statement continue. Sedangkan statement next mengarahkan kompiler C untuk mengeksekusi semua statement yang berada setelah statement next. Berdasarkan contoh fig:continuelanjutan, ketika kompiler C mengeksekusikan statement continue, maka kompiler C secara langsung mengeksekusikan expr2 tanpa mengeksekusikan expr3. Sedangkan ketika kompiler C mengeksekusikan statement goto next, kompiler C mengeksekusikan expr3 dan tidak mengeksekusikan semua statement yang berada diantara goto next dan next.

(43)

4.10. Conditional Operator 29

Gambar 4.6: Contoh continue statement lanjutan

4.10

Conditional Operator

Bentuk umum dari conditional operator adalah:

expr1 ? expr2 : expr3

expr1 adalah evaluasi dari kondisi jika kondisi benar (TRUE) maka nilai dari operan tersebut adalah expr2 dan jika kondisi salah (FALSE)maka nilai dari operan tersebut adalah expr3.

Gambar 4.7: Contoh conditional operator

Conditional Operator digunakan untuk mempersingkat dalam penulisan program. Semakin sedikit jumlah baris di dalam sebuah program, maka semakin cepat kompiler C dalam mengeksekusi

(44)

30 Bab 4. Pernyataan Bersyarat (Conditional Statement) program tersebut. Di dalam bahasa pemrograman C, jumlah baris dari sebuah program dihitung dengan melihat jumlah dari karakter ’;’di dalam program tersebut.

Condition Operatormerupakan suatu operator untuk mempersin-gat sebuah statement if else. Gambar 4.7 dan fig:expr2 memperli-hatkan bagaimana cara mengubah statement if else ke dalam bentuk conditional operator.

Gambar 4.8: Contoh conditional operator Latihan:

Bagaimanakan bentuk if..else dari statement conditional berikut:

1. age > 17 ? printf("You can vote.") : printf("You cannot vote."); 2. val = ((y>0) ? 10 : ((x==0) ? 100 : 1000));

(45)

Bab 5

Perulangan (Loop)

5.1

Pendahuluan

Proses perulangan (loop) sangat diperlukan untuk membuat suatu proses yang sama pernyataannya berulang-ulang. Statement peru-langan antara lain:

• do statement • while statement • for statement

5.2

Objektif

Objektif dari pertemuan ini adalah (i) memperkenalkan dan menje-laskan loop, (ii) menjemenje-laskan perbedaan dan kesamaan antara satu jenis perulangan dengan perulangan yang lain.

5.3

do while Statement

5.3.1 do while Statement (Dasar)

Bentuk umum dari do statement adalah:

do {

<statement> } while (expr);

(46)

32 Bab 5. Perulangan(Loop) Statement do while mengizinkan perulangan (loop) untuk mengek-sekusikan <statement> selama kondisi expr bernilai TRUE. <state-ment> murupakan bagian yang akan diulang. Sedangkan <expr> adalah kondisi yang dievaluasi, jika kondisi benar maka proses perulangan dilakukan sedangkan jika kondisi bernilai salah proses perulangan dihentikan. Karena kompiler C mengeksekusikan secara teratur dari satu baris ke baris lain dan statement do { } while menempatkan kondisi exprt secara struktur di bagian terakhir, maka perulangan <statement> akan dieksekusi paling sedikit sekali. Pro-gram 13 dan 14 merupakan contoh proPro-gram dengan menggunakan do while statement.

Program 13Contoh program dengan menggunakan do while. /* Demonstration of the do..while loop */ #include<stdio.h>

#include<stdlib.h> int main() {

int value, rDigit;

printf(Enter a number to be reversed.\n); scanf("%d", &value); do { rDigit = value % 10; printf("%d", rDigit); value = value / 10; } while (value != 0); printf(\n); return 0; }

Program 14 Contoh potongan program dengan menggunakan do while.

do {

sum +=i;

scanf("%d",&i); } while(i > 0)

(47)

5.3. do while Statement 33 Pada potongan program 14 terdapat beberapa hal yang perlu diperhatikan:

• Minimal statement dalam do dilakukan satu kali.

• Pengulangan berhenti jika data yang dimasukkan berupa bilan-gan nol (0) atau bilanbilan-gan negatif.

• Input dapat berupa bilangan bulat(int) ataupun bilangan real (float).

• Proses perulangan untuk mendapatkan jumlah dari sum.

5.3.2 do while Statement (Lanjutan)

Gambar 5.1 menampilkan dua buah program dengan menggunakan do while statement. Program yang disebelah kiri merupakan program untuk menginputkan sebuah karakter dengan menggunakan dua buah perulangan do while. Jika karakter yang dimasukkan adalah ’y’ atau ’t’ dan setelah dikonversi menjadi huruf kapital, maka kompiler C akan mencetak string "Anda harus coba inputkan lagi". Akan tetapi jika yang dimasukkan adalah karakter ’t’, maka kompiler C akan keluar dari double perulangan tersebut.

Gambar 5.1: Contoh penggunaan do while statement lanjutan Pada gambar 5.2 menampilkan dua buah program dengan meng-gunakan do while statement. Kedua program C tersebut sekilas terlihat mirip. Namun, hasil atau luaran dari kedua program tersebut

(48)

34 Bab 5. Perulangan(Loop) adalah berbeda. Perbadaannya adalah hanya letak dari penulisan sintaks k++ dan printf("%d",k). Akibatnya akan menghasilkan luaran yang berbeda. Program yang sebelah kiri mencetak nilai k terlebih dahulu kemudian nilai k di-increment-kan. Sedangkan program yang sebelah kanan meng-increment-kan nilai k terlebih dahulu kemudian mencetak nilai k.

Gambar 5.2: Dua buah program menggunakan do while statement

5.4

for Statement

5.4.1 for Statement (Dasar)

Bentuk Umum for statement adalah:

for (<expr1>;<expr2>;<expr3>) {

<statement> }

Dimana <expr1> merupakan inisialisasi awal dari variable yang digunakan, dan <expr2> adalah expresi logika (bentuk perbandingan nilai, syarat). Pengulangan dilakukan jika kondisi pada expr2 masih benar (true). Sedangkan <expr3> adalah bagian update. Biasanya berbentuk penambahan atau pengurangan nilai variabel counter.

Secara teknis, alur kerja program C yang menggunakan for statementadalah sama dengan program yang menggunakan do while.

(49)

5.4. for Statement 35 Ketika kompiler mengeksekusi perintah for (<expr1>;<expr2>;<expr3>), sintaks pertama yang dieksekusi adalah <expr1>. Kemudian kom-piler mengeksekusi <statement> yang berada di dalam looping body. Setelah penambahan atau pengurangan nilai variabel counter <expr3>, kompiler mengecek kondisi <expr2> untuk mengetahui apakah proses looping selanjutnya dikerjakan atau tidak. Proses ini sama seperti yang dilakukan pada statement do while. Gambar 5.3 akan menunjukkan proses konversi program C yang menggunakan for statement ke do while.

Gambar 5.3: Konversi program C yang menggunakan for statement ke do while statement

5.4.2 for Statement (Lanjutan)

Pada bagian ini akan ditampilkan tiga buah contoh program C dengan menggunakan perulangan for. Misalnya gambar 5.4 menunjukkan sebuah program C untuk menghitung total penjumlahan 10 bilangan integer positif pertama. Untuk mengimplementasikan algoritma ini, perlu diperhatikan beberapa faktor. Pertama adalah semua urutan bilangan tersebut harus ditampung ke dalam sebuah variabel (misalnya i). Kedua, nilai awal dari variabel i adalah 1 dan batas akhir dari variabel i adalah 10. Dan ketiga variabel i perlu bertambah satu-satu untuk setiap perulangan supaya semua urutan bilangan asli bisa dijumlahkan. Penjumlahan kumulatif dari bilangan tersebut dihitung secara teratur oleh kompiler dengan mengeksekusikan perintah U += i. Perintah ini ekivalen dengan

(50)

36 Bab 5. Perulangan(Loop)

U = U + i dengan memberikan nilai awal dari variabel i = 0 dan dideklarasikan sebelum statement for. Sedangkan pada gambar 5.5 menampilkan beberapa gaya penulisan program C dengan menggunakan perulangan for dan gambar 5.6 adalah salah satu contoh program dengan menggunakan double looping.

Gambar 5.4: Program untuk menghitung total penjumlahan 10 bilangan integer positif pertama

(51)

5.5. while statement 37

Gambar 5.6: Contoh program dengan menggunakan double for statement

5.5

while statement

Bentuk Umum dari while statement adalah:

while (<expr>) { <statement>; }

<next statement>;

Terdapat beberapa hal yang perlu diperhatikan: • <expr> adalah kondisi (syarat) dari while • <statement> disebut badan dari while loop

• <next statement> merupakan statement yang dikerjakan sete-lah pengulangan berakhir

• pengulangan dilakukan jika kondisi (syarat) pada <expr> masih benar

Statement while juga sangat mirip dengan statement do while dan for dalam cara pengeksekusian program. Gambar 5.7 akan menun-jukkan bagaimana cara mengkonversi program C dengan menggu-nakan perulangan while menjadi program C dengan menggumenggu-nakan perulangan for dan do while.

(52)

38 Bab 5. Perulangan(Loop)

Gambar 5.7: Konversi statement while ke dalam bentuk do while dan for

Pada sub bab ini beberapa contoh program C menggunakan pe-rulangan while lanjutan akan ditampilkan seperti dua buah program berikut. Program ini adalah untuk menentukan akar persamaan kuadrat f (x) = 2x2+ 6x + 3 (5.1) int main(void) { double xl= -1.5, xr=l.0, eps=0.00001, xm, fxl, fxm, epsb, abseps=1, x; xm = 0. 5 * (xl + xr) ; while(abseps >= eps) { abseps= abs (xm - xl); fx1 = 2*sqr(x1) +6*xl+3; fxm = 2*sqr(xm) +6*xm+3; epsb = fxl * fxm ; if (epsb < 0.0) xr = xm; else xl = xm ; xm = 0.5 * (xl + xr) ; x=xm; }

printf(" Akar persamaan %lf\n", x); return 1;

}

Sedangkan program berikut ini adalah untuk menampilkan urutan 10 bilangan integer positif pertama beserta mencari salah satu angka

(53)

5.5. while statement 39 apakbar angka tersebut berada di dalam urutan 10 bilangan positif pertama atau tidak.

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

int x = 10, numberFound= 5; int i = 0, j = 1;

// using while loop statement while(i < x){

i++;

printf("%d\n",i); }

// when,escape loop body while(j < x){ if(j == numberFound){ printf("number found\n"); break; } printf("%d...keep finding\n",j); j++; } return 1; }

Hasil luaran dari program tersebut adalah sebagai berikut:

1 2 3 4 5 6 7 8 9 10 1...keep finding 2...keep finding 3...keep finding 4...keep finding number found

(54)
(55)

Bab 6

Lanjutan Perulangan (Loop)

dan Contoh

6.1

Pendahuluan

Karena kita ketahui bersama bahwa proses perulangan (loop) sangat diperlukan untuk membuat suatu proses yang sama pernyataannya berulang-ulang, materi ini akan memperlihatkan penggunaan state-ment perulangan dalam program.

6.2

Objektif

Objektif dari pertemuan ini adalah (i) memperlihatkan dengan contoh penggunaan statement perulangan, dan (ii) mendiskusikan keluaran yang akan dihasilkan oleh program .

6.3

Contoh Perulangan for (Lanjutan)

6.3.1 Contoh 1

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

for (i=0,total =0;scantf("%d",&number)==1;) { if (number < 0) { continue; } total +=number;

(56)

42 Bab 6. Lanjutan Perulangan (Loop) dan Contoh

}

printf("Jumlah bilangan positif yang dimasukan = %d\n", total);

6.3.2 Contoh 2

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

while ((c=getchar()) !=EOF) if (c== ’ ’) ++blank_cnt; else if (c>= ’0’ && C <=’9’) ++digit_cnt; else

if (c>= ’a’ && c<=’z’ || c>= ’A’ && c<=’B’ ) ++letter_cnt; else if (c>= ’\n’) ++nl_cnt; else ++other_cnt; 6.3.3 Contoh 3

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

i=-5 n=50; while (i<n) { ++i; if (i==0) continue; total +=i;

printf(" i = 5d dan total = %d \n",i,total); }

6.3.4 Contoh 4

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

k=1; printf("Masukkan Password : "); scanf("%s", pw); while (k <= 3) { if (pw=="sandi") break;

(57)

6.3. Contoh Perulangan for (Lanjutan) 43 else { printf("password salah: "); printf("Masukkan Password : "); scanf("%s", pw); k++; } } 6.3.5 Contoh 5

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

include <stdio.h> int main (void) { int u15=0,u16=0,u17=0,u18=0,ul=0,n,u,i scanf("%d",&n); scanf("%d",&u); while (i <=n) { switch(u) { case 15 : u15++; case 16 : u16++; case 17 : u17++; case 18 : u18++; default : ul++; } } return 1; } 6.3.6 Contoh 6

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

int main(void) { double xl= -1.5, xr=l.0, eps=0.00001, xm,fxl,fxm, epsb; double abseps=1, x; char ch; do { xm = 0. 5 * (xl + xr) ; while(abseps >= eps) { abseps= abs (xm - xl); fx1 = 2*sqr(x1) +6*xl+3; fxm = 2*sqr(xm) +6*xm+3;

(58)

44 Bab 6. Lanjutan Perulangan (Loop) dan Contoh

epsb = fxl * fxm ;

if(epsb < 0.0) xr = xm; else xl = xm ;

xm = 0.5 * (xl + xr) ; x=xm; } printf(" Akar persamaan %lf\n", x); printf("\nUlangi (Y/T) ? "); do { ch = toupper(getch()); } while(!((ch==’Y’) || (ch ==’T’))); } while(!(ch == ’T’)); return 1; } 6.3.7 Contoh 7

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

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

int i,j;

for(i=0, j=100; (i<100) || (j>0); i++, j--) { printf("<%d><%d>\n",i,j);

if(i==j){

printf("Mempunyai Nilai yang sama pada langkah ke %d\n",i); break; } } return 1; } 6.3.8 Contoh 8

Coba diskusikan dan bagaimana hasil dari potongan program berikut.

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

int i,j;

for(i=0; i<10; i++) { for(j=10; j>=i; j--){ printf("*"); } printf("\n"); } return 1; }

(59)

Bab 7

Array Satu Dimensi

7.1

Pendahuluan

Memahami konsep array dimensi satu yang dikombinasikan den-gan penggunaan operator pre-increment dan pre-decrement, post-increment dan post decrement. Tipe data array juga dikenal dengan istilah aggregate data type. Array juga biasa disebut sebagai pointer tetap (fixed pointer) karena setelah dideklarasikan, alamat awal dari array tersebut atau alamat pada slot 0 tidak dapat diubah-ubah layaknya pointer biasa.

7.2

Objektif

Objektif dari materi ini adalah (i) memperkenalkan cara pen-deklarasian array, (ii) menjelaskan penggunaan array satu dimensi, dan (iii) memperlihatkan contoh array satu dimensi berserta visual-isasinya.

7.3

Definisi dan Pendeklarasian Array

Array adalah kumpulan nilai dengan tipe data yang sama yang menggunakan nama sama. Array selain merupakan suatu bentuk struktur data juga merupakan pointer. Perbedaan utama antara array dengan ponter biasa adalah bahwa alamat yang ditunjuk oleh array pada saat dideklarasi tidak dapat diubah-ubah seperti halnya pointer yang lain.

Cara pendeklarasian array sama seperti mendeklarasikan variabel denga tipe data yang lain, hanya saja diperlukan operator [ ] yang

(60)

46 Bab 7. Array Satu Dimensi berisikan ukuran dari array yang dideklarasikan. Bentuk umum pendeklarasian array adalah:

tipeDataArray namaArray[ukuran]

Dimana tipeDataArray adalah suatu tipe data untuk nilai dari sebuah array, namaArray adalah sebuah variabel array, dan ukuran adalah ukuran dari array. Berikut adalah beberapa contoh pendeklarasian array dengan tipe data dan ukuran yang berbeda-beda.

int a[6] = {8, 4, 6, 3, 4, 10}; int ageOfStudents[60];

float ipkOfStudents[60];

Contoh pertama diatas adalah mendeklarasikan sebuah array satu dimensi dengan variabel a bertipe data integer dan berukuran 6 den-gan langsung memberikan nilai awalnya. Contoh berikutnya adalah mendeklarasikan sebuah array satu dimensi dengan variabel ageOf-Students bertipe data integer dan berukuran 60 tanpa memberikan nilai awalnya. Sedangkan contoh yang ketiga adalah mendeklarasikan sebuah array satu dimensi dengan variabel ipkOfStudents bertipe data float dan berukuran 60 tanpa memberikan nilai awalnya.

7.4

Inisialisasi Nilai

Sama halnya seperti penginisialisasian nilai pada variabel, array juga dapat diberikan nilai pada saat pendeklarasian. Gambar 7.1 adalah bagaimana pendeklarasian, penginisialisasian, dan pengvisualisasian array.

Gambar 7.1: Contoh penginisialisasi array

Pendeklarasian sebuah array membutuhkan sejumlah memori yang besarnya sesuai dengan besar ukuran tipe data dan ukuran array

(61)

7.5. Indeks (Subscript) Dari Array 47 itu sendiri. Jika diasumsikan alamat dari array A atau slot pertama dari array A di atas adalah 2310 dan ukuran dari tipe data int adalah 4 bytes, maka visualisasi dari pendeklarasian array A ditunjukkan melalui Gambar 7.2

Gambar 7.2: Visualisasi alamat array

Adapun untuk menghitung total memori yang dibutuhkan dalam pendeklarasian sebuah array adalah dengan menggunakan formula berikut:

TotalMemori(dalam satuan bytes)=sizeof(tipeData)*ukuran_array;

7.5

Indeks (Subscript) Dari Array

Indeks atau subscript dari array dalam C selalu dimulai dengan 0 sampai dengan ukuran array - 1. Sebagai contoh float farr[10]; maka indeks dari array farr adalah seperti pada gambar di bawah ini.

Gambar 7.3: Indeks (Subscript) dari array

7.6

Alokasi Memory Array

Array dapat dideklarasikan secara global (deklarasi di luar fungsi main) dan secara lokal (didalam sebuah fungsi atau main).

(62)

Hati-48 Bab 7. Array Satu Dimensi hati jika kita mendeklarasikannya secara lokal, karena variabel lokal akan dibentuk dalam stack ketika fungsi tersebut dibentuk, dan akan dihapus ketika fungsi tersebut dihancurkan (ketika fungsi tersebut selesai dieksekusi). Mungkin hal ini tidak bermasalah bagi variabel biasa, namun array umumnya akan menuntut jumlah memory yang sangat besar (array float mydata[5000]; akan membutuhkan memory sebesar 20000 bytes), sementara stack hanya memiliki kapasitas sek-itar 2000 - 4000 bytes. Oleh karena itu untuk array yang besar harus dideklarasikan secara global, atau mempergunakan perintah static (misalnya static float mydata[5000];) ketika kita mendeklarasikannya secara local. Gambar 7.4 menampilkan contoh dari array satu dimensi.

(63)

Bab 8

Array Dua Dimensi

8.1

Pendahuluan

Memahami konsep array multi dimensi yang dikombinasikan den-gan penggunaan operator pre-increment dan pre-decrement, post-increment dan post decrement. C sebenarnya tidak mempunyai array multidimension. Akan tetapi karena sistem umum tipe C, maka kita bisa memiliki array dari array. Adapun array multi dimensi yang paling sederhana adalah array dua dimensi.

8.2

Objektif

Objektif dari materi ini adalah (i) memperkenalkan cara pen-deklarasian array dua dimensi, (ii) menjelaskan penggunaan array dua dimensi, dan (iii) menjelaskan penggunaan array dua dimensi (multi dimensi).

8.3

Pendeklarasian Array Dua Dimensi

Bentuk umum pendeklarasian array dua dimensi adalah:

tipeArray namaArray[jmlBaris][jmlKolom];

Dimana:

• tipeArray adalah suatu tipe data untuk nilai dari sebuah array. • namaArray adalah sebuah variable array.

(64)

50 Bab 8. Array Dua Dimensi • jmlKolom adalah ukuran kolom dari array.

Adapun contoh-contoh pendeklarain array dua dimensi yang benar dan salah di dalam program C adalah sebagai berikut:

int a2[5][7]; /* Benar */ float B[5][5]; /* Benar */ char letter[5][3]; /* Benar */ char letter[0][0] = ’a’; /* Benar */ int a2[5, 7]; /* Salah */ int a2[0, 4] = ’6’; /* Salah */

Pada dasarnya, array dua dimensi merupakan array satu dimensi. Bila sebuah array dd dideklarasikan menjadi array dua dimensi dengan menggunakan perintah int dd[3][7]; maka kita bisa memvi-sualisasikan array dd tersebut seperti yang terlihat pada gambar ??.

Gambar 8.1: Visualisasi pendeklaraisin array dua dimensi

8.4

Inisialisasi Nilai

Sama halnya seperti penginisialisasian array satu dimensi, array dua dimensi juga dapat diberikan nilai pada saat pendeklarasian. Gambar 7.1 adalah bagaimana pendeklarasian, penginisialisasian, dan pengvisualisasian array.

Sama halnya seperti pendeklarasian array satu dimensi, array dua dimensi juga membutuhkan sejumlah memori dalam pendeklarasian-nya. Meskipun pada sub bab 9.3 telah ditunjukkan visualisasi pendeklarian array dua dimensi dalam bentuk kubus, sebenarnya array dua dimensi mengalokasikan memori secara berurutan dalam bentuk array satu dimensi. Adapun untuk menetukan jumlah memori

(65)

8.5. Indeks (Subscript) Dari Array Dua Dimensi 51

Gambar 8.2: Contoh penginisialisasi array dua dimensi yang dibutuhkan dalam pendeklarasian array dua dimensi dapat dihitung dengan menggunakan persamaan berikut:

byte = sizeof(1st index)*sizeof(2nd index)*sizeof(tipe)

8.5

Indeks (Subscript) Dari Array Dua

Di-mensi

Indeks atau subscript dari array dalam C selalu dimulai dengan 0 sampai dengan ukuran array - 1. Sebagai contoh float data[5][5]; maka indeks dari array data adalah seperti pada gambar 8.3.

Gambar 8.3: Indeks (Subscript) dari array dua dimensi

8.6

Alokasi memori untuk Array Dua Dimensi

Array dimensi dua secara umum sama dengan array satu dimensi. Bila dideklarasi sebuah array int dd[3][4], maka array dd tersebut sebenarnya dialokasikan secara berurutan dalam bentuk array satu

(66)

52 Bab 8. Array Dua Dimensi dimensi seperti yang terlihat pada gambar 8.4. Namun untuk lebih memudahkan kita memahami tentang array dua dimensi maka dibuatlah visualisasi array dua dimensi dalam bentuk kubus.

Gambar 8.4: Visualisasi array dua dimensi dalam bentuk satu dimensi

Perlu dipahami bahwa di dalam penentuan slot array dua dimensi tidak sama seperti penentuan slot pada array satu dimensi. Seperti yang dijelaskan pada sub bab 7.5, penentuan slot array satu dimensi ditentukan dengan mengetahui alamat memori slot pertama dan ukuran tipe data variabel array tersebut. Jika sudah diketahui kedua parameter tersebut, dengan sangat mudah diketahui alamat memori untuk slot berikutnya. Akan tetapi untuk array dua dimensi tergantung dari nilai indeks baris atau kolomnya.

Adapun penentuan slot Array dua dimensi dapat ditentukan dengan formula:

dd[i][j] = base_address + sizeof(tipe) * i * 2nd index + sizeof(tipe) * j

Sebagai contoh, berdasarkan gambar 8.4, nilai dari array dd pada slot dd[2][3] adalah:

dd[2][3] = 300 + sizeof(int) * 2 * 4 + sizeof(int) * 3 asumsikan sizeof(int) = 4 byte, maka

dd[2][3] = 300 + 4 * 2 * 4 + 4 * 3 = 344

8.7

Contoh Program Menggunakan Array Dua

Dimensi

8.7.1 Inisialiasi Nilai Array Dua Dimensi

Program berikut mempunyai dua buah perulangan for yang berfungsi untuk memasukkan nilai-nilai ke dalam array num dan mencetak

(67)

8.7. Contoh Program Menggunakan Array Dua Dimensi 53 nilai-nilai tersebut pada output editor1. Nilai-nilai tersebut diperoleh

dari kalkulasi variabel counter i dan j. Setelah setiap hasil increment dari kedua variabel tersebut disubsitusikan ke dalam formula num[i][j] = (i * 4) + j + 1;, maka diperoleh nilai-nilai untuk setiap slot dari array num. Hasil atau luaran dari program ?? dapat divisualisaikan melaui gambar 8.5.

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

int i, j, num[3][4]; for(i=0; i<3; i++)

for(j=0; j<4; j++)

num[i][j] = (i * 4) + j + 1; /* print isi array num */

for(i=0; i<3; i++) { for(j=0; j<4; j++) printf("%3d ", num[i][j]); putchar(’\n’); } return 1; }

Gambar 8.5: Visualiasai array num[i][j]

(68)

54 Bab 8. Array Dua Dimensi

8.7.2 Pengurutan Data Dalam Array

Program berikut merupakan salah satu contoh program untuk men-gurutkan data dengan menggunakan array dua dimensi.

#include <stdio.h> #define N 12

int main(void) {

int i, j, data[N] = {8,4,5,1,3,8,7,9,12,23,15,6}; for(i=0; i<N; i++)

for(j=N-1; j>i; j--)

if(data[j] < data[j-1]) { int temp = data[j]; data[j] = data[j-1]; data[j-1] = temp; }

/* Cetak data yang telah terurut */ for(i=0; i<N; i++) {

printf("%3d ", data[i]); }

return 1; }

8.7.3 Penjumlahan Matrix Menggunakan Array

Program berikut merupakan contoh program C untuk menjumlahkan Matrix menggunakan array dua dimensi.

#include <stdio.h> #define ROW 2 #define COL 3 int main(void) {

int i, j;

float matrixA[ROW][COL], matrixB[ROW][COL], matrixC[ROW][COL];

/*Tulis proses input data matrixA dan matrixB disini */ /*Proses penjumlahan ditampung oleh matrixC */

for(i=0; i<ROW; i++) { for(j=0; j>COL; j++) {

matixC[i][j]= matixA[i][j]+ matixB[i][j]; printf("\t %3.2 f", matixC[i][j]);

} }

return 1; }

(69)

Bab 9

Pointer

9.1

Pendahuluan

Pointer yang merupakan variabel yang dapat memegang alamat dari suatu objek dalam memori. Pointer digunakan untuk melalukan akses dan manipulasi alamat memori. Dalam C, array dan pointer memiliki keterkaitan yang erat. Array adalah pointer yang tetap (fixed pointer) sedangkan pointer itu sendiri tidak tetap, artinya alamat memori yang dipegangnya dapat berubah-ubah. Pemanggilan melalui alamat (call by reference) yang biasa diimplementasi pada fungsi dapat diwujudkan menggunakan pointer.

9.2

Objektif

Objektif dari materi ini adalah (i) memperkenalkan cara pen-deklarasian pointer, (ii) menjelaskan penggunaan pointer, (iii)menjelaskan konsep dereferensing (menbaca / memberikan nilai yang ditunjuk oleh sebuah pointer), dan (iv) menjelaskan penggunaan indeks (subscript) pada pointer.

9.3

Pendeklarasian Pointer

Pointer dideklarasikan untuk memegang dan mengakses alamat dalam memori. Jika p adalah suatu variable maka &p merupakan lokasi atau alamat dalam memori dimana sebuah nilai yang dipegang oleh p disimpan.

Dalam C, simbol asterisk ’*’ digunakan untuk mendeklarasikan sebuah pointer. Simbol ini ditulis setealh setelah tipe data dan

(70)

56 Bab 9. Pointer sebelum nama dari sebuah pointer. Sebagai contoh:

int * pi;

Sintaks umum pendeklarasian pointer adalah:

tipe_data * nama_pointer;

Simbol asterik ’*’ memberitahu kompiler bahwa sebuah pointer yang menyimpan alamat memori bertipe int dideklarasikan. Pen-deklarasian seperti contoh di atas hanya memberitahukan kompiler bahwa pi adalah pointer bertipe int tanpa memberikan nilai awal apapun kepada pointer pi. Sebuah pointer tanpa nilai awal akan secara otomatis memiliki nilai NULL. Pengujian terhadap pointer dapat dilakukan sebagai berikut:

if (pi == NULL){ :

}

9.4

Visualisasi Pointer

Bila dalam program terdapat pernyataan sebagai berikut:

int i = 2; int *pi = &i;

maka visualisasi dari kedua pernyataan di atas terlihat seperti pada gambar 9.1.

Gambar 9.1: Visualisasi pointer

Artinya terdapat sebuah variabel i bertipe integer dengan nilai 2 dan pi adalah sebuah pointer yang memegang atau menunjuk ke alokasi memori bertipe int yang dimiliki oleh i. Pernyataan:

(71)

9.5. Operator Dereferensing 57 bermakna bahwa sebuah pointer pi bertipe int dideklarasikan dengan nilai awal berupa alamat dari i yang bertipe int. Simbol & pada pernyataan di atas merupakan operator unari yang bearti alamat (address). Pada pernyataan di atas, nilai awal dari pi adalah alamat dari i dalam memori.

9.5

Operator Dereferensing

Operator dereferensing berarti pembacaan atau pemberian nilai data pada alamat yang dipegang oleh sebuah pointer. Operator deferensing juga menggunakan simbol asterik ’*’, akan tetapi sedikit berbeda dengan simbol asterik pada saat pendeklarasian pointer. Perhatikan pernyataan berikut:

int i = 2; int *pi; pi = &i; *pi = 12;

printf("%d\n", i);

Hasil keluaran dari program di atas adalah 12, dengan kata lain variabel i yang pada awalnya bernilai 2 berubah nilainya akibat dari pernyataan *pi = 12. Hal ini menunjukkan bahwa operator dereferensing dapat mengubah nilai dari suatu memori melalui pointer. Pada contoh di atas pi menunjuk ke alamat i, dan dereferensing *pi = 12 mengakibatkan nilai dari i yang ditunjuk oleh pi berubah menjadi 12.

Contoh Lain Operator Dereferensing

int i = 2; int j = 3; int *pi; int *pj; pi = &i; pj = pi; *pj = 20; printf("%d\n", i); pj = &j; pi = pj; *pi = 30; printf("%d\n", j);

(72)

58 Bab 9. Pointer Keluaran dari potongan program tersebut secara berurut adalah:

20 30

Terlihat bahwa nilai i yang pada awalnya bernilai 2 berubah menjadi 20 akibat dari dereferensing pointer *pj = 20; sedangkan nilai dari j yang pada awalnya bernilai 3 berubah menjadi 30 akibat dari dereferensing pointer *pi = 30;

Visualisasi langkah demi langkah dari contoh program sebelumnya adalah sebagai berikut:

int i = 2; int j = 3; int *pi; int *pj;

Potongan program diatas dapat divisualisasikan seperti pada gam-bar 9.2.

Gambar 9.2: Visualisasi pointer Selanjutnya, pernyataan:

pi = &i; pj = pi;

mengakibatkan pointer pi menampung alamat dari variabel i dan ponter pj berubah nilainya menjadi sama dengan nilai pi. Ilustrasinya adalah sebagai terlihat pada gambar 9.3.

Pernyataan

*pj = 20;

printf("%d\n", i);

mengakibatkan nilai variabel i yang ditunjuk oleh pointer pj berubah dari 2 menjadi 20.

(73)

9.5. Operator Dereferensing 59

Gambar 9.3: Visualisasi pointer

Gambar 9.4: Visualisasi pointer

pj = &j; pi = pj;

mengakibatkan arah dari pointer pj berubah dan tunjuk ke alamat variabel j yang juga bertipe int. Kemudian, pointer pi menampung nilai dari alamat c yang sebelumnya ditunjuk oleh pointer pj.

Gambar 9.5: Visualisasi pointer Dan yang terakhir pernyataan:

*pi = 30;

printf("%d\n", j);

mengakibatkan nilai dari variabel yang ditunjuk oleh pi berubah menjadi 30 akibat adanya operator dereferensing *pi = 30.

Jadi, kesimpulannya adalah dengan menggunakan pointer dan operator derefensing nilai dari suatu variabel dalam memori dapat dengan sangat mudah dimanipulasi. Hal inil membuat pointer

(74)

60 Bab 9. Pointer

Gambar 9.6: Visualisasi pointer

menjadi sangat "powerful" dalam pemrograman sekaligus sebagai "the most possibility of bugs"atau dengan kata lain penyebab terbesar kesalahan dalam program. Oleh karena itu, pointer harus digunakan secara benar dan terkontrol.

9.6

Pointer Vs Array

Bila sebuah array dideklarasikan dengan nama array a sebagai berikut:

int a[6] = {8, 4, 6, 3, 4, 10};

Gambar 9.7: Visualisasi pointer pada array

Pembacaan data pada indeks ke 2 dari array a tersebut dapat di-lakukan dengan menulis a[2]. Karena a adalah array dan merupakan pointer yang tetap (fixed pointer) maka operator dereferensing pun dapat diaplikasikan pada a.

Gambar 9.8: Kesamaan array dengan pointer

Bukti:

a[2] = *(a+2) = *(a + sizeof(a) * 2) = *(a + 4 * 2)

= *(2310 + 8) = *(2318) = 6

(75)

9.7. String 61

9.7

String

C tidak menyediakan tipe data primitif berupa string. String dalam pemrograman C direpresentasikan dengan menggunakan pointer bertipe char. Deklarasi:

char * str = "Pemrograman C"

mengakibatkan sebuah pointer str dibuat dengan nilai awal berupa kumpulan char yang membentuk kalimat Pemrograman C. Perhatikan dan diskusikan contoh program berikut:

#include <stdlib.h> #include <stdio.h> #include <string.h> int main(void) { char ch[80], *pch = &ch[0];

strcpy(ch, "informatika unsyiah"); putchar(*pch++); putchar((*pch)++); putchar(*++pch); putchar(*++pch); putchar(++*pch); putchar(++(*pch)); putchar(++(*pch++)); ++pch; putchar(++(*++pch)); putchar(’\n’); printf("%s\n",ch); return (EXIT_SUCCESS); }

(76)
(77)

Bab 10

Fungsi

10.1

Pendahuluan

Fungsi atau function adalah sub program yang dibuat untuk tujuan tertentu dan dapat dieksekusi secara berulang dalam sebuah program. Prototipe fungsi boleh dideklarasikan dalam sebuah atau beberapa file header, sebuah file yang berekstensi .h, sementara implementasi dari fungsi yang telah dideklarasi sebelumnya dapat diimplementasi langsung dalam file header yang sama ataupun diimplementasi secara terpisah dalam file lain yang berekstensi .c. Salah satu tujuan dari pembuatan sebuah fungsi adalah mempermudah proses pengembangan dan perawatan program.

10.2

Objektif

Objektif dari materi ini adalah (i) memperkenalkan cara mendefin-isikan atau mendeklarasikan fungsi, (ii) menjelaskan cara mengek-sekusi sebuah fungsi dalam program, (iii) memperkenalkan konsep called by value dan called by reference, dan (iv) memperkenalkan beberapa fungsi string.

10.3

Pendeklarasian Fungsi

Dalam C, bentuk umum pendeklarasian sebuah fungsi adalah mengiku-ti format berikut ini:

tipe_data nama_fungsi(parameter) { pernyataan

(78)

64 Bab 10. Fungsi Dari format pendeklarasian fungsi di atas, dapat disimpulkan bahwa sebuah fungsi dapat memiliki nilai kembalian (return value) dan dapat pula tidak memiliki nilai kembalian. Sebuah fungsi yang bertipe void adalah fungsi yang tidak memiliki nilai kembalian, sedangkan fungsi yang memiliki nilai kembalian disebut sebagai fungsi bernilai. Nilai yang dikembalikan oleh sebuah fungsi harus sesuai dengan tipe−datayang dideklarasikan pada saat sebuah fungsi

dideklarasikan.

Tipe data dari sebuah fungsi dapat berupa void, int, float, double, long, struct dan lain-lain. Fungsi yang bertipe void tidak akan mengirimkan nilai pada saat fungsi selesai dieksekusi, sementara fungsi yang bertipe selain void akan mengirimkan nilai kembalian pada saat fungsi tersebut selesai dieksekusi. Pengiriman nilai fungsi dilakukan menggunakan pernyataan return.

Contoh:

float celciusToFahreinheit(float celcius){ return ((celcius * 9/5) + 32);

}

Contoh di atas memperlihatkan sebuah fungsi yang dideklarasi dengan nama celciusToFahreinheit dan memiliki sebuah parameter dengan nama celcius dan bertipe float. Fungsi itu sendiri bertipe float, artinya setelah fungsi selesai dijalankan maka akan ada sebuah nilai dengan tipe float dikembalikan kepada variabel atau pernyataan yang memanggil fungsi itu. Untuk contoh di atas, pernyataan yang dikembalikan oleh fungsi adalah pernyataan setelah kata kunci return, yaitu ((celcius * 9/5) + 32.

Perhatikan pendeklarasian fungsi penjumlahan berikut ini:

int penjumlahan(int operan1, int operan2){ return (operan1 + operan2);

}

Contoh di atas memperlihatkan pendeklarasian fungsi penjumla-han yang bertipe int dan memiliki dua buah parameter yaitu operan1 dan operan2 yang kedua-duanya bertipe int. Tujuan dibuatnya fungsi penjumlahan tersebut adalah untuk menjumlahkan dua buah operan bertipe int dan mengembalikan nilai hasil penjumlahan itu kepada penyataan yang memanggilnya. Perhatikan conoth pemanggilan fungsi penjumlahan dalam sebuah program utama main().

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

(79)

10.4. Fungsi Bertipe Void 65

int a, b, c;

printf("Penjumlahan dua bilangan bulat\n"); printf("a = "); scanf("%d", &a);

printf("b = "); scanf("%d", &b); c = penjumlahan(a, b);

printf("Hasil penjumlahan a + b = %d\n", c); return 1;

}

10.4

Fungsi Bertipe Void

Fungsi bertipe void adalah fungsi yang tidak memiliki return value dan tidak memiliki pernyataan return dalam implementasinya. Pro-gram berikut memperlihatkan sebuah fungsi yang bertipe em void.

void judulTabel() {

printf("---\n"); printf(" No. U r a i a n\n"); printf("---\n"); }

Fungsi di atas juga tidak memiliki parameter. Fungsi yang tidak memiliki parameter hanya memiliki kurung buka dan kurung tutup setelah nama fungsinya tanpa ada parameter dideklarasi didalamnya. Cara pemanggilan fungsi yang tidak memiliki return value sama dengan cara pemanggilan fungsi dengan return value. Bila saat dipanggil nilai fungsi yang memiliki return value nilainya biasanya ditampung oleh variabel yang lain, maka untuk fungsi yang tidak memiliki return value, fungsi berdiri sendiri dan tidak memberikan nilainya kepada variabel manapun. Perhatikan contoh program berikut:

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

int i;

judulTabel(); /*pemanggilan fungsi*/ return 1;

Gambar

Gambar 1.1: Contoh penulisan program yang baik.
Tabel 2.1: Format Tipe Data Karakter Konversi Format argumen
Gambar 3.1 memperlihatkan urutan pemrosesan dan presidensi dari sebuah operator dalam pemrograman C
Tabel 4.1: Operator relasional
+7

Referensi

Dokumen terkait

Kelemahan dari Organisasi Pangan dan Pertanian yaitu FAO terlalu desentralisasi, dengan proporsi staf yang bertugas di pusat yang banyak, yang jauh dari pengamatan

Berdasarkan analisa data didapatkan bahwa dari 30 respon dan didapatkan pengetahuan masyarakat tentang tanaman obat keluarga sebagian besar berada pada katagori

Badan adalah sekumpulan orang dan atau modal yang merupakan kesatuan baik yang melakukan usaha maupun yang tidak melakukan usaha meliputi Perseroan Terbatas, Perseroan Komenditer,

Jakarta, Kompas - Tanda tangan Menteri Dalam Negeri (saat itu) Hari Sabarno pada secarik kertas kecil berwarna hijau menjadi dasar pengiriman radiogram oleh mantan Direktur

Maka dari itu, penulis hendak melakukan penelitian yang berjudul “Pemodelan Arus Arcing Tegangan Rendah pada Kabel Fleksibel (Serabut) menggunakan Elman Neural

Penentuan varians bersyarat dari sebuah peubah acak diberikan peubah acak lainnya, baik diskrit maupun kontinu dijelaskan dalam Definisi 7.12... 2 FUNGSI PEMBANGKIT

Fokus penelitian ini diarahkan pada bagaimana pemahaman orang tua terhadap kondisi ketunagrahitaan anak, sikap orang tua terhadap kondisi ketungrahitaan anak, masalah yang

Halaman 6 LAMPIRAN II PENJABARAN PERTANGGUNGJAWABAN - PENJABARAN LAPORAN REALISASI ANGGARAN PENDAPATAN DAN