Struktur Program Bahasa C


Bahasa C merupakan bahasa yang terstruktur. Beberapa struktur dasar pada program bahasa C telah terlihat pada program yang kalian tulis sebelumnya.

#include<stdio.h>
int main(){
  printf("Halo Dunia!\n");
  return 0;
}

Baris pertama merupakan suatu pernyataan yang digunakan untuk memasukan sebuah header file yang bernama stdio.h. Header file merupakan kumpulan fungsi-fungsi dasar yang dikelompokkan berdasarkan kegunaannya dan dapat digunakan untuk membantu kalian membuat program. Pada kode di atas, header file yang digunakan ialah stdio.h yang berisi fungsi-fungsi terkait masukan dan keluaran standar (atau standard input output). Dengan menggunakan stdio.h, program yang kalian buat dapat membaca dan menulis data.

Pada baris 2-5, kalian menemukan sebuah blok program yang merupakan implementasi suatu fungsi bernama main. Fungsi ini merupakan fungsi yang akan dijalankan pertama kali pada saat program dijalankan. Isi dari blok fungsi tersebut diapit dengan tanda kurung kurawal. Di dalam fungsi ini, pada baris 3, terdapat pemanggilan sebuah fungsi bernama printf yang digunakan untuk mencetak suatu data ke layar. Dalam hal ini, data yang ditampilkan ialah sebuah kalimat “Halo Dunia!\n” yang diberikan pada parameter fungsi tersebut. Karakter \n yang ada pada kalimat tersebut akan dicetak oleh program sebagai baris baru (newline), seperti jika kalian menekan tombol enter pada papan ketik kalian.

Pada baris keempat, terdapat sebuah pernyataan return 0. Penjelasan mengenai fungsi pernyataan ini cukup berat untuk dijelaskan pada bagian ini. Singkatnya, pernyataan ini merupakan tanda bagi sistem operasi untuk mengecek selesainya program dengan benar. Apabila program berjalan dan berhenti dengan benar, sistem operasi akan memperoleh nilai 0. Nilai selain 0 akan menjadi tanda bahwa program tidak berhenti dengan benar. Untuk saat ini, yang perlu kalian ketahui ialah pernyataan ini perlu diletakkan di akhir blok fungsi main pada program yang kalian tulis.

Kalian dapat memodiikasi kode program tersebut dan menjalankannya kembali dengan melakukan beberapa perubahan, misalnya:

  1. Ubah kalimat Halo Dunia menjadi Hello World!
  2. Cetak dua baris kalimat di layar, yaitu “Halo Dunia!” dan “Saya siap belajar pemrograman!”

$ads={1}

Komponen Program dalam Bahasa C

Sebelum membuat program yang lebih kompleks, yang melibatkan ekspresi, struktur kontrol keputusan, atau struktur kontrol perulangan, kalian perlu memahami makna dari berbagai komponen penyusun bahasa C, di antaranya meliputi kata kunci, identifier, variabel, tipe data, dan konstanta.

Kata Kunci (Keyword)

Kata kunci merupakan kata yang telah memiliki makna khusus yang tidak dapat diubah oleh pemrograman. Dengan kata lain, kalian tidak dapat menggunakan sebagai suatu identifier. Terdapat 32 kata kunci standar pada bahasa C, yaitu:

auto, double, int, struct, break, else, long, switch, case, enum, register, typedef, char, extern, return, union, continue, for, signed, void, do, if, static, while, default, goto, sizeof, volatile, const, float, short, dan unsigned.

Bayangkan, dengan hanya 32 kata kunci, kalian bisa menulis program apa saja dalam bahasa C!

Identifier

Identifier adalah nama unik yang dapat kalian ingat yang diberikan ke dalam entitas program C, seperti variabel dan fungsi. Identifier terdiri atas serangkaian karakter dengan aturan berikut.

  • Tidak boleh sama dengan kata kunci (keyword) dalam bahasa C.
  • Disusun dari kombinasi huruf (besar dan kecil), angka, dan underscore "_".
  • Harus dimulai dengan huruf atau underscore.
  • Bersifat case-sensitive, atau sensitif terhadap huruf besar atau kecil (kapitalisasi karakter). Dengan kata lain, sisi dan Sisi akan dianggap sebagai dua identifier yang berbeda.

