Dasar - Dasar Program C dan C++ (Pengertian, Struktur, Library, Tipe data, Pembuatan Program)

Dasar - Dasar Program C dan C++




A.  Pengertian dan perbedaan Program C dan C++


B.  Kebutuhan software

Untuk membuat program yang ditulis dalam bahasa C++, kita memerlukan dua 
software:
1.  Text Editor, digunakan untku menuliskan kode-kode program
2.  C/C++ Compiler, digunakan untuk  (menerjemahkan) kode C++  menjadi program (file biner yang  dapat deksekusi)


C.  Pembentukan program 

Terdapat beberapa tahapan yang terjadi pada saat proses pembentukan program, dari kode program menjadi file biner yang dapat dieksekusi. Dalam sistem operasi Windows, file program akan berekstensi .exe. Masing-masing tahapan dilakukan oleh program lain yang berbeda-beda, yaitu:
➢  C++ Prepocessor
➢  C++ Compiler
➢  Assembler
➢  Linker
Setelah program (file .exe atau .o) terbentuk, file tersebut dapat dieksekusi atau dijalankan (Run). Program yang melakukan eksekusi file ini disebut program Loader.

1. Program C++ Prepocessor
Pada pembentukan program yang ditulis dalam C++, mula-mula kode program akan diproses oleh program C++ Prepocessor. Program ini akan menggabungkan kode program dengan prepocessor directive yang digunakan di dalam kode. Prepocessor directive adalah statement program yang diawali dengan tanda #.
Pada tahap ini, statement #include, #define, dan lain-lain akan diubah ke dalam bentuk kode aktual. Sebagai contoh, apabila di dalam kode program terdapat statement #include maka seluruh isi dari file "iostream" akan dimasukan ke dalam kode program. Selanjutnya, bentuk kode yang telah diperluas ini kemudian siap dikirim ke program C++ Compiler.

2. Program C++ Compiler
Tahap berikutnya setelah tahap pemrosesan awal kode program adalah tahap penerjemahan kode program menjadi kode assembly. Proses pada tahap ini dilakukan oleh program C++ Compiler. Kode yang sudah berubah ke bentuk kode assembly ini kemudian siap dikirim ke program Assembler.

3. Program Assembler
Setelah program Assembler menerima kiriman berupa kode assembly dari C++ Compiler, program ini akan langsung menerjemahkan kode-kode yang terdapat di dalamnya ke dalam bentuk kode objek. Selanjutnya, kode objek ini akan dikirim ke program Linker.

4. Program Linker
Apabila kode program yang kita tulis lebih dari satu file, maka kode objek yang dihasilkan juga akan sesuai dengan jumlah file kode program. Pada tahap ini, program Linker akan menghubungkan semua file kode objek tersebut dengan Standard Runtime Library yang sudah disediakan oleh C++, kemudian mengubahnya ke dalam satu file .exe (atau .o). File inilah yang disebut sebagai program. Sampai pada tahap ini, pembentukan program sudah berakhir.

5. Program Loader
Program Loader adalah program yang digunakan untuk mengekseskusi program yang sudah kita buat. Sebagai contoh, dalam aplikasi Dev-C++, ketika kita menggunakan menu Compile maka Dev-C++ akan melakukan proses pembentukan program. Di sini yang akan dipanggil adalah program C++ Prepocessor, C++ Compiler, Assembler, dan Linker. Akan tetapi, pada saat menggunakan menu Run, maka program Loader akan dipanggil untuk mengeksekusi program yang telah kita buat sehingga hasil (output) program akan ditampilkan di layar monitor (console).

D. Penulisan program C++

Salah satu konsep yang penting dalam bahasa pemrograman C ++ adalah struktur. Struktur merupakan salah satu bentuk susunan dari suatu program. Pada program berikut susunan utama program C++ adalah sebagai berikut;
/*Contoh program C++ */   = Komentar program
#include <stdio.h> = Nama dari fungsi
main() = Awal dari fungsi
{
printf(“Belajar C++”);  = Program utama
} = Akhir dari fungsi

Program C++ merupakan program yang berbentuk fungsi-fungsi.
• Main() merupakan nama dari salah satu fungsi yang harus ada di dalam program c++ dan diletakkan dibagian tertentu yang menunjukan kepada compiler dimana awal suatu program. Main() hanya digunakan sekali saja dalam suatu program. Setiap program harus mengandung fungsi main() agar dapat diproses.

