You are on page 1of 18

I Kadek Dwi Sucipta

BAHAN AJAR

X
PEMROGRAM
AN DASAR
Algoritma Pemrograman
Tipe Data

0
1

BAHAN AJAR

PEMROGRAMAN DASAR X
A. KOMPETENSI DASAR
1. Memahami penggunaan data dalam algoritma dan konsep algoritma pemrograman
2. Menggunakan algoritma pemrograman untuk memecahkan permasalahan
B. INDIKATOR
1. Menganalisis konsep algoritma, struktur algoritma dan algoritma menggunaan
bahasa natural, pseudocode dan flowchart.
2. Mengumpulkan dan menganalisis contoh-contoh algoritma pada bahasa
pemrogrmaan
3. Menganalisis tipe data, variabel dan operator
4. Mengimplementasikan tipe data, variabel dan operator pada algoritma dengan
pseudocode dan flowchart untuk memecahkan permasalahan
5. Memecahkan permasalahan sehari-hari dengan algoritma bahasa natural,
pseudocode dan flowchart
C. TUJUAN
1. Siswa dapat menganalisis konsep algoritma, struktur algoritma dan algoritma
menggunaan bahasa natural, pseudocode dan flowchart.
2. Siswa dapat mengumpulkan dan menganalisis contoh-contoh algoritma.
3. Siswa dapat menganalisis tipe data, variabel dan operator.
4. Siswa dapat mengimplementasikan tipe data, variabel, operator untuk membuat
algoritma.
5. Siswa dapat memecahkan permasalahan sehari-hari dengan algoritma bahasa
natural.
6. Siswa dapat memecahkan permasalahan sehari-hari dengan menerapkan flowchart
algoritma pemrograman.
D. WAKTU
Alokasi Waktu : 16 jam pertemuan
E. MATERI
1. ALGORITMA PEMROGRAMAN
1.1. Sejarah Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai
sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses
menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung
menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini
namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika
menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang
terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. AlKhuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis
buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya Buku
pemugaran dan pengurangan (The book of restoration and reduction). Dari

judul buku itu kita juga memperoleh akar kata Aljabar (Algebra). Perubahan
kata dari algorism menjadi algorithm muncul karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran sm berubah menjadi thm.
Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka
lambat laun kata algorithm berangsur-angsur dipakai sebagai metode
perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya.
Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
1.2. Definisi Algoritma
Terdapat beberapa definisi mengenai kata Algoritma :
1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis (Rinaldi Munir :2002).
2. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan
masalah (KBBI :1988).
3. Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara
jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan
suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut
pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik
(Team Gunadarma :1988).
1.3. Konsep Dasar Algoritma
1.3.1. Ciri Algoritma
Menurut Donald E. Knuth, algoritma mempunyai lima ciri penring :
1. Finiteness (Keterbatasan)
Algoritma harus berakhir setelah melakukan sejumlah langkah proses
2. Definiteness (Kepastian)
Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak
menimbulkan makna ganda
3. Input (Masukan)
Sebuah algoritma memiliki nol atau lebih masukan (input) yang diberikan
kepada algoritma sebelum dijalankan
4. Output (Keluaran)
Setiap algoritma memberikan satu atau beberapa hasil keluaran
5. Effectiveness (Efektivitas)
Langkah-langkah algoritma dikerjakan dalam waktu yang wajar
1.3.2.Syarat Algoritma
Beberapa persyaratan untuk menjadi algoritma yang baik adalah:
a. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari
proses harus berakurasi tinggi dan benar.
b. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat
mungkin dan frekuensi kalkulasi yang sependek mungkin.
c. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu
kasus saja, tapi juga untuk kasus lain yang lebih general.
d. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
e. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami
algoritma Anda. Susah dimengertinya suatu program akan membuat susah
di-maintenance (kelola).

f. Portabilitas yang tinggi (portability). Bisa dengan mudah