Praktik Baik Pemrograman

Walaupun dengan aturan di atas kalian dapat membuat identifier dengan sangat bebas, keterbacaan kode program menjadi penting. Beberapa praktik baik yang perlu kalian ketahui untuk menghindari kebingungan dalam membaca dan menulis kode ialah seperti berikut.

  1. Nama yang diawali oleh underscore digunakan untuk keperluan tertentu dan tidak seharusnya digunakan dalam membuat program di unit ini.
  2. Nama variabel dan fungsi harus ditulis dengan huruf non-kapital. Akan tetapi, apabila terdiri atas dua atau lebih kata, kalian dapat menggunakan teknik menulis dengan standar camel case. Huruf awal kata, selain kata pertama, ditulis menggunakan huruf kapital. Contoh: totalHargaBarang, namaMahasiswa.
  3. Hindari menggunakan identifier yang sangat mirip dalam satu kode program. Misalnya,  totalHarga dengan total_harga. Hindari juga dua atau lebih variabel yang hanya berbeda di kapitalisasi seperti totalharga dan totalHarga,.
  4. Hindari identifier yang terlihat mirip, misalnya karakter ‘I’, ‘1’, dan ‘l’ terlihat sangat mirip satu sama lain. Catatan: karakter yang disebutkan ialah huruf i kapital, angka 1, dan huruf L non-kapital.
  5. Identifier haruslah bersifat nemonic. Untuk variabel, artinya identifier variabel tersebut harus menunjukkan isi dari variabel tersebut. Untuk fungsi, identifier menunjukkan apa yang dilakukan oleh fungsi tersebut.
  6. Dalam dunia pemrograman, ada beberapa nama variabel yang menjadi kebiasaan untuk dipakai, misalnya nama variabel untuk mengunjungi elemen tabel, dipakai indeks i, j, dan k.
  7. Konstanta dinamai dengan huruf kapital. Misalnya, PI.

 

Tipe Data

Komputer dapat mengolah data yang beragam. Pada dasarnya, data yang diolah oleh komputer, baik berupa numerik ataupun karakter, akan disimpan dalam bentuk biner. Oleh karena itu, nilai yang kalian masukkan dalam komputer pastilah akan disimpan dalam bentuk biner. Program perlu mengetahui bagaimana bilangan biner dibaca sehingga diperlukan suatu mekanisme untuk memberi tahu program tentang data yang kita simpan pada variabel tersebut. Hal ini diakomodir melalui tipe data. Suatu tipe data akan memiliki nama tipe, jenis data yang disimpan, dan rentang yang berbeda. Pada bahasa C, terdapat beberapa tipe data dasar yang dapat digunakan Tabel berikut:

Nama Tipe Jenis Data Ukuran Memori Rentang
int Bilangan bulat 4 byte -2.1x109 hingga 2.1x109
short Bilangan bulat 2 byte -32768 hingga   32767
long Bilangan bulat 8 byte -9.2x108 hingga 9.2x108
float Bilangan riil 4 byte 1.2x1038 hingga 3.4x1038
double Bilangan riil 8 byte 2.3x10308 hingga 1.7x10308
char Karakter* 1 byte -127 hingga 128

Perhatikan bahwa rentang yang diberikan memungkinkan nilai negatif hingga positif, atau disebut tipe data signed. Apabila kalian menambahkan kata kunci unsigned di depan tipe data, tipe data tersebut hanya akan menampung bilangan positif dengan rentang dari 0 hingga 2 jumlah bit - 1.

Praktik Baik Pemrograman

Gunakan tipe data yang sesuai dengan kebutuhan kalian. Sebagai contoh, saat mengolah data usia manusia dalam satuan tahun, kalian cukup menggunakan tipe data short yang memerlukan memori lebih kecil. Ketika kalian nanti membuat program yang mengolah dan menyimpan data dengan jumlah yang sangat besar, praktik ini dapat membuat program kalian berjalan dengan kebutuhan memori yang lebih efisien.

