Anda di halaman 1dari 51

LAPORAN PRAKTIKUM

PEMROGRAMAN BAHASA C

Dosen pengampu :

Lilik Sumaryanti, S.Kom., M.Cs

Disusun Oleh:

Yoga Putra Pratama (201955201007)

Kelas B

JURUSAN TEKNIK INFORMATIKA

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).

Dalam bahasa pemrograman bahasa C juga mengenal istilah Variabel atau


Identifier. Identifier adalah suatu pengenal yang digunakan untuk menyimpan suatu
nilai kedalamnya.

Penentuan identifier mempertimbangkan hal berikut :

 Bahasa C++ bersifat case sensitif (membedakan variabel yg ditulis kapital


dan huruf kecil).

 Identifier tidak boleh berupa angka atau diawali dengan karakter yg berupa
angka

 Identifier tidak boleh mengandung spasi

 Identifier tidak boleh mengandung karakter simbol (#, @, ?, !, $, dll)

 Identifier tidak boleh kata kunci (keyboard).

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;

cout << b << endl; // (1)


cout << a + b << endl; // (2)
cout << "Sekarang tahun berapa?" << endl;
cin >> z;
cout << z - b + x << endl; // (3)
return 0;
}
 Output

 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?

a = 2 +b; A = a - b; B = DEF % ABC;

int C = A >= B ? A:B;


int D = (B + 5) << 2;

// Berapakah nilai A, B, C, D? tampilkan ke layar


cout << "Nilai A : "; cout << A << endl;
cout << "Nilai B : "; cout << B << endl;
cout << "Nilai C : "; cout << C << endl;
cout << "Nilai D : "; cout << D << endl;
return 0;
}

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;

//deklarasi variabel yang akan digunakan


char karakter; // deklarasi variabel bertipe char
string nama; // deklarasi variabel bertipe string
int bil_bulat; //deklarsi variabel bertipe integer
double nilai; // deklarasi variabel bertipe double

//melakukan assignment variabel yang telah dideklarasikan


karakter = 'A';
nama = "Lee Min Ho";
bil_bulat =78;
nilai = 34.03799;

//menampilkan nilai yang disimpan dalam variabel


cout<<"Contoh Karakter : "<<karakter<<endl;
cout<<"Nama : "<<nama<<endl;
cout<<"Contoh Bilangan Bulat : "<<bil_bulat<<endl;
cout<<"Contoh bilangan desimal : "<<nilai<<endl;

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;

X = + 10; // Dapat ditulis dengan X = 10,


// yang berarti memasukkan nilai positif 10
Y = -2.53; // Memasukkan nilai negatif 2.53

// Menampilkan nilai yang disimpan dalam variabel X dan Y


cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai Y : "<<Y<<endl;

X = -X; //Mengubah nilai X menjadi negatif


Y = -Y; //Mengubah nilai Y menjadi negatif

// Menampilkan kembali nilai yang disimpan


//dalam variabel X dan Y
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai Y : "<<Y<<endl;

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

// Mengisikan nilai ke dalam variabel C dengan nilai 5


C = 5;

// Melakukan pre-increment
cout<<"Nilai C awal : "<<C<<endl;
cout<<"Nilai ++C : "<<++C<<endl;
cout<<"Nilai C akhir : "<<C<<endl;
cout<<'\n';

// Mengubah nilai yang terdapat dalam variabel C


// dengan nilai 10
C = 10;

// 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

// Mengisikan nilai ke dalam variabel C dengan nilai 5


C = 5;

// Melakukan pre-decrement
cout<<"Nilai C awal : "<<C<<endl;
cout<<"Nilai --C : "<<--C<<endl;
cout<<"Nilai C akhir : "<<C<<endl;
cout<<'\n';

// Mengubah nilai yang terdapat dalam variabel C


// dengan nilai 10
C = 10;

// 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;

// Melakukan hasil operasi


jari = diameter/2;
cout<<" Nilai jari-jari : "<<jari<<'\n';

//deklarasi variabel luas dan melakukan operasi perkalian