diimplementasikan di berbagai platform komputer.
g. Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama
dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus
dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena
pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh: Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
h. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus
yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya
berbeda.
i. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh
pemroses yang akan menjalankannya.
Contoh: Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal: Hitung akar 2 sampai lima digit di belakang koma.
j. Harus terminate. Jalannya algoritma harus ada kriteria berhenti.
Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka
pasti terminate?
k. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan
diikuti dengan seksama maka dihasilkan output yang diinginkan.
1.3.3. Teks Algoritma
Pada dasarnya, teks algoritma disusun atas tiga bagian (blok) : bagian
judul (header) agoritma, bagian deklarasi, dan bagian deskripsi. Setiap bagian
dapat diberi komentar untuk memperjelas maksud teks yang dituliskan.
Komentar biasanya ditulis menggunakan kurung kurawal.
1. Judul Algoritma
Judul algoritma adalah bagian yang terdiri atas nama algoritma dan
penjelasan (spesifikasi) tentang algoritma tersebut. Nama algoritma
sebaiknya singkat, namun cukup menggambarkan apa yang akan dilakukan
oleh algoritma tersebut. Di bawah nama algoritma disertai dengan
penjelasan singkat (intisari) tentang apa yang dilakukan oleh algoritma.
Penjelasan di bawah nama algoritma sering dinamakan juga spesifikasi
algoritma. Algoritma harus ditulis sesuai dengan spesifikasi yang
didefinisikan.
Contoh :
Algoritma Luas_Lingkaran

{ Menghitung luas lingkaran untuk ukuran jari-jari tertentu.


Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya, lalu
cetak luasnya ke piranti keluaran }
2. Deklarasi
Di dalam algoritma, deklarasi nama adalah bagian untuk mendefinisikan
semua nama yang dipakai di dalam algoritma. Nama tersebut dapat berupa
nama terapan, nama peubah, nama tipe, nama prosedur dan nama fungsi.

Contoh :
Deklarasi :
Panjang = integer {tipe data bilangan bulat}
Lebar = integer
Luas = real {tipe data bilangan pecahan}

3. Deskripsi
Deskripsi adalah bagian terpenting dari struktur algoritma. Bagian ini berisi
uraian langkah-langkah penyelesaian masalah. Langkah-langkah ini
dituliskan dengan notasi yang lazim dalam penulisan algoritma. Setiap
langkah algoritma dibaca dari langkah paling atas hingga langkah paling
bawah. Urutan penulisan menentukan urutan pelaksanaan perintah.
Contoh :
Deskripsi :
Read (nama)
Read (NIM)
Read (nilai)
If (nilai < 45) then
Grade = E
Else if (nilai >= 45) and (nilai < 60) then
Grade = D
Else if (nilai >= 60) and (nilai < 70) then
Grade = C
Else if (nilai >= 70) and (nilai < 80) then
Grade = B
Else
Grade = A
Write (nama)
Write (NIM)
Write (nilai)

1.4. Struktur Dasar Algoritma


Algoritma berisi langkah-langkah penyelesaian suatu masalah.
Langkahlangkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan
pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu
algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar,
yaitu :
1) Runtunan (sequence)
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan
secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi
dilaksanakan setelah instruksi sebelumnya selesai dikerjakan.
2) Pemilihan (selection)
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Tiap
tiap instruksi akan diseleksi oleh kondisi, apabila instruksi memenuhi kondisi
yang diminta, maka instruksi akan dijalankan.
3) Pengulangan (repetition)
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan
pekerjaan yang sama berulang kali tanpa mengenal lelah. Kita tidak perlu
menulis instruksi yang sama berulang kali, tetapi cukup melakukan
pengulangan dengan instruksi yang tersedia.
1.5. Penulisan Algoritma

Algoritma dapat ditulis dengan cara berikut:


1. Menggunakan bahasa natural
2. Menggunakan kode semu (pseudo-code)
Teknik penulisan yang mendekati bahasa pemrograman tertentu
3. Menggunakan diagram alir (flow chart)
Teknik penyajian dengan menggunakan symbol-simbol.
Dari ketiga cara diatas untuk mempermudah translasi teks algoritma kedalam
teks program sebaiknya ditulis dalam bentuk notasi yang mendekati bahasa
pemrograman (pseudo-code).
Di bawah ini dikemukakan beberapa notasi yang digunakan dalam
penulisan algoritma, antara lain :
1) Notasi yang dinyatakan dalam bahasa natural/ kalimat deskriptif
Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang
jelas. Notasi ini cocok untuk algoritma yang pendek, namun untuk masalah yang
algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian notasi
algoritma ke notasi bahasa pemrograman cenderung relatif sukar.
Contoh :
Algoritma Bilangan_Maksimum
Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara
ketiga bilangan tersebut.
Deskripsi :
(1) baca bilangan 1
(2) baca bilangan 2
(3) bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika
kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan
sebut bilangan tersebut MAX
(4) baca bilangan 3
(5) bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika
keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX.
(6) keluarkan sebagai output MAX
2) Notasi yang dinyatakan dengan pseudo code
Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat
tinggi. Keuntungan menggunakan notasi pseudo code adalah kemudahan
mengkonversinya lebih tepat yang disebut mentranslasi ke notasi bahasa
pemrograman, karena terdapat korespondensi antara setiap pseudo code dengan
notasi bahasa pemrograman.
Contoh :
Algoritma Bilangan_Maksimum
{ Dibaca tiga buah bilangan dari piranti masukan. Carilah bilangan bulat maksimum
diantara ketiga bilangan tersebut }
Deklarasi :
Bil1,Bil2,Bil3 : integer {bilangan yang dicari
maksimumnya}
MAX : integer {variabel bantu}

Deskripsi :
Read (Bil1,Bil2)
If Bil1 >= Bil 2 then
Bil1 = MAX
Else Bil2 = MAX
Read (Bil3)
If Bil3 >= MAX then
Bil3 = MAX
Write (MAX)
3.2. TRANSLASI TEKS ALGORITMA KE TEKS BAHASA
PEMROGRAMAN
Program Menghitung_Nilai_Rata_Rata
{Menghitung nilai rata-rata sekumpulan bilangan bulat dari piranti
Masukan}
(* DEKLARASI*)
Var
x : integer ; {variabel bilangan bulat}
N : integer ; {banyaknya bilangan bulat, N> 0}
k : integer ; {Pencacah jumlah pengulangan}
jumlah : integer ;
rata: real
(* DESKRIPSI *)
begin
write( Jumlah data); readln (N); {baca banyaknya data }
k := 1;
{mulai dari data pertama}
jumlah := 0;
while k <= N do
begin
write(x = ?}; readln X;
jumlah := jumlah + X;
k := k + 1;
end;
rata := jumlah / N;
writeln (Rata-rata = , rata);
end.

3) Notasi yang dinyatakan dalam flow chart


Sama halnya dengan notasi deskriptif, notasi ini cocok untuk algoritma
yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas
tidak efektif. Selain itu, pengkonversian notasi algoritma ke notasi bahasa
pemrograman cenderung relatif sukar.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu:

1. Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang


menggambarkan urutan prosedur dan proses suatu file dalam suatu media
menjadi file di dalam media lain, dalam suatu sistem pengolahan data.
Beberapa contoh Flowchart sistem:

2.

Flowchart program yaitu bagan dengan simbol-simbol tertentu yang


menggambarkan urutan proses dan hubungan antar proses secara mendetail di
dalam suatu program.

Kaidah-Kaidah Umum Pembuatan Flowchart Program


Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang
bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam
menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan
dapat bervariasi antara satu pemrogram dengan yang lainnya.
Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama,
yaitu:
Input,
Proses pengolahan dan
Output

Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum
menangani pemecahan persoalan.
READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan
input.
PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai
dengan data yang dibaca.
WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun
ada beberapa anjuran:

Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah
untuk memperjelas.
Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia
pemrograman:

Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus
sederhana.
Kasus:
Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas
persegi panjang.
Solusi:
Perumusan untuk mencari luas persegi panjang adalah:
L = p. l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah
lebar persegi.

