materi 3 lks struktur program c

13
Bab 3 Struktur Program C Perhatikan contoh program C di bawah ini. [1] /* Program hello.c */ [2] #include <stdio.h> [3] main() [4] { [5] printf("HELLO\n"); // print [6] return 0; [7] } Bagian Program tersebut adalah: [1] Komentar. Tidak diproses oleh compiler. [2] Preprocessor directives. [3] Fungsi utama yang harus ada dalam setiap program C. [4] Kurung kurawal buka menandakan awal dari badan fungsi. [5] Statement dalam badan program. Merupakan fungsi untuk menulis ke standar output. [6] Akhir dari fungsi main. [7] Kurung kurawal tutup menandakan akhir dari badan fungsi. 3.1 Komentar Komentar diberikan di dalam program untuk memberikan penjelasan terhadap bagian program tersebut. Penjelasan ini akan sangat bermanfaat untuk membaca kembali program. Komentar pada program ditandai dengan /* isi komentar */ seperti pada baris 1 atau didahului dengan // seperti pada baris 5. 3.2 Prepocessor Directives #include <stdio.h> File stdio.h disebut file header yang mengandung informasi berupa variabel-variabel dan fungsi-fungsi yang diperlukan untuk penggunaan librari standard (standard 1

Upload: yoga-armando

Post on 23-Oct-2015

20 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Materi 3 Lks Struktur Program c

Bab 3 Struktur Program C

Perhatikan contoh program C di bawah ini.

[1] /* Program hello.c */[2] #include <stdio.h>[3] main()[4] {[5] printf("HELLO\n"); // print[6] return 0;[7] }

Bagian Program tersebut adalah:

[1] Komentar. Tidak diproses oleh compiler.[2] Preprocessor directives.[3] Fungsi utama yang harus ada dalam setiap program C.[4] Kurung kurawal buka menandakan awal dari badan fungsi.[5] Statement dalam badan program. Merupakan fungsi untuk menulis ke

standar output.[6] Akhir dari fungsi main.[7] Kurung kurawal tutup menandakan akhir dari badan fungsi.

3.1 Komentar

Komentar diberikan di dalam program untuk memberikan penjelasan terhadap bagian program tersebut. Penjelasan ini akan sangat bermanfaat untuk membaca kembali program. Komentar pada program ditandai dengan /* isi komentar */ seperti pada baris 1 atau didahului dengan // seperti pada baris 5.

3.2 Prepocessor Directives

#include <stdio.h>

File stdio.h disebut file header yang mengandung informasi berupa variabel-variabel dan fungsi-fungsi yang diperlukan untuk penggunaan librari standard (standard library). Untuk mengakses variabel atau fungsi yang ada di dalam librari standard, kita harus menyertakan file header yang sesuai ke dalam program, yaitu dengan menggunakan apa yang disebut dengan include directive. Sedangkan program yang memproses directive tersebut disebut dengan preprocessor directives.

Perhatikan contoh-contoh berikut:

#include <stdio.h> /* file header tersimpan di default directory */#include <stdlib.h>#include "a:myfile.h" /* file header tersimpan di drive a: */

1

Page 2: Materi 3 Lks Struktur Program c

3.3 Fungsi

Pernyataan-pernyataan dapat dikelompokkan secara logika menjadi suatu fungsi (function). Setiap program C harus mengandung sedikitnya sebuah fungsi, yang disebut dengan main(). Pernyataan pertama yang dieksekusi oleh program adalah main(). Dalam sebuah program boleh saja terdiri dari lebih dari satu fungsi, dan jika hanya terdiri dari satu fungsi, maka fungsi tersebut adalah fungsi main.

Sebuah fungsi terdiri dari empat bagian, yaitu tipe kembali (return type), nama fungsi (function name), daftar argumen (argument list), dan tubuh fungsi (function body). Tiga bagian pertama membentuk apa yang disebut dengan fungsi prototipe (prototype function). Lebih jauh tentang fungsi akan dibahas pada pertemuan pekan ke enam.

Tubuh fungsi dibatasi oleh sepasang kurung kurawal { … } dan terdiri dari baris-baris pernyataan. Baris-baris pernyataan diakhiri dengan titik koma (;) seperti contoh berikut:

int Nilai; /* declaration statement */Nilai = 4 + 5; /* assignment statement */

3.4 Kata Kunci