Variabel

Pada matematika, kalian mengenal variabel sebagai sebuah wadah untuk menyimpan suatu nilai. Variabel pada program memiliki fungsi yang sama. Nilai yang diberikan pada sebuah variabel akan disimpan di memori komputer. Komputer memberikan alamat pada lokasi memori tersebut yang sulit diingat oleh manusia. Oleh karena itu, variabel diberikan nama simbolik yang mudah untuk diingat oleh kalian dengan menggunakan identifier.

Dalam bahasa C, variabel perlu dideklarasikan dengan memberikan tipe data dan identifier sebelum dapat digunakan. Deklarasi dapat dilakukan dengan menggunakan pernyataan berikut:
<tipe_data><nama_variabel>;

Pada saat deklarasi, variabel juga dapat diberikan nilai awal, misalnya dalam bentuk:
<tipe_data><nama_variabel> = <nilai awal>;

Variabel dengan tipe yang sama dapat dideklarasikan secara ringkas seperti:
<tipe_data><nama_variabel1>, <nama_variabel2>;

Beberapa contoh untuk mendeklarasikan variabel dapat dilihat pada Tabel berikut:

Tipe Data Identifier Deklarasi Deklarasi dengan Nilai Awal
int totalHarga int   totalHarga; int totalHarga = 150000;
short usia short usia; short usia = 29;
long jumlahAtom long jumlahAtom; long jumlahAtom = 9123151252214;
float jarak float jarak; float jarak = 2.28;
double galat double galat; double galat = 0.0000000001234;
char huruf char huruf; char huruf = `a`;
Deklarasi secara ringkas misalnya dapat dilakukan seperti berikut:
int panjang = 1, lebar = 2, luas;
float alas, sisi, volume;

Tempat deklarasi variabel akan berpengaruh pada penggunaan variabel tersebut. Apabila deklarasi variabel dilakukan di dalam sebuah fungsi, variabel tersebut hanya dapat digunakan di dalam fungsi tersebut. Variabel seperti ini disebut variabel lokal. Apabila deklarasi dilakukan di luar fungsi, variabel tersebut akan dapat diakses di bagian program mana pun. Variabel ini disebut variabel global.

Konstanta

Berbeda dengan variabel yang nilainya dapat berubah, konstanta tidak dapat diubah. Saat dideklarasikan, nilai dari konstanta diberikan dan tidak dapat diubah kembali. Apabila kalian memaksa mengubah konstanta, kompilator akan memberikan pesan kepada kalian. Penggunaan konstanta yang lazim ialah untuk menyimpan nilai konstan seperti pi (π), rho (ρ), dan konstanta lainnya yang lazim digunakan.

Konstanta dapat dideklarasikan seperti variabel, dengan menambah kata kunci const di depan tipe data. Nilai awal harus langsung diberikan pada saat deklarasi. Misalnya, deklarasi konstanta pi dapat dilakukan sebagai berikut:
const float PI = 3.14;

Membaca dan Menulis

Untuk dapat membantu manusia, program harus dilengkapi dengan kemampuan berkomunikasi. Ada banyak cara untuk berkomunikasi lewat antarmuka pengguna (user interface), tetapi bentuk komunikasi dasar yang perlu kalian kuasai komunikasi lewat command line interface (CLI). Lewat CLI, kalian dapat berkomunikasi dengan sebuah program menggunakan teks, dan program pun akan merespons kalian dengan menggunakan teks. Dengan kata lain, interaksi menggunakan CLI sangat bergantung pada kemampuan program untuk membaca data yang diberikan oleh pengguna dan menuliskan hasil pekerjaan.

Agar dapat membaca dan menulis, program yang kalian buat perlu menggunakan header stdio.h yang memuat fungsi masukan-keluaran standar menggunakan CLI. Dua fungsi utama yang dapat digunakan ialah scanf untuk membaca dan printf untuk menulis. Untuk lebih jelasnya, perhatikanlah contoh program berikut. Pada program baca tulis berikut, kalian akan memerintahkan komputer untuk membaca suatu bilangan dan menuliskannya kembali.


