Bahasa Pemrograman C
Bahasa Pemrograman C
Bahasa Pemrograman C adalah sebuah bahasa pemrograman komputer yang bisa digunakan
untuk membuat berbagai aplikasi (general-purpose programming language), mulai dari sistem
operasi (seperti Windows atau Linux), antivirus, software pengolah gambar (image processing),
hingga compiler untuk bahasa pemrograman, dimana C banyak digunakan untuk membuat
bahasa pemrograman lain yang salah satunya adalah PHP.
Bahasa pemrograman C dibuat pertama kali oleh Dennis M. Ritchie pada tahun 1972. Saat itu
Ritchie bekerja di Bell Labs, sebuah pusat penelitian yang berlokasi di Murray Hill, New Jersey,
Amerika Serikat.
Dengan tujuan mengganti bahasa assembly, peneliti di Bell Labs membuat bahasa
pemrograman B. Namun bahasa pemrograman B juga memiliki beberapa kekurangan, yang
akhirnya di lengkapi oleh bahasa pemrograman C.
Dengan bahasa C inilah sistem operasi UNIX ditulis ulang. Pada gilirannya, UNIX menjadi
dasar dari banyak sistem operasi modern saat ini, termasuk Linux, Mac OS (iOS), hingga sistem
operasi Android.
Fitur dan Keunggulan Bahasa Pemrograman C
Berikut beberapa fitur serta keunggulan bahasa pemrograman C jika dibandingkan dengan
bahasa pemrograman lain:
Konsep pemrograman prosedural adalah sebuah metode pemrograman yang setiap baris
perintah diproses secara berurutan dari baris paling atas hingga baris paling bawah. Selain itu
bisa terdapat fungsi tambahan (function) yang digunakan untuk menyelesaikan berbagai tugas.
Bahasa pemrograman C termasuk ke dalam kelompok ini.
Bagi pemula, sangat disarankan untuk mempelajari bahasa pemrograman prosedural terlebih
dahulu, baru kemudian masuk ke dalam bahasa pemrograman object. Ini juga menjadi alasan
untuk belajar bahasa C terlebih dulu baru kemudian masuk ke bahasa pemrograman object
seperti JAVA. Beberapa bahasa pemrograman juga mendukung konsep prosedural dan object
sekaligus, contohnya bahasa pemrograman C++ dan PHP.
Aplikasi yang dibuat menggunakan bahasa C bisa dieksekusi dengan sangat cepat serta
berukuran kecil. Ini karena C bisa langsung berkomunikasi dengan hardware, sebuah fitur yang
jarang tersedia di bahasa pemrograman modern seperti JAVA, PHP, maupun Phyton.
Akan tetapi, hal ini juga memiliki kelemahan. Bahasa C relatif sederhana dan tidak memiliki
fitur-fitur modern seperti garbage collection dan dynamic typing.
Maksudnya, bahasa pemrograman C bisa di-compile ulang supaya berjalan di berbagai sistem
operasi tanpa perlu mengubah kode-kode yang ada. Aplikasi yang dibuat di Windows dengan
bahasa C, bisa dipindahkan ke Linux dengan sedikit atau tanpa modifikasi.
Pengertian Compiler
Compiler adalah aplikasi yang berfungsi “membaca dan menerjemahkan” bahasa pemrograman
komputer (kode program) untuk menghasilkan sebuah program.
Seperti yang nantinya kita praktekkan, bahasa C berisi instruksi-instruksi yang ditulis dalam
kode khusus. Contoh kode tersebut adalah: printf("Hello World"). Compiler akan membaca
perintah ini dan menghasilkan sebuah file exe.
Dengan kata lain, Compiler Bahasa C adalah program yang dibutuhkan untuk memproses teks
bahasa C untuk menjadi sebuah aplikasi.
Terdapat banyak compiler C. Daftar lengkapnya bisa dilihat ke List of compilers bahasa
pemrograman C.
MinGW
Turbo C
Cygwin
Visual C++
Code::Blocks
Sepanjang tutorial bahasa pemrograman C di duniailkom ini, saya akan menggunakan compiler
Code::Blocks, yang cara instalasinya akan di bahas dalam tutorial selanjutnya.
Pengertian Linker
Dalam pembahasan mengenai pengertian compiler sebelum ini, saya menulis bahwa compiler
akan memproses bahasa pemrograman menjadi sebuah aplikasi. Well… itu adalah pengertian
yang di sederhanakan.
Dalam teori pemrograman, proses dari sebuah teks kode program menjadi aplikasi melibatkan
beberapa langkah. Diagram berikut merangkum proses yang terjadi:
Diagram Compiler dan Linker Bahasa Pemrograman C
Pertama kali, kita membuat sebuah kode program dalam bahasa C. Kode program ini (dikenal
juga dengan sebutan source code) bisa dibuat menggunakan aplikasi teks editor biasa seperti
Notepad. Khusus untuk bahasa pemrograman C, source code harus di simpan sebagai dengan
akhiran file *.c, seperti hello_world.c, aplikasiku.c, luas_segitiga.c, dll.
Agar komputer bisa mengerti kode C yang sudah dibuat, source code tadi selanjutnya “di
translate” menjadi bahasa mesin (machine language). Proses inilah yang dilakukan oleh
compiler. Compiler juga memeriksa apakah kode program yang ditulis mengandung error atau
tidak.
Apabila tidak ditemukan error, compiler akan membuat sebuah object files yang berisi object
code. Di dalam object file inilah instruksi dalam bahasa mesin disimpan. Untuk kebanyakan
compiler C, object file ini akan berakhiran *.obj dengan nama yang sama dengan source code.
Karena sebelumnya saya memiliki file hello_world.c, setelah di compile akan terdapat file
hello_world.obj.
Langkah terakhir diserahkan kepada linker. Tugas dari linker adalah menggabungkan berbagai
library external dengan object file untuk menghasilkan sebuah program.
Seperti yang akan kita pelajari nanti, kode program C biasanya butuh file library external.
Sebagai contoh, untuk menampilkan teks ke layar dalam bahasa C perintahnya adalah
printf("Hello World"). Untuk bisa memproses perintah printf() , C butuh sebuah file
external, yakni stdio.h.
Linker-lah yang akan menggabungkan hello_world.obj dengan stdio.h. Hasil akhirnya berupa
sebuah program berextension *.exe. Karena file source code saya buat sebagai hello_world.c,
file programnya akan bernama hello_world.exe. Dengan men-double-klik file hello_world.exe,
program kita sudah langsung berjalan.
Compiler + Linker
Terlihat dari diagram diatas bawah proses compiler dan linker dibuat terpisah. Akan tetapi
aplikasi compiler modern biasanya sudah menggabungkan kedua langkan ini dalam sekali jalan.
Ketika anda men-klik tombol “compile”, file .exe sudah langsung terbentuk, tanpa harus
menjalankan proses compile dan link secara terpisah.
Pengertian IDE
Istilah terakhir yang akan kita bahas adalah IDE. IDE merupakan singkatan dari Integrated
Development Environment. IDE adalah aplikasi yang menggabungkan teks editor, compiler
dan linker dalam 1 aplikasi. Kadang ditambah juga dengan sebuah debugger, yakni fitur untuk
menampilkan kesalahan dari kode program.
Sebuah IDE sangat memudahkan proses pembuatan program, karena kita hanya perlu membuka
1 aplikasi saja.
Beberapa IDE juga memiliki fitur tambahan seperti real-time debugging (memberitahu error
sebelum kode program di compile), syntax highlighting (mewarnai beberapa kode agar mudah
dibaca) dan code completion (memberikan saran penulisan kode program).
Contoh dari IDE untuk bahasa C adalah Turbo C, Visual C++ dan Code::Blocks.
Setelah membahas pengertian compiler, linker, serta IDE, kita sudah siap untuk menginstall IDE
Code::Blocks, inilah yang akan saya bahas dalam tutorial belajar bahasa pemrograman C
selanjutnya: Download dan Install Code::Blocks.
Mendownload aplikasi IDE Code::Blocks
Code::Blocks atau Code Blocks adalah IDE (Integrated Development Environment) untuk
bahasa pemrograman C, C++ dan Fortran.
Dengan menggunakan Code::Blocks, kita sudah mendapati aplikasi teks editor, compiler,
linker dan debugger untuk bahasa pemrograman C dalam sekali install, sehingga bisa langsung
digunakan.
Code::Blocks sendiri merupakan aplikasi Open Source yang bisa didapat dengan gratis. IDE ini
juga tersedia untuk sistem operasi Linux, Mac, dan Windows.
Untuk mulai download aplikasi Code::Blocks, klik menu “Download”, lalu pilih “Download
the binary release”.
Pilih menu download Code::Blocks
Di halaman berikutnya pilih sistem operasi dimana Code::Blocks akan diinstall. Jika
menggunakan Windows, klik link “Windows XP / Vista / 7 / 8.x / 10”. Apabila anda
menggunakan sistem operasi Linux atau Mac OS, link downloadnya juga tersedia.
Pilih Code Blocks Mingw-setup
Terdapat beberapa pilihan aplikasi Code::Blocks untuk sistem operasi Windows. Kali ini pilih
“codeblocks-16.01mingw-setup.exe”, dengan cara klik link “download dari Sourceforge.net”
atau “FossHub” (bisa yang mana saja).
Saat tutorial ini dibuat, aplikasi Code::Blocks terbaru adalah versi 16.01. File instalasi
codeblocks-16.01mingw-setup.exe berukuran sekitar 80MB.
Setelah file installer Code::Blocks berhasil di download, selanjutnya kita bisa masuk ke proses
instalasi. Proses instalasi Code::Blocks sendiri cukup sederhana, tinggal mengikuti seluruh
proses dan biarkan setting default.
Double klik file codeblocks-16.01mingw-setup.exe yang baru saja di download, Jendela awal
proses instalasi akan tampil.
Halaman berikutnya adalah “Choose Components”, biarkan pilihan default (seluruh pilihan
akan tercentang), lalu klik tombol “Next”.
Jendela Choose Install Location Code::Blocks
Jendela “Choose Install Location” berguna untuk mengubah lokasi instalasi Code::Blocks.
Disini saya akan membiarkan pilihan default. Artinya kode program Code::Blocks akan terinstall
di “C:\Program Files (x86)\CodeBlocks”.
Klik Tombol “Install” dan proses instalasi akan berlangsung beberapa saat.
Proses Instalasi Code::Blocks Sedang Berlangsung
Setelah proses instalasi selesai, akan tampil jendela konfirmasi “Do you want to run
Code::Blocks now?” Klik Yes agar setelah proses instalasi, IDE Code::Blocks langsung tampil.
Jendela Do you want to run Code::Blocks now
Sampai disini, aplikasi Code::Blocks sudah sukses terinstall dan siap untuk digunakan.
Apabila anda mendapati jendela tambahan, pilih saja settingan default, misalnya pada saat
memilih compiler yang diinstall (GNU CCG Compiler) dan File Association.
Tampilan Code::Blocks memang cukup “njelimet”, tapi anda tidak perlu paham semua menu
yang ada. Kita hanya akan menggunakan beberapa menu yang penting-penting saja.
Untuk membuat sebuah file baru, klik menu File -> New -> Empty File, atau bisa juga dengan
menekan kombinasi tombol CRTL + SHIFT + N.
Di bagian tengah Code::Blocks akan tampil sebuah file teks kosong. Disinilah kita akan menulis
kode program bahasa C nantinya.
Agar bisa langsung praktek menulis sebuah file bahasa C, silahkan ketik kode program berikut
ke dalam Code::Blocks:
#include <stdio.h>
1
int main(void)
2
{
3
printf("Hello, World!\n");
4
return 0;
5}
6
Anda bisa abaikan maksud dari kode program diatas untuk sementara. Kita akan membahasnya
dalam tutorial-tutorial selanjutnya. Inti dari kode program ini adalah menampilkan sebuah teks
“Hello, World!”.
Pastikan anda mengetik kode program sama persis dengan yang saya tulis diatas. Salah satu huruf atau
satu karakter saja yang kurang, kode program akan error. Untuk amannya silahkan copy paste kode
tersebut ke dalam editor Code::Block.
Selanjutnya siapkan sebuah folder tempat file kode program C akan disimpan. Untuk
memudahkan, saya membuat sebuah folder “belajar_c” di Drive D. Anda bisa saja menyimpan
file bahasa C ini dimana saja, tidak harus di folder D:\belajar_c yang saya gunakan.
Kembali ke Code::Blocks, save file yang sudah kita tulis tadi dengan cara menekan kombinasi
tombol CTRL + S atau klik menu FILE -> Save file.
Sesaat kemudian akan tampil jendela Save file. Anda bebas ingin menyimpan file ini di mana
saja. Karena saya sudah menyiapkan folder D:\belajar_c, maka saya akan menyimpannya di
folder ini.
Save file tersebut sebagai hello_world.c. Khusus untuk bahasa pemrograman C, nama file
tersebut harus disimpan dengan akhiran *.c. Tentu saja anda juga boleh menggunakan nama lain,
sepanjang berakhiran *.c seperti duniailkom.c, andi.c, atau punyaku.c
Ketika file sudah di save dan tampilan kembali ke editor Code::Blocks, kode program yang
sudah kita tulis sebelumnya akan berwarna. Inilah fitur syntax highlighting dari Code::Blocks.
IDE Code::Blocks akan memberi warna berbeda untuk setiap kode program bahasa C. Dengan
demikian, jika terdapat salah ketik (atau salah tulis kode program), warna teks yang dihasilkan
juga akan berbeda.
Untuk memastikan, anda bisa membuka Windows Explorer dan cari apakah file hello_world.c
sudah ada di folder D:\belajar_c
Membuka File Kode Program Bahasa C
Sebagai latihan tambahan, mari coba membuka file hello_world.c jika aplikasi Code::Blocks
sudah ditutup.
Silahkan tutup aplikasi Code::Blocks, kemudian buka kembali. Kode program yang baru saja
kita ketik sudah tidak tampil. Untuk membukanya, silahkan klik menu File -> Open, atau bisa
juga diakses dengan menekan tombol CRTL+O.
Di jendela yang tampil, cari file hello_world.c, kemudian klik tombol Open.
Sekarang, file kode program bahasa C sudah kembali terbuka.
Sampai disini kita telah membuat sebuah file kode program dalam bahasa C. Dalam tutorial
berikutnya file kode program ini akan di-compile untuk menghasilkan program yang sebenarnya:
Cara Mencompile dan Membuat File exe Bahasa Pemrograman C.
Sebagaimana yang telah kita bahas di Pengertian Compiler, Linker dan IDE. Compile adalah
proses untuk mengubah kode program yang ditulis menggunakan bahasa pemrograman menjadi
object code. Object code ini kemudian diproses oleh linker untuk menjadi file exe (file
executable) atau “program” sebagaimana yang biasa kita kenal.
Dalam kebanyakan aplikasi compiler (termasuk yang digunakan oleh Code::Blocks), proses
men-compile ini sudah langsung digabung dengan linker. Yang artinya ketika di compile, kode
program bahasa C akan langsung menghasilkan file exe.
Mari kita praktek membuat file exe ini. Silahkan anda buka kembali file hello_world.c. yang
sudah kita buat sebelumnya. Sekedar penyegaran, berikut isi kode program tersebut:
1#include <stdio.h>
2int main(void)
3{
4 printf("Hello, World!\n");
5 return 0;
}
6
Untuk memulai proses compile, pilih menu Build -> Compile current File atau bisa juga
dengan menekan tombol CTRL + SHIFT + F9.
Jika kode program yang ditulis tidak ada yang salah, akan tampil beberapa tulisan di bagian
bawah aplikasi Code::Blocks:
||=== Build file: "no target" in "no project" (compiler: unknown) ===|
Artinya kode program kita tidak memiliki error maupun warning. Proses compile berlangsung
dalam 1 detik.
Melihat Object File dan File exe Bahasa C
Setelah proses compile kode program bahasa C berhasil, silahkan buka folder belajar_c, yakni
folder dimana file kode program disimpan. Sebelumnya hanya terdapat 1 file, yakni
hello_world.c, sekarang anda akan menemukan 2 file tambahan: hello_world.o dan
hello_world.exe.
File hello_world.o merupakan object file hasil proses compile. Object file ini digunakan secara
internal oleh compiler bahasa C (dalam praktek kali ini kita menggunakan compiler
Code::Blocks). File ini tidak perlu di utak-atik.
File hello_world.exe adalah file akhir hasil linker, dimana object file diproses lebih lanjut untuk
menjadi program akhir.
Mari kita test jalankan file ini, silahkan double klik file hello_world.exe.
Sudah? Jendela tampilan akan berkedip sebentar kemudian tertutup kembali. Apa yang terjadi?
Hal tersebut merupakan fitur normal dari sebuah aplikasi console. Yakni sebutan dari program
yang kita buat menggunakan Code::Blocks. Kode program console harus diakses dari jendela
console. Jika menggunakan Windows, jendela console yang dimaksud adalah aplikasi CMD
(command prompt).
Silahkan jalankan aplikasi CMD. Aplikasi ini bisa dicari di menu Home Windows, atau klik
search, kemudian ketik cmd.exe:
Ketik alamat file tempat dimana file hello_world.exe berada. Dalam contoh yang saya gunakan,
file tersebut berada di D:\belajar_c\hello_world.exe:
Akan terlihat tampilan teks “Hello, World!”. Selamat! Inilah hasil dari kode program bahasa C
yang sudah kita buat.
Melihat hasil kode program langsung dari CMD memang sedikit panjang. Untungnya terdapat
cara yang lebih singkat, yakni menggunakan menu Build and Run bawaan dari Code::Blocks.
Menu ini adalah gabungan dari proses build dan run. Build adalah proses untuk men-compile
file bahasa C dan Run untuk menjalankannya.
Caranya, klik menu Build -> Build and run, atau cukup dengan menekan tombol F9 di
keyboard.
Proses compile akan berlangsung beberapa saat. Setelah itu akan tampil sebuah jendela console
yang menampilkan hasil kode program: “Hello, World!”.
Untuk keluar dari jendela console ini cukup tekan tombol apa saja (press any key). Dan tampilan
akan kembali ke editor Code::Blocks.
Menu build and run ini juga tersedia sebagai shortcut yang lebih praktis:
Selain menjalankan build and run sekaligus, anda juga bisa menjalankan build saja, atau run
saja. Proses Build pada dasarnya tidak berbeda dengan compile, yakni untuk menggenerate file
.exe, sedangkan proses Run digunakan untuk menjalankan kode program menggunakan console
Code::Blocks.
Dalam tutorial ini kita telah membahas cara menjalankan hasil kode program yang ditulis dalam
bahasa C. Karena berupa program console, hasilnya hanya bisa dilihat menggunakan cmd atau
menggunakan menu run dari aplikasi Code::Blocks.
Berikutnya kita akan lanjut ke Struktur Dasar Kode Program Bahasa Pemrograman C.
Kode program yang telah jalankan sebelumnya sangat sederhana, tapi sudah mewakili struktur
dasar dari sebuah bahasa pemrograman C. Berikut kode program tersebut:
1#include <stdio.h>
2int main(void)
3{
4 printf("Hello, World!\n");
5 return 0;
}
6
#include <stdio.h>
Di baris paling awal, terdapat kode #include. Perintah #include digunakan untuk memasukkan
sebuah file khusus yang memungkinkan kita mengakses berbagai fitur tambahan dalam bahasa
C.
Dalam contoh diatas, file stdio.h berisi kode program agar nantinya kita bisa mengakses perintah
printf. File stdio.h sendiri merupakan singkatan dari Standard Input/Output.
Dengan kata lain, agar di dalam kode program nanti kita bisa menggunakan perintah printf,
dibagian paling atas kode program C harus terdapat baris #include <stdio.h>. File include ini
juga sering disebut sebagai header file, dan karena itu pula menggunakan akhiran .h.
Bahasa C menerapkan konsep modular, dimana fitur-fitur yang ada di pecah ke berbagai file.
Jika ingin menggunakan perintah tertentu, panggil header file yang sesuai.
Hasilnya, ukuran file program yang ditulis menggunakan bahasa C menjadi efisien. Kita hanya
perlu menggunakan header file yang dibutuhkan saja. Namun kebalikannya, setiap ingin
menggunakan perintah tertentu, harus men-include-kan file header yang dibutuhkan.
int main(void) { }
Satu-satunya perintah yang harus ada di setiap kode program bahasa C adalah main().
Struktur main() sendiri pada dasarnya merupakan sebuah fungsi (function). Isi dari function ini
diawali dan diakhiri dengan tanda kurung kurawal ” { ” dan ” } “. Di dalam tanda kurung inilah
“isi” dari kode program penyusun fungsi main() ditulis.
Kode int sebelum main() menandakan nilai kembalian atau hasil akhir dari function main().
Kode int merupakan singkatan dari integer, yakni tipe data angka bulat.
Dengan demikian, kode program main() yang saya tulis diatas harus menghasilkan sebuah angka
bulat (menggunakan perintah return yang akan kita bahas sesaat lagi).
Sedangkan tambahan void ke dalam main(void) menandakan bawah fungsi main() tidak
membutuhkan nilai input (bahasa inggris void = kosong).
* Jika anda agak bingung dengan penjelasan ini, bisa dianggap bahwa int main(void) { } adalah perintah
yang mengawali setiap kode program bahasa C.
printf(“Hello, World!\n”);
Perintah printf digunakan untuk menampilkan sesuatu ke layar. Perintah ini merupakan bagian
dari stdio.h, sehingga jika kita ingin menggunakannya, harus terdapat baris perintah #include
<stdio.h> di bagian paling awal kode program bahasa C.
Teks yang ingin ditampilkan ditulis dalam tanda kurung dan di dalam tanda kutip dua, seperti:
printf(“Hello, World!\n”); Hasil dari perintah ini, akan tampil teks Hello, World! di layar.
Tapi apa fungsi tambahan karakter \n?
Jika ditulis di dalam teks, karakter ” \ ” dikenal sebagai escape character. Fungsinya untuk
menampilkan karakter yang tidak bisa ditulis. Sebagai contoh, \n merupakan perintah untuk
menulis newline character, yakni karakter penanda baris baru.
Setelah tanda kurung penutup perintah printf, harus ditutup dengan tanda titik koma (semi-
colon), yakni tanda “ ; ”. Setiap perintah bahasa C, harus diakhiri dengan tanda ini, kecuali
beberapa perintah khusus. Lupa menambahkan tanda titik koma di akhir sebuah perintah
merupakan error yang sangat sering terjadi.
return 0;
Perintah return 0; berhubungan dengan kode int main(void) sebelumnya. Disinilah kita
menutup function main() yang sekaligus mengakhiri kode program bahasa C.
Return 0 artinya kembalikan nilai 0 (nol) ke sistem operasi yang menjalankan kode program ini.
Nilai 0 menandakan kode program berjalan normal dan tidak ada masalah (EXIT_SUCCESS).
Kita juga bisa menulis return 1, return 99, return -1, dll. Nilai-nilai ini nantinya bisa digunakan
oleh sistem operasi atau program lain. Nilai return selain 0 dianggap terjadi error atau sesuatu
yang salah (EXIT_FAILURE).
Apakah perintah Return 0 ini harus ditulis? Harus ditulis! jika kita berpatokan ke struktur
bahasa C yang ideal. Namun beberapa compiler (termasuk Code:Blocks yang saya gunakan),
akan “memaafkan” jika perintah ini tidak ditulis dan menambahkan perintah return 0 secara
otomatis (tidak disarankan).
Dalam tutorial kali ini kita telah melihat struktur dasar kode program dalam bahasa C.
Berikutnya akan dibahas tentang aturan dasar penulisan kode program bahasa C.
Pengertian sederhana dari case sensitifity adalah perbedaan antara huruf besar dan huruf kecil.
Istilahnya, bahasa C termasuk bahasa yang case sensitif. Dalam bahasa C, huruf besar dan kecil
dianggap berbeda. Perintah printf tidak bisa ditulis menjadi Printf.
Berikut contohnya:
1#include <stdio.h>
2int main(void)
3{
4 Printf("Hello, World!\n"); /* error !! */
5 return 0;
}
6
Untuk penulisan variabel juga akan berbeda antara huruf besar dan kecil. Variabel jumlah,
JUMLAH, dan Jumlah adalah 3 variabel yang berlainan. Aturan ini berbeda jika dibandingkan
bahasa pemrograman PASCAL yang bersifat case insensitif (tidak membedakan huruf besar dan
kecil)
Cara Penulisan Komentar di dalam Bahasa C
Komentar atau comment adalah ‘kode program’ yang ditambahkan untuk memberi
keterangan/penjelasan mengenai cara kerja program. Komentar tidak akan diproses oleh
compiler C dan berfungsi untuk memberi keterangan tambahan (terutama jika kode program
yang ditulis cukup rumit)
Untuk membuat komentar di dalam kode program bahasa C, menggunakan tanda /* dan */.
Seluruh karakter yang ada diantara kedua tanda ini akan dianggap sebagai komentar dan
diabaikan pada saat proses compiler.
1
#include <stdio.h>
2int main(void)
3{
4 /* Tampilkan pesan Hello World */
5 printf("Hello, World!\n");
6} return 0;
7
Komentar juga sering digunakan untuk membuat semacam “copyright” kode program yang
ditulis di awal, seperti contoh kode program berikut:
1
2 /* Pembuat : Duniailkom.com
3 * Tujuan : Menampilkan pesan "Hello, World!"
* Bahasa : C
4 * Tanggal Pembuatan: 31 Mei 2017
5 */
6
7 #include <stdio.h>
8 int main(void)
9 { printf("Hello, World!\n");
10 return 0;
11}
12
Bahasa pemrograman C++ memperkenalkan alternatif pembuatan komentar, yakni dengan tanda
” // “. Umumnya, compiler bahasa C juga mendukung bahasa C++, sehingga kita juga bisa
menggunakan tanda ” // “untuk membuat komentar dalam bahasa C.
Komentar ” // ” hanya berlaku untuk satu baris saja. Jika ingin membuat komentar lebih dari 1
baris, tanda ” // ” harus ditulis beberapa kali. Contohnya sebagai berikut:
1
2 // Pembuat : Duniailkom.com
3 // Tujuan : Menampilkan pesan "Hello, World!"
// Bahasa : C
4 // Tanggal Pembuatan: 31 Mei 2017
5
6 #include <stdio.h>
7 int main(void)
8 {
// Tampilkan pesan Hello World
9 printf("Hello, World!\n");
10 return 0;
11}
12
Statement dalam bahasa C adalah sebuah baris perintah. Setiap baris perintah (statement) dalam
bahasa C harus diakhiri dengan tanda titik koma ( ; ).
x = 6;
1y = "Duniailkom";
2z = 5+3;
32+3;
puts("Duniailkom");
4root2 = sqrt(49);
5
6
Sebuah statement tidak harus mencakup satu baris. Perintah kondisi seperti if else dan
perulangan (looping) bisa mencakup beberapa baris, dan ini dianggap sebagai satu statement:
1if( x == "Duniailkom") {
2printf("Belajar Bahasa C di Duniailkom");
3}
Statement yang terdiri dari beberapa baris seperti ini, biasanya diawali dengan tanda kurung
kurawal ” { ” dan diakhiri dengan tanda ” } “. Bagian ini juga sering disebut sebagai blok kode
program.
Keyword adalah kata kunci yang menjadi dasar perintah bahasa C. Keyword ini tidak bisa
digunakan sebagai identifier (variabel, konstanta maupun nama dari sebuah fungsi).
1int jumlah;
2return 0;
Disini, kata int dan return merupakan keyword dan memiliki makna tertentu di dalam bahasa C.
Terdapat beberapa kata kunci (keyword) dalam bahasa pemrograman C, yakni:
Seluruh kata ini tidak bisa digunakan sebagai nama variabel / konstanta dalam bahasa C.
Pengertian Identifier dalam Bahasa Pemrograman C
Identifier adalah nama untuk menandakan “sesuatu” sepanjang kode program. Contoh dari
identifier adalah variabel, konstanta dan fungsi.
1int jumlah;
2double total_penjualan;
Disini, jumlah dan total_penjualan adalah variabel dan termasuk ke dalam identifiers.
Secara umum, kita bebas ingin menulis nama identifier, namun terdapat beberapa aturan:
Identifier harus selain dari keyword (yang terdapat di tabel sebelum ini). Sebagai contoh,
kita tidak bisa memakai kata int sebagai nama variabel, karena int merupakan keyword
untuk menandakan tipe data integer.
Identifier bisa terdiri dari huruf, angka dan karakter underscore / garis bawah ( _ ).
Karakter pertama dari identifier hanya bisa berupa huruf dan underscore, tidak bisa
berupa angka. Meskipun boleh, tapi tidak disarankan menggunakan karakter underscore
sebagai awal dari identifier.
Beberapa compiler ada yang membatasi panjang identifier maksimal 31 karakter.
Dalam tutorial bahasa pemrograman bahasa C kali ini kita telah membahas beberapa aturan dasar
dari bahasa C. Ini semua menjadi pedoman dalam menulis kode program bahasa C.
Tutorial berikutnya akan masuk ke Cara Pembuatan Konstanta dalam Bahasa Pemrograman C.
Pengertian sederhana dari case sensitifity adalah perbedaan antara huruf besar dan huruf kecil.
Istilahnya, bahasa C termasuk bahasa yang case sensitif. Dalam bahasa C, huruf besar dan kecil
dianggap berbeda. Perintah printf tidak bisa ditulis menjadi Printf.
Berikut contohnya:
1#include <stdio.h>
int main(void)
2{
3 Printf("Hello, World!\n"); /* error !! */
4 return 0;
}
5
6
Untuk penulisan variabel juga akan berbeda antara huruf besar dan kecil. Variabel jumlah,
JUMLAH, dan Jumlah adalah 3 variabel yang berlainan. Aturan ini berbeda jika dibandingkan
bahasa pemrograman PASCAL yang bersifat case insensitif (tidak membedakan huruf besar dan
kecil)
Komentar atau comment adalah ‘kode program’ yang ditambahkan untuk memberi
keterangan/penjelasan mengenai cara kerja program. Komentar tidak akan diproses oleh
compiler C dan berfungsi untuk memberi keterangan tambahan (terutama jika kode program
yang ditulis cukup rumit)
Untuk membuat komentar di dalam kode program bahasa C, menggunakan tanda /* dan */.
Seluruh karakter yang ada diantara kedua tanda ini akan dianggap sebagai komentar dan
diabaikan pada saat proses compiler.
1
#include <stdio.h>
2int main(void)
3{
4 /* Tampilkan pesan Hello World */
5 printf("Hello, World!\n");
6} return 0;
7
Komentar juga sering digunakan untuk membuat semacam “copyright” kode program yang
ditulis di awal, seperti contoh kode program berikut:
1 /* Pembuat : Duniailkom.com
2 * Tujuan : Menampilkan pesan "Hello, World!"
* Bahasa : C
3 * Tanggal Pembuatan: 31 Mei 2017
4 */
5
6 #include <stdio.h>
7 int main(void)
8 { printf("Hello, World!\n");
9 return 0;
10}
11
12
Bahasa pemrograman C++ memperkenalkan alternatif pembuatan komentar, yakni dengan tanda
” // “. Umumnya, compiler bahasa C juga mendukung bahasa C++, sehingga kita juga bisa
menggunakan tanda ” // “untuk membuat komentar dalam bahasa C.
Komentar ” // ” hanya berlaku untuk satu baris saja. Jika ingin membuat komentar lebih dari 1
baris, tanda ” // ” harus ditulis beberapa kali. Contohnya sebagai berikut:
1
2 // Pembuat : Duniailkom.com
3 // Tujuan : Menampilkan pesan "Hello, World!"
// Bahasa : C
4 // Tanggal Pembuatan: 31 Mei 2017
5
6 #include <stdio.h>
7 int main(void)
8 {
// Tampilkan pesan Hello World
9 printf("Hello, World!\n");
10 return 0;
11}
12
Statement dalam bahasa C adalah sebuah baris perintah. Setiap baris perintah (statement) dalam
bahasa C harus diakhiri dengan tanda titik koma ( ; ).
Berikut beberapa contoh statement dalam bahasa pemrograman C:
1x = 6;
2y = "Duniailkom";
3z = 5+3;
42+3;
5puts("Duniailkom");
root2 = sqrt(49);
6
Sebuah statement tidak harus mencakup satu baris. Perintah kondisi seperti if else dan
perulangan (looping) bisa mencakup beberapa baris, dan ini dianggap sebagai satu statement:
1if( x == "Duniailkom") {
2printf("Belajar Bahasa C di Duniailkom");
3}
Statement yang terdiri dari beberapa baris seperti ini, biasanya diawali dengan tanda kurung
kurawal ” { ” dan diakhiri dengan tanda ” } “. Bagian ini juga sering disebut sebagai blok kode
program.
Keyword adalah kata kunci yang menjadi dasar perintah bahasa C. Keyword ini tidak bisa
digunakan sebagai identifier (variabel, konstanta maupun nama dari sebuah fungsi).
1int jumlah;
2return 0;
Disini, kata int dan return merupakan keyword dan memiliki makna tertentu di dalam bahasa C.
Terdapat beberapa kata kunci (keyword) dalam bahasa pemrograman C, yakni:
Identifier adalah nama untuk menandakan “sesuatu” sepanjang kode program. Contoh dari
identifier adalah variabel, konstanta dan fungsi.
1int jumlah;
2double total_penjualan;
Disini, jumlah dan total_penjualan adalah variabel dan termasuk ke dalam identifiers.
Secara umum, kita bebas ingin menulis nama identifier, namun terdapat beberapa aturan:
Identifier harus selain dari keyword (yang terdapat di tabel sebelum ini). Sebagai contoh,
kita tidak bisa memakai kata int sebagai nama variabel, karena int merupakan keyword
untuk menandakan tipe data integer.
Identifier bisa terdiri dari huruf, angka dan karakter underscore / garis bawah ( _ ).
Karakter pertama dari identifier hanya bisa berupa huruf dan underscore, tidak bisa
berupa angka. Meskipun boleh, tapi tidak disarankan menggunakan karakter underscore
sebagai awal dari identifier.
Beberapa compiler ada yang membatasi panjang identifier maksimal 31 karakter.
Dalam tutorial bahasa pemrograman bahasa C kali ini kita telah membahas beberapa aturan dasar
dari bahasa C. Ini semua menjadi pedoman dalam menulis kode program bahasa C.
Tutorial berikutnya akan masuk ke Cara Pembuatan Konstanta dalam Bahasa Pemrograman C.
Konstanta adalah sebuah tempat atau container dari suatu nilai. Sesuai dengan namanya, nilai
dari konstanta bersifat tetap (konstan) dan tidak bisa diubah sepanjang program berjalan.
Jika di dalam kode program kita ingin mengubah nilai ini, harus menggunakan variabel yang
akan dipelajari dalam tutorial selanjutnya.
Cara Pembuatan Konstanta dalam Bahasa Pemrograman C
Untuk membuat konstanta dalam bahasa C, terdapat 2 cara. Yakni menggunakan keyword
#define atau menggunakan keyword const.
Jika ingin membuat konstanta dengan keyword #define, konstanta ini ditulis sebelum main().
Berikut contoh cara pembuatan konstanta menggunakan #define:
1
#include <stdio.h>
2
#define PANJANG 8
3
#define LEBAR 5
4
int main(void)
5 {
6 printf("Panjang = %d",PANJANG);
7 printf("\n");
8 printf("Lebar = %d",LEBAR);
9 printf("\n");
printf("Luas (panjang*lebar) = %d",PANJANG*LEBAR);
10
printf("\n");
11
return 0;
12
}
13
Disini saya membuat 2 buah konstanta, yakni PANJANG dan LEBAR. Masing-masing berisi
nilai 8 dan 5. Perintah ini harus ditulis sebelum int main(void).
Dalam kode program diatas, perintah #define PANJANG 8 artinya saya membuat konstanta
bernama PANJANG yang bernilai 8. Sedangkan perintah #define LEBAR 5 artinya saya
membuat konstanta bernama LEBAR yang bernilai 5.
Di bagian program utama, yakni di dalam int main(void), nilai dari masing-masing konstanta
ditampilkan dengan perintah printf.
Penjelasan tentang perintah printf akan kita pelajari dalam tutorial terpisah. Tanda %d di dalam
perintah printf digunakan untuk menampilkan angka bulat. Angka yang ingin ditampilkan
berada di akhir perintah printf, yakni berupa sebuah konstanta.
Perintah printf(“\n”) dipakai untuk membuat karakter new line (baris baru). Fungsinya
supaya baris berikutnya tampil di baris baru. Tanpa perintah ini, teks akan disambung terus ke
kanan.
Lebih jauh tentang cara penggunaan perintah printf juga akan saya bahas dalam tutorial
tersendiri. Untuk saat ini silahkan fokus ke cara pembuatan konstanta PANJANG dan LEBAR.
Aturan penamaan konstanta sama seperti identifier lain (sudah kita bahas dalam tutorial sebelum
ini: Aturan Dasar Penulisan Kode Program Bahasa C).
Namun menjadi kebiasaan mayoritas programmer untuk membuat nama konstanta menggunakan
HURUF BESAR, agar mudah dibedakan dengan variabel yang menggunakan huruf kecil.
Meskipun begitu, kita juga bisa membuat konstanta dengan huruf kecil.
1 #include <stdio.h>
#define situs "www.duniailkom.com"
2
#define ipk 4.00
3
int main(void)
4
{
5
printf("Sedang belajar bahasa C di %s",situs);
6 printf("\n");
9 return 0;
}
10
11
Kali ini saya menggunakan huruf kecil untuk konstanta situs dan ipk. Karena nilai konstanta
situs berupa teks, harus ditulis dalam tanda kutip.
Bisa anda perhatikan juga bahwa untuk perintah printf, saya menggunakan tanda %s karena
konstanta situs berisi nilai string (teks), sedangkan untuk menampilkan nilai konstanta ipk, saya
menggunakan %f karena nilainya berisi angka float (pecahan).
Selain menggunakan perintah #define, konstanta juga bisa dibuat menggunakan perintah const.
Bedanya, pembuatan konstanta di ditempatkan di dalam main() dan juga harus ditulis tipe data
dari konstanta tersebut.
Berikut contoh kode program bahasa C untuk membuat konstanta menggunakan keyword const:
1 #include <stdio.h>
int main(void)
2
{
3
const char situs[20] = "www.duniailkom.com";
4
const float ipk = 4.00;
5
printf("Sedang belajar bahasa C di %s",situs);
6 printf("\n");
9 return 0;
}
10
11
Dalam kode program diatas, perintah const char situs[20] = “www.duniailkom.com” artinya
saya membuat konstanta bernama situs dengan tipe data char yang isinya
“www.duniailkom.com”.
Sedangkan perintah const float ipk = 4.00 artinya saya membuat konstanta bernama ipk dengan
tipe data float yang isinya 4.00.
Lebih jauh tentang tipe data, akan dipelajari dalam tutorial tersendiri.
Sebagai bahasan terakhir, mari kita coba mengubah nilai sebuah konstanta setelah di definisikan:
1#include <stdio.h>
int main(void)
2
{
3
const float ipk = 4.00;
4
printf("Semoga dapat IPK %f",ipk);
5
printf("\n");
6ipk = 2.00; // error: assignment of read-only variable 'ipk'
7return 0;
8}
Setelah membuat dan mengisi konstanta ipk dengan nilai 4.00, saya mencoba mengisinya
dengan nilai 2.00 menggunakan perintah ipk = 2.00. Hasilnya tampil error: assignment of read-
only variable ‘ipk’. Artinya nilai ipk bersifat read-only dan tidak bisa diubah.
Dalam tutorial belajar bahasa pemrograman bahasa C kali ini kita telah membahas pengertian
dan cara pembuatan konstanta. Pada tutorial berikutnya, akan disambung dengan cara pembuatan
variabel di dalam bahasa pemrograman C.
Variabel adalah ‘penanda’ identitas yang digunakan untuk menampung suatu nilai. Nilai
tersebut dapat diubah sepanjang kode program. Secara teknis, variabel merujuk kepada suatu
alamat di memory komputer. Setiap variabel memiliki nama yang sebagai identitas untuk
variabel tersebut.
Sesuai dengan namanya, isi dari variabel bisa berubah dari waktu ke waktu tergantung
kebutuhan. Ini berbeda dari konsep konstanta yang kita bahas dalam tutorial sebelumnya. Untuk
konstanta, nilai tersebut akan tetap dan tidak bisa diubah sepanjang kode program.
Sebagai contoh, jika saya membuat program menghitung luas lingkaran, saya bisa membuat
variabel ‘jari2‘ dan mengisinya dengan nilai ‘7’, kemudian di dalam kode program, saya bisa
mengubah nilainya menjadi ‘8’, ’10’ atau ‘1000’. Sedangkan jika ‘jari2‘ ini dibuat sebagai
konstanta, maka nilainya akan tetap ‘7’ sepanjang program dijalankan.
Penamaan variabel merujuk ke aturan identifier yang pernah kita bahas beberapa tutorial
sebelumnya. Berikut aturan penamaan variabel di dalam bahasa pemrograman C:
Variabel bisa terdiri dari huruf, angka dan karakter underscore / garis bawah ( _ ).
Karakter pertama dari variabel hanya boleh berupa huruf dan underscore ( _ ), tidak bisa
berupa angka. Meskipun dibolehkan, sebaiknya tidak menggunakan karakter underscore
sebagai awal dari variabel karena bisa bentrok dengan beberapa variabel settingan
program.
Variabel harus selain dari keyword. Sebagai contoh, kita tidak bisa memakai kata int
sebagai nama variabel, karena int merupakan keyword untuk menandakan tipe data
integer.
Beberapa compiler bahasa C ada yang membatasi panjang variabel maksimal 31 karakter.
Agar lebih aman, sebaiknya tidak menulis nama variabel yang lebih dari 31 karakter.
Ketika akan menulis variabel, dalam hampir semua bahasa pemrograman terdapat 2 proses:
deklarasi dan inisialisasi.
Deklarasi adalah proses untuk memberitahukan compiler bahasa C bahwa kita akan membuat
sebuah variabel. Bahasa C termasuk bahasa pemrograman yang menggunakan konsep strongly
typed programming language, yang artinya untuk setiap variabel harus ditulis akan berisi tipe
data apa. Apakah itu angka bulat (integer), angka pecahan (float), huruf (char), atau yang lain.
Ketika kita ingin membuat variabel, harus ditentukan dulu apa tipe data dari variabel tersebut.
Pembahasan mengenai tipe data di dalam bahasa C akan kita bahas dalam tutorial tersendiri,
namun berikut tipe data yang sering dipakai:
Tipe data integer, yakni tipe data angka bulat seperti 1, 5 atau 1000. Tipe data integer
ditulis dengan keyword int.
Tipe data float, yakni tipe data angka pecahan seperti 1.33, 5.90 atau 1000.99. Tipe data
float ditulis dengan keyword float.
Tipe data character, yakni tipe data huruf seperti ‘A’, ‘a’, atau ‘Z’. Tipe data character
ditulis dengan keyword char.
Sebagai contoh, dalam kode program berikut saya mendeklarasikan 3 buah variabel:
1
#include <stdio.h>
2
3 int main(void)
4 {
5 int a;
6 char b;
7 float c;
8
return 0;
9 }
10
Disini perintah int a alan membuat variabel a dengan tipe data int. Artinya variabel a hanya bisa
diisi dengan angka bulat. Variabel b bertipe char, sehingga hanya bisa menampung huruf.
Sedangkan variabel c bertipe data float yang hanya bisa diisi dengan angka pecahan.
Setelah sebuah variabel di deklarasikan, kita bisa menginput atau memberikan nilai awal ke
dalam variabel tersebut. Proses pemberian nilai awal ini dikenal dengan istilah inisialisasi.
Nilai yang diberikan harus sesuai dengan tipe data. Misalnya variabel a bertipe int, sehingga
hanya bisa diisi dengan angka bulat. Berikut contoh proses deklarasi dan inisialisasi dari contoh
sebelumnya:
1
2 #include <stdio.h>
3
4 int main(void)
{
5 int a;
6 char b;
7 float c;
8
9 a = 34;
10bc == 'B';
3.14;
11
12return 0;
13}
14
Sekarang masing-masing variabel sudah berisi nilai. Tanda sama dengan ( = ) disini berfungsi
sebagai operator assignment, yakni operator yang akan mengisi sebuah nilai. Proses assignment
dilakukan dari kanan ke kiri. Perintah a = 34 artinya memasukkan angka 34 ke dalam variabel
a.
Untuk menampilkan isi dari variabel, kita bisa menggunakan perintah printf seperti contoh
berikut:
#include <stdio.h>
1
2 int main(void)
3 {
4 int a;
5 char b;
6 float c;
7
a = 34;
8 b = 'B';
9 c = 3.14;
10
11printf("%i",a);
12printf("\n");
13
14printf("%c",b);
printf("\n");
15
16printf("%f",c);
17printf("\n");
18
19return 0;
}
20
21
22
23
Proses deklarasi dan inisialisasi variabel juga bisa dilakukan sekaligus, seperti contoh berikut:
1
2 #include <stdio.h>
3
4 int main(void)
5 {
int a = 34;
6 char b = 'B';
7 float c = 3.14;
8
9 printf("%i",a);
10printf("\n");
11
12printf("%c",b);
printf("\n");
13
14printf("%f",c);
15printf("\n");
16
17return 0;
18}
19
1
2 #include <stdio.h>
3
4 int main(void)
5 {
6 int a,b,c;
7 a = 12;
8 b = 9;
9 c = 2;
10
11printf("%i",a);
12printf("\n");
13
14printf("%i",b);
printf("\n");
15
16printf("%i",c);
17printf("\n");
18
19return 0;
20}
21
Setelah variabel di deklarasikan dan diberikan nilai awal, kita bisa mengubah nilai-nilai ini
sepanjang kode program. Berikut contohnya:
1 #include <stdio.h>
int main(void)
2 {
3 int a,b,c;
4 a = 3;
5 b = a;
a = a + b;
6 c = b + b + a;
7 printf("%i",a);
8 printf("\n");
9 printf("%i",b);
10printf("\n");
printf("%i",c);
11printf("\n");
12return 0;
13}
14
15
16
Diawal kode program, saya mendeklarasikan 3 buah variabel: a, b, dan c. Variabel a kemudian
diisi dengan angka 3 dengan perintah a = 3.
Di baris berikutnya terdapat perintah b = a, artinya variabel b akan diisi dengan nilai dari
variabel a (ingat, proses assignment berlaku dari kiri ke kanan). Karena variabel a berisi angka 3,
maka variabel b juga akan berisi angka 3.
Berapakah hasil dari a + b? karena a dan b sama-sama bernilai 3, maka hasilnya adalah 6. Angka
enam ini akan menjadi nilai baru untuk variabel a. Nilai variabel a yang sebelumnya 3, akan
tertimpa menjadi 6.
Proses terakhir adalah c = b + b + a. Kembali, kita selesaikan dulu perhitungan di sisi kanan,
yakni b + b + a. Variabel b saat ini bernilai 3, sedangkan variabel a sudah bernilai 6 akibat
perintah sebelumnya. Sehingga proses yang terjadi adalah 3 + 3 + 6 = 12. Angka 12 ini akan
menjadi nilai inputan untuk variabel c.
Dari penjelasan diatas, maka variabel a akan berisi angka 6, variabel b angka 3, dan variabel c
angka 12. Mari kita buktikan dengan menjalankan kode program tersebut:
Yup, hasilnya sesuai dengan perhitungan.
Dalam tutorial kali ini kita telah mempelajari pengertian variabel dan cara penulisan variabel di
dalam bahasa pemrograman C. Dalam tutorial selanjutnya, saya akan membahas tentang cara
penggunaan perintah printf yang sudah beberapa kali kita pakai.
Dalam bahasa pemrograman C, perintah printf dipakai untuk menampilkan teks ke layar, yakni
salah satu bentuk output.
Perintah printf sendiri sebenarnya bukan bagian dari inti bahasa C. Bahasa C tidak mempunyai
sarana input dan output bawaan. Perintah printf berasal dari library stdio.h yang ditambahkan ke
dalam kode program C. Karena itulah kita harus menulis baris #include <stdio.h> di awal setiap
kode program bahasa C yang akan menggunakan perintah printf.
Bentuk penggunaan paling sederhana dari perintah printf adalah menampilkan sebuah teks.
Berikut contoh kode programnya:
#include <stdio.h>
1
int main(void)
2
{
3printf("Belajar bahasa C di Duniailkom");
4return 0;
}
5
Bagaimana dengan membuat 2 buah teks? Tidak ada masalah, kita tinggal tambah satu lagi
perintah printf di bawahnya:
1
#include <stdio.h>
2int main(void)
3{
5printf("Semangat!!!");
6return 0;
}
7
Kedua teks bisa tampil, tapi kenapa disambung dalam 1 baris?
Inilah prilaku bawaan dari hampir semua bahasa pemrograman komputer. Jika kita ingin agar
perintah printf kedua tampil di baris baru, harus ada instruksi untuk hal tersebut.
Di dalam bahasa C, caranya adalah dengan menuliskan karakter “pindah baris”. Karakter ini
ditulis sebagai “\n”. Mari kita modifikasi kode program sebelumnya:
1
#include <stdio.h>
2
int main(void)
3{
5printf("\n");
6printf("Semangat!!!");
7printf("\n");
return 0;
8
}
9
Sekarang diantara kedua kalimat saya tambah kode printf(“\n”). Hasilnya kedua kalimat akan
tampil di baris baru.
Sebuah karakter yang diawali dengan tanda backslash “\” memiliki makna khusus di dalam
programming. Kode “\n” berarti new line, ini adalah kode untuk pindah baris.
Selain itu ada juga kode “\t” untuk karakter tab dan beberapa kode-kode lain. Kode-kode ini
disebut juga sebagai escape character, yakni kode khusus untuk mewakili karakter yang tidak
bisa ditulis. Berikut daftar lengkapnya:
\b Backspace
\f Form feed
\n Newline
\r Return
\t Horizontal tab
\v Vertical tab
\\ Backslash
\? Question mark
\0 Null character
Kode “\n” juga tidak harus ditulis secara terpisah, tapi juga bisa digabung ke dalam 1 perintah
printf:
1#include <stdio.h>
2int main(void)
3{
5return 0;
}
6
Hasilnya, teks akan bergeser ke kanan karena terdapat karakter “\t” sebagai pengganti tab.
Selain itu perintah diatas akan tampil dalam 2 baris karena terdapat karakter \n di tengah-tengah
kalimat. Ini sebagai instruksi untuk pindah baris, meskipun hanya ditulis dalam 1 perintah printf.
Materi mengenai perintah printf masih akan dilanjutkan dengan cara penulisan untuk
menampilkan isi variabel. Karena pembahasannya cukup panjang, akan saya sambung dalam
tutorial berikutnya: Format Penulisan Perintah printf untuk Menampilkan isi Variabel.
Format Penulisan Perintah printf untuk Menampilkan Variabel
Untuk menampilkan variabel menggunakan printf, terdapat pola khusus. Di dalam bahasa
pemrograman C, kita harus mempersiapkan “tempat” untuk variabel itu, lalu menulis nama
variabel di akhir perintah printf.
Agar lebih jelas, langsung saja kita lihat contoh kode programnya:
1
#include <stdio.h>
2
int main(void)
3
{
4
int harga = 5000;
5 float nilai_ip = 3.12;
8 printf("\n");
Ketika isi variabel akan ditampilkan dengan perintah printf, kita tidak bisa menulisnya begitu
saja, tapi ada format penulisan khusus.
Dalam bahasa C, perintah printf pada dasarnya adalah sebuah function atau fungsi. Sebuah
function bisa diisi dengan argumen yang berfungsi sebagai nilai inputan. Argumen ini ditulis di
dalam tanda kurung pada saat pemanggilan function. Jika terdapat beberapa argumen, dipisah
dengan tanda koma.
Penjelasan dari kalimat diatas terasa cukup membingungkan terutama bagi anda yang belum
pernah belajar tentang function di bahasa pemrograman lain.
Kode diatas artinya, saya menjalankan perintah printf dengan 3 buah argumen. Argumen
pertama berupa “teks1”, argumen kedua adalah teks2, dan argumen ketiga dengan nama teks3.
Jika ada argumen ke-4, saya tinggal menambahkannya di bagian belakang, misalnya seperti ini:
Disini perintah printf dijalankan dengan 2 buah argumen. Argumen pertama berupa teks
“Harga bakwan %i”, dan argumen kedua adalah variabel harga.
Perhatikan kode ‘%i’ di dalam teks argumen pertama. Sama seperti escape character dalam
tutorial sebelumnya, tanda % juga memiliki makna khusus di dalam bahasa pemrograman C,
terutama di perintah printf.
Kode %i disini akan menginstruksikan kepada compiler bahasa C bahwa “ganti karakter ini
dengan sebuah variabel bertipe integer yang ada di argumen kedua“. Apakah isi argumen
kedua? Yakni variabel harga. Apakah variabel harga bertipe integer? Betul. Maka hasilnya
menjadi:
Kode %f akan digantikan dengan isi dari variabel nilai_ip. Yang hasilnya menjadi:
Terakhir, perintah:
Intinya adalah, kode % nantinya akan diganti dengan isi variabel yang ada di argumen kedua
dari fungsi printf. Akan tetapi, kenapa kodenya beda-beda? Ada %i, ada %f dan %c, apa
maksudnya? ini merupakan kode variabel untuk fungsi printf.
Kode-kode khusus seperti %i, ada %f dan %c di dalam fungsi printf merujuk ke tipe data dari
argumen kedua dari fungsi printf. Kode %i adalah kode khusus untuk variabel bertipe integer.
Kode %f untuk variabel bertipe float, dan kode %c untuk variabel bertipe char.
Selain 3 kode ini, masih ada beberapa kode lain tergantung kepada apa tipe data dari variabel
tersebut. Daftar lengkapnya lumayan panjang, tapi setidaknya ada 4 kode yang paling banyak
dipakai:
%i atau %d int
%c char
%f float
%s string
Penulisan perintah printf seperti ini juga tidak hanya untuk 1 variabel dalam 1 perintah, tapi juga
bisa banyak sekaligus selama urutan penulisan variabelnya sesuai. Berikut contoh kode
programnya:
1
#include <stdio.h>
2
int main(void)
3
{
4 int harga = 5000;
8 printf("\n");
printf("harga = %d , nilai_ip = %f dan huruf = %c", harga, nilai_ip, huruf);
9
printf("\n");
10
return 0;
11
}
12
Kode program ini merupakan modifikasi dari kode sebelumnya. Kali ini saya hanya
menggunakan 1 perintah printf untuk menampilkan 3 variabel.
Yang harus diperhatikan adalah, urutan variabel yang akan menggantikan kode khusus. Misalnya
dalam contoh diatas, terdapat kode %d paling awal. Dengan demikian, di dalam argumen kedua
saya harus menulis variabel yang bertipe integer.
Selanjutnya di dalam teks ada kode %f, ini akan berpasangan dengan argumen ketiga, begitu
seterusnya hingga akhir teks.
Penulisan isi variabel di dalam bahasa C memang lumayan njelimet, bahkan mungkin paling
rumit diantara bahasa pemrograman lain. Di bahasa pascal misalnya, kita tinggal menulis isi
variabel tanpa harus pusing dengan kode tipe data, seperti:
write("Harga bakwan",harga);
Namun inilah keunikan dari setiap bahasa pemrograman. Terlebih bahasa C memang paling
dekat dengan bahasa mesin yang penuh dengan kode-kode. Inipula yang menjadi alasan aplikasi
yang dibuat dengan bahasa C bisa berjalan dengan lebih cepat dibandingkan aplikasi yang dibuat
dengan bahasa yang lebih “mudah ditulis”.
Dalam tutorial ini kita telah membahas tentang cara penulisan format perintah printf untuk
menampilkan isi variabel. Perintah printf dipakai untuk menampilkan teks (output). Berikutnya
kita akan bahas tentang perintah scanf yang dipakai untuk menerima masukan (input).
Perintah scanf, atau lebih tepatnya function scanf() adalah perintah bahasa C untuk menerima
masukan ke dalam program, yakni sebagai sarana input dari pengguna.
Dengan menggunakan perintah scanf, kita bisa membuat program yang lebih interaktif, yakni
meminta data dari user / pengguna. Data ini nantinya bisa disimpan ke dalam variabel dan diolah
lebih lanjut untuk kemudian ditampilkan kembali.
Sama seperti printf, perintah scanf juga merupakan function yang butuh beberapa argumen.
Berikut format dasar penggunaan fungsi scanf:
1scanf(kode_format, &nama_variabel_penampung)
Bagian kode_format adalah format untuk tipe data inputan. Kode format ini sama seperti yang
dipakai untuk fungsi printf, misalnya kode “%d” untuk tipe data integer, atau “%c” untuk tipe
data char.
Bagian nama_variabel_penampung adalah nama variabel yang digunakan untuk menampung
nilai inputan. Variabel ini harus sudah di deklarasikan sebelumnya.
Perhatikan penambahan tanda ‘&’ diawal variabel penampung. Tanda ini merujuk ke pointer
untuk alamat memory dari variabel tersebut. Untuk tipe data dasar seperti int, float dan char,
tanda ‘&’ harus disertakan. Untuk beberapa tipe data seperti string, tidak perlu ditambahkan
tanda ‘&’.
Sama seperti printf, fungsi scanf juga bukan bagian dari inti bahasa C, tapi berasal dari library
stdio.h. Karena itu kode #include <stdio.h> harus ditulis agar bisa menggunakan perintah scanf.
Langsung saja kita lihat contoh kode program bahasa C untuk penggunaan perintah scanf:
1
#include <stdio.h>
2
int main(void)
3
{
4 int harga;
6 scanf("%d",&harga);
7 printf("\n");
Di awal kode program, saya mendefinisikan 1 buah variabel harga yang diset sebagai int.
Artinya, variabel harga hanya bisa diisi dengan angka bulat.
Selanjutnya terdapat baris printf(“Masukkan harga barang: “). Ini digunakan untuk
menampilkan teks sebagai keterangan agar pengguna menginput sesuatu.
Proses pembacaan data di tangani oleh perintah scanf(“%d”,&harga). Disini, cursor akan
berhenti dan menunggu kita menginput suatu nilai. Nilai ini akan disimpan ke dalam variabel
harga. Tanda “%d” adalah sebagai kode format kalau nilai inputan harus berupa integer.
Terakhir, nilai dari variabel harga ini saya tampilkan kembali dengan perintah printf(“Harga
barang adalah: %d”, harga). Berikut contoh hasilnya:
Yang juga harus menjadi catatan, ketika karakter yang diinput bukan angka, bahasa C akan
mengkonversi karakter tersebut. Misalnya diinput angka 2500.25 (pecahan), yang akan di ambil
hanya angka 2500 saja. Karena variabel harga hanya bisa menampung angka bulat.
Sebagai contoh kedua, saya akan buat kode program untuk menampung 3 inputan sekaligus:
#include <stdio.h>
1
int main(void)
2
{
3
int harga;
4 float nilai_ip;
5 char huruf;
7 scanf("%d",&harga);
13printf("\n");
return 0;
14
}
15
16
17
Kode program ini mirip seperti sebelumnya, hanya saja kali ini saya membuat 3 variabel bertipe
int, float dan char. Setelah itu terdapat 3 perintah scanf untuk menerima input untuk ketiga
variabel ini.
Akan tetapi, jika anda menjalankan kode program diatas, terdapat 1 masalah. Ketika kita
menekan tombol enter setelah menginput angka untuk variabel nilai_ip, program langsung
berakhir tanpa sempat berhenti untuk menerima input untuk variabel huruf.
Hal ini terjadi karena karakter “Enter” akan dibaca sebagai inputan untuk variabel huruf yang di
set sebagai char.
1scanf(" %c",&huruf);
Trik ini akan mengatasi masalah karakter “Enter” yang langsung terinput ke variabel huruf.
Berikut perubahan kode programnya:
#include <stdio.h>
1
int main(void)
2 {
3 int harga;
float nilai_ip;
4
char huruf;
5
printf("Harga barang: ");
6
scanf("%d",&harga);
7
printf("Nilai IP: ");
8 scanf("%f",&nilai_ip);
10scanf(" %c",&huruf);
11printf("\n");
16
17
Untuk tutorial selanjutnya kita akan masuk ke bahasan tentang jenis-jenis tipe data di dalam
bahasa C.
Sebelum sampai ke jenis-jenis tipe data di dalam bahasa C, ada baiknya membahas sedikit
pengertian dari tipe data itu sendiri. Apa itu tipe data?
“A data type or simply type is a classification of data which tells the compiler or interpreter how
the programmer intends to use the data”.
Terjemahannya:
“Tipe data atau kadang disingkat dengan ‘tipe’ saja adalah sebuah pengelompokan data untuk
memberitahu compiler atau interpreter bagaimana programmer ingin mengolah data tersebut”
Secara sederhana, tipe data adalah cara kita memberitahu komputer untuk
mengelompokkan data berdasarkan apa yang dipahami oleh komputer.
Sebagai contoh, misalkan saya memiliki data berupa angka. Agar bisa dipahami oleh compiler
bahasa C, data ini harus disimpan ke dalam variabel yang sudah di set agar bisa menyimpan
angka. Di dalam bahasa C, terdapat tipe data integer dan float yang bisa diisi dengan angka.
Sedangkan jika data tersebut berupa huruf, bisa disimpan ke dalam tipe data char.
Terdapat 8 tipe data di dalam bahasa pemrograman C yang bisa dibagi ke dalam 4 kelompok
besar: tipe data dasar, tipe data turunan, tipe data bentukan, dan tipe data void.
Sesuai dengan namanya, tipe data dasar adalah tipe data paling dasar yang tersedia di dalam
bahasa pemrograman C. Terdapat 3 jenis tipe data dasar:
Tipe data dasar dasar disebut juga sebagai Primary Data Type, Fundamental Data Types atau
Basic Data Type.
Tipe data turunan berasal dari tipe data dasar yang dikelompokkan atau di modifikasi. Terdapat 3
tipe data turunan di dalam bahasa pemrograman C:
Array: Tipe data yang terdiri dari kumpulan tipe data dasar. Tipe data tersebut harus 1
jenis.
Structure: Tipe data yang terdiri dari kumpulan tipe data dasar. Tipe data tersebut bisa
lebih dari 1 jenis.
Pointer: Tipe data untuk mengakses alamat memory secara langsung.
Sesuai dengan namanya, tipe data bentukan adalah tipe data yang dibuat sendiri oleh kita
(programmer). Isinya berupa data-data yang sudah ditentukan. Tipe data bentukan ini dikenal
juga sebagai Enumerated Data Type atau disingkat sebagai enum.
Tipe data void adalah tipe data khusus yang menyatakan tidak ada data. Penggunaannya khusus
untuk beberapa situasi seperti function yang tidak mengembalikan nilai (return void), atau
mengisi argumen function dengan nilai kosong.
1. Char
2. Integer
3. Float
4. Array
5. Structure
6. Pointer
7. Enum
8. Void
Bagi anda yang sudah pernah belajar bahasa pemrograman lain, mungkin akan bertanya kenapa
tipe data boolean dan string tidak termasuk di dalam daftar ini?
Bahasa C memang tidak memiliki tipe boolean bawaan, tapi bisa diakali dengan membuatnya
menggunakan tipe data bentukan (enum), atau menggunakan library khusus: stdbool.h.
Sedangkan untuk string, di dalam bahasa C termasuk ke dalam array. String di defenisikan
sebagai array dari tipe data char.
Penjelasan lebih lanjut tentang tipe data ini, termasuk contoh penggunaannya akan kita bahas
secara bertahap dalam beberapa tutorial ke depan.
Pertama, akan dibahas tentang tipe data char terlebih dahulu: Pengertian dan Contoh Kode
Program C untuk Tipe Data char.
Tipe data char di dalam bahasa C digunakan untuk menampung 1 digit karakter, entah itu berupa
huruf maupun angka. Variabel yang didefinisikan untuk menampung tipe data char
membutuhkan 1 byte memory. Secara teknis, char ini dikodekan dari charset ASCII.
Contoh penggunaan tipe data char sudah pernah kita coba beberapa kali. Berikut contoh lain dari
tipe data char dalam bahasa C:
1
#include <stdio.h>
2
int main(void)
3{
4char huruf;
5huruf = 'Z';
7printf("\n");
return 0;
8
}
9
Dalam contoh ini, saya mendefinisikan variabel huruf yang bertipe char. Huruf ini kemudian
diisi dengan karakter ‘Z’ dan kemudian ditampilkan dengan perintah printf. Sangat sederhana.
Untuk contoh kedua, saya akan buat konstanta dengan tipe data char:
1
#include <stdio.h>
2int main(void)
3{
6printf("\n");
return 0;
7
}
8
Disini huruf berupa sebuah konstanta bertipe char, bukan lagi variabel seperti sebelumnya.
Mengenai perbedaan antara variabel dengan konstanta, sudah pernah kita bahas dalam beberapa
tutorial sebelum ini: Cara Pembuatan Konstanta dalam Bahasa C, dan Pengertian Variabel dan
Cara Penulisan Variabel Bahasa C.
Sebagai contoh terakhir, saya akan kombinasikan dengan perintah scanf agar lebih dinamis:
1 #include <stdio.h>
2 int main(void)
3 {
char karakter1, karakter2, karakter3;
4
printf("Input 3 karakter sembarang \n");
5
printf("========================== \n");
6
printf("\n");
7
printf("Karakter pertama: ");
8 scanf(" %c",&karakter1);
10scanf(" %c",&karakter2);
15printf("\n");
16return 0;
17}
18
Di awal kode program, saya menyiapkan 3 buah variabel bertipe data char. Ketiga variabel ini
bernama karakter1, karakter2 dan karakter3. Isi program akan meminta inputan dari user
untuk 3 karakter tersebut, kemudian menampilkannya kembali.
Yang juga patut diingat, karakter disini bisa terdiri dari huruf, angka, serta karakter khusus
seperti ?, *, %, #. Jadi tidak masalah jika kita menginput angka ke dalam tipe data char. Namun
angka tersebut tetap harus 1 digit.
Angka yang diinput ke dalam tipe data char tidak bisa diolah, misalnya dipakai untuk
perhitungan atau penambahan. Jika kita menginginkan hal ini, harus menggunakan tipe data
khusus angka seperti integer atau float.
Bagaimana dengan karakter yang lebih dari 1 digit, seperti kata atau kalimat? Di dalam bahasa
C, kata atau kalimat (di kenal juga sebagai string) dianggap sebagai array dari tipe data char.
Lebih lanjut akan kita pelajari setelah membahas tentang tipe data array nanti.
Sampai disini kita sudah membahas tentang pengertian tipe data char serta cara penggunaan tipe
data char di dalam bahasa pemrograman C. Berikutnya akan dibahas tentang tipe data untuk
menampung angka bulat: Pengertian dan Contoh Kode Program Tipe Data Integer bahasa C.
Pengertian Tipe Integer Bahasa C
Tipe data integer adalah tipe data yang dipakai untuk menampung angka bulat positif maupun
negatif, seperti: 1, 99, dan -463.
Di dalam bahasa C, terdapat beberapa sub-tipe integer yang dibedakan berdasarkan jangkauan
angka yang bisa ditampung. Setidaknya terdapat 4 tipe data integer di dalam bahasa C:
char
short
int
long
Loh, bukannya char adalah tipe data untuk karakter? Kenapa juga ada di dalam integer? Betul,
inilah keunikan tipe data char di dalam bahasa C.
Secara internal, char sebenarnya bertipe integer. Untuk membedakan apakah char ini berisi
karakter atau huruf dilakukan pada saat menampilkannya.
Jika di dalam perintah printf menggunakan kode %c, karakter lah yang akan ditampilkan.
Sedangkan jika di dalam perintah printf menggunakan kode %d, maka akan menampilkan tipe
data integer. Kita akan lihat perbedaannya dengan contoh kode program sesaat lagi.
Tabel berikut merangkum jangkauan setiap tipe data integer dalam bahasa C:
Ukuran Memory Penyimpanan adalah jumlah memory yang dibutuhkan untuk menyimpan angka
tersebut. Semakin besar jangkauan, semakin banyak juga ruang memory yang dibutuhkan.
Khusus untuk tipe data int, bisa terdiri dari 2 byte maupun 4 byte. Ini tergantung sistem
komputer dan compiler bahasa C yang dipakai.
Jangkauan tipe data diatas adalah untuk angka yang bertanda (signed). Maksudnya, setiap tipe
data bisa menampung angka positif dan negatif. Kita bisa mengorbankan nilai negatif ini untuk
memperbesar jangkauan angka positif dengan menambahkan keyword unsigned sebelum
penulisan tipe data.
Jika tipe data integer di-set sebagai unsigned (tidak bertanda), maka tipe data tersebut tidak bisa
menampung angka negatif, namun jatah untuk angka negatif akan dialihkan kepada angka positif
sehingga jangkauannya menjadi 2 kali lipat.
Berikut tabel jangkauan setiap tipe data unsigned integer dalam bahasa C:
Terlihat jangkauan angkanya menjadi lebih besar, tapi tidak bisa menampung angka negatif. Tipe
data unsigned ini cocok untuk data yang tidak pernah negatif, seperti tinggi badan, berat badan,
jumlah orang, dsb.
Cukup dengan teorinya, mari kita masuk ke contoh praktek. Dalam kode program berikut ini
saya menampilkan ke-4 tipe data integer dalam bahasa C:
1
2
#include <stdio.h>
3 int main(void)
4 {
5 char angka1;
6 short angka2;
int angka3;
7 long angka4;
8 angka1 = 127;
9 angka2 = 32767;
10angka3 = 2147483647;
11angka4 = 2147483647;
printf("Isi variabel angka1 (char): %d \n",angka1);
12printf("Isi variabel angka2 (short) %d \n",angka2);
13printf("Isi variabel angka3 (int): %d \n",angka3);
14printf("Isi variabel angka4 (long): %d \n",angka4);
15printf("\n");
16return
}
0;
17
18
Kode program ini cukup sederhana. Pertama, saya membuat 4 variabel: angka1, angka2,
angka3 dan angka4. Setiap variabel di-set dengan tipe data yang berbeda-beda, dimana variabel
angka1 sebagai char, variabel angka2 sebagai short, variabel angka3 sebagai int, dan variabel
angka4 sebagai long.
Setelah pendefinisian variabel, setiap variabel diisi dengan angka. Angka yang ada sengaja saya
set dengan nilai maksimum untuk setiap tipe data. Terakhir setiap variabel ditampilkan
menggunakan perintah printf.
Khusus untuk char, ini memang cukup unik. Karena fungsinya akan berbeda tergantung cara
menampilkan tipe data ini. Berikut contoh perbedannya:
1
2 #include <stdio.h>
3 int main(void)
4 {
char foo = 65;
5 char bar = 'Z';
6 printf("Isi variabel foo (char): %d \n",foo);
7 printf("Isi variabel foo (char): %c \n",foo);
8 printf("\n");
9 printf("Isi variabel bar (char): %d \n",bar);
printf("Isi variabel bar (char): %c \n",bar);
10printf("\n");
11return 0;
12}
13
Dalam contoh ini saya membuat 2 buah variabel bertipe char: foo dan bar. Variabel foo diisi
angka 65, sedangkan variabel bar diisi dengan karakter ‘Z’.
Hasilnya akan berbeda ketika di dalam perintah printf kita menggunakan pola %d untuk tipe
integer, atau %c untuk tipe data char.
Ketika variabel foo diakses sebagai integer, hasilnya adalah 65. Ini sesuai dengan nilai awal
variabel. Namun ketika variabel foo diakses sebagai char, hasilnya adalah huruf ‘A’. Dari mana
datangnya huruf ‘A’?
Ini berasal dari kode karakter ASCII dimana huruf ‘A’ bernilai desimal 65. Dengan kata lain, di
dalam daftar karakter ASCII, huruf A berada di urutan ke 65.
Hal yang sama juga berlaku untuk variabel bar yang diisi karakter ‘Z’. Ketika diakses sebagai
integer, hasilnya berupa angka 90, karena huruf Z berada di urutan ke 90 daftar karakter ASCII.
Untuk tabel karakter ASCII ini bisa dilihat ke id.wikipedia.org/wiki/ASCII.
Kembali ke pembahasan tipe data integer. Bagaimana untuk membuat tipe data ini sebagai
unsigned? Caranya tambahkan keyword unsigned sebelum penulisan tipe data, seperti contoh
berikut:
1 #include <stdio.h>
2 int main(void)
{
3 unsigned char angka1;
4 unsigned short angka2;
5 unsigned int angka3;
6 unsigned long angka4;
7 angka1 = 255;
angka2 = 65535;
8 angka3 = 4294967295;
9 angka4 = 4294967295;
10printf("Isi variabel angka1 (char): %d \n",angka1);
11printf("Isi variabel angka2 (short) %d \n",angka2);
12printf("Isi variabel angka3 (int): %d \n",angka3);
printf("Isi variabel angka4 (long): %d \n",angka4);
13printf("\n");
14return 0;
15}
16
17
18
Sekarang, jangkauan setiap tipe data sudah membesar 2 kali lipat dengan mengorbankan angka
negatif. Efek sampingnya, kita tidak bisa lagi menginput angka negatif ke dalam variabel diatas.
Tipe data char yang sebelumnya hanya bisa sampai angka 127 sekarang bisa menampung nilai 0
– 255. Begitu juga dengan tipe data unsigned short yang bisa menampung 0 – 65535.
Tapi kenapa tipe data unsigned int dan unsigned long menghasilkan -1? Ternyata khusus untuk
jenis unsigned, kita tidak bisa menggunakan pola karakter %d, tapi harus diganti menjadi %u.
Dengan demikian, kode program sebelumnya akan saya modifikasi sebagai berikut:
1 #include <stdio.h>
2 int main(void)
3 {
unsigned char angka1;
4 unsigned short angka2;
5 unsigned int angka3;
6 unsigned long angka4;
7 angka1 = 255;
8 angka2 = 65535;
angka3 = 4294967295;
9 angka4 = 4294967295;
10printf("Isi variabel angka1 (char): %d \n",angka1);
11printf("Isi variabel angka2 (short) %d \n",angka2);
12printf("Isi variabel angka3 (int): %u \n",angka3);
13printf("Isi variabel angka4 (long): %u \n",angka4);
printf("\n");
14return 0;
15}
16
17
18
Perubahannya hanya mengganti pola %d menjadi %u untuk menampilkan variabel angka3 dan
angka4. Yakni variabel untuk tipe data unsigned int dan unsigned long.
Apa yang terjadi apabila menginput angka diluar batas maksimum? Mari kita coba:
1
2
#include <stdio.h>
3 int main(void)
4 {
5 unsigned char angka1;
6 unsigned short angka2;
unsigned int angka3;
7 unsigned long angka4;
8 angka1 = 299;
9 angka2 = 65599;
10angka3 = 4294967299;
11angka4 = 4294967299;
printf("Isi variabel angka1 (char): %d \n",angka1);
12printf("Isi variabel angka2 (short) %d \n",angka2);
13printf("Isi variabel angka3 (int): %u \n",angka3);
14printf("Isi variabel angka4 (long): %u \n",angka4);
15printf("\n");
16return
}
0;
17
18
Hasilnya, angka yang tersimpan tidak lagi sesuai.
Sebagai kode program terakhir, saya akan menambah sebuah file header baru, yakni limits.h.
File header ini berisi berbagai konstanta dan fungsi agar kita bisa melihat berapa sebenarnya nilai
maksimum dan minimum dari setiap tipe data. Berikut contoh penggunaannya:
1
2
3 #include <stdio.h>
#include <limits.h>
4 int main(void)
5 {
6 printf("Ukuran memory untuk tipe data char: %d byte \n", sizeof(char));
7 printf("Ukuran memory untuk tipe data short: %d byte \n", sizeof(short));
8 printf("Ukuran memory untuk tipe data int: %d byte \n", sizeof(int));
printf("Ukuran memory untuk tipe data long: %d byte \n", sizeof(long));
9 printf("\n");
10printf("Nilai minimal tipe data char: %d \n", SCHAR_MIN);
11printf("Nilai minimal tipe data short: %d \n", SHRT_MIN);
12printf("Nilai minimal tipe data int: %d \n", INT_MIN);
13printf("Nilai minimal tipe data long: %d \n", LONG_MIN);
printf("\n");
14printf("Nilai maksimal tipe data char: %d \n", SCHAR_MAX);
15printf("Nilai maksimal tipe data short: %d \n", SHRT_MAX);
16printf("Nilai maksimal tipe data int: %d \n", INT_MAX);
17printf("Nilai maksimal tipe data long: %d \n", LONG_MAX);
printf("\n");
18return 0;
19}
20
21
Perhatikan tambahan perintah #include <limits.h> di baris kedua. Inilah cara kita menambahkan
fungsi-fungsi baru ke dalam kode program C.
Dengan tambahan perintah ini, saya bisa menggunakan fungsi sizeof() untuk melihat berapa
jumlah memory yang dipakai untuk setiap tipe data, serta mengakses konstanta seperti
SCHAR_MIN untuk melihat nilai minimum dari tipe data char, serta SCHAR_MAX untuk
melihat nilai maksimum tipe data char. Begitu juga dengan tipe data integer lainnya.
Dalam tutorial kali ini kita telah membahas pengertian tipe data integer, melihat 4 jenis tipe data
integer bahasa C, serta menjalankan beberapa contoh kode program untuk tipe data integer
bahasa pemrograman C.
Tipe data integer hanya bisa dipakai untuk menampung angka bulat. Bagaimana dengan angka
pecahan? Kita akan bahas dalam tutorial selanjutnya: Pengertian dan Contoh Kode Program Tipe
Data Float Bahasa C.
Pengertian Tipe Data Float Bahasa C
Tipe data float digunakan untuk menampung angka pecahan seperti 3.14, 62.22 atau -0.01234.
Sama seperti bahasa pemrograman pada umumnya, kita menggunakan tanda titik sebagai
pemisah angka bulat dan pecahan, bukan tanda koma seperti yang kita pakai sehari-hari.
Di dalam bahasa C, selain float juga terdapat tipe data double yang juga bisa dipakai untuk
menyimpan angka pecahan. Perbedaan antara float dan double terletak dari jangkauan angka
serta tingkat ketelitian angka.
Berikut tabel perbedaan antara tipe data float dan double dalam bahasa C:
Sebenarnya masih ada 1 lagi jenis tipe data untuk angka pecahan, yakni long double dengan
jangkauan yang lebih besar dari double. Namun tidak semua compiler bahasa C mendukung tipe
data ini.
Penulisan angka pecahan juga bisa menggunakan notasi ilmiah, seperti 3.12e2 atau 4E-3. Tanda
e atau E mewakili pangkat 10, sehingga 3.12e2 = 3.12 x 10^2 = 312. Sedangkan 4E-3 = 4 x 10^-
3 = 0.004.
Meskipun tipe data float bisa menyimpan angka yang sangat besar, tapi tipe data ini memiliki
kelemahan yang umum di setiap bahasa pemrograman (tidak bahasa C saja). Yakni terdapat
batas tingkat ketelitian. Hal ini berhubungan dengan mekanisme penyimpanan di dalam
komputer yang berupa angka biner. Kita akan lihat contohnya beberapa saat lagi.
Sebagai contoh kode program pertama, saya akan membuat 2 buah variabel bertipe float dan
double, menginput angka, lalu menampilkannya:
1 #include <stdio.h>
2 int main(void)
3 {
4 float angka1;
5 double angka2;
angka1 = 4.323;
6
angka2 = 0.0067;
7
printf("Isi variabel angka1 (float): %f \n",angka1);
8
printf("Isi variabel angka2 (double) %f \n",angka2);
9
printf("\n");
10return 0;
11}
12
Untuk menampilkan angka float, kita menggunakan kode %f di dalam perintah printf.
1
#include <stdio.h>
2 int main(void)
3 {
9 return 0;
}
10
Dari kedua contoh diatas, kita bisa melihat bahwa secara default bahasa C menampilkan angka
desimal dengan 6 angka di belakang koma. Maksudnya, jika yang ditulis adalah 4.323, maka
yang ditampilkan menjadi 4.323000. Bagaimana mengubahnya, misalnya menjadi 2 angka
dibelakang koma?
Perintah printf memiliki aturan khusus untuk hal ini. Untuk mengatur agar bahasa C
menampilkan jumlah angka di belakang koma, kita bisa menambahkan 3 cara penulisan ke
dalam pola %f. Dimana formatnya adalah sebagai berikut:
Kode yang ada di dalam tanda kurung bersifat opsional dan boleh tidak ditulis. Mari kita lihat
prakteknya menggunakan contoh kode program:
1 #include <stdio.h>
int main(void)
2
{
3
float angka1 = 1234.5678;
4
printf("Isi variabel angka1: %f \n",angka1);
5
printf("Isi variabel angka1: %15f \n",angka1);
6 printf("Isi variabel angka1: %015f \n",angka1);
7 printf("Isi variabel angka1: %.3f \n",angka1);
14
Di awal kode program saya mendefinisikan variabel angka1 sebagai float dan diisi dengan
angka 1234.5678.
Dalam perintah printf pertama, terlihat bahwa angka1 berisi 1234.567749. Loh, kenapa
berbeda? inilah salah satu kelemahan dari tipe data float, yakni tidak bisa secara persis
menyimpan angka. Kesalahan pembulatan ini umum di setiap bahasa pemrograman yang bersala
dari mekanisme konversi angka di dalam komputer (digit biner).
Untuk perintah printf kedua, saya menggunakan pola %15f. Pola ini akan menampilkan angka
pecahan dengan 15 digit (termasuk karakter titik). Karena variabel angka1 tersimpan sebagai
1234.567749 (total 11 digit), maka akan ditambah 4 spasi sebelum angka agar total menjadi 15
digit.
Untuk perintah printf ketiga, saya menggunakan pola %015f. Pola ini juga akan menampilkan
angka pecahan dengan 15 digit, namun 4 spasi sebelumnya akan diganti dengan angka 0.
Perintah printf keempat, saya menggunakan pola %.3f. Pola ini akan menampilkan angka
pecahan dengan 3 digit dibelakang koma.
Perintah printf kelima, saya menggunakan pola %010.3f. Pola ini akan menampilkan angka
pecahan dengan 3 digit dibelakang koma. Selain itu angka akan ditampilkan dengan jumlah total
10 digit. Jika kurang, akan ditambah dengan angka 0 di sisi kiri angka bulat.
Dua perintah printf terakhir menggunakan pola %e dan %E. Ini dipakai untuk menampilkan
angka dalam format notasi ilmiah, yakni 8.012457e+003 dan 8.012457E+003. Perbedaannya
hanya menggunakan huruf e kecil atau E besar.
Sebagai penutup tutorial tentang tipe data float di dalam bahasa C, kita akan akses file header
float.h yang berisi berbagai konstanta untuk melihat ukuran memory, nilai minimum, nilai
maksimum serta jumlah digit ketelitian dari tipe data float di bahasa C:
2 #include <stdio.h>
#include <float.h>
3
int main(void)
4
{
5
printf("Ukuran memory untuk tipe data float: %d byte \n", sizeof(float));
6
printf("Ukuran memory untuk tipe data double: %d byte \n", sizeof(double));
7 printf("\n");
10printf("\n");
17}
18
Dengan kode program ini, kita bisa melihat informasi seputar tipe data float.
Dalam tutorial belajar bahasa C di Duniailkom kali ini kita sudah membahas banyak hal terkait
tipe data float, mulai dari pengertian, jenis tipe data float, serta berbagai contoh kode program.
Berikutnya akan dibahas tentang Pengertian Array dan Contoh Kode Program Tipe Data Array
dalam bahasa C.
Tipe data array adalah tipe data yang terdiri dari kumpulan tipe data lain. Dalam bahasa
Indonesia, array dikenal juga dengan istilah Larik. Dengan array, proses penyimpanan data ke
dalam variabel menjadi lebih efisien dan mudah, terutama jika kita memiliki data dalam jumlah
banyak.
Anggota atau isi dari array itu sendiri harus satu jenis tipe data, misalkan terdiri dari kumpulan
angka bulat saja (integer), kumpulan karakter saja (char), maupun kumpulan angka pecahan saja
(float). Di dalam bahasa C, kita tidak bisa membuat 1 array dengan berbagai tipe data (harus 1
jenis saja).
Sebagai contoh, misalkan saya ingin menyimpan dan memproses 5 buah nilai. Jika menggunakan
variabel biasa, penulisannya bisa seperti ini:
int bilangan1;
int bilangan2;
int bilangan3;
int bilangan4;
int bilangan5;
Data diatas banyak dan berulang untuk 1 tipe data saja, sehingga akan lebih efisien jika
menggunakan array:
int bilangan[5];
Dengan kode program diatas, variabel bilangan akan menjadi sebuah array yang bisa
menampung 5 data bertipe integer.
tipe_data nama_variabel[jumlah_element]
Sebagai contoh, jika saya ingin membuat array dengan 100 element yang bisa diisi dengan tipe
data float, pendefinisiannya adalah sebagai berikut:
float bilangan[100];
Berikutnya, bagaimana cara mengakses dan mengisi element array ini? Kita tinggal menuliskan
nomor urut dari element yang akan akan diakses, nomor urut ini dikenal juga dengan istilah
index. Berikut contohnya:
bilangan[5] = 3.14;
Yang harus perlu diperhatikan adalah, nomor urut atau index array dimulai dari 0, bukan 1.
Akibatnya jika kita ingin mengakses element pertama dari array bilangan, penulisannya adalah
bilangan[0]. Untuk bisa mengakses element ke-100 dari array bilangan, penulisannya adalah
bilangan[100].
Index array yang dimulai dari 0 ini hampir selalu menjadi ciri khas di seluruh bahasa
pemrograman modern, termasuk C++, PHP, dan JavaScript.
Contoh Kode Program Tipe Array Bahasa C
Cukup dengan teori, mari kita lihat contoh praktek dari tipe data array dalam bahasa C.
Sebagai contoh pertama, saya ingin membuat array bilangan dengan 5 element bertipe data
integer, lalu mengisi dan menampilkan nilainya menggunakan perintah printf:
1
#include <stdio.h>
2
int main(void)
3
{
4
int bilangan[5];
5
bilangan[0] = 6;
6 bilangan[1] = 9;
7 bilangan[2] = -8;
8 bilangan[3] = 24;
9 bilangan[4] = -99;
16
Di awal kode program, baris int bilangan[5]; dipakai untuk membuat sebuah array bernama
bilangan dengan 5 element atau 5 anggota. Array bilangan ini di set sebagai int, yang artinya
setiap element array hanya bisa diisi dengan bilangan bulat (integer).
Setelah pendefinisian array bilangan, selanjutnya saya mengisi setiap element array dengan
angka. Kembali diingat bahwa index array dimulai dari 0, sehingga untuk mengakses element
pertama dari array bilangan, penulisannya adalah bilangan[0].
Di akhir program, saya menampilkan seluruh element array menggunakan perintah printf.
Dalam contoh diatas, pengisian nilai array diproses satu persatu. Namun kita juga bisa mengisi
element array langsung pada saat pendefinisiannya, seperti contoh berikut:
1
#include <stdio.h>
2
int main(void)
3
{
4 int bilangan[5] = {6, 9, -8, 24, -99};
Hasil kode program diatas akan sama persis seperti contoh kode program pertama.
Yang cukup unik, kita juga bisa mendefiniskan array tanpa harus menulis jumlah elemen
anggotanya, seperti contoh berikut:
1#include <stdio.h>
2int main(void)
3{
char kumpulan_huruf[] = {'a','C','x'};
4
printf("Isi array kumpulan_huruf: ");
5
printf("%c, %c, %c
6\n",kumpulan_huruf[0],kumpulan_huruf[1],kumpulan_huruf[2]);
7return 0;
8}
Disini saya tidak menginput angka apapun sebagai penentu jumlah element. Jumlah element
akan digenerate secara otomatis dari banyaknya nilai yang diinput ke dalam array tersebut.
Dalam contoh ini terdapat 3 nilai sehingga array kumpulan_huruf akan berisi 3 element.
Pendefinisian array seperti ini hanya bisa dibuat jika nilai untuk element array langsung ditulis
pada saat pendefinisian. Kita tidak bisa menggunakan cara diatas jika element array diisi secara
terpisah, seperti contoh kode program pertama dalam tutorial ini.
Isi dari element array sama halnya seperti variabel biasa, dimana kita bisa mengubah nilai
element array sepanjang program, seperti contoh berikut:
1
#include <stdio.h>
2
int main(void)
3
{
4
float pecahan[] = {3.14,-99.01,0.002};
5 printf("Isi array pecahan: ");
7 printf(" \n");
8 pecahan[1] = 9.123;
9 pecahan[2] = 12.9925;
printf("Isi array pecahan: ");
10
printf("%.3f, %.3f, %.3f \n",pecahan[0],pecahan[1],pecahan[2]);
11
return 0;
12
}
13
Setelah proses pendefinisian dan pengisian awal array pecahan, di tengah kode program saya
mengubah nilai dari pecahan[1] dan pecahan[2], akibatnya nilai element array sebelumnya akan
tertimpa dengan nilai baru ini.
Array merupakan sebuah konsep yang sangat menarik, karena kita bisa menyimpan banyak nilai
ke dalam 1 variabel saja.
Tidak berhenti sampai disini, array juga bisa dipakai untuk menampung nilai dalam bentuk 2
dimensi atau lebih, dan inilah yang akan kita bahas dalam tutorial selanjutnya: Pengertian Array
2 Dimensi dan contoh kode programnya dalam bahasa C.
Array dua dimensi adalah sebutan untuk array yang penomoran index-nya menggunakan 2
buah angka. Analogi yang sering dipakai seperti titik koordinat dalam diagram kartesius.
Diagram kartesius merupakan diagram yang biasa kita pakai untuk membuat grafik. Disini
terdapat sumbu X dan sumbu Y. Sebuah titik dalam diagram kartesius ini harus disebut secara
berpasangan, seperti (2,3) atau (-3, 1).
Analogi lain adalah matriks. Dalam matematika, matrik terdiri dari kolom dan baris. Kembali,
untuk menentukan nilai dari sebuah matriks, kita harus sebut secara berpasangan seperti baris 1
kolom 2, atau baris 3 kolom 1. Konsep seperti inilah yang menjadi dasar dari array 2 dimensi.
Untuk membuat array 2 dimensi di dalam bahasa C, kita membuat 2 kali tanda kurung siku
setelah nama variabel, seperti contoh berikut:
int bilangan[2][2];
Baris diatas akan membuat array 2 dimensi dengan nama variabel: bilangan. Variabel bilangan
ini akan berisi 4 element (2 x 2). Atau jika diibaratkan sebagai matriks, disini kita membuat
matriks 2 x 2.
Untuk mengakses setiap element array, penulisan index juga harus ditulis 2 kali, seperti contoh
berikut:
bilangan[0][0] = 100;
bilangan[0][1] = 101;
bilangan[1][0] = 110;
bilangan[1][1] = 111;
Kita akan lihat contoh praktek dari array 2 dimensi ini sesaat lagi.
Berikut contoh kode program pertama dari pembuatan array 2 dimensi di dalam bahasa C:
1
#include <stdio.h>
2
int main(void)
3
{
4
int bilangan[2][2];
5 bilangan[0][0] = 100;
6 bilangan[0][1] = 101;
7 bilangan[1][0] = 110;
8 bilangan[1][1] = 111;
Pengisian element array 2 dimensi juga bisa dilakukan pada saat array itu di definisikan, seperti
contoh berikut:
1
#include <stdio.h>
2
int main(void)
3{
Tanda kurung kurawal sebagai pemisah nilai array bersifat opsional dan boleh tidak ditulis. Saya
juga bisa mengisi array tersebut dengan perintah berikut:
Hanya saja penggunaan tanda kurung kurawal akan mempermudah peletakan posisi dari setiap
element array.
Tidak cukup dengan array 2 dimensi, kita juga bisa membuat array 3 dimensi bahkan lebih.
Contoh penggunaan dari array 3 dimensi adalah seperti diagram kartesius 3 dimensi (dimensi
ruang) yang butuh sumbu x (lebar), y (tinggi), dan z (kedalaman).
Cara pembuatan array 3 dimensi cukup mudah, kita tinggal menulis 3 kali tanda kurung siku
setelah penulisan nama array:
int matrix[2][3][4]
int matrix[2][3][4][5]
Kompleksitas array akan menjadi bertingkat jika sudah menggunakan multi dimensi. Sebagai
contoh, baris diatas akan membuat sebuah array 4 dimensi yang beranggotakan 120 element!
Sebagai contoh dari konsep array multi dimensi, saya akan membuat sebuah array 3 dimensi.
Berikut contoh kode programnya:
1
#include <stdio.h>
2
int main(void)
3
{
4
int matrix[2][3][4] =
5 {
6 { {7, 4, 12, 3}, {-9, 29, 3, 11}, {6, 34, 23, 20} },
8 };
Karena jumlah element array ini cukup banyak, saya hanya menampilkan beberapa nilai saja
menggunakan perintah printf. Meskipun begitu saya yakin anda bisa menampilkan seluruh nilai
element array ini. Caranya, cukup dengan mengubah nomor index.
Array 2 dimensi dalam bentuk matriks sangat sering dipakai untuk latihan logika. Soal-soal
olimpiade komputer tidak jarang menggunakan array 2 dimensi seperti ini, dimana kita disuruh
untuk menebak berapa hasil akhir array setelah serangkaian proses tertentu.
Selanjutnya, kita akan bahas tipe data String dalam bahasa C, yang tidak lain adalah array dari
tipe data char.