Kata kunci (keywords) adalah kata di dalam pemrograman yang tidak dapat digunakan untuk kepentingan lain kecuali yang telah ditetapkan oleh kompilator. Dengan demikian kita tidak dapat membuat variabel dengan nama seperti yang tercantum pada kata kunci, atau kepentingan-kepentingan lainnya. Ada 32 kata kunci di dalam C, yaitu:

auto double int structbreak else long switchcase enum register typedefchar extern return unionconst float short insignedcontinue for signed voiddefault goto sizeof volatiledo if static while

Perhatikan contoh program C di bawah ini.

[1] /* Program jumlah */[2] #include <stdio.h>[3] main()[4] {[5] int a, b, jumlah;[6] scanf("%d %d", &a, &b);[7] jumlah=a+b;[8] printf("%d\n", jumlah); // print[9] return 0;[10] } Bagian Program tersebut adalah:

2

Page 3: Materi 3 Lks Struktur Program c

[1] Komentar. Tidak diproses oleh compiler.[2] Preprocessor directives.[3] Fungsi utama yang harus ada dalam setiap program C.[4] Kurung kurawal buka menandakan awal dari badan fungsi.[5] Deklarasi variabel. Tiap variabel yang digunakan harus

dideklarasikan. Tergantung pada tipe data, dalam hal ini bil.bulat (int)

[6] Fungsi membaca data. Dalam fungsi ini terdapat dua jenis argumen, yaitu format dan variabel. Format menunjukkan tipe data yang dibaca, dalam hal ini adalah dua nilai desimal bulat (%d %d). Variabel yang menerima nilai data, diawali dengan tanda &.

[7] Pernyataan penugasan. Memberikan nilai a+b (sebelah kanan tanda =) ke variabel jumlah (sebelah kiri tanda =).

[8] Fungsi menulis output. Ada dua argumen: format dan variabel (atau ekspresi). Mirip fungsi scanf, tetapi argumen kedua adalah ekspresi

[9] Akhir dari fungsi main.[10] Kurung kurawal tutup menandakan akhir dari badan fungsi.

3.5 Symbolic Variable

Setiap program umumnya mengandung satu atau lebih variabel untuk menyimpan suatu nilai, misalnya 'Nilai1', 'Nilai2', 'NilaiMaks', 'x1', dan 'x2' contoh program C sebelumnya. Identifikasi variabel ini dibuat oleh pengguna sendiri dan bersifat addressable karena alamatnya dapat diakses melalui program. Ada dua nilai yang berkaitan dengan sebuah variabel, yaitu Rvalue dan Lvalue. Rvalue adalah nilai data yang disimpan pada lokasi memori, sedangkan Lvalue adalah alamat dari lokasi memori dimana nilai data itu disimpan. Perhatikan contoh berikut:

x = a;

Lvalue Rvalue

x = x + 1;

Di dalam sebuah program, setiap variabel yang dibuat harus dideklarasikan dengan menentukan tipe variabel yang bersangkutan. Berikut adalah contoh deklarasi variabel:

int hari, bulan, tahun;unsigned long jarak;int nilai = 0;double harga = 15.9, potongan = 0.2;float gaji;unsigned x = abs(-108);

3.6 Literal Constant

Suatu nilai data dalam program kadang-kadang berbentuk literal (hanya berupa nilai, misalnya 3, 4.15, dan sebagainya) dan bersifat constant (tidak dapat diubah). Setiap

3

Page 4: Materi 3 Lks Struktur Program c

literal mempunyai tipe, misalnya: 3 bertipe int, 4.15 bertipe float, dan sebagainya. Nilai literal juga bersifat nonaddressable karena alamatnya tidak dapat diakses.

Ada tiga tipe literal constant ini, yaitu:1. literal integer constants, untuk menuliskan konstanta bilangan bulat. Konstanta ini

dapat dituliskan dalam notasi desimal (misalnya 20, -5), oktal yang dimulai dengan karakter '0' (misalnya 024), dan heksadesimal yang dimulai dengan karakter '0X' (misalnya 0X14). Jika tidak menggunakan deklarasi tipe apapun, otomatis konstanta yang dituliskan bertipe integer bertanda (signed int). Tipe long dan unsigned dapat ditambahkan di belakang konstanta, misalnya 123U, 325UL, 2L, dan sebagainya.

2. literal floating point constants, yaitu nilai konstanta jenis bilangan riil yang dapat dituliskan dalam notasi ilmiah (misalnya 1.0E-3 yang berarti 1.0 x 10-3), dan notasi desimal (misalnya 3.14F, 0.0).