Keterangan 1:
1. Simbol pertama menunjukkan dimulainya sebuah program.
2. Simbol kedua menunjukkan bahwa input data dari p dan l.
3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan
perumusan L = p. l
4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda
End.
Contoh : Algoritma Bilangan_Maksimum dalam flow char

1.6. Tipe Data, Variabel dan Identifier


Program adalah kumpulan instruksi yang disusun sedemikian rupa
sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu
persoalan. Instruksi-instruksi yang digunakan dalam pemrograman mengacu pada
suatu bahasa pemrograman tertentu, pada buku ini menggunakan bahasa
pemrograman C++, sehingga penulisan program pada buku ini mengikuti tata
bahasa C++. Segala sesuatu yang diproses oleh program adalah data. Dalam hal
ini data adalah elemen-elemen yang digunakan untuk menjelaskan segala sesuatu
yang mempunyai besaran (ukuran/ nilai), seperti misalnya umur besarannya bisa
berupa biangan desimal 42.5 (maksudnya 42 tahun), golongan seorang
karyawan besarannya bisa berupa sebuah karakter A (maksudnya goongan A) dan
sebagainya. Bahasa C++ menyimpan besaran-besaran tersebut di memori utama
untuk dikelola oleh program, sehingga perlu dilakukan pengaturan pemakaian
memori, oleh karena itu dalam bahasa pemrograman selalu terdapat istilah-istilah
yang bernama Tipe Data, Variabel dan Konstanta. Identifier (pengenal) adalah
suatu nama yang digunakan program untuk merujuk ke suatu lokasi memori

tertentu agar nilai pada lokasi tersebut dapat diakses. Alamat lokasi memori
sebenarnya berupa angkaangka heksadesimal, namun pada bahasa pemrograman
setingkat C++ (middle level programming language) dan di atasnya, telah
mengubahnya dalam bentuk identifier (pengenal) yaitu berupa suatu huruf atau
kata (label) sehingga kita tidak perlu mengetahu alamat yang sesungguhnya dan
dengan identifier (label) akan lebih mudah untuk diingat.

1.6.1. Tipe Data Bahasa C++


Data yang dapat dikelola oleh program bisa bermacam-macam, seperti
misalnya bilangan bulat (integer), bilangan dengan desimal (floating point), huruf
(character), dan sebagainya. Oleh sebab itu ketika kita akan memakai suatu lokasi
memori tertentu untuk menyimpan nilai diperlukan 2 hal, yaitu identifier sebagai
pengenal (label) lokasi memori yang digunakan dan tipe data, yaitu besaran yang
menentukan ukuran memori yang dialokasikan. Sekali suatu identifier sudah
dialokasikan dengan tipe data tertentu besarnya ruang yang digunakan tidak bisa
diubah. Bahasa C++ mengenal tipe-tipe data berikut ini :
Tipe Data
bool
unsigned short int
short int
unsigned long int
long int
int (16 bit)
int (32 bit)
unsigned int (16 bit)
unsigned int (32 bit)
char
float
double

Ukuran
1 byte
2 bytes
2 bytes
4 bytes
4 bytes
2 bytes
4 bytes
2 bytes
4 bytes
1 byte
4 bytes
8 bytes

Jangkauan Nilai Yang dapat Ditampung


True or false
0 to 65,535
32,768 to 32,767
0 to 4,294,967,295
2,147,483,648 to 2,147,483,647
32,768 to 32,767
2,147,483,648 to 2,147,483,647
0 to 65,535
0 to 4,294,967,295
256 character values
1.2e38 to 3.4e38
2.2e308 to 1.8e308

1.6.2. Variabel dan Konstanta