• Tanda { brance pembuka, yang diletakkan dibawah nama fungsi main() menunjukan awal dari perintah-perintah yang akan ditulis atau tanda { merupakan awal suatu function body atau fungsi blok
• Pada program sederhana diatas hanya terdiri dari sebuah fungsi dapat dibuat dari satu atau lebih statement atau library function yang sudah tersedia.

• Pada contoh program di atas digunakan perintah printf adalah fungsi pustaka yang dipergunakan untuk menampilkan hasil

1. Komentar program
Komentar digunakan untuk memberi informasi/dokumentasi tentang program atau code yang ada. Dalam C atau C++ setiap tulisan yang diapit oleh simbol /* … */ untuk multi baris atau setiap baris yang dimulai dengan simbol // dianggap komentar dan tidak akan dikompilasi oleh compiler.

Contoh komentar :
Komentar multibaris
/* ini adalah contoh
komentar multibaris */
Komentar 1 baris
// ini adalah contoh
// komentar 1 baris

2. Praprosesor #include
#include merupakan salah satu jenis praposesor yang dipakai untuk membaca file yang dinamakan file header yaitu file yang berisi deklarasi fungsi dan definisi konstanta.

a. File header
- File header (file dengan ekstensi .h) adalah file yang berisi deklarasi, baik berupa konstanta, fungsi kelas, namespace, dan sebagainya. Ingat! Hanya berisi deklarasi.

- Apabila berupa fungsi, yang tertulis dalam file header hanya prototipenya saja.

- File ini tidak berisi implementasi atau kode-kode program dari fungsi atau kelas yang didefinisikan di dalamnya.

- Bagian implementasi biasanya dalam bentuk kode objek, yaitu file yang sudah dikompilasi sebelumnya. File-file inilah yang disebut Standard Runtime Libraby, dan akan dipanggil secara otomatis pada tahap linking.

- Dalam sistem operasi Windows, biasanya library tersebut disimpan dalam file .lib atau .dll; sedangkan di Linux, biasanya library akan disimpan dalam file .a atau .so.

b. File header C++
- C++ menyediakan banyak file header untuk berbagai macam keperluan. Perlu diingat bahwa sebagian file header dalam C++ standar sudah tidak memiliki ekstensi .h, misalnya <iostream>, <string>, <cstring>, cstdlib> dan sebagainya.

- Dalam C++ klasik atau tradisional, ekstensi .h wajib disertakan, misalnya <iostream.h>, <string.h> dan sebagainya. Disini file header yang digunakan adalah file header standar.

- File header harus dipanggil menggunakan directive #include.

Untuk lebih memahami kegunaan dari file header, perhatikan kembali contoh program sebelumnya (baca: Kerangka Kode Program Dalam C++). Dalam kode tersebut kita menggunakan perintah cout, padahal kita tidak pernah mendefinisikan perintah tersebut. Pertanyaannya adalah, bagaimana compiler bisa mengenali perintah cout? Jawabannya adalah karena cout telah dideklarasikan di dalam file header "iostream", lebih tepatnya lagi di dalam namespace std yang dideklarasikan pada file header "iostream". Pada saat kita menulis baris #include , kita mengatakan kepada compiler bahwa kita akan menggunakan semua bentuk deklarasi yang ada didalam file header "iostream".

- Satu hal yang perlu Anda ketahui tentang file header bahwa C++ juga akan mengenal semua file header milik bahasa C. Hanya saja, semua nama file header tersebut sudah diubah. Dalam bukunya, The C++ Programming Language, Bjarne Stroustrup (pencipta C++) menyatakan bahwa setiap file header dalam C++ yang diawali huruf 'c' adalah sama dengan file header milik bahasa C. Untuk setiap file header dengan nama <X.h> yang terdapat dalam bahasa C diubah namanya menjadi <cX> >. Sebagai contoh, file header <stdio.h>, <string.h>, dan <stdlib.h> milik bahasa C; dalam C++ akan diubah namanya menjadi <cstdio>, <cstring>, dan <cstdlib> merupakan library murni milik C++ dan tidak dikenal dalam bahasa C, misalnya <iostream>, <string>, <new>, <list> dan sebagainya.

3. Melakukan testing dan debugging
Testing merupakan proses menjalankan program secara rutin untuk menemukan kesalahan – kesalahan dalam penulisan suatu pernyataan dalam program.
Pada dev c++ untuk melakukan testing program digunakan button pada aplikasi program atau dengan Ctrl+F9
Sedangkan debugging adalah proses menemukan kesalahan-kesalahan dalam program dan kesalahan yang ditemukan kemudian diperbaiki sampai tidak muncul lagi.
Sedangkan running adalah proses untuk menjalankan program sesuai dengan fungsi yanga ada

E. Library Input/Output C dan C++

Fasilitas I/O tidak merupakan bagian dari Bahasa C dan C++, tetapi diiplementasikan sebagai suatu library dalam C atau C++.

1. Library stream
Pada bab ini akan dibahas pustaka iostream yang sering digunakan dalam pemrograman C++. Pada level paling bawah, suatu file diinterpretasikan sebagai suatu barisan atau stream dari bytes. Pada level ini konsep tipe data tidak ada. Sedangkan pada level user, suatu file terdiri dari suatu barisan data dari satu atau lebih tipe karakter karakter, nilai-nilai numerik, dan obyek-obyek kelas.
- Pustaka iostream menyediakan sejumlah operasi untuk menangani baca dan tulis tipe-tipe data baku.

- Pemrograman dapat memperluas operasi-operasi itu untuk menangani tipe tipe kelas yang dibuatnya.

- Operasi input dan output didukung oleh kelas istream (input stream ) dan kelas ostream (output stream).

- Operasi output dilakukan oleh operator leftshift atau operator insertion (<<), sedangkan

- operasi input dilakukan oleh operator rightshift atau operator extraction (>>).

- Empat objek stream tersedia bagi pengguna:
a. cin, suatu objek dari kelas istream yang dikaitkan dengan standard-input.
b. cout, suatu objek dari kelas ostream yang dikaitkan dengan standar output.
c. cerr, suatu objek dari kelas ostream yang dikaitkan dengan standard-error dengan unbuffered output
d. clog, suatu objek dari kelas ostream yang dikaitkan dengan standard-error dengan buffered output.

2. Library stdio
a. Operasi output standar
Dipakai untuk menampilkan nilai data ke peralatan output sebagai data keluaran. Beberapa fungsi (standard library function) yang terdapat pada bahasa pemrograman C dapat
*menampilkan data tidak terformat Operasi Output:
- Fungsi putchar
Fungsi: Menampilkan karakter ke layar monitor pada cursor, kemudian (setelah karakter tampil) cursor bergerak ke posisi berikutnya. Mengembalikan EOF jika error, atau mengembalikan karakter yang ditampilkan jika sukses
Fungsi putchar()
• Header file: stdio.h
• Contoh:
char ch=’A’;
putchar(ch);

- Fungsi putch
Seperti putchar(ch) untuk menampilkan karakter ASCII dari ch di layar monitor. Fungsi putch() Mengembalikan EOF jika error, atau mengembalikan karakter yang ditampilkan jika sukses.
• Header file: conio.h
• Tersedia dalam Borland C++ library, tetapi tidak dalam ANSI C dan ANSI C++
Contoh:
char ch=’b’;
putch(ch);

- Fungsi puts()
Fungsi: Menampilkan string ke layar monitor dan memindahkan kursor ke baris baru.
Header file: stdio.h
Mengembalikan nilai non-negative jika sukses atau EOF Fungsi puts() jika ada error.
Contoh:
puts(”Selamat Datang”);
puts(”Di Bahasa Pemrograman C”);
*menampilkan data terformat

- Fungsi printf( )
merupakan fungsi keluaran (Output) yang paling umum digunakan untuk menampilkan informasi kelayar.
Bentuk Umum Penulisan
printf("string-kontrol", argumen-1, argumen-2)

Keterangan
String-Kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta penentu format. Penentu format dipakai untuk memberi tahu kompiler mengenai jenis data yang dipakai dan akan ditampilkan. Argumen ini dapat berupa variabel, konstanta dan ungkapan.
b. Operasi input standar
- Fungsi scanf()
Scanf merupakan fungsi masukan yang asli berasal dari bahasa C. Fungsi ini hampir mirip dengan Cin. Salah satu perbedaanya adalah bahwa scanf menggunakan file header <stdio>. Fungsi scanf( ) digunakan untuk memasukkan berbagai jenis data. Bentuk Umum dari fungsi ini adalah:
Bentuk Umum Penulisan
scanf("penentu format", &nama-variabel);
simbol & merupakan pointer yang digunakan untuk menunjuk kealamat variabel memori yang dituju.


- Fungsi gets()
Fungsi input khusus untuk string.
- Fungsi getch(), getche(), getchar()
Fungsi input khusus untuk karakter.
getch() = input 1 karakter dan tidak ditampilkan
getche() = input 1 karakter, ditampilkan & tidak perlu Enter
getchar() = input 1 karakter, ditampilkan dan perlu Enter

F. Tipe Data Dasar

Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data. Tipe data menentukan apakah sebuah nilai dapat dimiliki sebuah data atau tidak, serta operasi apa yang dapat dilakukan pada data tersebut. Contoh tipe data dalam dunia nyata adalah bilangan bulat. Jika sebuah data, misalnya umur, harus berupa bilangan bulat maka dapat dipastikan bahwa 25, 13, 7 dapat menjadi nilai umur, sedangkan 7.5, 19.655 bukan merupakan contoh dari nilai umur.

Tipe data dasar adalah tipe data yang dapat langsung digunakan. Secara umum terdapat 2 tipe data dasar, yaitu numerik dan kategorik. Tipe data numerik terdiri atas angka/ kumpulan angka serta dapat mengalami operasi perhitungan, sedangkan tipe data kategorik dapat berupa angka maupun huruf namun tidak dapat mengalami operasi perhitungan. Berikut merupakan contoh beberapa tipe data dasar :

1. Integer/ bilangan bulat
Integer adalah tipe data dasar berupa bilangan yang tidak mengandung pecahan desimal. Tipe data ini juga memiliki urutan, sehingga dapat dibandingkan satu dengan lainnya.
Contoh integer: 2 5 -10 135 2008
Secara teoritis, tipe data integer tidak memiliki batasan, yaitu dari minus tak hingga hingga plus tak hingga. Namun dalam pemrograman yang menggunakan bahasa pemprograman C++, secara umum dikenal beberap macam tipe data integer, yaitu:

2. Real/ bilangan riil
Real adalah tipe data dasar berupa bilangan yang memiliki pecahan desimal. Dalam pemrograman, nilai dengan tipe data ini harus ditulis dengan sebuah titik sebagai pemisah bilangan utuh dan bilangan pecahannya. Tipe data ini digunakan untuk perhitungan yang melibatkan bilangan pecahan, seperti perhitungan kosinus, akar persamaan, dan sebagainya. Tipe data ini juga memiliki urutan, sehingga dapat dibandingkan satu dengan lainnya.
Contoh real: .5 0.17 -3.465 92.0 4.3000+E9
Secara teoritis, tipe data real juga tidak memiliki batasan, yaitu dari minus tak hingga hingga plus tak hingga. Namun dalam pemrograman, secara umum dikenal beberapa macam tipe data real, yaitu:
Nilai pada tabel diatas berbeda dengan nilai yang ada pada tabel tipe data integer, pada tabel diatas nilai untuk tipe data merupakan tingkat ketelitian untuk masing-masing tipe data, bukan berdasarkan rentang nilai.

3. Char/ Karakter
Char adalah tipe data dasar yang terdiri atas satu buah angka, huruf, tanda baca atau karakter khusus. Untuk menyimpan sebuah karakter, diperlukan 1 byte atau 8 bit tempat didalam memori. Dalam sebuah program, penulisan tipe data char diawali dan diakhiri dengan tanda kutip ganda. Selain itu, terdapat sebuah karakter kosong yang disebut dengan null atau nil dan dituliskan sebagai “ ”.
Contoh char: “5” “A” “?” “+” “$”
Perhatikan bahwa 5 adalah integer sedangkan “5” adalah char.

4. String
String adalah tipe data dasar yang berupa kumpulan karakter dengan panjang tertentu. Meskipun berupa kumpulan karakter, karena tipe data string sering digunakan dalam pemrograman, string dianggap sebagai tipe data dasar. Untuk penyimpanan string didalam memori, dibutuhkan 1 byte untuk tiap karakternya. Serupa dengan penulisan karakter, penulisan sebuah string juga harus diawali dan diakhiri dengan tanda petik ganda. String juga mengenal null yang dituliskan dengan “”.
Contoh string:
- “ABC3456”
- “Lucu”
- “30202001”
- “z”
Perhatikan bahwa sebuah karakter tunggal (“z”) juga merupakan string.

5. Boolean/ bilangan logika
Sebuah data boolean memiliki tepat dua buah kemungkinan nilai, direpresentasikan sebagai Benar dan Salah, atau True dan False, atau dapat juga dilambangkan dengan 1 dan 0. Tipe data ini dapat digunakan untuk pemilihan dengan kondisi-kondisi tertentu, dimana program harus memilih aksi apa yang akan dijalankan dengan parameter tertentu.
Tipe data ini paling sering digunakan untuk range yang memili dua buah
nilai: lulus - tidak lulus, member – bukan member,

6. Variabel
Variabel atau peubah adalah obyek yang nilainya dapat berubah-ubah dalam sebuah program. Pada saat sebuah variabel dideklarasikan, program ‘memesan’ tempat dengan ukuran tertentu (sesuai tipe datanya) pada memori untuk menyimpan nilai dari variabel tersebut. Pemrogram dapat memberikan nama pada sebuah variabel untuk mempermudah pemanggilan variabel tersebut di dalam program. Pada saat mendeklarasikan sebuah variabel, pemrogram harus menyebutkan nama variabel dan tipe data dari variabel tersebut.


F. Pembuatan program

Dalam bentuk flowchart, deklarasi variabel digambarkan sebagai sebuah proses. Misalnya sebagai berikut:

Contoh deklarasi variabel dalam psedeucode :
1. KAMUS DATA {awal deklarasi variabel}
2. x : integer
3. nama: string
4. TB : real
5. jenisKelamin : char
6. status : boolean

Sebelum kita menuliskan beberapa program dalam bahasa C++, ada baiknya kita mengenal terlebih dahulu struktur dan format penulisan program dalam bahasa C++.
// Contoh Program C++
#include <stdio.h>
/* Program Utama */
main() {
printf("Selamat Datang");
return 0;
}


Sedangkan pada baris ke-7 (return 0) merupakan nilai kembali dari fungsi utama yaitu nilainya adalah 0. Perlu diperhatikan bahwa setiap instruksi pada perogram harus diakhiri dengan tanda semicolon (;). Untuk menuliskan variabel, kita dapat menuliskannya pada bagian isi
program. Contoh penulisan variabelnya adalah :
#include <stdio.h>

main () {
int x;
string nama;
float BB;
char jKelamin;
bool status;
 ...
}

- Pembuatan variable
Secara teori, pemrogram dapat memberikan nama apapun pada sebuah variabel karena penamaan variabel bertujuan untuk memudahkan pemanggilan kembali. Namun, ada beberapa panduan yang biasa diacu pemrogram dalam penamaan variabel, antara lain:

a. Huruf pertama pada nama variabel menunjukkan tipe data dari variabel. Contoh: diawali dengan ‘c’ untuk variabel char, ‘i’ untuk integer, ‘s’ untuk string, dan seterusnya. Panduan penamaan ini disebut dengan Charles Simyoni Hungarion Notation.

b. Nama variabel harus cukup jelas menunjukkan tujuan penggunaan variabel tersebut. Contoh: sNama adalah variabel string untuk menyimpan nama, cJenisKelamin adalah variabel char untuk menyimpan jenis kelamin, bStatus adalah variabel boolean untuk menyimpan status.

c. Nama variabel tidak boleh mengandung spasi kosong atau karakter khusus ! @ # $ % ^ & * ( ) { } [ ] ’ ” ; : < > , . / ? | dan \. Beberapa pemrogram menggunakan ‘_’ untuk memisahkan kata di nama variabel. Contoh: cJenis_kelamin, sNama_orang_tua, iNilai_akhir

d. Cara lain untuk memisahkan kata dalam nama variabel adalah dengan memberikan huruf besar di awal tiap kata. Contoh: cJenisKelamin, sNamaOrangTua, iNilaiAkhir Setelah sebuah variabel dideklarasikan, variabel dapat menyimpan nilai. Pengisian nilai ke dalam sebuah variabel dalam sebuah program dapat dilakukan dengan 2 cara, yaitu:
Secara langsung
Contoh: - cJenisKelamin = ‘P’ - sNamaOrangTua = ‘Jeremy Thomas’ - iNilaiAkhir = 99
Dengan inputan
Contoh:
- Input (cJenisKelamin)
- Input (sNamaOrangTua)
- Input (iNilaiAkhir)

- Konstanta
Pada variabel, nilai yang disimpan dapat berubah-ubah selama program dijalankan. Sedangkan pada pada konstanta, nilai yang disimpan tetap dan tidak dapat diubah sejak dideklarasikan hingga program berakhir.. Setelah sebuah konstanta dideklarasikan, konstanta dapat digunakan dalam program dan nilainya selalu tetap. Deklarasi konstanta dalam flowchart digambarkan sebagai sebuah proses. Misalnya:
iMaks = 100
fPi = 3.14
sSapa = ‘Hello’

Cara penulisan konstanta didalam program, di tulis dengan diawali dengan tanda crash (#) kemudian diikuti dengan define, selanjutnya nama konstantanya dan selanjutnya nilainya dan ditulis diluar program utama setelah pendeklarasian librari namespace. Contoh penulisannya adalah sebagai berikut :
#include <stdio.h>
#define iMaxs 100
#define fPi 3.14159
#define sSapa ‘Hello’
#define newLine ‘\n’
main() {
...
}

Related Posts

Previous
Next Post »