3. literal character constants, yaitu konstanta karakter yang ditulis di dalam tanda kutip ('..'), misalnya 'a', '2', ',', '' (empty character), dan sebagainya. Disamping itu, terdapat karakter yang bersifat nonprintable character (tidak dapat dicetak, melainkan hanya sebagai kode operasi tertentu), yang ditulis dengan escape sequences, seperti yang diuraikan pada tabel berikut:

No Karakter Penjelasan1 \n new line2 \t horizontal tab3 \r carriage return4 \a alert, sound bell system5 \\ back slash6 \” double quote

4. string literal constants, yang terdiri dari nol atau lebih karakter, dan ditulis di dalam tanda kutip dobel (double quotes), yaitu "…..", misalnya "" (null string='\0'), "a" (sama dengan 'a','\0') , "komputer" (sama dengan 'k','o','m','p','u','t','e','r','\0'), dan sebagainya.

3.7 Menulis dan Membaca

Fungsi standard yang sering digunakan di dalam program C untuk menuliskan nilai ke layar dan membaca nilai dari papan ketik adalah printf dan scanf. Kedua fungsi ini dapat dilihat penggunaannya pada contoh program C berikut, yaitu:

printf("\nKetikkan dua bilangan bulat : ");printf("\nHasilnya adalah : %d", x);scanf("%d %d", &Nilai1, &Nilai2);

Fungsi printf yang pertama mempunyai satu argumen, yang bertujuan untuk menuliskan suatu string kalimat 'Ketikkan dua bilangan bulat :' di layar. Kalimat ini diawali dengan karakter '\n' yang berarti bahwa kursor terlebih dahulu dipindahkan ke baris baru sebelum menuliskan kalimat tersebut. Sedangkan fungsi printf yang kedua mempunyai dua argumen, dimana argumen pertama adalah string kalimat yang akan

4

Page 5: Materi 3 Lks Struktur Program c

ditulis ke layar, dan argumen kedua adalah nilai suatu variabel yang akan ditulis (x). Nilai x ini ditulis dengan menggunakan notasi desimal (karakter '%d' pada argumen pertama). Fungsi kedua adalah scanf yang digunakan untuk membaca nilai suatu variabel yang diketikkan dari papan ketik saat program diproses. Pada contoh ini, nilai yang dibaca terdiri dari dua buah dan masing-masing akan dimasukkan ke dalam variabel Nilai1 dan Nilai2. Karakter '%d' menunjukkan bahwa nilai yang diketik harus dalam notasi desimal, sedangkan karakter '&' menunjukkan bahwa argumen fungsi scanf berupa reference variable (akan dibahas pada bab selanjutnya). Di bawah ini adalah format untuk input output berdasarkan tipe data yang digunakan:

Data type Format

Char or Signed Char or Unsigned Char %c

Int or Signed int %d

Unsigned int %u

Short int or Signed short int %hd

Unsigned short int %hu

Long int or signed long int %ld

Unsigned long int %lu

Float or Double %f

Long Double %lf

Bab 3

5

Page 6: Materi 3 Lks Struktur Program c

Lembar Kerja Praktikum

Nama : Yoga Armando Tanggal Praktikum : 4 Oktober 2013

NRP : F44120026 Waktu Praktikum : 07.00-09.00 wib

Nilai : Nama Asisten : Lutfi

Penjelasan Asisten (30 menit)Asisten akan menjelaskan struktur program C dengan menggunakan dua contoh

program yang terdapat pada lembar teori Bab 3 sebelumnya, serta program-program yang telah dikerjakan pada latihan LC.

Lembar Kerja Bagian I (45 menit) Tuliskan program-program berikut, simpan nama file sesuai dengan nama yang sudah ditentukan pada folder (nama folder sesuaikan dengan NRP), kemudian jawablah pertanyaan singkat terkait dengan program tersebut pada tempat yang telah disediakan. Gunakan command prompt untuk melakukan kompilasi dan menjalankan program.

Program 1Nama Program: struktur1.c#include <stdio.h>Main(){Scanf (“%d %f”, &a, &b);Printf(“%d %f”, a, b);}

Jalankan program struktur1.c. Apa yang terjadi? Dapatkah Anda sebutkan kesalahan yang terdapat pada program tersebut?Jawab:

terjadi kesalahan pada program, kesalahan tersebut yaitu tidak mendeklarasikan variable a dan b ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Setelah menyebutkan kesalahan yang terdapat didalamnya, cobalah perbaiki program tersebut dan simpan dalam struktur2.c

Program 2

6

Page 7: Materi 3 Lks Struktur Program c

Nama Program: struktur2.c