/* Program Baca Tulis 3 */
#include<stdio.h>
int main(){ 
   int bilangan; 
   scanf("%d", &bilangan); 
   printf("Bilangan yang dibaca bernilai untuk dimunculkan di sini: "); 
   printf("%d.\n",   bilangan);
   return 0; 
}

Pada baris keempat, program memanggil fungsi scanf untuk membaca masukan dari pengguna. Pada saat baris ini dieksekusi, program akan berhenti hingga pengguna memasukkan suatu bilangan dan menekan tombol enter.

Perhatikan bahwa pada baris tersebut, fungsi scanf menerima dua buah parameter, yaitu %d yang merupakan spesifikasi format (format specifier) dan &bilangan yang merupakan variabel untuk menampung nilai yang dibaca. Artinya, pada saat kalian menekan enter, program akan membaca nilai 10 yang kalian masukkan sebagai sebuah nilai bertipe data int, dan akan menyimpannya ke variabel bilangan. Di depan bilangan, terdapat tanda ampersand (&) yang wajib digunakan untuk melakukan pembacaan. Makna dari simbol & akan dijelaskan lebih detail pada kesempatan lain.

Setiap tipe data memiliki spesifikasi format yang dapat digunakan untuk menjelaskan jenis data kepada program. Ingat, program membaca dan menyimpan semua data sebagai bilangan biner. Spesifikasi format yang digunakan untuk tipe data pada bahasa C dapat dilihat pada Tabel berikut:

Nama Tipe Spesifikasi Format (Signed) Spesifikasi Format (Unsigned)
int %d %ud
short %d %ud
long %ld %uld
float %d %ud
double %ld %uld
char %c %uc

Baris kelima dan keenam adalah pernyataan untuk menulis menggunakan fungsi printf. Pada baris kelima, kalian memerintahkan program untuk mencetak suatu kalimat yang diapit dengan tanda petik ganda. Pada baris keenam, kalian memerintahkan program untuk mencetak nilai dari variabel bilangan. Mirip seperti fungsi scanf, kalian menemukan adanya spesifikasi format dan variabel. Bedanya, di depan variabel, tidak perlu ada tanda ampersand.

Saat dipanggil, program akan mencetak nilai dari variabel bilangan dengan format yang diberikan. Hanya saja, ada karakter baru yang muncul, yaitu \n. Ini adalah escape sequence yang digunakan untuk membuat garis baru, persis seperti ketika kalian menekan tombol enter pada aplikasi pengolah kata. Data yang ditulis setelah \n akan dicetak di baris yang baru oleh program.

Ada beberapa escape sequence lain yang dapat digunakan, yaitu:

\n (newline)
\t (tab)
\v (vertical tab)
\f (new page)
\b (backspace)
\r (carriage return)
\n (newline)
\a (beep, bell)
\\ (garis miring)
\" (tanda kutip ganda)
\` (tanda kutip)

Tentunya, kalian juga menggunakan fungsi printf untuk mencetak tipe data lain, misalnya bilangan riil. Pada bilangan riil, kalian dapat membatasi jumlah digit di belakang desimal dengan memodiikasi spesifikasi format. Perhatikan kode berikut yang akan menampilkan angka 12.345 ke layar.

/* Program Cetak Desimal */
#include <stdio.h>
int main() { 
  float x=12.3456789; 
  printf("%.3f\n", x); 
  return 0;
}

Kalian juga dapat membaca atau menulis dua atau lebih nilai sekaligus seperti pada contoh berikut:

/* Program Cetak Bilangan Bulat dan Desimal */
#include <stdio.h>
int main() {
  int a, b;
  float c;
  scanf("%d %d %f", &a, &b, &c);
  printf("%d %d %.3f\n", a, b, c); 
  return 0;
}

Ayo Cari Tahu

Ketikkan kode tersebut, diberikan masukan 10 10 10.1234, dan perhatikan hasilnya.

Praktik Baik Pemrograman

Seiring dengan makin kompleksnya program yang kalian buat, ada beberapa praktik baik yang dapat kalian lakukan.

  1. Belajar menulis kode program memerlukan kemampuan bereksperimen dan mencoba hal baru. Karena keterbatasan halaman, buku ini tidak mungkin memberikan contoh selengkap mungkin untuk mencoba berbagai kemungkinan dalam menulis kode program. Oleh karena itu, kalian perlu melakukan eksperimen dan mencoba memodifikasi kode program yang telah diberikan. Kalian dapat membaca materi lain tentang bahasa C yang dapat diakses di micro.serbaserbiilmu.com ketika menemukan suatu konsep ingin kalian pelajari lebih lanjut.
  2. Jangan takut apabila program kalian gagal berjalan karena hal itu sangat wajar ketika belajar menulis kode program. Bahkan, pemrogram senior pun masih bisa melakukan kesalahan. Jadikan hal tersebut sebagai pemacu untuk mencari tahu hal yang membuat program kalian gagal berjalan. Dari situ, kalian akan menambah pengalaman dan di masa depan tidak akan kembali melakukan kesalahan yang sama.
  3. Buat kode program kalian lebih mudah dibaca dengan menggunakan whitespace atau ruang kosong. Whitespace adalah istilah bagi karakter yang tidak tampak di layar (contoh: spasi, tab, dan newline). Whitespace dapat digunakan untuk membuat kode kalian lebih mudah dibaca dengan memberikan jarak pada kode. Jarak biasanya diberikan antara kumpulan baris kode yang memiliki peran berbeda. Contoh-contoh kode program yang diberikan pada unit ini disajikan dengan menggunakan whitespace yang dapat kalian adopsi.

Semangat terus untuk bereksperimen!


Belajar Menulis Program Sambil Menyelesaikan Masalah

Pada unit ini, aktivitas Ayo, Kita Berlatih diberikan sebagai bentuk latihan menyelesaikan suatu problem yang diberikan dengan pemrograman. Karena unit ini bersifat pengenalan pada kegiatan menulis kode program (coding), problem yang diberikan pada kalian diberikan dalam bentuk spesifikasi yang telah terstruktur. Pada kenyataannya, ketika kalian membuat program untuk menyelesaikan suatu permasalahan nyata, kalian perlu membuat sendiri spesifikasi dari program yang akan dibuat. Kalian perlu menetapkan sendiri tujuan dari program, format masukan, serta format keluaran dari program. Aktivitas ini akan kalian lakukan di akhir unit, tetapi sekarang kalian dapat fokus membuat program berdasarkan spesifikasi yang telah diberikan. Selain itu, pada unit pratik lintas bidang (PLB), kalian akan diajak untuk membuat sebuah program untuk menyelesaikan permasalahan di lingkungan tempat kalian tinggal.

Pada setiap aktivitas, kalian akan diberikan setidaknya satu permasalahan untuk diselesaikan dengan menggunakan konsep yang telah diberikan pada buku. Bentuk permasalahan tersebut akan diberikan dengan struktur pada Tabel berikut:

Tabel Spesifikasi Program yang Diberikan pada Problem Latihan

Bagian Penjelasan
Nomor dan Nama Problem Identitas dari permasalahan.
Deskripsi Soal Memberikan konteks   permasalahan yang perlu diketahui oleh siswa dalam membuat program.
Format Masukan Memberikan susunan   data yang diberikan pada program oleh pengguna, beserta ukuran dari data   tersebut.
Format Keluaran Memberikan susunan   informasi yang akan dikeluarkan oleh program kepada pengguna.
Contoh Masukan Memberikan contoh   data yang dimasukkan.
Contoh Keluaran Memberikan contoh   informasi yang dikeluarkan program berdasarkan data yang dimasukkan.

Bagian format keluaran dan format masukan menjadi penting karena autograder (jika kalian menggunakan ini di kelas) akan memeriksa kode program kalian dengan sangat ketat berdasarkan pasangan masukan-keluaran yang telah disiapkan, atau disebut kasus uji (test case). Apabila program kalian membaca atau menulis dengan format yang salah, auto-grader tidak akan menganggap program kalian benar. Untuk membantu kalian memahami format tersebut, satu atau lebih contoh masukan dan keluaran akan diberikan.

Praktik Baik Pemrograman

Problem akan memberikan beberapa kasus uji. Akan tetapi, bukan berarti kalian hanya perlu mengecek program kalian dengan kasus uji yang ada di buku. Kalian perlu menguji program kalian dengan menggunakan berbagai kasus uji, yang kalian buat sendiri. Beberapa problem dirancang dengan adanya jebakan yang dapat membuat program kalian gagal berjalan pada kasus tertentu. Misalnya, ketika masukan yang diberikan memiliki rentang yang besar atau adanya kondisi yang dapat menyebabkan program berhenti. 

Ayo, Kita Berlatih 3: Menulis dan Memperbaiki Program

Problem 1: Belajar Baca Tulis (Tingkat Kesulitan: ** ) 

Deskripsi Soal:

Saatnya kalian berlatih untuk menulis kode program. Kalian akan membuat program untuk membaca tiga jenis bilangan dan mencetaknya kembali ke layar dengan format yang diberikan.

Format Masukan:

Satu baris yang berisi tiga buah bilangan yang dipisahkan oleh spasi. Bilangan pertama merupakan bilangan bulat positif dengan nilai maksimum 10,000. Bilangan kedua merupakan bilangan riil positif dengan nilai maksimum 10.0000. Bilangan ketiga merupakan bilangan bulat positif dengan nilai maksimum 100. 

Format Keluaran:

Ada tiga baris. Baris pertama berisi bilangan pertama. Baris kedua berisi bilangan kedua dengan dua bilangan di belakang desimal. Baris ketiga berisi bilangan ketiga. 

Contoh Kasus Uji

Masukan Keluaran
10 20.1235 30 10

0,841667

30

Problem 2: Bantulah Intan! (Tingkat Kesulitan: ***)

Intan ingin membuat program untuk mencetak kalimat berikut ke layer. 
Andi berkata, "Satu, dua, tiga!".

Lalu, Andi pun menendang bola tersebut.

Akan tetapi, Intan tidak berhasil mencetak kalimat tersebut ke layar dengan persis sama. Berikut ini program yang ditulis oleh Intan.

#include <stdio.h> 
int main(){ 
  printf("Andi berkata, "Satu, dua, tiga!".");
  printf("Lalu, Andi pun menendang bola tersebut.\n"); 
  return 0;
}

Perbaikilah program tersebut hingga berhasil mencetak kalimat yang benar!

Problem 3: Salah Baca (Tingkat Kesulitan: **)

Temukanlah kesalahan pada kode program berikut, kemudian perbaikilah kode berikut hingga dapat menghasilkan jawaban yang benar.

#include <stdio.h>
int main(){ 
  scanf("%c %c”, a, b); 
  printf("Bilangan pertama: %c\d", a);
  printf("Bilangan kedua: %c\d", b);
  return 0;
}

Ayo Renungkan

Jawablah pertanyaan berikut dalam Lembar Refleksi pada Buku Kerja. Jangan lupa mencatat kegiatan dalam Jurnal.

  1. Pada bagian ini, kalian mendapatkan banyak konsep baru tentang program. Seperti apa perasaan kalian saat ini?
  2. Apakah kalian bereksperimen dengan contoh-contoh yang diberikan di buku? Jika ya, pengetahuan paling menarik apa yang kalian temukan dari hasil eksperimen tersebut?
  3. Pada saat memperbaiki program, apakah kalian dapat menemukan kesalahan pada program dengan mudah? Apakah kalian sebelumnya pernah melakukan kesalahan tersebut pada saat menulis program?
  4. Bagaimana rencana kalian untuk menulis program setelah pertemuan ini? Apakah kalian sudah menentukan rencana berlatih secara mandiri agar dapat menulis program dengan lebih lancar dan terampil?

Apa Komentarmu?

Komentar yang dirasa merugikan situs ini akan dihapus. Terima kasih telah berkunjung

Lebih baru Lebih lama