Nilai yang tersimpan di memori dan dikenal melalui identifier tersebut
terdiri dari variabel dan konstanta. Perbedaan diantara keduanya adalah bahwa
variabel (sesuai dengan namanya) nilainya dapat diubah-ubah pada saat program
dieksekusi, sedangkan konstanta nilainya tidak dapat diubah (konstan = tetap).
Sebelum suatu variabel atau konstanta dapat digunakan, tempat pada
memori harus dipesan terlebih dahulu, mekanisme ini dinamalan deklarasi.
Deklarasi dilakukan dengan cara menuliskan tipe data (ukuran memori yang
dibutuhkan) dan diikuti dengan nama pengenal (nama variabel), jika dikehendaki
bisa juga suatu variabel langsung diinisialisasi dengan suatu nilai. Pengenal
(identifier) bisa terdiri dari sebuah huruf atau kombinasi antara huruf dengan
angka dengan syarat :
Harus diawali dengan huruf
Tidak boleh memakai karakter khusus kecuali $ dan garis bawah (_)
Tidak boleh sama dengan kata kunci yang digunakan pada C++
Bersifat case sensitif (huruf besar dan kecil dibedakan)

Walaupun demikian, sebaiknya memberikan nama pengenal variabel


sesuai dengan isi dari variabel tersebut, sebab walaupun nama variabel c21i8k
untuk menyimpan nama mahasiswa adalah valid (diperbolehkan), namun akan
lebih mudah dimengerti jika identifier yang dipilih adalah nama. Konstanta
mirip dengan variabel, hanya saja nilainya konstan, tidak dapat diubah-ubah.
Untuk dapat membuat konstanta diperlukan inisialisasi ketika konstanta dibuat
dan setelah itu nilainya tidak dapat diubah. C++ mempunyai 2 macam
konstanta, yaitu konstanta literal dan konstanta simbolik. Berikut ini
adalah contoh deklarasi variabel:
int harga;

Yang dimaksud dengan konstanta literal adalah suatu nilai yang ditulis
pada kode program. Sebagai contoh misalnya :
int usiaku = 42;

Nilai 42 tidak dapat menerima nilai lain dan nilai tersebut bersifat tetap.
Perhatikan dalam hal ini identifier usiaku adalah variabel (bukan konstanta),
yang dinamakan konstanta literal adalah nilai 42 tersebut.
Konstanta simbolik adalah konstanta yang direpresentasikan dengan suatu
nama, sama seperti variabel, namun berbeda dengan variabel setelah suatu
konstanta diinisialisasi dengan suatu nilai maka nilainya tidak dapat diubah. Ada
2 cara untuk mendeklarasikan konstanta simbolik, yaitu dengan menggunakan
preprocessor directive #define dan yang kedua adalah dengan memakai kata kunci
const. Berikut ini contoh mendeklarasikan dan menginisialisasi konstanta :
#define kapasitas 15

Perhatikan bahwa kapasitas tidak mempunyai tipe data tertentu (int, char
dsb.). Preprosessor akan melakukan substitusi berupa teks, setiap ada akses
terhadap kata kapasitas, akan digantikan dengan teks 15. Karena preprosesor
bekerja sebelum kompiler, kompiler tidak mengenal konstanta kapasitas, yang
dikenal hanyalah bilangan 15.
TIPS

Walaupun dengan memakai preprocessor directive #define tampak


mudah, namun sebaiknya cara ini tidak digunakan, karena sudah dinyatakan
usang pada standard C++ .
Cara yang kedua untuk menginisialisasi sebuah konstanta adalah dengan
memakai kata kunci const seperti berikut :
const int usiaku = 42;

Contoh diatas adalah mendeklarasikan konstanta simbolik bernama


usiaku bertipe int dan diinisialisasi dengan nilai 42. Setelah baris ini simbol
(identifier) bernama usiaku tidak dapat diubah-ubah nilainya. Keuntungan
pembuatan konstanta dengan cara ini adalah lebih mudah dipelihara dan
mencegah adanya kesalahan dan yang paling penting adalah bahwa konstanta ini