#include <stdio.h>

Main(){Int a,b;Scanf (“%d %f”, &a, &b);Printf(“%d %f”, a, b);}

Jika diketahui suatu variabel gaji memiliki kisaran nilai 1000000-2000000 rupiah, variabel bulan memiliki kisaran 1-12, dan variabel potongan adalah nilai persen dari gaji, maka lakukan pengecekan apakah struktur3.c telah memenuhi kebutuhan ketiga variabel tersebut dengan tepat.

Program 3Nama Program: struktur3.c

#include <stdio.h>main{int gaji, long int bulan, double potongan;gaji=1500000;bulan=11;potongan=30;printf(”%d %ld %f”,gaji,bulan,potongan);return 0;}

Setelah dijalankan, apakah tipe int telah sesuai untuk diberikan pada variabel gaji?apakah tipe long int telah sesuai diberikan pada variabel bulan? apakah tipe double telah sesuai diberikan pada variabel potongan? Jika Anda menjawab belum, maka daftarlah tipe data mana yang lebih sesuai untuk masing-masing variabel tersebut dan jelaskan jawaban Anda!

Jawab: Tidak, tipe long int tidak sesuai dengan variable bulan, tipe yang sesuai untuk varuabel bulan ialah int karena karakter bulan tidak telalu panjang. Tipe int tidak sesuai untuk variable gaji karena karakter untuk variable gaji terlalu panjang untuk di

7

Page 8: Materi 3 Lks Struktur Program c

deklarasikan dengan int. Tipe yang sesuai yaitu long int. sedangankan unutk variable potongan tipenya sudah sesuai.

Program 4Nama Program: struktur4.c

#include <stdio.h>main() { int a=2, b=5; int t=2*b; b=2*a; a=t; printf("%d %d”,b,a); return 0;}

Apakah ada kesalahan pada program? Apa keluaran dari program tersebut? Jelaskan!

Jawab: Ada, tanda kutip yang digunakan tidak sesuai. Keluaran dari program : 4 10.

Program 5Nama Program: struktur5.c

#include <stdio.h>main() { int a=5, b=10; scanf(“%d %d”, &b, &a); printf(“%d\n%d\t%d\r%d”, a, b, a, b, a); return 0;}

Apa keluaran program di atas? Jelaskan dampak dari \n, \t, dan \r yang terdapat pada program struktur5.c! Apa yang terjadi pada variabel a terakhir yang terdapat pada fungsi printf?

Jawab: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

8

Page 9: Materi 3 Lks Struktur Program c

Lembar Kerja Bagian II (45 menit) Buatlah program sesuai dengan instruksi yang diberikan simpan nama file sesuai dengan yang tertera pada soal di dalam folder NRP Anda, dan tuliskan program pada tempat yang tersedia di bawah.

Tugas 4Nama Program: tugas4.cKetentuan: Rancang sebuah program untuk menghitung total potongan harga yang diberikan untuk lima buah barang. Pemilik toko berhak memberikan besaran diskon dalam persen untuk masing-masing barang. Input berupa harga lima buah barang dan lima besaran diskon untuk masing-masing barang.Masukan/Input:100000200000300000400000500000001010101050Keluaran/Output:26170000.00Program:#include <stdio.h>main(){printf("Programku yang pertama");printf("Aku harus banyak berlatih.");printf("Tidak ada yang tidak bisa,");printf("yang ada adalah seberapa besar");printf("aku berusaha.");printf("Agustus");printf("2008")

Tugas 5Nama Program: tugas5.cKetentuan: Rancang sebuah program untuk menghitung total potongan harga yang diberikan untuk lima buah barang. Pemilik toko berhak memberikan besaran diskon dalam persen pada barang pertama. Untuk barang selanjutnya diskonnya akan berkurang 5 persen dari diskon barang sebelumnya. Diskon barang pertama telah ditentukan HARUS lebih besar dari 20 persen. Jadi, jika diskon barang pertama adalah 25, maka diskon barang kedua adalah 20, barang ketiga adalah 15

9

Page 10: Materi 3 Lks Struktur Program c

dan seterusnya. Input berupa harga lima buah barang dan satu besaran diskon untuk barang pertama.Masukan/Input:1000002000003000004000005000000025Keluaran/Output:48350000Program:#include <stdio.h>main(){printf("Programku yang pertama");printf("Aku harus banyak berlatih.");printf("Tidak ada yang tidak bisa,");printf("yang ada adalah seberapa besar");printf("aku berusaha.");printf("Agustus");printf("2008")

10