float luas = pi * jari * jari;
cout<<" Luas lingkaran = "<<"pi * jari * jari "<<'\n';
cout<<" Luas lingkaran = "<<pi<<" * "<<jari<<" *
"<<jari<<'\n';
cout<<" Luas lingkaran = "<<luas<<'\n';
//operasi modulus (sisa hasil bagi)
cout<<" hasil % 8 = "<<hasil << " % 8 "<< endl;
cout<<" hasil % 8 = "<<hasil%8<<'\n';

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.

Jenis - jenis strutur percabangan C++ :


 Struktur if
 Struktur switch

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.

Bentuk umum (Sintaks):

If (kondisi) { Statement 1;

Statement 2;

…………..; }

2. Statement percabangan : dapat menggunakan operator

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;

//memberikan informasi agar user memasukkan


//sebuah bilangan bulat
cout<<"Masukkan sebuah bilangan bulat : ";

//membaca nilai yang dimasukkan dari keyboard dan disimpan


//ke variabel nilai
cin>>nilai;

//menampilkan sebuah teks jika nilai yang tersimpan


//lebih besar dari nol

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;

// Meminta user untuk memasukkan sebuah bilangan


cout<<"Masukkan sebuah bilangan bulat : ";
cin>>angka;

if ((angka > 0) && (angka < 10)) {


cout<<angka<<" > 0 dan "<<angka<<" < 10";
cout<<endl;
}

// Meminta user untuk memasukkan sebuah huruf


cout<<"Masukkan sebuah huruf :";
cin>>huruf;

if ((huruf == 'A') || (huruf == 'a') ||


(huruf == 'I') || (huruf == 'i') ||
(huruf == 'U') || (huruf == 'u') ||
(huruf == 'E') || (huruf == 'e') ||
(huruf == 'O') || (huruf == 'o')) {
cout<<huruf<<" adalah salah satu huruf vokal";
}

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>

using namespace std;

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";

//cek apakah bilangan yang dimasukkan < 0


} else if ( angka < 0){ //(kondisi 2)
// Cetak teks berikut jika kondisi 2 terpenuhi
cout<<angka<<" adalah bilangan NEGATIF";

}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;

cout<<"Masukkan sebuah bilangan (1..7) : ";


cin>>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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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;

Statement diatas mendeklarasikan variabel px yang merupakan pointer.


Penyebutan tipe data float berarti bahwa alamat memori yang ditunjuk oleh px
dimasudkan untuk berisi data bertipe float.

Contoh deklarasi :

Int X ; //Mendeklarasikan variabel X dengan tipe data integer

Int *P; //Mendeklarasikan pointer P dengan tipe data integer

P = &X; // Memerintahkan P untuk menunjuk alamat dari variabel

P adalah pointer (berisi alamat) dan &X juga berisi alamat, maka dapat menyimpan
alamat dari variabel X ke dalam pointer P.

Tidak diijinkan memasukan sebuah nilai (bukan alamat) ke dalam pointer P

P = X ; // salah, karena X berupa nilai bukan alamat.

35
Pointer Tanpa Tipe Data

Berguna untuk memebuat pointer yang dideklarasikan dapat menunjuk ke semua


tipe data.

Bentuk deklarasi :

void*nama_pointer; contoh : void*P; //deklarasi pointer P sebagai pointer tanpa


tipe

Konstanta Pada Pointer

Pointer juga dapat bernilai konstan, dengan menggunakan kata const

Penempatan kata kunci const:

Sebelum tipe data : const*nama_pointer;

Setelah tipe data : *conts nama_pointer;

Sebelum dan sesudah tipe data: Const *const nama_pointer;

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”.

Bentuk deklarasi : menggunakan tanda asterisk 2 kali (**) int **P;

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

Pengurutan Elemen Array


Pengurutan (sorting) :
Proses mengatur sekumpulan objek menurut urutan atau susunan tertentu.
Pengurutan dapat tersusun secara :
1. Ascending (menaik)
28, 54, 65, 71, 74, 80, 94
2. Descending (menurun)
94, 80, 74, 71, 65, 54, 28

Metode untuk sorting :

 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.

 Urut naik : lebih kecil → sebelah kiri


 Urut turun : lebih besar → sebelah kiri

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;

for (i=0; i<10; i++){


P = &x[i]; //membaca alamat dari x
cout<<x[i]<<" "<<*P<<"
"<<P<<endl;
}
return 0;
}
 Output

 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

Anda mungkin juga menyukai