mempunyai tipe data dan kompiler dapat mengharuskan konstanta ini


diperlakukan sebagai tipe data tersebut.

Statement
Dalam bahasa C++, sebuah statement mengontrol urutan pengerjaan
eksekusi, mengevaluasi ekspresi atau tidak mengejakan apapun (null statement).
Semua statement C++ diakhiri dengan titik koma (;), sebagai contoh misalnya :
x = a + b;

Pernyataan tersebut bukanlah suatu pernyataan persamaan aljabar dalam


matematika yang artinya x sama dengan a + b, melainkan memberi nilai x dengan
hasil penjumlahan a dengan b. Pada statement ini terjadi 2 urutan pengerjaan,
yaitu pertama menambahkan a dengan b, kemudian yang kedua memberikan
hasil perhitungan tersebut ke variabel x dengan operator pengerjaan (=).
Walaupun pada pernyataan tersebut terdapat 2 pekerjaan, namun merupakan
sebuah statement dan oleh karena itu diakhiri hanya dengan sebuah titik koma (;)
saja. Hasil penjumlahan a dengan b ini disebut ekspresi, sedangkan sama dengan
(=) dan plus (+) dinamakan operator yang akan dibahas berikut ini.
CATATAN

Operator pengerjaan = akan mengambil nilai apapun yang ada disebelah


kanannya kenudian memberikannya kepada apapun yang berada di sebelah
kirinya. C++ mengenal juga operator pembanding == yang mempunyai arti
berbeda dengan operator sama dengan =, akan dibahas lebih detail pada sub
bab berikut ini.

Operator dan Ekspresi


Operator adalah suatu simbol yang digunakan untuk melakukan suatu
operasi. Operator mempunyai beberapa kategori, antara lain : Aritmatika,
Pengerjaan, Hubungan dan Logika. Operator Aritmatika adalah operator yang
digunakan untuk melakukan operasi aritmatika seperti misalnya penjumlahan
pengurangan, perkalian dan pembagian. Simbol untuk operator aritmatika ini
adalah : +, -, *, / dan %.
Berikut ini adalah operator-operator yang dikenal pada bahasa pemrograman C+
+:

Ekspresi adalah suatu peryataan yang menghasilkan suatu nilai, bisa


berasal dari sebuah variabel maupun kumpulan variabel-variabel yang
dioperasikan dengan suatu operator, jadi hasil akhir dari suatu ekspresi adalah
suatu nilai yang mempunyai besaran dan tipe data tertentu. Pernyataan berikut ini
yang disebut ekspresi adalah 15, 12 dan panjang * lebar yang menghasilkan
nilai 15, 12 dan 180:
panjang = 15;
lebar = 12;
luas = panjang * lebar ;

Penjelasan :
-

Pada baris pertama dan kedua di atas digunakan hanya sebuah operator =
(yaitu jenjang ke 14), arah proses dari kanan ke kiri, sehingga yang dilakukan :
Ekspresi : 15, diberikan kepada variabel panjang (dibaca dari kanan ke kiri).
Ekspresi : 12, diberikan kepada variabel lebar (dibaca dari kanan ke kiri).

Pada baris ketiga terdapat 2 operator, yaitu operator = (jenjang ke 14) dan
*operator = (yaitu jenjang ke 3). Jenjang menunjukkan operator yang akan
dikerjakan terlebih dahulu, jika dalam sebuah ungkapan terdapat lebih dari satu
jenis operator. Jenjang nomor 1 adalah jenjang yang paling tinggi, maka pada
pernyataan di atas yang akan dikerjakan terlebih dahulu adalah orator * baru
kemudian operator =, sehingga yang dilakukan:
Ekspresi : panjang * lebar , berarti panjang dikalikan lebar (dibaca dari kiri
ke kanan), menghasilkan nilai integer 180.
Berikutnya operator = mengoperasikan hasil ekspresi tersebut, yaitu nilai
integer 180 diberikan kepada variabel luas (dibaca dari kanan ke kiri).

TIPS

