PEMROGRAMAN BAHASA C
Dosen pengampu :
Disusun Oleh:
Kelas B
FAKULTAS TEKNIK
UNIVERSITAS MUSAMUS
2020
DAFTAR ISI
DAFTAR ISI.................................................................................................................i
BAB I TIPE DATA ..................................................................................................... 1
1.1 TEORI DASAR ................................................................................................. 1
1.2 PERCOBAAN .................................................................................................... 2
BAB II OPERATOR ................................................................................................... 8
2.1 TEORI DASAR ................................................................................................. 8
2.2 PERCOBAAN .................................................................................................... 9
BAB III PERCABANGAN ....................................................................................... 16
3.1 TEORI DASAR ............................................................................................... 16
3.2 PERCOBAAN .................................................................................................. 18
BAB IV PENGULANGAN ....................................................................................... 25
4.1 TEORI DASAR ............................................................................................... 25
4.2 PERCOBAAN .................................................................................................. 27
BAB V POINTER ..................................................................................................... 35
5.1 TEORI DASAR ............................................................................................... 35
5.2 PERCOBAAN .................................................................................................. 37
BAB VI ARRAY ........................................................................................................ 43
6.1 TEORI DASAR ............................................................................................... 43
6.2 PERCOBAAN .................................................................................................. 45
i
BAB I
TIPE DATA
1.1 TEORI DASAR
Tipe data adalah suatu kelompok yang mempunyai jenis-jenis tertentu. Dengan kata
lain, tipe data adalah sebuah cara yang digunakan untuk menentukan jenis suatu
data tersebut. Dalam bahasa pemrograman mempunyai banyak jenis-jenis tipe data
yang bisa digunakan. Namun setiap bahasa pemrograman mempunyai tipe data
yang mungkin tidak ada di bahasa pemrograman lain. Dalam bahasa pemrograman
C tipe data dibagi menjadi 5 tipe yaitu, integer (bilangan bulat), float (bilangan
pecahan), char (karakter), boolean (true atau false) dan string (kata atau kalimat).
Identifier tidak boleh berupa angka atau diawali dengan karakter yg berupa
angka
1
1.2 PERCOBAAN
A. LATIHAN 1
Source Code
#include <iostream>
using namespace std;
int main ()
{
cout << "Teks ini digunakan untuk contoh : 5 * 2 = ";
cout << 5 * 2 << endl;
return 0;
}
Output
Pembahasan
Pada program ini sintaks cout digunakan untuk menampilkan teks ke layar.
Sedangkan untuk melakukan operasi perkalian menggunakan simbol (*).
Operator bintang digunakan untuk mengalikan dua bilangan atau lebih.
2
B. LATIHAN 2
Source Code
#include <iostream>
using namespace std;
int main ()
{
char nama[20];
int nilai;
cout << "Masukkan nama anda : "; cin >> nama;
cout << "Masukkan angka : "; cin >> nilai;
// cetak nilai yang diinputkan ke layar
cout << nama << endl;
// bisa ditulis dengan cout<<nama<<'\n';
cout << nilai;
return 0;
}
Output
Pembahasan
Program ini menggunakan tipe data char dan integer memiliki variabel
secara berturut-turut yaitu nama dan nilai. Sintaks cin digunakan untuk
memasukkan suatu nilai kedalam suatu variabel.
3
C. LATIHAN 3
Source Code
#include <iostream>
using namespace std;
int main ()
{
/* COBA */
cout << "bool : " << sizeof(bool) << endl;
cout << "char : " << sizeof(char) << endl;
cout << "int : " << sizeof(int) << endl;
cout << "float : " << sizeof(float) << endl;
cout << "double : " << sizeof(double) << endl;
system("PAUSE");
return 0;
}
Output
Pembahasan
Pada program tersebut bertujuan untuk menampilkan ukuran jumlah
memori pada tipe data menggunakan sintaks sizeof . Ukuran tipe data yang
digunakan pada memori adalah byte.
4
D. LATIHAN 4
Source Code
#include <iostream>
using namespace std;
int main ()
{
int x, y;
int z;
int a = 9;
int b = a - 3;
Pembahasan
Pada program ini serupa dengan program pada latihan 1. Namun pada
program ini menggunkan banyak variabel serta menggunakan dua operator
yaitu operator tambah (+) dan kurang(-).
5
E. LATIHAN 5
Source Code
#include <iostream>
#define ABC 5
int A, B;
char X, Y;
using namespace std;
int main ()
{
int A = 2; int B = 3;
int a = 2; int b = 0; char x; char y = '\0';
const int DEF = 123;
cout << " TIPE DATA dan VARIABEL " << endl;
// tampilkan A, B, a, b, X, Y, x, y
cout << "Nilai A : "; cout << A << endl;
cout << "Nilai B : "; cout << B << endl;
cout << "Nilai a : "; cout << a << endl;
cout << "Nilai b : "; cout << b << endl;
cout << "Nilai X : "; cout << X << endl;
cout << "Nilai Y : "; cout << Y << endl;
cout << "Nilai x : "; cout << x << endl;
cout << "Nilai y : "; cout << y << endl;
// apakah A = a? B = b? X = x? dan Y = y?
6
Output
Pembahasan
Program ini menggunakan pendefinisian nilai pada header program
menggunakan #define. Di program tersebut ABC di definisikan dengan
nilai 5. Pada program ini juga menggunakan variabel global dan lokal.
Variabel global yaitu A dan B bertipe integer serta X dan Y bertipe char.
Variabel lokal yaitu a, b, C bertipe integer, x, y bertipe char. Ada juga
konstanta didefinisikan menggunakan const yaitu DEF.
7
BAB
II OPERATOR
2.1 TEORI DASAR
Operator merupakan symbol atau karakter yang biasa dilibatkan dalam program
untuk melakukan sesuatu operasi atau manipulasi misalnya seperti perhitungan,
perkalian, perbanding dll.
Jenis-jenis operator :
Operator Assignment (memasukan nilai ke variabel / konstanta)
Operator unary (operator yang hanya melibatkan sebuah operand)
Operasi Binary (operator yang melibatkan dua buah operand)
Operasi Tenary (operator yang melibatkan tiga buah operand)
Istilah-istilah dalam penggunaan operator:
Variabel
Operator assigmennt
Operand
Ekspresi
Statement
Contoh : A = 10 * 5
Keterangan :
A : variabel
6 dan 7 : operand
6*7 : ekspresi
= : Operator assignment
* : operator aritmatika
A = 6 * 7 : statement aritmatika
8
2.2 PERCOBAAN
A. LATIHAN 1
Source Code
#include <iostream>
using namespace std;
int main()
{
//mendeklarasikan konstanta dengan assignment nilai 3.14
const float pi = 3.14;
return 0;
}
Output
Pembahasan
Program diatas menggunakan konstanta pi yang bertipe float. Dan juga
menggunakan variabel karakter bertipe char, nama bertipe string,
bil_bulat bertipe integer dan nilai bertipe double.
9
B. LATIHAN 2
Source Code
#include <iostream>
using namespace std;
int main() {
int X;
float Y;
return 0;
}
Output
Pembahasan
Program ini menggunakan dua tipe data yaitu integer dan float. Serta
menggunakan operator (+) sebagai pengubah nilai ke positif dan operator
(-) untuk mengubah nilai ke negatif. Ini merupakan contoh penggunaan
operator unary.
10
C. LATIHAN 3
Source Code
#include <iostream>
using namespace std;
int main(){
int C; // Mendeklarasikan variabel C
// Melakukan pre-increment
cout<<"Nilai C awal : "<<C<<endl;
cout<<"Nilai ++C : "<<++C<<endl;
cout<<"Nilai C akhir : "<<C<<endl;
cout<<'\n';
// Melakukan post-increment
cout<<"Nilai C awal : "<<C<<endl;
cout<<"Nilai C++ : "<<C++<<endl;
cout<<"Nilai C akhir : "<<C<<endl;
return 0;
}
Output
Pembahasan
Program ini menunjukkan cara menggunakan operator increment (++).
Operator increment dapat dilakukan dengan dua cara yaitu Pre-increment
dan post-increment. Pre-increment (++C) adalah penambahan nilai ke
suatu variabel sebelum variabel tersebut diproses. Sedangkan Post-
increment (C++) adalah penambahan nilai setelah variabel diproses.
11
D. LATIHAN 4
Source Code
#include <iostream>
using namespace std;
int main(){
int C; // Mendeklarasikan variabel C
// Melakukan pre-decrement
cout<<"Nilai C awal : "<<C<<endl;
cout<<"Nilai --C : "<<--C<<endl;
cout<<"Nilai C akhir : "<<C<<endl;
cout<<'\n';
// Melakukan post-increment
cout<<"Nilai C awal : "<<C<<endl;
cout<<"Nilai C-- : "<<C--<<endl;
cout<<"Nilai C akhir : "<<C<<endl;
return 0;
}
Output
Pembahasan
Program ini menunjukkan cara menggunakan operator decrement (--).
Operator decrement dapat dilakukan dengan dua cara yaitu Pre-decrement
dan post-decrement. Pre-decrement (--C) adalah pengurangan nilai ke
suatu variabel sebelum variabel tersebut diproses. Sedangkan Post-
decrement (C--) adalah pengurangan nilai setelah variabel diproses.
12
E. LATIHAN 5
Source Code
#include <iostream>
using namespace std;
int main(){
// Medeklarasikan variabel A (diisi nilai 7)
// dan B (diisi nilai 3)
int A = 7, B = 3, C = 21;
const float pi = 3.14;
int diameter = 12;
float jari;
// Mendeklarasikan variabel sebagai penampung hasil
operasi
int hasil;
// Melakukan operasi penjumlahan dan pengurangan
hasil = (C - A) + B;
// Menampilkan hasil operasi
cout<<" "<<C<<" - "<<A<<" + "<<B<<" = "<<hasil;
return 0;
}
Output
Pembahasan
13
Program ini menggunakan operator aritmatika, yaitu operator yang
melakukan operasi, seperti penjumlahan, pengurangan, perkalian dan
pembagian dengan minimal 2 atau lebih operand. Didalam program ini juga
menggunakan operator modulus (%) atau operator yang digunakan untuk
mencari hasil sisa bagi dari suatu nilai. Contoh diatas adalah 17 % 8 maka
hasil sisa bagi operasi tersebut adalah 1.
F. LATIHAN 6
Source Code
#include <iostream>
using namespace std;
int main(){
//menampilkan hasil operator dan logika (AND)
cout<<" OPERASI OPERATOR AND "<<'\n';
cout<<" 1 && 1 = "<<(1 && 1)<<endl;
cout<<" 1 && 0 = "<<(1 && 0)<<endl;
cout<<" 0 && 0 = "<<(0 && 0)<<endl;
cout<<" 0 && 1 = "<<(0 && 1)<<endl;
//menampilkan hasil operator dan logika (OR)
cout<<" OPERASI OPERATOR OR "<<'\n';
cout<<" 1 || 1 = "<<(1 || 1)<<endl;
cout<<" 1 || 0 = "<<(1 || 0)<<endl;
cout<<" 0 || 0 = "<<(0 || 0)<<endl;
cout<<" 0 || 1 = "<<(0 || 1)<<endl;
//menampilkan hasil operator dan logika (NOT)
cout<<" OPERASI OPERATOR NOT "<<'\n';
cout<<" ! 1 = "<< !1<<endl;
cout<<" ! 0 = "<< !0<<endl;
return 0;
}
Output
14
Pembahasan
Program ini menggunakan operator binary secara khusus yaitu operator
logika. Operator logika adalah operator yang akan menghasilkan nilai
benar atau salah (true/false atau 1/0). Operator logika terdiri dari operator
AND (&&) yaitu operator yang akan menghasilkan nilai 0 jika angka
pembandingnya ada yang bernilai 0, OR (||) yaitu operator yang akan
bernilai 1 jika salah satu pembanding ada yang bernilai 1 dan NOT (!)
adalah operator yang akan mengubah nilai menjadi kebalikannya.
15
BAB III
PERCABANGAN
3.1 TEORI DASAR
Percabangan adalah pemilihan statement yang akan dieksekusi dengan kondisi
tertentu.
Dalam percabangan suatu statement akan dieksekusi hanya jika kondisi untuk
statement tersebut terpenuhi.
Contoh:
Jika IPK mahasiswa >= 3,75 maka mahasiswa tersebut akan diberikan
penghargaan oleh ketua jurusan.
Jika nilai akhir matakuliah pemograman bahasa C >= 80 maka nilai mutu
matakuliah A.
Catatan : Statement yang diberi garis bawah hanya akan dieksekusi jika
kondisi (statement) awalnya terpenuhi.
Struktur Percabangan
1. Percabangan satu kondisi : hanya melibatkan satu buah ekspresi yang akan
diperiksa.
If (kondisi) { Statement 1;
Statement 2;
…………..; }
16
Penggunaan operator dalam percabangan yaitu
Operator Logika : && (And), || (or)
Relasional : >, >= , <, <=, ==
3. Struktur percabangan dua kondisi
Terdapat sebuah statement khusus yang berguna apabila kondisi yang
didefinisikan tidak terpenuhi (bernilai salah).
Bentuk umum (sintaks) :
if (kondisi) { statement jika kondisi terpenuhi;
} else { Statement jika kondisi tidak terpenuhi; }
4. Struktur Tiga kondisi
Struktur percabangan yang memiliki beberapa kondisi. Bentuk umum
(sintaks)
if (kondisi 1) { statement jika kondisi 1 terpenuhi;
} else if (kondisi 2){ Statement jika kondisi 2 terpenuhi; }
…………… else { statement jika semua kondisi diatas tidak
terpenuhi; }
5. Kata kunci Switch
Percabangan menggunakan kata kunci : switch
Bentuk umum (sintaks) :
switch (ekspresi) { case_nilai_konstan_1 : statement ; break;
case_nilai_konstan_2 : statement ; break;
case_nilai_konstan_3 : statement ; break;
…………………
case_nilai_konstan_n : statement ; break; default statement
alternative;
……………… }
17
3.2 PERCOBAAN
A. LATIHAN 1
Source Code
#include <iostream>
using namespace std;
int main() {
int nilai;
if (nilai > 0) {
cout << "Nilai yang Anda masukkan adalah bilangan
positif";
return 0;
}
}
Output
Pembahasan
Program diatas menggunakan satu pengkondisian if yaitu jika variabel nilai
dimasukkan bilangan lebih besar daripada 0 maka akan memberitahu jika
nilai yang dimasukkan adalah bilangan positif.
18
B. LATIHAN 2
Source Code
#include <iostream>
using namespace std;
int main(){
int angka;
char huruf;
return 0;
}
Output
Pembahasan
Program diatas menggunakan dua pengkondisian if. Pada pengkondisian
pertama kondisi dicek menggunakan operator logika AND (&&) yaitu jika
19
angka lebih besar daripada 0 dan angka lebih kecil dari 10 maka jalankan
statement.
Pada pengkondisian kedua kondisi dicek menggunakan operator logika OR
(||). Maka jika salah satu dari kondisi terpenuhi maka jalankan
statementnya.
C. LATIHAN 3
Source Code
#include <iostream>
using namespace std;
int main(){
int angka;
//proses untuk input angka
cout<<"Masukkan angka : ";
cin>>angka;
//percabangan dua kondisi
//cek apakah angka yang diinputkan habis dibagi 2
if (angka % 2 == 0) {
// statemen jika kondisi terpenuhi
cout<<angka<<" Adalah Bilangan Genap";
}else{
// statemen jika kondisi tidak terpenuhi
cout<<angka<<" Adalah Bilangan Ganjil";
}
return 0;
}
Output
Pembahasan
Program diatas menggunakan dua pengkondisian if else. Pada program ini
jika kondisi awal tidak terpenuhi yaitu jika angka menghasilkan sisa bagi
0 maka program akan melaksanakan statement kedua.
20
D. LATIHAN 4
Source Code
#include <iostream>
int main(){
int angka;
//menampilkan teks untuk memasukkan bilangan
cout<<"Masukkan sebuah bilangan bulat yang akan diperiksa
: ";
cin>>angka; // membaca bilangan yang dimasukkan dari
keyboard
//cek apakah bilangan yang dimasukkan > 0
if (angka > 0) { //(kondisi 1)
// menampilkan teks ini jika kondisi 1 terpenuhi
cout<<angka<<" adalah bilangan POSITIF";
}else{
// menampilkan teks ini jika kedua kondisi tidak terpenuhi
cout<<"Anda memasukkan bilangan NOL";
}
return 0;
}
Output
Pembahasan
Program diatas menggunakan dua pengkondisian if else dan
pengkondisiannya menggunakan relasional. Maka, jika angka lebih besar
dari 0 maka kondisi 1 terpenuhi. Bila angka lebih kecil dari 0 maka kondisi
21
2 terpenuhi. Apabila kedua kondisi tidak terpenuhi maka jalankan
statement terakhir.
E. LATIHAN 5
Source Code
#include <iostream>
using namespace std;
int main() {
int nilai;
cout<<"Masukkan nilai mahasiswa : ";
cin>>nilai;
if (nilai >= 85 ) {
cout<<"Nilai anda adalah A"<<endl;
}else if (nilai < 85 && nilai >= 70 ) {
cout<<"Nilai anda adalah B"<<endl;
}else if (nilai < 70 && nilai >= 55 ) {
cout<<"Nilai anda adalah C"<<endl;
}else if (nilai < 55 && nilai >= 40 ) {
cout<<"Nilai anda adalah D"<<endl;
}else {
cout<<"Nilai anda adalah E"<<endl;
}
return 0;
}
Output
Pembahasan
Program diatas sama seperti program sebelumnya sama-sama
pengkondisiannya. Kondisi di program ini menggunakan reasional dan
operator logika AND (&&).
22
F. LATIHAN 6
Source Code
#include <iostream>
using namespace std;
int main() {
int bil;
switch(bil){
case 1 : cout<<"Hari ini ke-"<<bil<<" :
adalah MINGGU";
break;
case 2 : cout<<"Hari ini ke-"<<bil<<" :
adalah SENIN";
break;
case 3 : cout<<"Hari ini ke-"<<bil<<" :
adalah SELASA";
break;
case 4 : cout<<"Hari ini ke-"<<bil<<" :
adalah RABU";
break;
case 5 : cout<<"Hari ini ke-"<<bil<<" :
adalah KAMIS";
break;
case 6 : cout<<"Hari ini ke-"<<bil<<" :
adalah JUMAT";
break;
case 7 : cout<<"Hari ini ke-"<<bil<<" :
adalah SABTU";
break;
default : cout<<"Tidak terdapat nama hari ke-"
<<bil;
}
return 0;
}
Output
23
Pembahasan
Program diatas merupakan contoh program percabangan menggunakan
kata kunci switch. Sama halnya dengan program percabangan yang lain
jika kondisinya terpenuhi maka statementnya akan dieksekusi. Contoh jika
kita memasukan sebuah bilangan antara 1 - 7 yaitu bilangan 4 maka
program akan mengecek kondisi mana yang terpenuhi jika program sudah
menemukan kondisi case yang cocok maka statement “ Hari ke -4 : adalah
hari RABU” akan dieksekusi.
24
BAB IV
PENGULANGAN
4.1 TEORI DASAR
Pengulangan adalah proses yang mengerjakan statemen-statemen dalam program
secara terus menerus sampai terdapat kondisi untuk menghentikannya.
Struktur Pengulangan :
1. Struktur for
Struktur pengulangan jenis ini digunakan untuk melakukan pengulangan yang
diketahui banyaknya.
Bentuk umum deklarasi struktur for :
Untuk pengulangan yang bersifat menaik (increment)
For (variabel = nilai awal;kondisi;variabel++){
Statement yang akan diulang;
}
Untuk pengulangan yang bersifat menurun (decrement)
For (variabel = nilai awal;kondisi;variabel--){
Statement yang akan diulang;
}
Struktur for Bersarang
Struktur for dapat diterapkan pengulangan bersarang (nested looping).
Konsep dalam sebuah pengulangan terdapat pengulangan yang lainnya.
2. Struktur while
Struktur pengulangan yang melakukan pengecekan kondisi diawal blok
struktur.
Pengulangan dilakukan jika kondisi yang didefinisikan di dalamnya terpenuhi
(bernilai benar).
Bentuk umum :
While (kondisi) {Statement yang akan di ulang }
3. Struktur do-while
25
Berbeda dengan struktur while yang melakukan pengecekan kondisi diawal
blok perulangan, pada struktur do-while kondisi ditempatkan di bagian akhir.
Struktur pengulangan ini minimal akan melakukan satu kali proses walaupun
kondisi yang didefinisikan tidak terpenuhi (bernilai salah).
Bentuk umum :
do {
Statement yang akan diulang;
} while (kondisi)
26
4.2 PERCOBAAN
A. LATIHAN 1
Source Code
#include <iostream>
int main(){
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
cout<<"Saya sedang Belajar Bahasa Pemrograman C++"<<endl;
return 0;
}
Output
Pembahasan
Program ini hanya menampilkan teks ke layar secara berulang dengan
menulis masing-masing 10 kali perintah. Maka tampil “Saya sedang
Belajar Bahasa Pemrograman C++” sebanyak 10 kali juga di output.
27
B. LATIHAN 2
Source Code
#include <iostream>
int main(){
int C;
for (C=0; C<10; C++){
cout<<"Saya sedang Belajar Bahasa Pemrograman
C++"<<endl;
}
return 0;
}
Output
Pembahasan
Program ini menampilkan output yang sama seperti program sebelumnya.
Namun dalam program ini menggunakan perulangan for jenisnya
increment (C++). Keuntungan menggunakan perulangan adalah penulisan
kode program semakin pendek atau lebih efisien dibandingkan menulis
manual secara berulang.
28
C. LATIHAN 3
Source Code
#include <iostream>
int main(){
int C;
for (C=10; C>0; C--){
cout<<"Saya sedang Belajar Bahasa Pemrograman
C++"<<endl;
}
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program struktur perulangan for untuk
jenis decrement (C--) yaitu jenis ini digunakan untuk perulangan yang
bersifat menurun, dari yang terbesar hingga terkecil.
29
D. LATIHAN 4
Source Code
#include <iostream>
using namespace std;
int main(){
for (int j=1; j<=10; j++){
for (int k=1; k<=j; k++){
cout<<k*j<<' ';
}
cout<<'\n';
}
return 0;
}
30
Output
Pembahasan
Program diatas merupakan contoh program struktur for bersarang,
konsepnya dalam sebuah pengulangan terdapat pengulangan lainnya. For
pertama yaitu “for (int j=1; j<=10; j++)” dan didalam for tersebut terdapat
for lainnya yang disebut for bersarang yaitu “for (int k=1; k<=j; k++)” dan
pengulangan for tersebut akan diproses dengan rumus “cout<< k*j<<' ';
maka hasilnya seperti diatas.
31
E. LATIHAN 5
Source Code
#include <iostream>
using namespace std;
int main(){
int C=1;
while (C<=10){
cout<<C<<" * "<<C<<" = "<<C*C<<endl;
C++;
}
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program struktur for bersarang,
konsepnya dalam sebuah pengulangan terdapat pengulangan lainnya. For
pertama yaitu “for (int j=1; j<=10; j++)” dan didalam for tersebut terdapat
for lainnya yang disebut for bersarang yaitu “for (int k=1; k<=j; k++)” dan
pengulangan for tersebut akan diproses dengan rumus “cout<< k*j<<' ';
maka hasilnya seperti diatas.
32
F. LATIHAN 6
Source Code
#include <iostream>
int main(){
int i = 1;
do {
cout<<i<<" + "<<i<<" = "<<i+i<<endl;
i++;
}while (i<=10);
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program pengulangan struktur do-while
dimana pada struktur do-while kondisinya ditempatkan dibagian akhir.
Sehingga program yang menggunakan perulangan do-while setidaknya
akan dieksekusi 1 kali meskipun kondisinya tidak memenuhi.
33
G. STUDI KASUS (STRUKTUR FOR)
Source Code
#include <iostream>
int main(){
int C;
cout<<"=================================="<<endl;
cout<<"Struktur for (Increment)"<<endl;
cout<<"=================================="<<endl;
for (C=1; C<=10; C++){
cout<<C<<endl;
}
cout<<"=================================="<<endl;
cout<<"Struktur for (Decrement)"<<endl;
cout<<"=================================="<<endl;
for (C=10; C>0; C--){
cout<<C<<endl;
}
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program penggunaan struktur for
dengan increment dan decrement dalam satu program, pada program diatas
struktur for increment menampilkan angka dari yang terkecil hingga
terbesar sebaliknya struktur for decrement menampilkan angka dari yang
terbesar hingga terkecil.
34
BAB V
POINTER
5.1 TEORI DASAR
Pointer dapat diartikan sebagai suatu variabel yang menyimpan alamat memori.
Penggunaan variabel sebelumnya hanya berisi nilai, bukan alamat. Sebagai
contoh, sebuah variabel P bertipe pointer bernilai 0x0041FF2A, berarti P
menunjuk pada alamat memori 0041FF2A. Pointer dideklarasikan seperti variabel
biasa dengan menambahkan tanda * (asterik) yang mengawali nama variabel.
Jika ada sebuah variabel dengan tipe data tertentu maka untuk mendapatkan alamat
dari variabel menggunakan operator &.
Deklarasi Pointer :
<tipe data>*nama Variabel;
Contoh : float*px;
Contoh deklarasi :
P adalah pointer (berisi alamat) dan &X juga berisi alamat, maka dapat menyimpan
alamat dari variabel X ke dalam pointer P.
35
Pointer Tanpa Tipe Data
Bentuk deklarasi :
Pointer ke Pointer
Pointer dapat digunakan untuk menunjuk ke ponter lain yang telah menunjukan
alamat tertentu. Situasi tersebut biasa juga disebut ”Multiple Direction” atau
“Pointer ke Pointer”.
P bukan menunjukan ke tipe data int, melainkan pointer yang menuunjuk pointer
ke tipe data int.
36
5.2 PERCOBAAN
A. LATIHAN 1
Source Code
#include <iostream>
using namespace std;
int main(){
int x;
int *px;
x = 2;
px = &x;
cout<<"Nilai X : "<<x<<endl;
cout<<"Nilai *px : "<<*px<<endl;
cout<<"Nilai px (alamat x) : "<<px<<endl;
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program deklarasi pointer, dimana pada
program diatas kita menapilkan nila X dan nilai pointer dari *px. Program
diatas juga menampilkan alamat dari variabel X “px = &x;”
37
B. LATIHAN 2
Source Code
#include <iostream>
using namespace std;
int main(){
long *P;
long x;
P = &x;
x = 10;
cout<<"Nilai X : "<<x<<endl;
cout<<"Nilai *P : "<<*P<<endl;
cout<<"Nilai P : "<<P<<endl;
cout<<"Nilai &X : "<<&x<<endl;
*P = 200;
cout<<"Nilai X : "<<x<<endl;
cout<<"Nilai *P : "<<*P<<endl;
cout<<"Nilai P : "<<P<<endl;
cout<<"Nilai &X : "<<&x<<endl;
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program deklarasi pointer yang
menampilkan nilai X dan nilai *P, yang nilainya telah ditentukan lebih dulu
serta menampilkan alamat X dan alamat *P. Pada pertengahan program
nilai *P diganti menjadi 200. Maka tampak nilai X juga ikut terganti
menjadi 200.
38
C. LATIHAN 3
Source Code
#include <iostream>
using namespace std;
int main(){
void *P;
int X;
int Y;
int Z;
P = &X;
X = 10;
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai P : "<<P<<endl;
cout<<"Nilai &X : "<<&X<<endl;
P = &Y;
Y = 2000;
cout<<"Nilai Y : "<<Y<<endl;
cout<<"Nilai P : "<<P<<endl;
cout<<"Nilai &Y : "<<&Y<<endl;
P = &Z;
Z = 21.0378;
cout<<"Nilai Z : "<<Z<<endl;
cout<<"Nilai P : "<<P<<endl;
cout<<"Nilai &Z : "<<&Z<<endl;
return 0;
}
Output
39
Pembahasan
Sama halnya dengan latihan sebelumnya, latihan ke 3 juga menampilkan
nilai dari X, yang nilainya telah di tentukan, selanjutnya menampilkan nilai
P dan nilai &X yang merupakan alamat dari variabel X, begitu juga dengan
variabel lainnya, namun ada yang berbeda pada program diatas yaitu kita
menggunakan pointer tanpa tipe data “void*P” yang berguna untuk
membuat pointer yang dideklarasikan dapat menunjuk ke semua tipe data.
Ini merupakan kelebihan dari void.
D. LATIHAN 4
Source Code
#include <iostream>
using namespace std;
int main(){
const int *P1;
int X, Y;
X = 5;
Y = 10;
P1 = &X;
cout<<"Nilai X : "<<X<<endl;
cout<<"Alamat X : "<<P1<<endl;
P1 = &Y;
cout<<"Nilai Y : "<<Y<<endl;
cout<<"Alamat Y : "<<P1<<endl;
return 0;
}
Output
40
Pembahasan
Pada program diatas merupakan contoh penempatan kata konstan sebelum
tipe data “const int *P1;”. Pada program tersebut kita juga memberikan
nilai konstan pada pointer, penempatan kata konstan pada pointer terbagi
atas tiga yaitu sebelum tipe data, sesudah tipe data, sebelum dan
sesudah tipe data.
E. LATIHAN 5
Source Code
#include <iostream>
using namespace std;
int main(){
int X = 25;
int *P1;
int **P2;
P1 = &X;
P2 = &P1;
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *P1 : "<<*P1<<endl;
cout<<"Nilai *P2 : "<<*P2<<endl;
cout<<"Nilai **P2 : "<<**P2<<endl;
cout<<"Alamat X : "<<&X<<endl;
cout<<"Alamat P1 : "<<P1<<endl;
cout<<"Alamat P2 : "<<P2<<endl;
return 0;
}
Output
41
Pembahasan
Mirip seperti latihan sebelumnya pada program latihan ini juga
menampilkan nilai dan alamat dari variabel X, P1 dan P2. Hanya saja
terdapat perbedaan saat menampilkan nilai P2 karena harus menggunakan
dua asterik. Hal ini disebabkan karena P2 menyimpan alamat P1 dan P1
menyimpan alamat X.
42
BAB VI
ARRAY
6.1 TEORI DASAR
Array adalah suatu struktur/ variabel yang menyimpan sekumpulan data yang
memiliki tipe data yang sama. Setiap data (elemen array) menempati lokasi atau
alamat memori yang berbeda-beda. Elemen array dapat diakses melalui indeks
yang terdapat didalamnya. Indeks pada suatu array dimuali dari 0 dalam C++.
Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak
dimensi (multi dimensi).
Array Satu Dimensi
Array Satu Dimensi tidak lain adalah kumpulan elemen-elemen identik yang
tersusun dalam satu baris.
Bentuk deklarasi umum :
tipe_data NamaArray[n] = {elemen0,elemen1,elemen2, ….,n};
n = jumlah elemen
Buble Sort
43
Algoritma Pengurutan Buble Sort :
Secara berulang membandingkan dua data bersebelahan dan meletakan data yang
lebih dulu disebelah kiri, sampai semua terurut hingga tidak ada lagi yang harus
tukar posisi.
Banyaknya data : n
Data diurutkan/ disorting dari yang bernilai kecil (Ascending) pindahkan dari
depan sampai terakhir.
Proses :
Step 1 :
Periksalah nilai dua elemen mulai dari urutan ke-1 sampai urutan ke-n. jika nilai
kiri > kanan, tukarkan kedua data itu.
Step 2 :
Periksalah nilai dua elemen mulai dari urutan ke-1 sampai urutan ke-n. jika nilai
kiri > kanan, tukarkan kedua data itu.
Step n-1 :
Periksalah nilai dua elemen mulai dari urutan ke-1 sampai urutan ke-n. jika nilai
kiri > kanan, tukarkan kedua data itu.
44
6.2 PERCOBAAN
A. LATIHAN 1
Source Code
#include <iostream>
using namespace std;
int main(){
int x [10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
int *P;
int i;
Pembahasan
Program diatas merupakan contoh program array satu dimensi, program
diatas menampilkan angka sebanyak 10 kali yang berisi index dari 0 - 9
yang mempunyai nilai dari 10 - 100, program tersebut juga menampilkan
nilai *P dan alamat dari variabel X yang tersimpan pada pointer P.
45
B. LATIHAN 2
Source Code
#include <iostream>
using namespace std;
int main(){
int A[10] = {12, 24, 13, 25, 10, 13, 21, 20, 15, 18};
int BIL;
for (int C=0; C<10; C++){
cout<<A[C]<<endl;
}
cout<<endl;
cout<<"Masukkan nilai yang akan dicari : "; cin>>BIL;
for (int J=0; J<10; J++){
if (A[J] == BIL){
cout<<"Nilai yang dicari terdapat pada indeks ke-
"<<J;
break;
}
}
return 0;
}
Output
Pembahasan
Program diatas merupakan contoh program pencarian pada elemen array,
pada program diatas terdapat 10 indeks dengan nilai yang berbeda-beda
jika kita menginput angka 10 maka program akan mencari angka 10
tersebut terdapat pada indeks yang ke-4, dan akan menampilkannya di
layar.
46
C. LATIHAN 3
Source Code
#include <iostream>
using namespace std;
int main(){
int A[10];
int C;
for (int C=0; C<10; C++){
cout<<"Masukkan elemen array ke- "<<C<<" = ";
cin>>A[C];
}
int max = A[0];
int min = A[0];
for (C=0; C<10; C++){
if (A[C] > max){
max = A[C];
}
if (A[C] < min){
min = A[C];
}
}
cout<<"Nilai maksimum : "<<max<<endl;
cout<<"Nilai minimum : "<<min<<endl;
return 0;
}
Output
Pembahasan
Program ini mencari nilai minimum dan nilai masimum yang nilainya kita
akan input sendiri dari keyboard sebanyak 10 kali setelah itu program akan
mencari nilai minimum dan nilai maksimumnya dan hasilnya akan di
tampilkan ke layar.
47
D. LATIHAN 4
Source Code
#include <iostream>
using namespace std;
int main(){
int A[6];
int j, k, C, temp;
cout<<"Masukkan nilai pada elemen array : "<<endl;
for (C=0; C<6; C++){
cout<<"A["<<C<<"] = "; cin>>A[C];
}
cout<<"\nNilai elemen array sebelum diurutkan : "<<endl;
for (C=0; C<6; C++){
cout<<"A["<<C<<"] = "<<A[C]<<endl;
}
for (j=0; j<5; j++){
for (k=0; k<5; k++){
if (A[k] > A[k+1]){
temp = A[k];
A[k] = A[k+1];
A[k+1] = temp;
}
}
}
cout<<"\nNilai elemen array setelah diurutkan : "<<endl;
for (C=0; C<6; C++){
cout<<"A["<<C<<"] = "<<A[C]<<endl;
}
return 0;
}
Output
48
Pembahasan
Program diatas merupakan contoh program array yang menggunakan
algoritma pengurutan bubble sort. Pada program diatas kita akan
menginput nilai elemen array dari keyboard sebanyak 6 kali setelah itu
program akan mencetak nilai elemen array yang belum diurutkan,
selanjutnya program akan melakukan proses pengurutan nilai dari yang
terkecil hingga yang terbesar dan menampilkan hasilnya ke layar. Pada
pengualangan bubble sort elemen akan dicek apabila nilai sebelah kiri lebih
besar dari sebelah kanan maka akan ditukar. Penukaran membutuhkan satu
wadah atau variabel baru untuk menampung nilai yang akan dipindah
dengan sementara. Kemudian dipindahkan.
49