Operator ( dan ) dapat dipakai untuk merubah jenjang suatu ekspresi


menjadi jenjang tertinggi, sehingga akan diproses terlebih dahulu.
Operator Unary
Operator unary adalah operator yang hanya menggunakan sebuah operand
saja, operator unary yang dipakai pada kebanyakan bahasa pemrograman adalah
operator unary minus (-). Operator unary ditulis sebelum operand, operator unary
- berbeda dengan operator aritmatika - yang membutuhkan dua operand.
Dalam bahasa C++ disediakan bermacam-macam operator unary.

Operator Unary Minus


Operator ini dipakai untuk memberi nilai minus suatu nilai numerik
(bukan pengurangan). Misalnya ungkapan : A + - B * C akan diartikan A + (-B) *
C. Operator unary - ditulis di depan operand.
Operator Unary ++ dan -Operator unary ++ dan -- merupakan operator khusus yang ada di
bahasa C. Operator ++ akan menambahkan nilai 1 ke pengenal yang
menggunakannya sedangkan operator -- akan mengurangi dengan nilai
numerik 1. Operator unary tersebut jika dituliskan sebelum operand disebut pre
increment sedangkan jika ditulis setelah operand disebut post increment.
Perhatikan perbedaannya pada contoh dibawah ini :

Operator Pengerjaan
Operator pengerjaan atau disebut assignment operator, digunakan untuk
menempatkan nilai dari suatu ekspresi ke suatu pengenal. Operator yang umum
dipakai pada bahasa pemrograman adalah operator pengerjaan =. Selain
operator pengerjaan =, bahasa C++ menyediakan beberapa operator pengerjaan
yang lain seperti tabel di bawah ini.

Tabel berikut ini memberikan contoh pemakaian operator-operator di atas,


misalnya variabel a dan b bernilai 10.

Dari contoh di atas terlihat bahwa operator pengerjaan mempunyai


jenjang yang lebih rendah dibanding operator aritmatika, sehingga operator
aritmatika dikerjakan terlebih dahulu. C++ mengijinkan operator pengerjaan
ditulis lebih dari satu kali pada sebuah statement, misalnya :
x = y = a * b;

Dalam hal ini yang dikerjakan adalah a dikalikan b terlebih dahulu


meudian hasilnya diberikan kepada variabel y dan hasil ekspresi y = a * b
diberikan kepada variabel x. sehingga misalnya a bernilai 8 dan b bernilai 7, maka
baik variabel x maupun y keduanya bernilai 15.
Operator Hubungan
Operator hubungan (relational operator) digunakan untuk menunjukkan
hubungan antara dua buah operand, hasil dari operator ini adalah True atau False.

Berikut ini contoh hasil ekspresi jika a bernilai 5, b bernilai 7 dan c bernilai a

Operator Logika
Jika operator hubungan membandingkan hubungan antara dua buah
operand, maka operator logika (logical operator) digunakan untuk
menggabungkan logika hasil dari operator-operator hubungan. Operator logika
menggabungkan dua buah nilai logika. Nilai logika adalah nilai benar (True)
atau salah (False).

Selain dua operator logika ini, operator unary ! (logika NOT) dapat
digunakan untuk operasi logika.

Contoh :
Misalnya A bernilai 5, B bernilai 7 dan C bernilai a maka ungkapan
dibawah ini mempunyai hasil akhir benar (True).
A < B || B == 7 && C > z

Hasil akhir benar (True) dari ekspresi logika tersebut didapat dari
langkah-langkah sebagai berikut:
1. Jenjang operator hubungan lebih tinggi dibandingkan dengan operator logika,
jadi operator hubungan dikerjakan terlebih dahulu.
2. Operator logika && mempunyai jenjang lebih tinggi dari operator ||,
sehingga operator && dikerjakan terlebih dahulu.
3. Bagian yang paling akhir dikerjakan adalah operator ||, sehingga hasil akhir
logika bernilai logika benar atau True.

- Selamat Belajar -

You might also like