Anda di halaman 1dari 56

LAPORAN TETAP PRAKTIKUM

PENGANTAR TEKNOLOGI INFORMASI

Oleh:
Nama : Siti Husnul Hotimah
NIM : 08011282227028
Fakultas/Jurusan : MIPA/Matematika
Kelompok/ Hari : I/ Selasa
Tanggal Praktikum : 07 Maret 2023
Tanggal Penyerahan : 14 Maret 2023
Dosen Pengajar : 1. Anita Desiani, S.Si., M.Kom.
2. Drs. Ali Amran, M.T.
Nama Asisten : 1. Dido Fivalianda (2020)
2. Mawaddah Khairani (2020)
3. Puspa Sari (2020)
4. Valentino Simamora (2020)

JUDUL PRAKTIKUM: ARRAY

LABORATORIUM KOMPUTASI
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SRIWIJAYA
2022
I. Judul Praktikum : Array
II. Topik : Array dimensi satu, array dimensi dua, dan array dimensi tiga.
III. Tujuan :
1. Untuk mengenal array secara umum.
2. Untuk mengenal indeks dalam array.
3. Untuk mengenal array dimensi satu.
4. Untuk mengenal array dimensi dua.
5. Untuk mengenal array dimensi tiga.
IV. Materi :
Array merupakan suatu struktur data yang digunakan untuk menyimpan sekumpulan
data dalam satu tempat. Masing-masing data dalam array memiliki indeks. Indeks ini akan
memudahkan penggunanya dalam memprosesnya nanti. Masing-masing elemen data yang
dideklarasikan sebagai array akan direferensikan dengan menggunakan indeks untuk
membedakan antara data satu dengan yang lain. Indeks merupakan angka dalam tanda kurung
siku dan dinyatakan sebagai bilangan bulat. Secara default, indeks dalam array dimulai dari nol.
Masing-masing elemen data pada array akan menyimpan sebuah nilai. Karena semua elemen
array bertipe sama, nilai yang disimpan oleh setiap elemen juga harus bertipe sama. Jumlah
elemen dalam array ini tidak dapat diubah, ditambah, maupun dikurangi saat program sedang
berjalan. Jadi array bukan merupakan struktur data yang statis. Dengan menggunakan array
akan memungkinkan penggunanya untuk membuat satu variabel, namun dapat menyimpan
banyak nilai. Ada banyak elemen di dalam array, dengan tempat untuk menyimpan setiap nilai.
Tipe data array terdiri dari array dimensi satu, array dimensi dua, array dimensi tiga,
atau multi dimensi. Array dimensi satu memiliki bentuk umum tipe data, diikuti nama variabel,
kemudian indeks (dalam kurung siku). Ketika kita mendeklarasikan suatu array, jika kita tidak
memberikan isi atau nilai yang ingin diberikan, maka isi array tidak ditentukan atau tidak
terdefinisi, hingga nilai array tersebut diberikan. Array dua dimensi memiliki bentuk umum
yaitu tipe data, diikuti nama variabel, lalu indeks 1 dan indeks 2 (keduanya dalam tanda kurung
siku). Tipe data array dua dimensi merupakan tipe data yang sering digunakan ketika
penggunanya ingin menggunakan satu variabel dinyatakan sama, namun memiliki dua indeks
yang berbeda. Secara default, indeks array dua dimensi dimulai dari 0,0. Jumlah elemen pada
array dua dimensi adalah hasil kali dari indeks satu dikali indekt dua. Pada array dua dimensi,
indeks1 menyatakan jumlah baris dan indeks2 menyatakan jumlah kolom. Misalkan, kita
mendeklarasikan suatu variabel dengan “int matriks [2][4]={{1,2,3,4},{5,6,7,8,}};”. Artinya,
data tersebut bertipe data integer dengan jumlah baris yaitu 2 dan jumlah kolom yaitu 4, dengan
jumlah elemen sebanyak 8 buah, yaitu 1, 2, 3, 4, 5, 6, 7, 8. Berikutnya adalah array tiga dimensi
atau dimensi banyak. Array tiga dimensi memiliki bentuk umum yaitu tipe data, diikuti nama
variabel, kemudian indeks 1, indeks 2, indeks 3, sampai dengan indeks ke-n. jadi, array ini
menggunakan jumlah indeks sebanyak tiga atau lebih. Pada array tiga dimensi, indeks 1
menyatakan jumlah baris, indeks 2 menyatakan jumlah kolom, sedangkan indeks 3 menyatakan
isi baris.
V. Judul Program Utama: Program matriks dengan ordo 4x7.
1. Deskripsi Program
Pada program ini kita membutuhkan variabel menggunakan array dua dimensi untuk
membuat matriks dengan ordo 4×7. Jadi, kita akan menggunakan variabel dengan nama
matriks, dengan indeks 1 menyatakan baris dan indeks 2 menyatakan kolom
(matriks[4][7]). Lalu, kita juga akan mendeklarasikan langsung isi dari variabel matriks
yang akan kita buat. Dimulai dari matriks[0][0] kita akan menimpan isinya dengan 1,
matriks [0][1] dengan 2, matriks[0][2] dengan 3, matriks[0][3] dengan 4, matriks[0][4]
dengan 5, matriks[0][5] dengan 6, dan seterusnya hingga isi untuk matriks[3][6]. Jadi,
secara berturut-turut kita akan menyimpan keseluruhan isi dari matriks[4][7] sebagai 1, 2,
3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8. Selanjutnya kita juga
memerlukan variabel i untuk indeks yang menyatakan baris dan variabel j untuk indeks
yang menyatakan kolom. Jadi, logika dalam program ini kita akan menggunakan
perulangan menggunakan varabel i untuk memulai mencetak isi matriks setiap baris, lalu
akan menggunakan perulangan dengan variabel j untuk memulai mencetak isi matriks dari
setiap kolom. Oleh karena itu, kita akan menggunakan pernyataan perulangan Nested For.
2. Kelebihan Program
A. Input: Tidak ada input dalam program ini.
B. Proses: untuk membuat program matriks ordo 4x7, kita memerlukan pernyataan
perulangan. Perulangan ini akan kita lakukan sebanyak dua kali. Perulangan pertama
kita gunakan untuk memulai entri baris. Kemudian, perulangan kedua digunakan untuk
mencetak entri matriks disetiap kolom pada baris tersebut. Jadi, pada kedua perulangan
ini kita akan menggunakan pernyataan perulangan dengan Nested for. Pada peryataan
for yang pertama kita akan menggunakan variabel i. perulangan ini akan kita awali
dengan inisialisasi i sama dengan 0. Dimulai dari inisialisasi nol karena penomoran
pertama pada array indeks baris dimulai dari nol. Berikutnya kondisi perulangan adalah
i kurang dari 4. Karena jumlah baris matriks ini yaitu 4 dan kita hanya akan mencetak
baris matriks hingga indeks array 3, karena penomoran array dimulai dari nol.
Kemudian, jika kondisi bernilai benar, maka akan dilanjutkan ke perulangan kedua
untuk mencetak setiap entri pada kolom di baris tersebut. Perulangan kedua ini akan
kita gunakan variabel j, dengan inisialisasi j sama dengan nol. Sama seperti i,
inisialisasi j sama dengan nol diberikan karena penomoran kamar array dimulai dari
nol. Berikutnya kondisinya yaitu j kurang dari 7, karena jumlah kolom pada matriks ini
yaitu 7, dan kita akan mencetak matriks kolom hingga indkes array 6 karena penomran
array dimulai dari nol. Kemudian, jika kondisi ini benar, maka program akan mencetak
matriks[i][j]. kemudian akan dilakukan perubahan j++. Kemudian program akan
mengecek lagi kondisi pada for (yang kedua). Jika, masih memenuhi, maka program
akan mencetak kembali entri kolom berikutnya. Perulangan akan terus dilakukan
hingga nanti indeks array maksimum yang akan dicetak adalah [i][6] (karena kondisi j
kurang dari 7). Jika kondisi tidak memnuhi lagi, maka akan kembali ke perulangan for
yang terluar (untuk memulai entri baris). Sebelumnya akan dilakukan i++ terlebih
dahulu sebagai perubahannya. Kemudian, program akan mengecek kondisi lagi pada
for. Program akan terus melakukan looping hingga kondisi pada for tidak memenuhi
lagi, sehingga entri maksimum yang akan dicetak nantinya adalah matris[3][6].
C. Output: variabel matriks[i][j]. Output untuk menghasilkan matriks ordo 4×7 adalah
variabel matriks[i][j], dengan setiap tahapannya nanti akan menghasilkan atau
mencetak matriks[0][0], matriks[0][1], matriks[0][2], matriks [0][3], matriks[0][4],
matriks[0][5], matriks[0][6] matriks[0][7], matriks[1][0], matriks[1][1],
matriks[1][2], matriks[1][3], matriks[1][4], matriks[1][5], matriks[1][6], matriks[1][7],
matriks[2][0], matriks[2][1], dan seterusnya hingga terakhir akan mencetak
matriks[3][6].
VI. Flowchart

Start

matriks[0][0]:=1, matriks[0][1]:=2, matriks[0][2]:=3, matriks[0][3]:=4,


matriks[0][4]:=5, matriks[0][5]:=6, matriks[0][6]:=7; matriks[1][0]:=8,
matriks[1][1]:=9, matriks[1][2]:=0, matriks[1][3]:=1, matriks[1][4]:=2,
matriks[1][5]:=3, matriks[1][6]:=4; matriks[2][0]:=5, matriks[2][1]:=6,
matriks[2][2]:=7, matriks[2][3]:=8, matriks[2][4]:=9, matriks[2][5]:=0,
matriks[2][6]:=1; matriks[3][0]:=2, matriks[3][1]:=3, matriks[3][2]:=4,
matriks[3][3]:=5, matriks[3][4]:=6, matriks[3][5]:=7, matriks[3][6]:=8

Tidak
i=0 to 4

Ya
Tidak
j=0 to 7

Ya

matriks[i][j], “ “

j=j+1

i=i+1

End.
VII. Pseudocode VIII. Program/Coding
Begin #include<iostream>
Var using namespace std;
matriks[4][7]: int, int main()
{
matriks[0][0]:=1 int matriks[4][7]={1, 2, 3, 4, 5, 6,
matriks[0][1]:=2 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3,
matriks[0][2]:=3 4, 5, 6, 7, 8};
matriks[0][3]:=4 int i;
matriks[0][4]:=5 for (i=0; i<4; i++)
matriks[0][5]:=6 {
matriks[0][6]:=7 int j;
matriks[1][0]:=8 for(int j=0; j<7; j++)
matriks[1][1]:=9 cout<<matriks[i][j]<<" ";
matriks[1][2]:=0 cout<<endl;
matriks[1][3]:=1 }
matriks[1][4]:=2 }
matriks[1][5]:=3
matriks[1][6]:=4
matriks[2][0]:=5
matriks[2][1]:=6
matriks[2][2]:=7
matriks[2][3]:=8
matriks[2][4]:=9
matriks[2][5]:=0
matriks[2][6]:=1
matriks[3][0]:=2
matriks[3][1]:=3
matriks[3][2]:=4
matriks[3][3]:=5
matriks[3][4]:=6
matriks[3][5]:=7
matriks[3][6]:=8

var i: integer
for i:=0 to 4 do
begin
var j: integer
for j:=0 to 7 do
write(matriks[i][j]);
j=j+1;
i=i+1;
end;
End.
IX. Penjelasan Program
• #include<iostream> digunakan untuk memesan cin, cout, endl.
• Using namepace std; digunakan untuk memanggil namespace yang memiliki nama std.
• Int main () adalah program utama.
• Program mulai.
• Pesan memori dengan variabel array dua dimensi dengan nama matriks dimana indeks
pertama memesan 4 kamar yang menunjukan baris dan indeks kedua memesan 7 kamar
yang menunjukkan kolom dengan tipe data integer. Dan nilainya akan diinisialisasikan
dengan:
matriks[4][7]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8};
• Pesan memori dengan variabel i dengan tipe data integer.
• Masuk ke pernyataan for, dengan inisialisasi i=0 dan kondisi i<4.
• Karena 0<4 bernilai benar, maka:
• Pesan variabel j dengan tipe data integer.
• Masuk ke pernyataan for (di dalam for), dengan inisialisasi j=0 dan kondisi j<7.
• Karena 0<7 bernilai benar, maka:
• Cetak matriks[i][j] dan karakter “ “. sehingga, kita akan mencetak matriks [0][0]=1 dan “
“.
Tampilang program
1

• Lakukan j++, sehingga j=0+1. Jadi sekrang j=1.


• Cek kondisi 1<7. Karena benar, maka cetak matriks[0][1]=2 dan “ “.
tampilan program

12

• Lakukan j++, sehingga j=1+1. Jadi, sekarang j=2.


• Cek kondisi 2<7. Karena benar, maka cetak matriks[0][2]=3 dan “ “.
tampilan program

123

• Lakukan j++, sehingga j=2+1. Jadi, sekarang j=3.


• Cek kondisi 3<7. Karena benar, maka cetak matriks[0][3]=4 dan “ “.
tampilan program

1234

• Lakukan j++, sehingga j=3+1. Jadi, sekarang j=4.


• Cek kondisi 4<7. Karena benar, maka cetak matriks[0][4]=5 dan “ “.
tampilan program

12345

• Lakukan j++, sehingga j=4+1. Jadi, sekarang j=5.


• Cek kondisi 5<7. Karena benar, maka cetak matriks[0][5]=6 dan “ “.
tampilan program

123456

• Lakukan j++, sehingga j=5+1. Jadi, sekarang j=6.


• Cek kondisi 6<7. Karena benar, maka cetak matriks[0][6]=7 dan “ “.
tampilan program

1234567

• Lakukan j++, sehingga j=6+1. Jadi, sekarang j=1.


• Cek kondisi 7<7. Karena bernilai salah, maka keluar dari looping.
• Lakukan fungsi endl agar berpindah ke baris berikutnya.
• Lakukan i++, sehingga i=0+1. Jadi, sekarang i=1.
• Cek kondisi 1<4. Karena bernilai benar, maka:
• Masuk ke pernyataan for (di dalam for), dengan inisialisasi j=0 dan kondisi j<7.
• Karena 0<7 bernilai benar, maka:
• Cetak matriks[i][j] dan karakter “ “. sehingga, kita akan mencetak matriks [1][0]=8 dan “
“.
• Tampilang program

1234567
8

• Lakukan j++, sehingga j=0+1. Jadi sekrang j=1.


• Cek kondisi 1<7. Karena benar, maka cetak matriks[1][1]=9 dan “ “.
tampilan program
1234567
89

• Lakukan j++, sehingga j=1+1. Jadi, sekarang j=2.


• Perulangan akan terus dilakukan, hingga kondisi pada kedua perulangan tidak memenuhi
lagi, dan terakhir akan mencetak matriks[3][6], sehingga nantinya akan didapatkan output
seperti berikut:
Tampilan program
1234567
8901234
5678901
2345678

• Program selesai.
X. Tampilan Program
Tugas

1. Disuatu mall terdapat promo untuk pembelian laptop. Jika seorang didalam namanya
terdapat huruf A dan S, maka dia layak untuk mendapatkan promo. Beberapa promo yang
disediakan yaitu, dengan pembelian laptop minimal 20jt akan mendapatkan diskon sebesar
5%, pembelian laptop minimal 50jt akan mendapat diskon 10%. Buatlah program untuk
menghitung total pembayaran, dengan inputan nama serta harga laptop.
Jawab:
1) Deskripsi program
Pada program ini kita mengingingkan output berupa total pembayaran, dengan inputan
nama serta harga laptop. Oleh karena itu, pada program ini kita akan menggunakan suatu
variabel untuk menampung inputan nama. Disini kita akan menamakan variabel tersebut
variabel nama, dengan tipe data char. Untuk mengecek apakah karakter dari isi variabel
nama yang diinputkan mengandung huruf A dan S, maka kita memerlukan array.
Diperlukannya array agar kita dapat menyimpan nilai tersebut dan menghitung panjang
karakter yang diinputkan dengan strlen. Kemudian untuk menyimpan nilai dari hasil strlen,
maka kita memerlukan tambahan varabel lagi, disini kita akan menamakannya dengan
variabel n. Kemudian, karena kita juga memerlukan inputan untuk harga laptop, maka kita
juga akan menambahkan variabel h untuk menampung harga pembelian laptop, dengan tipe
data integer. Lalu untuk menampung nilai diskon untuk harga laptop nanti, maka kita juga
akan menambahkan variabel diskon, dengan tipe datanya integer.
2) Kelebihan program
A. Input: variabel nama, variabel h.
B. Proses: setelah menginputkan variabel nama dan h, pertama kita akan mengisi variabel
n dengan panjang karakter dari isi variabel nama yang diinputkan, oleh karena itu untuk
menghitungnya dibutuhkan strlen. Setelah itu, untuk mengecek apakah isi variabel
nama yang diinputkan mengandung huruf A dan S atau tidak, maka kita gunakan
perulangan. Disini kita akan menggunakan perulangan for. Diperulangan ini kita akan
mendeklarasikan variabel i sebagai integer, dengan inisialisasi i=0 dan kondisi i kurang
dari n. kita inisialisasikan variabel i=0 karena perhitungan kamar array dimulai dari nol.
Kemudian kita menggunakan kondisi i kurang dari n, karena tadi array dihitung dari
nol, maka kamar terakhir tempat terisinya variabel yang diinputkan pasti kurang satu
dari n. variabel n tadi merupakan panjang karakter nama yang diinputkan. Pertama, kita
akan mengecek apakah pada variabel nama terdapat huruf A terlebih dahulu. Jadi, kita
masuk ke pernyataan if. Pada if, jika nilai[i] sama dengan ‘A’. Jika bernilai benar, maka
kita lanjut untuk mengecek apakah variabel nama terdapat huruf S atau tidak. Namun
jika kondisi if bernilai salah, maka akan dilakukan perubahan i+1, dan kemudian akan
terus dilakukan perulangan hingga didapat pernyataan if memenuhi atau keluar dari
perulangan jika kondisi for tidak memenuhi lagi. Jika kondisi if tadi memenuhi, maka
kita akan lanjut ke perulangan yang kedua untuk mengecek huruf S. diperulangan ini
kita akan deklarasikan variabel j dengan tipe data integer. Sama dengan variabel i, kita
juga akan menginisialisasikan j=0 dan kondisi j<n. Jika kondisi memenuhi, maka akan
berlanjut ke dalam if didalamnya. Pertama, pada if, jika nama[j] sama dengan ‘S’. jika
kondisi memenuhi, maka kita lanjutkan untuk mengecek harga pembelian laptop. Yang
pertama , jika minimal pembelian 50jt akan mendapat diskon 10%. Jadi, kita buat
pernyataan if dengan kondisi h lebih dari atau sama dengan 50000000. Jika memenuhi,
maka isi variabel diskon dengan variabel h dikali 0.10 dan variabel h dengan variabel h
dikurangi variabel diskon. Jika tidak memenuhi, maka akan memeriksa pernyataan else
if dibawahnya. Karena tadi jika pembelian minimal 20 jt akan mendapatkan diskon 5%,
maka pada pernyataan else if kita buat kondisinya jika variabel h lebih dari atau sama
dengan 20000000, maka isi variabel diskon dengan h dikali 0.05 dan variabel h dengan
variabel h dikurangi variabel diskon. Setelah salah satu kondisi dari if atau else if
memenuhi (maupun tidak memenuhi) maka lakukan break, sehingga keluar dari looping
j. kemudian lakukan break lagi untuk looping i, sehingga keluar dari looping i. alasan
dilakukan break, agar setelah kondisi memenuhi dan didapatkan hasil yang diinginkan,
perulangan atau looping akan berhenti.
C. Output: setelah keluar dari looping i dan j, maka akan didapatkan output berupa isi
variabel diskon dan isi variabel h (sebagai total pembayaran).
3) Flowchart
Start

nama, h

n=strlen(nama)

Tidak
int i=0 to n

Ya
Tidak
i++ nama[i]==’A’

Ya
Tidak
int j=0 to n break

Ya
Tidak
j++ nama[i]==’S’

Ya

Tidak
h>=50000000

Ya
break
diskon=h*0.10
h=h-diskon

Tidak
h>=20000000

Ya

diskon=h*0.05
h=h-diskon

diskon, h

End.
4) Pseudecode
Begin
Var
nama: array[0…50] of char
n: integer
h: integer
diskon: integer
Read(nama)
Read(h)
For int i:=0 to n
Begin
If (nama[i]==’A’) then
Begin
For int j:=0 to n
Begin
If (nama[i]==’S’) then
Begin
If (h>=50000000) then
Begin
diskon=h*0.10
h=h-diskon
End;
Else if (h>=20000000) then
Begin
diskon=h*0.05
h=h-diskon
End;
Break;
End;
j++
End;
Break;
End;
i++
End;
Write(diskon)
Write(h)
End.
5) Program

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char nama[50];
int n;
int h;
int diskon;
cout<<"masukkan nama anda (DALAM KAPITAL): ";
cin>>nama;
cout<<"masukkan harga pembelian laptop: ";
cin>>h;
n=strlen(nama);
for(int i=0; i<n; i++)
{
if(nama[i]=='A')
{
for(int j=0; j<n; j++)
{
if(nama[j]=='S')
{
if(h>=50000000)
{
diskon=h*0.10;

h=h-diskon;
}
else if(h>=20000000)
{
diskon=h*0.05;
h=h-diskon;
}
break;
}
}
break;
}
}
cout<<endl;
cout<<"total diskon : "<<diskon<<endl;
cout<<"total pembayaran: "<<h;

}
6) Penjelasan running program
• #include<iostream> digunakan untuk memesan cin, cout, endl.
• Using namepace std; digunakan untuk memanggil namespace yang memiliki nama std.
• Int main () adalah program utama.
• Program mulai.
• Pesan memori dengan variabel nama dengan menggunakan array dan memesan sebanyak
50 tempat dengan tipe data char.
• Pesan memori dengan variabel n dengan tipe data integer.
• Pesan memori dengan variabel h dengan tipe data integer.
• Pesan memori dengan variabel diskon dengan tipe data integer.
• Cetak kalimat “masukan nama anda (DALAM KAPITAL) : “ dilayar.
• Input variabel nama oleh user (dalam huruf kapital). Misal “ASRI”.
Tampilan program
masukkan nama anda (DALAM KAPITAL): ASRI

• Cetak kalimat “masukkan harga pembelian laptop: “ dilayar.


• Input variabel h oleh user. Misal 25000000.
Tampilan program
masukkan nama anda (DALAM KAPITAL): ARSI
masukkan harga pembelian laptop: 20000000

• Isi variabel n=strlen(nama). Jadi, sekarang n=4.


• Masuk ke pernyataan for, dengan inisialisasi i=0, kondisi, i<n, dan perubahan i++. Karena
0<4 bernilai benar, maka:
• Buka begin for
• Masuk ke if, dengan kondisi nama[i]==’A’. karena nama[0]==’A’ bernilai benar, maka:
• Buka begin if.
• Masuk ke pernyataan for, dengan inisialisasi j=0, kondisi, j<n, dan perubahan j++. Karena
0<4 bernilai benar, maka:
• Masuk ke if, dengan kondisi nama[j]==’S’. karena nama[0]==’S’ bernilai salah, maka
laukan j++, j=0+1=1.
• Cek kondisi for, 1<4 bernilai benar. Maka:
• Masuk ke if. Cek nama[1]==’S’. karena bernilai salah, maka lakukan j++, j=1+1=2.
• Cek kondisi for, 2<4 bernilai benar. Maka:
• Masuk ke if. Cek nama[2]==’S’. karena bernilai benar, maka:
• Masuk ke pernyataan if di bawahnya, dengsn kondisi h>=50000000. Karena bernilai
salah, maka lanjut ke else if.
• Masuk e else if, dengan kondisi h>=20000000. Karena bernilai benar, maka:
• Buka begin else if.
• Isi variabel diskon=h*0.05. jadi, diskon=25000000*0.05=1250000.
• Isi variabel h=h-diskon. Jadi h=25000000-1250000=23750000.
• Lakukan break, sehingga keluar dari perulangan for.
• Lakukan break lagi, sehingga keluar dari perulangan for (yang terluar).
• Lakukan fungsi endl agar berpindah ke baris berikutnya.
• Cetak kalimat “total diskon : “ dilayar.
• Cetak variabel diskon dilayar.
• Lakukan fungsi endl agar berpindah ke baris berikutnya.
• Cetak kalimat “total pembayaran: “ dilayar.
• Cetak variabel h dilayar.
Tampilan program
masukkan nama anda (DALAM KAPITAL): ARSI
masukkan harga pembelian laptop: 20000000

total diskon : 1250000


total pembayaran: 23750000

• Program selesai.

7) Tampilan program
2. Buat program beberapa kasus untuk mengkonversi bilangan decimal.
a. Konversi bilangan decimal ke biner.
b. Konversi bilangan decimal ke oktal.
c. Koversi bilangan decimal ke hexadecimal.
Jawab:
a. Konversi bilangan decimal ke biner.
1) Deskripsi program
Pada program ini kita menginginkan output berupa hasil konversi dari bilangan decimal ke
bilangan biner. Pertama-tama, kita tentukan dulu variabel yang akan kita gunakan. Pertama
kita akan menggunakan variabel desimal untuk menampung nilai bilangan decimal yang
ingin dikonversi. Kemudian, dalam konversi nanti, setiap decimal akan dibagi oleh 2 dan
sisa pembagian bilangan decimal dengan 2 nanti yang akan disimpan untuk bilangan biner.
Oleh karena itu kita akan menambahkan satu variabel lagi, yaitu variabel sisa dengan tipe
data char. Variabel sisa akan kita deklarasikan sebagai array dengan memesan 10 tempat.
Diperlukannya array agar nanti memudahkan untuk menyimpan setiap nilai variabel sisa
dari setiap sisa pembagian bilangan decimal dengan 2. Kemudian, dalam proses
mengkonversi ke bilangan biner nanti, bilangan decimal akan terus dibagi oleh 2, dimana
nanti hasil sisa baginya akan disimpan untuk bilangan biner. Desimal akan terus dibagi 2
sampai nanti didapatkan hasil bagi antara bilangan decimal dengan 2 adalah 0. Oleh karena
itu, dalam proses mengkonversi nanti kita akan menggunakan pernyataan perulangan.
Dalam perulangan nanti kita akan menggunakan variabel i dengan tipe data integer. Lalu,
untuk menampilkan hasil konversi nanti, kita akan menampilkan sisa bagi antara bilangan
decimal dengan 2 secara berurut dari bawah ke atas (dari sisa pembagian terakhir-sisa
pembagian terawal). Jadi, dalam menampilkan hasil konversi nanti kita juga akan
menggunakan pernyataan perulangan. Untuk memudahan penampilan hasil konversi nanti,
kita akan menambahkan satu variabel lagi, yaitu variabel cnt untuk menampung nilai i
terakhir yang dilakukan perulangan saat perulangan untuk mencari bilangan biner.
2) Kelebihan program
A. Input: variabel desimal.
B. Proses: untuk mencari bilangan biner, kita akan menggunakan pernyataan perulangan.
Dalam perulangan ini kita akan menggunakan variabel i. karena penamaan tempat/
kamar pada array selalu dimulai dari 0, maka kita akan inisialisasikan i sama dengan 0.
Lalu, karena bilangan decimal nantinya akan terus dibagi 2 sampai didapatkan hasil
baginya sama dengan nol, maka untuk perulangan ini kita buat kondisinya adalah
variabel desimal lebih dari nol. Kemudian, jika kondisi dari perulangan masih terus
memenuhi, maka, pertama kita akan mengisi variabel sisa dengan variabel desimal
modulus 2. Setiap nilai variabel sis aini akan disimpan sebagai array. Kemudian kita isi
variabel desimal dengan variabel desimal dibagi 2. Setelah itu, kita akan menyimpan
atau mengisi variabel cnt dengan variabel i yang sedang dilakukan perulang tersebut.
Kemudian, perulangan akan terus dilakukan, dan setiap nilai variabel sisa akan disimpan
semua sebagai array. Variabel sisa inilah nanti yang akan disimpan untuk bilangan
biner. Lalu perulangan akan berhenti mengulang ketika sudah didapatkan nanti nilai
variabel desimal sudah kurang dari atau sama dengan nol. Selanjutnya, barulah kita
akan mencetak hasil konversi ke bilangan biner. Seperti yang sudah disebutkan
sebelumnya, hasil konversi bilangan biner merupakan nilai dari setiap nilai variabel sisa
yang disimpan, namun akan ditampilkan secara berurut dari bawah ke atas, atau dari
nilai sisa terakhir yang disimpan hingga nilai sisa terawal. Jadi, untuk menampilkan
hasil konversi nanti maka kita akan menggunakan pernyataan for dengan inisialissi
variabel i sama dengan variabel cnt. Lalu, untuk kkondisinya adalah variabel i lebih dari
atau sama dengan 0. Karena nilai variabel sisa yang terawal atau akan terakhir
ditampilkan pasti disimpan di array kamar ke-0. Lalu untuk perubahannya, kita buat i-
1, karena kita akan menampilkannya secara terbalik dari kamar ke-i tempat nilai
variabel sisa terakhir yang disimpan hingga kamar ke-0 tempat terawal variabel sisa disi
mpan. Jika kondisi for bernilai benar, maka kita akan mencetak variabel sisa[i].
C. Output: variabel sisa[i].
3) Flowchart
Start

desimal

Tidak
i=0 to desimal>0

Ya

sisa[i]=desimal%2
desimal=desimal/2
cnt=i

i++

i=cnt to i>=0
Tidak
Ya

sisa[i]

i--

End.
4) Pseudecode
Begin
Var
desimal: integer
sisa: array[0…10] of integer
cnt: integer
Read(desimal)
Var
i: integer
For i:=0 to desimal>0
Begin
sisa[i]=desimal%2
desimal=desimal/2
cnt=i
i++
End;
For i=cnt to i>=0
Begin
Write(sisa[i])
i--
End;
End.

5) Program

#include<iostream>
using namespace std;
int main()
{
int desimal, sisa[10], cnt;
cout<<"masukkan bilangan desimal: ";
cin>>desimal;
int i;

//mencari bilangan biner


for(i=0; desimal>0; i++)
{
sisa[i]=desimal%2;
desimal=desimal/2;
cnt=i;
}

//menampilkan bilangan biner


cout<<"hasil konversi ke biner : ";
for(i=cnt; i>=0; i--)
{
cout<<sisa[i];
}

6) Penjelasan running program


• #include<iostream> digunakan untuk memesan cin, cout, endl.
• Using namepace std; digunakan untuk memanggil namespace yang memiliki nama std.
• Int main () adalah program utama.
• Program mulai.
• Pesan memori dengan variabel desimal dengan tipe data integer.
• Pesan memori dengan variabel sisa dengan menggunakan array dan memesan sebanyak 10
tempat dengan tipe data integer.
• Pesan memori dengan variabel cnt dengan tipe data integer.
• Cetak kalimat “masukkan bilangan desimal: “ dilayar.
• Input variabel desimal oleh user. Misal 91.
Tampilan program
masukkan bilangan desimal: 91

• Pesan memori dengan variabel i dengan tipe data integer.


• Masuk ke perulangan for, dengan inisialisasi i=0, kondisi desimal>0, dan perubahan i++.
• Karena 91>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[0]=91%2=1.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=91/2=45.
• Isi variabel cnt=i, jadi cnt=0.
• Lakukan i++, sehingga 0+1=1. Jadi, sekarang i=1.
• Cek kondisi for, karena 45>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[1]=45%2=1.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=45/2=22.
• Isi variabel cnt=i, jadi cnt=1.
• Lakukan i++, sehingga 1+1=2. Jadi, sekarang i=2.
• Cek kondisi for, karena 22>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[2]=22%2=0.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=22/2=11.
• Isi variabel cnt=i, jadi cnt=2.
• Lakukan i++, sehingga 2+1=3. Jadi, sekarang i=3.
• Cek kondisi for, karena 11>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[3]=11%2=1.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=11/2=5.
• Isi variabel cnt=i, jadi cnt=3.
• Lakukan i++, sehingga 3+1=4. Jadi, sekarang i=4.
• Cek kondisi for, karena 5>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[4]=5%2=1.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=5/2=2.
• Isi variabel cnt=i, jadi cnt=4.
• Lakukan i++, sehingga 4+1=5. Jadi, sekarang i=5.
• Cek kondisi for, karena 2>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[5]=2%2=0.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=2/2=1.
• Isi variabel cnt=i, jadi cnt=5.
• Lakukan i++, sehingga 5+1=6. Jadi, sekarang 6.
• Cek kondisi for, karena 1>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%2. Jadi, sisa[6]=1%2=1.
• Kemudian isi variabel desimal= desimal/2. Jadi desimal=1/2=0.
• Isi variabel cnt=i, jadi cnt=6.
• Lakukan i++, sehingga 6+1=1. Jadi, sekarang i=7.
• Cek kondisi for, karena 0>0 bernilai salah, maka keluar dari looping.
• Cetak kalimat “hasil konversi ke biner : “ di layar.
• Masuk ke perulangan for untuk menampilkan hasil konversi, dengan inisialisasi i=cnt dan
kondisi i>=0, serta perubahan i--.
• Karean cnt tadi didapatkan cnt=6, jadi i=6. Cek kondisi 6>=0. Karena bernilai benar,
maka:
• Cetak sisa[i], sehingga cetak sisa[6]=1.
• Lakukan perubahan i--, sehingga 6-1=5. Jadi i=5.
• Cek kondisi 5>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[5]=0.
• Lakukan perubahan i--, sehingga 5-1=4. Jadi i=4.
• Cek kondisi 4>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[4]=1.
• Lakukan perubahan i--, sehingga 4-1=3. Jadi i=3.
• Cek kondisi 3>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[3]=1.
• Lakukan perubahan i--, sehingga 3-1=2. Jadi i=2.
• Cek kondisi 2>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[2]=0.
• Lakukan perubahan i--, sehingga 2-1=1. Jadi i=1.
• Cek kondisi 1>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[1]=1.
• Lakukan perubahan i--, sehingga 1-1=0. Jadi i=0.
• Cek kondisi 0>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[0]=1.
• Lakukan perubahan i--, sehingga 0-1=-1. Jadi i=-1.
• Cek kondisi -1>=0. Karena bernilai salah maka kelur dari looping.
• Tampilan program
masukkan bilangan desimal: 91
hasil konversi ke biner : 1011011

• Program selesai.
7) Tampilan program

b. Konversi bilangan decimal ke oktal


1) Deskripsi program
Pada program ini kita menginginkan output berupa hasil konversi dari bilangan decimal ke
bilangan oktal. Pertama-tama, kita tentukan dulu variabel yang akan kita gunakan. Pertama
kita akan menggunakan variabel desimal untuk menampung nilai bilangan decimal yang
ingin dikonversi. Kemudian, dalam konversi nanti, setiap decimal akan dibagi oleh 8 dan
sisa pembagian bilangan decimal dengan 8 nanti yang akan disimpan untuk bilangan oktal.
Oleh karena itu kita akan menambahkan satu variabel lagi, yaitu variabel sisa dengan tipe
data char. Variabel sisa akan kita deklarasikan sebagai array dengan memesan 10 tempat.
Diperlukannya array agar nanti memudahkan untuk menyimpan setiap nilai variabel sisa
dari setiap sisa pembagian bilangan decimal dengan 8. Kemudian, dalam proses
mengkonversi ke bilangan oktal nanti, bilangan decimal akan terus dibagi oleh 8, dimana
nanti hasil sisa baginya akan disimpan untuk bilangan oktal. Desimal akan terus dibagi 8
sampai nanti didapatkan hasil bagi antara bilangan decimal dengan 8 adalah 0. Oleh karena
itu, dalam proses mengkonversi nanti kita akan menggunakan pernyataan perulangan.
Dalam perulangan nanti kita akan menggunakan variabel i dengan tipe data integer. Lalu,
untuk menampilkan hasil konversi nanti, kita akan menampilkan sisa bagi antara bilangan
decimal dengan 8 secara berurut dari bawah ke atas (dari sisa pembagian terakhir-sisa
pembagian terawal). Jadi, dalam menampilkan hasil konversi nanti kita juga akan
menggunakan pernyataan perulangan. Untuk memudahan penampilan hasil konversi nanti,
kita akan menambahkan satu variabel lagi, yaitu variabel cnt untuk menampung nilai i
terakhir yang dilakukan perulangan saat perulangan untuk mencari bilangan oktal.
2) Kelebihan program
A. Input: variabel desimal.
B. Proses: untuk mencari bilangan oktal, kita akan menggunakan pernyataan perulangan.
Dalam perulangan ini kita akan menggunakan variabel i. karena penamaan tempat/
kamar pada array selalu dimulai dari 0, maka kita akan inisialisasikan i sama dengan 0.
Lalu, karena bilangan decimal nantinya akan terus dibagi 8 sampai didapatkan hasil
baginya sama dengan nol, maka untuk perulangan ini kita buat kondisinya adalah
variabel desimal lebih dari nol. Kemudian, jika kondisi dari perulangan masih terus
memenuhi, maka, pertama kita akan mengisi variabel sisa dengan variabel desimal
modulus 8. Setiap nilai variabel sisa ini akan disimpan sebagai array. Kemudian kita isi
variabel desimal dengan variabel desimal dibagi 8. Setelah itu, kita akan menyimpan
atau mengisi variabel cnt dengan variabel i yang sedang dilakukan perulang tersebut.
Kemudian, perulangan akan terus dilakukan, dan setiap nilai variabel sisa akan disimpan
semua sebagai array. Variabel sisa inilah nanti yang akan disimpan untuk bilangan oktal.
Lalu perulangan akan berhenti mengulang ketika sudah didapatkan nanti nilai variabel
desimal sudah kurang dari atau sama dengan nol. Selanjutnya, barulah kita akan
mencetak hasil konversi ke bilangan oktal. Seperti yang sudah disebutkan sebelumnya,
hasil konversi bilangan oktal merupakan nilai dari setiap nilai variabel sisa yang
disimpan, namun akan ditampilkan secara berurut dari bawah ke atas, atau dari nilai sisa
terakhir yang disimpan hingga nilai sisa terawal. Jadi, untuk menampilkan hasil
konversi nanti maka kita akan menggunakan pernyataan for dengan inisialisasi variabel
i sama dengan variabel cnt. Lalu, untuk kondisinya adalah variabel i lebih dari atau sama
dengan 0. Karena nilai variabel sisa yang terawal atau akan terakhir ditampilkan pasti
disimpan di array kamar ke-0. Lalu untuk perubahannya, kita buat i-1, karena kita akan
menampilkannya secara terbalik dari kamar ke-i tempat nilai variabel sisa terakhir yang
disimpan hingga kamar ke-0 tempat terawal variabel sisa disimpan. Jika kondisi for
bernilai benar, maka kita akan mencetak variabel sisa[i].
C. Output: variabel sisa[i].
3) Flowchart
Start

desimal

Tidak
i=0 to desimal>0

Ya

sisa[i]=desimal%8
desimal=desimal/8
cnt=i

i++

i=cnt to i>=0
Tidak
Ya

sisa[i]

i--

End.
4) Pseudecode
Begin
Var
desimal: integer
sisa: array[0…10] of integer
cnt: integer
Read(desimal)
Var
i: integer
For i:=0 to desimal>0
Begin
sisa[i]=desimal%8
desimal=desimal/8
cnt=i
i++
End;
For i=cnt to i>=0
Begin
Write(sisa[i])
i--
End;
End.

5) Program

#include<iostream>
using namespace std;
int main()
{
int desimal, sisa[10], cnt;
cout<<"masukkan bilangan desimal: ";
cin>>desimal;
int i;

//mencari bilangan biner


for(i=0; desimal>0; i++)
{
sisa[i]=desimal%8;
desimal=desimal/8;
cnt=i;
}

//menampilkan bilangan biner


cout<<"hasil konversi ke biner : ";
for(i=cnt; i>=0; i--)
{
cout<<sisa[i];
}

6) Penjelasan running program


• #include<iostream> digunakan untuk memesan cin, cout, endl.
• Using namepace std; digunakan untuk memanggil namespace yang memiliki nama std.
• Int main () adalah program utama.
• Program mulai.
• Pesan memori dengan variabel desimal dengan tipe data integer.
• Pesan memori dengan variabel sisa dengan menggunakan array dan memesan sebanyak 10
tempat dengan tipe data integer.
• Pesan memori dengan variabel cnt dengan tipe data integer.
• Cetak kalimat “masukkan bilangan desimal: “ dilayar.
• Input variabel desimal oleh user. Misal 2857.
Tampilan program
masukkan bilangan desimal: 2857

• Pesan memori dengan variabel i dengan tipe data integer.


• Masuk ke perulangan for, dengan inisialisasi i=0, kondisi desimal>0, dan perubahan i++.
• Karena 2857>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%8. Jadi, sisa[0]=2857%8=1.
• Kemudian isi variabel desimal= desimal/8. Jadi desimal=2857/8=357.
• Isi variabel cnt=i, jadi cnt=0.
• Lakukan i++, sehingga 0+1=1. Jadi, sekarang i=1.
• Cek kondisi for, karena 357>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%8. Jadi, sisa[1]=357%8=5.
• Kemudian isi variabel desimal= desimal/8. Jadi desimal=357/2=44.
• Isi variabel cnt=i, jadi cnt=1.
• Lakukan i++, sehingga 1+1=2. Jadi, sekarang i=2.
• Cek kondisi for, karena 44>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%8. Jadi, sisa[2]=44%8=4.
• Kemudian isi variabel desimal= desimal/8. Jadi desimal=44/8=5.
• Isi variabel cnt=i, jadi cnt=2.
• Lakukan i++, sehingga 2+1=3. Jadi, sekarang i=3.
• Cek kondisi for, karena 5>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%8. Jadi, sisa[3]=5%8=5.
• Kemudian isi variabel desimal= desimal/8. Jadi desimal=5/8=0.
• Isi variabel cnt=i, jadi cnt=3.
• Lakukan i++, sehingga 3+1=4. Jadi, sekarang i=4.
• Cek kondisi for, karena 0>0 bernilai salah, maka keluar dari looping.
• Cetak kalimat “hasil konversi ke oktal : “ di layar.
• Masuk ke perulangan for untuk menampilkan hasil konversi, dengan inisialisasi i=cnt dan
kondisi i>=0, serta perubahan i--.
• Karean cnt tadi didapatkan cnt=3, jadi i=3. Cek kondisi 3>=0. Karena bernilai benar,
maka:
• Cetak sisa[i], sehingga cetak sisa[3]=5.
• Lakukan perubahan i--, sehingga 3-1=2. Jadi i=2.
• Cek kondisi 2>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[2]=4.
• Lakukan perubahan i--, sehingga 2-1=1. Jadi i=1.
• Cek kondisi 1>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[1]=5.
• Lakukan perubahan i--, sehingga 1-1=0. Jadi i=0.
• Cek kondisi 0>=0. Karena bernilai benar maka:
• Cetak sisa[i], sehingga cetak sisa[0]=1.
• Lakukan perubahan i--, sehingga 0-1=-1. Jadi i=-1.
• Cek kondisi -1>=0. Karena bernilai benar salah maka kelur dari looping.
• Tampilan program
masukkan bilangan desimal: 2857
hasil konversi ke oktal : 5451

• Program selesai.
7) Tampilan program
c. Konversi bilangan decimal ke hexadecimal
1) Deskripsi program
Pada program ini kita menginginkan output berupa hasil konversi dari bilangan decimal ke
bilangan hexadecimal. Pertama-tama, kita tentukan dulu variabel yang akan kita gunakan.
Pertama kita akan menggunakan variabel desimal untuk menampung nilai bilangan decimal
yang ingin dikonversi. Kemudian, dalam konversi nanti, setiap decimal akan dibagi oleh 16
dan sisa pembagian bilangan decimal dengan 16 nanti yang akan disimpan untuk bilangan
hexadecimal. Oleh karena itu kita akan menambahkan satu variabel lagi, yaitu variabel sisa
dengan tipe data char. Variabel sisa akan kita deklarasikan sebagai array dengan memesan
10 tempat. Diperlukannya array agar nanti memudahkan untuk menyimpan setiap nilai
variabel sisa dari setiap sisa pembagian bilangan decimal dengan 16. Kemudian, dalam
proses mengkonversi ke bilangan hexadesimal nanti, bilangan decimal akan terus dibagi
oleh 16, dimana nanti hasil sisa baginya akan disimpan untuk bilangan hexadesimal.
Desimal akan terus dibagi 16 sampai nanti didapatkan hasil bagi antara bilangan decimal
dengan 16 adalah 0. Oleh karena itu, dalam proses mengkonversi nanti kita akan
menggunakan pernyataan perulangan. Dalam perulangan nanti kita akan menggunakan
variabel i dengan tipe data integer. Lalu, untuk menampilkan hasil konversi nanti, kita akan
menampilkan sisa bagi antara bilangan decimal dengan 16 secara berurut dari bawah ke atas
(dari sisa pembagian terakhir-sisa pembagian terawal). Jadi, dalam menampilkan hasil
konversi nanti kita juga akan menggunakan pernyataan perulangan. Untuk memudahan
penampilan hasil konversi nanti, kita akan menambahkan satu variabel lagi, yaitu variabel
cnt untuk menampung nilai i terakhir yang dilakukan perulangan saat perulangan untuk
mencari bilangan hexadesimal. Lalu, bilangan hexadecimal terdiri dari bilangan 0-15.
Namun, setiap bilangan hexadecimal yang nilainya lebih dari 9, maka akan ditampilkan
sebagai alfabet mulai dari A-F (10-15). Jadi, dalam menampilkan hasil konversi ke bilangan
hexadecimal nanti maka kita juga memerlukan pernyataan kondisi.
2) Kelebihan program
A. Input: variabel desimal.
B. Proses: untuk mencari bilangan hexadesimal, kita akan menggunakan pernyataan
perulangan. Dalam perulangan ini kita akan menggunakan variabel i. karena penamaan
tempat/ kamar pada array selalu dimulai dari 0, maka kita akan inisialisasikan i sama
dengan 0. Lalu, karena bilangan decimal nantinya akan terus dibagi 16 sampai
didapatkan hasil baginya sama dengan nol, maka untuk perulangan ini kita buat
kondisinya adalah variabel desimal lebih dari nol. Kemudian, jika kondisi dari
perulangan masih terus memenuhi, maka, pertama kita akan mengisi variabel sisa
dengan variabel desimal modulus 16. Setiap nilai variabel sisa ini akan disimpan sebagai
array. Kemudian kita isi variabel desimal dengan variabel desimal dibagi 16. Setelah
itu, kita akan menyimpan atau mengisi variabel cnt dengan variabel i yang sedang
dilakukan perulang tersebut. Kemudian, perulangan akan terus dilakukan, dan setiap
nilai variabel sisa akan disimpan semua sebagai array. Variabel sisa inilah nanti yang
akan disimpan untuk bilangan hexadesimal. Lalu perulangan akan berhenti mengulang
ketika sudah didapatkan nanti nilai variabel desimal sudah kurang dari atau sama dengan
nol. Selanjutnya, barulah kita akan mencetak hasil konversi ke bilangan oktal. Seperti
yang sudah disebutkan sebelumnya, hasil konversi bilangan oktal merupakan nilai dari
setiap nilai variabel sisa yang disimpan, namun akan ditampilkan secara berurut dari
bawah ke atas, atau dari nilai sisa terakhir yang disimpan hingga nilai sisa terawal. Jadi,
untuk menampilkan hasil konversi nanti maka kita akan menggunakan pernyataan for
dengan inisialisasi variabel i sama dengan variabel cnt. Lalu, untuk kondisinya adalah
variabel i lebih dari atau sama dengan 0. Karena nilai variabel sisa yang terawal atau
akan terakhir ditampilkan pasti disimpan di array kamar ke-0. Lalu untuk perubahannya,
kita buat i-1, karena kita akan menampilkannya secara terbalik dari kamar ke-i tempat
nilai variabel sisa terakhir yang disimpan hingga kamar ke-0 tempat terawal variabel
sisa disimpan. Lalu, seperti yang telah disebutkan juga, setiap bilangan hexadecimal
yang nilainya lebih dari 9, maka akan ditampilkan sebagai alfabet mulai dari A-F (10-
15). Jadi, kita akan menggunakan pernyataan kondisi if juga didalam perulangan ini.
Jadi, pada pernyataan if pertama, jika bilangan hexadecimal (atau nilai variabel sisa[i])
kurang dari atau sama dengan 9. Jika bernilai benar, maka kita akan mencetak variabel
sia[i] secara biasa. Namun, jika bernilai salah maka akan berlanjut lagi ke if yang kedua.
Jika bilangan hexadecimal (atau nilai variabel sisa[i]) sama dengan 10. Jika bernilai
benar, maka kita akan mencetak bilangan hexadecimal (atau nilai variabel sisa[i])
sebagai “A”. jika bernilai salah, maka akan berlanjut lagi ke if berikutnya. Jika bilangan
hexadecimal (atau nilai variabel sisa[i]) sama dengan 11. Jika bernilai benar, maka kita
akan mencetak bilangan hexadecimal (atau nilai variabel sisa[i]) sebagai “B”. jika
bernilai salah, maka akan berlanjut lagi ke if berikutnya. Jika bilangan hexadecimal
(atau nilai variabel sisa[i]) sama dengan 12. Jika bernilai benar, maka kita akan
mencetak bilangan hexadecimal (atau nilai variabel sisa[i]) sebagai “C”. jika bernilai
salah, maka akan berlanjut lagi ke if berikutnya. Jika bilangan hexadecimal (atau nilai
variabel sisa[i]) sama dengan 13. Jika bernilai benar, maka kita akan mencetak bilangan
hexadecimal (atau nilai variabel sisa[i]) sebagai “D”. jika bernilai salah, maka akan
berlanjut lagi ke if berikutnya. Jika bilangan hexadecimal (atau nilai variabel sisa[i])
sama dengan 14. Jika bernilai benar, maka kita akan mencetak bilangan hexadecimal
(atau nilai variabel sisa[i]) sebagai “E”. jika bernilai salah, maka akan berlanjut lagi ke
if berikutnya. Jika bilangan hexadecimal (atau nilai variabel sisa[i]) sama dengan 15.
Jika bernilai benar, maka kita akan mencetak bilangan hexadecimal (atau nilai variabel
sisa[i]) sebagai “F”.
C. Output: variabel sisa[i].
3) Flowchart
Start

desimal

Tidak
i=0 to desimal>0

Ya

sisa[i]=desimal%16
desimal=desimal/16
cnt=i

i++

i=cnt to i>=0
Tidak
Ya

Tidak
sisa[i]<=9

Ya

sisa[i]

Tidak Tidak Tidak Tidak


sisa[i] sisa[i] sisa[i] sisa[i]
==10 ==11 ==12 ==13

Ya Ya Ya Ya

“A” “B” “C” “D”

Tidak Tidak
sisa[i] sisa[i] i--
End.
==14 ==15

Ya Ya

“E” “F”
4) Pseudecode
Begin
Var
desimal: integer
sisa: array[0…10] of integer
cnt: integer
Read(desimal)
Var
i: integer
For i:=0 to desimal>0
Begin
sisa[i]=desimal%16
desimal=desimal/16
cnt=i
i++
End;
For i=cnt to i>=0
Begin
If (sisa[i]<=9) then
Write(sisa[i])
If (sisa[i]==10) then
Write(‘A’)
If (sisa[i]==11) then
Write(‘B’)
If (sisa[i]==12) then
Write(‘C’)
If (sisa[i]==13) then
Write(‘D’)
If (sisa[i]==14) then
Write(‘E’)
If (sisa[i]==15) then
Write(‘F’)
i--
End;
End.
5) Program

#include<iostream>
using namespace std;
int main()
{
int desimal, sisa[10], cnt;
cout<<"masukkan bilangan desimal : ";
cin>>desimal;
int i;

//mencari bilangan biner


for(i=0; desimal>0; i++)
{
sisa[i]=desimal%16;
desimal=desimal/16;
cnt=i;
}

//menampilkan bilangan hexadesimal


cout<<"hasil konversi ke hexadesimal: ";
for(i=cnt; i>=0; i--)
{
if(sisa[i]<=9)
cout<<sisa[i];
if(sisa[i]==10)
cout<<"A";
if(sisa[i]==11)
cout<<"B";
if(sisa[i]==12)
cout<<"C";
if(sisa[i]==13)
cout<<"D";
if(sisa[i]==14)
cout<<"E";
if(sisa[i]==15)
cout<<"F";
}

6) Penjelasan running program


• #include<iostream> digunakan untuk memesan cin, cout, endl.
• Using namepace std; digunakan untuk memanggil namespace yang memiliki nama std.
• Int main () adalah program utama.
• Program mulai.
• Pesan memori dengan variabel desimal dengan tipe data integer.
• Pesan memori dengan variabel sisa dengan menggunakan array dan memesan sebanyak 10
tempat dengan tipe data integer.
• Pesan memori dengan variabel cnt dengan tipe data integer.
• Cetak kalimat “masukkan bilangan desimal: “ dilayar.
• Input variabel desimal oleh user. Misal 1022.
Tampilan program
masukkan bilangan desimal: 1022

• Pesan memori dengan variabel i dengan tipe data integer.


• Masuk ke perulangan for, dengan inisialisasi i=0, kondisi desimal>0, dan perubahan i++.
• Karena 1022>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%16. Jadi, sisa[0]=1022%16=14.
• Kemudian isi variabel desimal= desimal/16. Jadi desimal=1022/16=63.
• Isi variabel cnt=i, jadi cnt=0.
• Lakukan i++, sehingga 0+1=1. Jadi, sekarang i=1.
• Cek kondisi for, karena 63>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%16. Jadi, sisa[1]=63%16=15.
• Kemudian isi variabel desimal= desimal/16. Jadi desimal=63/16=3.
• Isi variabel cnt=i, jadi cnt=1.
• Lakukan i++, sehingga 1+1=2. Jadi, sekarang i=2.
• Cek kondisi for, karena 3>0 bernilai benar, maka:
• Isi variabel sisa[i]=desimal%16. Jadi, sisa[2]=3%16=3.
• Kemudian isi variabel desimal= desimal/16. Jadi desimal=3/16=0.
• Isi variabel cnt=i, jadi cnt=2.
• Lakukan i++, sehingga 2+1=3. Jadi, sekarang i=3.
• Cek kondisi for, karena 0>0 bernilai salah, maka keluar dari looping.
• Cetak kalimat “hasil konversi ke oktal : “ di layar.
• Masuk ke perulangan for untuk menampilkan hasil konversi, dengan inisialisasi i=cnt dan
kondisi i>=0, serta perubahan i--.
• Karean cnt tadi didapatkan cnt=2, jadi i=2. Cek kondisi 2>=0. Karena bernilai benar,
maka:
• Cek kondisi if, jika sisa[2]<=9. Karena bernilai benar, maka cetak sisa[2]. Jadi, cetak 3
dilayar.
• Cetak kondisi if lagi, jika sisa[2]==10. Karena bernilai salah, maka:
• Cek kondisi if berikutnya, jika sisa[2]==11. Karena bernilai salah, maka:
• Cek kondisi if lagi, jika sisa[2]==12. Karena bernilai salah, maka:
• Cek kondisi if lagi, jika sisa[2]==13. Karena bernilai salah, maka:
• Cek kondisi if selanjutnya, jika sisa[2]==14. Karena bernilai salah, maka:
• Cek kondisi if terakhir, jika sisa[2]==15. Karena bernilai salah, maka:
• Lakukan i--, sehingga i=2-1=1. Jadi, sekarang i=1.
• Cek kondisi for, jika 1>=0. Karena bernilai benar, maka:
• Pertama, cek kondisi if, jika sisa[1]<=9. Karena bernilai salah, maka:
• Cetak kondisi if lagi, jika sisa[1]==10. Karena bernilai salah, maka:
• Cek kondisi if berikutnya, jika sisa[1]==11. Karena bernilai salah, maka:
• Cek kondisi if lagi, jika sisa[1]==12. Karena bernilai salah, maka:
• Cek kondisi if lagi, jika sisa[1]==13. Karena bernilai salah, maka:
• Cek kondisi if selanjutnya, jika sisa[1]==14. Karena bernilai salah, maka:
• Cek kondisi if terakhir, jika sisa[1]==15. Karena bernilai benar, maka cetak “F” dilayar.
• Lakukan i--, sehingga i=1-1=0. Jadi, sekarang i=0.
• Cek kondisi for, jika 0>=0. Karena bernilai benar, maka:
• Pertama, cek kondisi if, jika sisa[0]<=9. Karena bernilai salah, maka:
• Cetak kondisi if lagi, jika sisa[0]==10. Karena bernilai salah, maka:
• Cek kondisi if berikutnya, jika sisa[0]==11. Karena bernilai salah, maka:
• Cek kondisi if lagi, jika sisa[0]==12. Karena bernilai salah, maka:
• Cek kondisi if lagi, jika sisa[0]==13. Karena bernilai salah, maka:
• Cek kondisi if selanjutnya, jika sisa[0]==14. Karena bernilai benar, maka cetak “E” dilayar.
• Cek kondisi if terakhir, jika sisa[1]==15. Karena salah, maka:
• Lakukan i--, sehingga i=0-1=0. Jadi, sekarang i=-1.
• Cek kondisi for, jika -1>=0. Karena bernilai salah, maka kelur dari looping.
• Tampilan program
masukkan bilangan desimal: 2857
hasil konversi ke biner : 3FE

• Program selesai.
7) Tampilan program
3. Buatlah penyelesaian persamaan linier menggunakan matriks.
Jawab:
1) Deskripsi program
Pada program ini kita menginginan output berupa penyelesaian persamaan linier, dengan
prosesnya menggunaan matriks. Sebelum itu, kita tentukan terlebih dahulu variabel yang akan
kita gunakan. Pada program ini kita akan menggunakan variabel n untuk menampung jumlah
variabel yang akan dicari penyelesaian persamaan liniernya. Kemudian kita akan menggunakan
variabel menggunakan array dua dimensi, dini kita akan menamainya variabel a. variabel a ini
digunakan untuk menampung entri nilai setiap koefisien dari persamaan linier yang akan dicari
penyelesaiannya. Kemudian indeks dari variabel a adalah n untuk jumlah baris, dan n untuk
kolom. Karena matriks yang dapat dicari penyelesaian liniernya haruslah memiliki diagonal
utama. Jadi, kita beri indeks matriks a[n][n]. kemudian, untuk menampung nilai konstanta dari
persamaan linier yang akan dicari, maka kita memerlukan variabel lagi, disini kita akan
mendeklarasikannya sebagai variabel b[n]. lalu, untuk menginputkan entri matriks atau
koefisien dari persamaan linier yang akan dicari, maka kita akan menggunakan perulangan.
Disini kita akan menggunakan perulangan dengan variabel i. lalu, untuk menginputkan
konstanta kita juga akan menggunakan variabel i dengan tipe data integer. Kemudian, untuk
mencari penyelesaian persamaan linier, kita akan menggunakan metode eliminasi gauss dan
metode subtitusi mundur. Dalam prosesnya nanti, kita akan menggunakan perulangan juga, dan
kita akan menambahkan variabel j dan k untuk perulangan dengan tipe data integer. Kemudian,
untuk menampung hasil dari penyelesaian persamaan linier, maka kita akan menggunakan
variabel x dengan tipe data float. Variabel x ini akan kita gunakan array, dengan indeks n.
kemudian, untuk menampilkan hasil dari penyelesaian sistem persamaan linier, kita akan
menggunakan perulangan kembali, dengan menggunakan pernyataan for.
2) Kelebihan program
A. Input: variabel n.
B. Proses: setelah menginputkan variabel n, maka akan didapat untuk variabel a yaitu
a[n][n] dan variabel yatu b[n]. lalu, untuk menginput entri nilai dari matriks a[n][n] atau
koefisien dari persamaan linier, kita akan menggunakan pernyataan perulangan. Kita
akan menggunakan pernyataan for dengan inisialisasi i sama dengan nol, i kurang dari
n, dan perubahan i++. Jika kondisi bernilai benar, maka kita akan menginputkan nilai
untuk a[n][n]. dimulai dari menginputkan nilai untuk a[0][0] sampai maksimum kita
akan menginputkan nilai untuk a[n-1][n-1]. Lalu kita akan menginputkan juga konstanta
untuk persamaan linier, maka kita akan menginputkan isi dari variabel b[n]. untuk
menginputkannya, kita akan menggunakan pernyataan for dengan inisialisasi i sama
dengan nol, kondisi i kurang dari n, dan perubahan i++. Kita akan mulai menginputkan
nilai konstanta dimulai dari b[0] hingga maksimum b[n-1]. Kemudian, barulah kita akan
mencari penyelesaian persamaan linier dengan menggunakan eliminasi gauss dan
substitusi mundur. Pertama, eliminasi gauss. Untuk eliminasi gauss, kita akan
menggunakan pernyataan for juga, dimulai dari k sama dengan nol, kondisi k kurang
dari n-1, dan perubahan k++. Kemudian kita akan menggunakan for ladi didalamnya
(for di dalam for), dengan inisialisasi i sama dengan k+1, dan kondisi i kurang dari n,
dan perubahan i++. Jika bernilai benar, maka kita isi variabel factor sama dengan a[i][k]
dibagi a[k][k]. variabel factor ini kita deklarasikan dengan tipe data float. Kemudian
kita akan berlanjut ke pernyataan for lagi (for kedua di dalam for). Kita akan mulai dari
inisialisasi j sama dengan k+1, kondisi j kurang dari n, dan perubahan j++. Jika bernilai
benar, maka kita isi a[i][j] dengan a[i][j] dikurang factor dikali a[k][j]. jika kondisi
perulangan j sudah tidak memenuhi, maka setelah keluar dari perulangan ini kita isi b[i]
sama dengan b[i] dikurang factor dikali b[k]. lalu isi a[i][k] dengan nol. Kemudian
lakukan i++. Jika kondisi perulangan i sudah tidak memenuhi, maka lakukan k++. Jika
kondisi perulangan k sudah tidak memenuhi, maka kita keluar dari perulangan.
Berikutnya adalah metorde subtitusi mundur. Pertama, kita akan mengisi variabel x[n-
1] dengan b[n-1] dibagi a[n-1][n-1]. Kemudian akan berlanjut ke pernyataan for dengan
inisialisasi i sama dengan n-2, kondisi i lebih dari atau sama dengan nol, dan perubahan
i--. Jika bernilai benar, maka kita isi variabel sum dengan b[i]. setelah itu, masuk ke per
Nyataan for lagi (di dalam for), dengan inisialisasi j sama dengan i+1, kondisi j kurang
dari n, dan perubahan j++. Jika bernilai benar, maka kita isi variabel sum sama dengan
sum dikurang a[i][j] dikali x[j]. kemudian laukan j++. Jika kondisi perulangan j sudah
tidak memenuhi, maka keluar dari perulangan, kemudian isi variabel x[i] dengan sum
dibagi a[i][i]. lalu lakukan i--. Jika kondisi perulangan i sudah tidak memenuhi, maka
keluar dari perulangan. Selanjutnya, kita akan mencetak penyelesaian dari persamaan
linier dari serangkaian proses di atas. Karena variabel untuk menampung hasil
penyelesaian merupakan variabel x, maka kita akan mencetak variabel x. untuk
mencetaknya, kita juga akan menggunakan pernyataan perulangan. Disini kita akan
menggunakan pernyataan for dengan inisialisasi i sama dengan nol, kondisi i kurang
dari n, dan perubahan i++. Jika kondisi memenuhi, maka kita akan mencetak x[i]. jika
tidak memenuhi, maka keluar dari perulangan dan program pun berakhir.
C. Output: x[i].
3) Flowchart
Start

Tidak
i=0 to n
Ya
Tidak
j=0 to n

Ya

a[i][j]

j++

i++

x
X

Tidak
i=0 to n

Ya

b[i]

i++

k=0 to n-1
Tidak
Ya
Tidak
i=k+1 to n

Ya

factor=a[i][k]/a[k][k]

Tidak
j=k+1 to n

Ya

a[i][j]=a[i][j]-factor*a[k][j]

j++

b[i]=b[i]-factor*b[k]
a[i][k]=0

i++

k++

x
X

x[n-1]=b[n-1]/a[n-1][n-1]

Tidak
i=n-2 to i>=0

Ya

sum=b[i]

Tidak
j=i+1 to n

Ya

sum=sum-a[i][j]*x[j]

j++

x[i]=sum/a[i][i]

i--

i=0 to n
Tidak
Ya

“x”, i+1, “ = “, x[i]

i++

End.
4) Pseudecode

Begin
Var
n: integer
Read(n)
Var
a: array[0…n, 0…n] of float
b: array[0…n] of float
For int i:=0 to n
Begin
For int j:=0 to n
Begin
Read(a[i][j])
j++
End;
i++
End;
For int i:= 0 to n
Begin
Read(b[i])
i++
End;
For int k:=0 to n-1
Begin
For int i:=k+1 to n
Begin
Var factor: float
factor:= a[i][k]/a[k][k]
For int j:=k+1 to n
Begin
a[i][j]:= a[i][j] – factor*aa[k][j]
j++
End;
b[i]:= b[i] – factor*b[k]
a[i][k]:=0
i++
End;
k++
End;
Var
x: array[0…n] of float
x[n-1]:= b[n-1]/a[n-1][n-1]
For int i:=n-2 to i>=0
Begin
Var sum: float
Sum:= b[i]
For int j:=i+1 to n
Begin
sum:= sum – a[i][j]*x[j]
j++
End;
x[i]:= sum/a[i][i]
i--
End;
For int i:=0 to n
Begin
Writeln(“x”, i+1, “ = “, x[i])
i++
End;
End.

5) Program
#include <iostream>
using namespace std;

int main()
{
int n;
cout << "Masukkan jumlah variabel: ";
cin >> n;

// deklarasi array untuk matriks koefisien dan matriks konstanta


float a[n][n];
float b[n];

// input matriks koefisien dan matriks konstanta


cout << "Masukkan matriks koefisien: " << endl;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin >> a[i][j];
}
}
cout << "Masukkan matriks konstanta: " << endl;
for(int i=0; i<n; i++)
{
cin >> b[i];
}

// metode eliminasi Gauss


for(int k=0; k<n-1; k++)
{
for(int i=k+1; i<n; i++)
{
float factor = a[i][k]/a[k][k];
for(int j=k+1; j<n; j++)
{
a[i][j] = a[i][j] - factor*a[k][j];
}
b[i] = b[i] - factor*b[k];
a[i][k] = 0;
}
}

// metode substitusi mundur


float x[n];
x[n-1] = b[n-1]/a[n-1][n-1];
for(int i=n-2; i>=0; i--)
{
float sum = b[i];
for(int j=i+1; j<n; j++)
{
sum = sum - a[i][j]*x[j];
}
x[i] = sum/a[i][i];
}

// output hasil
cout << "Solusi dari persamaan linear tersebut adalah:" << endl;
for(int i=0; i<n; i++)
{
cout << "x" << i+1 << " = " << x[i] << endl;
}

return 0;
}

6) Penjelasan running program


• #include<iostream> digunakan untuk memesan cin, cout, endl.
• Using namepace std; digunakan untuk memanggil namespace yang memiliki nama std.
• Int main () adalah program utama.
• Program mulai.
• Pesan memori dengan variabel n dengan tipe data integer.
• Cetak kalimat "Masukkan jumlah variabel: " dilayar.
• Input variabel n oleh user. Misal 3.
• Tampilan program
Masukkan jumlah variabel: 3

• Pesan memori dengan variabel array dua dimensi dengan nama variabel a dimana indeks
pertama memesan n kamar yang menunjukan baris dan indeks kedua memesan n kamar
yang menunjukkan kolom dengan tipe data float.
• Pesan memori dengan variabel array dengan nama variabel b sebanyak n kamar.
• Cetak kalimat "Masukkan matriks koefisien: " dilayar.
• Lakukan fungsi endl agar berpindah ke baris berikutnya.
• Masuk ke perulangan for, dengan inisialisasi i=0, kondisi i<n dan perubahan i++.
• Karena 0<3 bernilai benar, maka:
• Masuk ke perulangan for (di dalam for) dengan inisialisasi j=0, kondisi j<n, dan
perubahan j++.
• Karena 0<3 bernilai benar, maka:
• Input a[i][j], atau input a[0][0] oleh user. Misal 2.
Tampilan program

Masukkan jumlah variabel: 3


Masukkan matriks koefisien:
2

• Lakukan j++, sehingga j=0+1=1. Jadi, sekarang j=1.


• Karena 1<3 bernilai benar, maka:
• Input a[i][j], atau input a[0][1] oleh user. Misal 5.
Tampilan program

Masukkan jumlah variabel: 3


Masukkan matriks koefisien:
2
5

• Lakukan j++, sehingga j=1+1=2. Jadi, sekarang j=2.


• Karena 2<3 bernilai benar, maka:
• Input a[i][j], atau input a[0][2] oleh user. Misal 3.
Tampilan program

Masukkan jumlah variabel: 3


Masukkan matriks koefisien:
2
5
3

• Lakukan j++, sehingga j=2+1=3. Jadi, sekarang j=3.


• Karena 3<3 bernilai salah, maka keluar dari perulangan j.
• Lakukan i++, sehingga i=0+1=1. Jadi, sekarang i=1.
• Karena 1<3 bernilai benar, maka:
• Masuk ke perulangan for (di dalam for) dengan inisialisasi j=0, kondisi j<n, dan
perubahan j++.
• Karena 0<3 bernilai benar, maka:
• Input a[i][j], atau input a[1][0] oleh user. Misal 4.
Tampilan program

Masukkan jumlah variabel: 3


Masukkan matriks koefisien:
2
5
3
3

• Lakukan j++, sehingga j=0+1=1. Jadi, sekarang j=1.


• Karena 1<3 bernilai benar, maka:
• Input a[i][j], atau input a[1][1] oleh user. Misal 4.
Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4

• Lakukan j++, sehingga j=1+1=2. Jadi, sekarang j=2.


• Karena 2<3 bernilai benar, maka:
• Input a[i][j], atau input a[1][2] oleh user. Misal 2.
• Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4
2

• Lakukan j++, sehingga j=2+1=3. Jadi, sekarang j=3.


• Karena 3<3 bernilai salah, maka keluar dari perulangan j.
• Lakukan i++, sehingga i=1+1=2. Jadi, sekarang i=2.
• Karena 2<3 bernilai benar, maka:
• Masuk ke perulangan for (di dalam for) dengan inisialisasi j=0, kondisi j<n, dan
perubahan j++.
• Karena 0<3 bernilai benar, maka:
• Input a[i][j], atau input a[2][0] oleh user. Misal 1.
Tampilan program

Masukkan jumlah variabel: 3


Masukkan matriks koefisien:
2
5
3
3
4
2
1

• Lakukan j++, sehingga j=0+1=1. Jadi, sekarang j=1.


• Karena 1<3 bernilai benar, maka:
• Input a[i][j], atau input a[2][1] oleh user. Misal 3.
Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4
2
1
3

• Lakukan j++, sehingga j=1+1=2. Jadi, sekarang j=2.


• Karena 2<3 bernilai benar, maka:
• Input a[i][j], atau input a[2][2] oleh user. Misal 1.
Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4
2
1
3
1
• Lakukan j++, sehingga j=2+1=3. Jadi, sekarang j=3.
• Karena 3<3 bernilai salah, maka keluar dari perulangan j.
• Lakukan i++, sehingga i=2+1=3. Jadi, sekarang i=3.
• Karena 3<3 bernilai salah, maka keluar dari looping.
• Cetak kalimat "Masukkan matriks konstanta: " dilayar.
• Lakukan fungsi endl agar berpindah ke baris berikutnya.
• Masuk ke pernyataan for, dengan inisialisasi i=0, kondisi i<n, dan perubahan i++.
• Karena 0<3 bernilai benar, maka:
• Input b[i] atau b[0] oleh user, misal 1.
Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4
2
1
3
1
Masukkan matriks konstanta:
1

• Lakukan i++ sehingga i=0+1=1. Jadi i=1.


• Karena 1<3 bernilai benar, maka:
• Input b[i] atau b[1] oleh user, misal -3.
• Lakukan i++, sehingga i=1+1=2. Jadi i=2.
• Karena 2<3 bernilai benar, maka:
• Input b[i] atau b[2] oleh user, misal 2.
Tampilan program

Masukkan jumlah variabel: 3


Masukkan matriks koefisien:
2
5
3
3
4
2
1
3
1
Masukkan matriks konstanta:
1
-3
2

• Lakukan i++, sehingga i=2+1=3. Jadi i=3.


• Karena 3<3 bernilai salah, maka keluar dari looping.
• Masuk ke pernyataan for, dengan inisialisasi k=0 , kondisi k<n-1 dan perubahan k++.
• Karena 0<2 bernilai benar, maka:
• Masuk ke pernyataan for (di dalam for) dengan inisialisasi i=k+1, kondisi i<n, dan
perubahan i++.
• Karena 1<3 bernilai benar, maka:
• Pesan memori dengan variabel factor dengan tipe data float
• Isi factor= a[i][k]/a[k][k].
• Jadi, factor = a[1][0]/a[0][0]= 3/2= 1.5.
• Masuk ke pernyataan for, dengan inisialisasi j=k+1 , kondisi j<n dan perubahan j++.
• Karena 1<3 bernilai benar, maka:
• Isi a[i][j] = a[i][j] – factor*a[k][j].
• Jadi, isi a[1][1]= a[1][1] – 1,5*a[0][1]= 4 – 1,5*5= -3,5.
• Lakukan j++, j=1+1=2. Jadi j=2.
• Isi a[1][2]= a[1][2] – 1,5*a[0][2]= 2 – 1,5*3= -2,5.
• Lakukan j++, j=2+1=3. Jadi j=3. Karena 3<3 bernilai salah, maka keluar dari perulangan
j.
• Isi b[i]=b[i] – factor*a[k][j]. jadi, b[1]= b[1] – 1,5*b[0]= -3-1,5*1=-4,5.
• Isi a[i][k]=0. Jadi, a[1][0]=0.
• Lakukan, i++, i=1+1=2.
• i=2, 2<3 benar, maka:
• factor= a[2][0]/a[0][0]= ½ = 0,5.
• j=1, 1<3 benar, maka:
• a[2][1]=a[2][1] – 0,5*a[0][1]= 3-0,5*5=0,5.
• j++, j=2. 2<3 benar, maka:
• a[2][2]=a[2][2] – 0,5*a[0][2]=1-0,5*3=-0,5.
• j++, j=3. 3<3 salah, maka:
• b[2]=b[2]-0,5*b[0]= 2-0,5*1=1,5.
• a[2][0]=0.
• i++, i=3. 3<3 salah, maka:
• K++, k=0+1=1. 1<2 benar, maka:
• i=2, 2<3 benar, maka:
• factor= a[2][1]/a[1][1]= 0.5/ -3,5= -0,142857.
• j=2, 2<3 benar, maka:
• a[2][2]= a[2][2] – (-0,142857)*a[1][2] = -0,5 – (-0,142857)*(-2,5)=-0,857.
• j++, j=2+1=3. 3<3 salah, maka:
• b[2]= b[2]-( -0,142857)*b[1]= 1,5-(-0,142857)*(-4,5)=0,857.
• i++, i=2+1=3. 3<3 salah, maka:
• k++, k=1+1=2. 2<2 salah, maka:
• Pesan memori dengan variabel array dengan nama variabel x sebanyak n kamar.
• Isi x[n-1]= b[n-1]/ a[n-1][n-1].
• x[2]=b[2]/a[2][2]= 0,857/(-0,857)=-1. Jadi x[2]= -1.
• i=1, 1>=0 benar, maka:
• sum=b[i]=b[1]=-4,5.
• j=2, 2<3 benar, maka:
• sum= sum – a[i][j]*x[j].
• Jadi, sum= -4,5 – a[1][2]*x[2]= -4,5 – (-2,5) *(-1)= -7.
• j++, j=2+1=3. 3<3 salah, maka:
• x[i]=sum/a[i][i].
• Jadi, x[1]=-6,5 / a[1][1] = -7/-3,5=2. Jadi x[1]=2.
• i--, i=1-1=0. Karena 0>=0 benar, maka:
• sum=b[0]=1.
• j=1, 1<3 benar, maka:
• sum= 1 – a[0][1]*x[1]= 1 – 5*2 = -9.
• j++, j=1+1=2. 2<3 benar, maka:
• sum= -9 – a[0][2]*x[2] = -9 – 3*(-1) = -6.
• j++, j=2+1=3. Karena 3<3 salah, maka:
• x[0]= -6/ a[0][0]= -6/2 = -3. Jadi, x[0]= -3.
• i--, i=0-1=-1. Karena -1>=0 salah, maka keluar dari looping.
• cetak "Solusi dari persamaan linear tersebut adalah: “ dilayar.
• Lakukan fungsi endl agar berpindah ke baris berikutnya.
• i=0. Karena 0<3 benar, maka:
• Cetak “x”, i+1, “ = “, dan x[0] dilayar.
Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4
2
1
3
1
Masukkan matriks konstanta:
1
-3
2
Solusi dari persamaan linear tersebut adalah:
x1 = -3

• i++, i=0+1=1. Karena 1<3 benar maka:


• Cetak “x”, 1+1, “ = “, dan x[1] dilayar.
• i++, i=1+1=2. Karena 2<3 benar maka:
• Cetak “x”, 2+1, “ = “, dan x[2] dilayar.
Tampilan program
Masukkan jumlah variabel: 3
Masukkan matriks koefisien:
2
5
3
3
4
2
1
3
1
Masukkan matriks konstanta:
1
-3
2
Solusi dari persamaan linear tersebut adalah:
x1 = -3
x2 = 2
x3 = -1

• i++, i=2+1=3. Karena 3<3 salah, maka keluar dari looping.


• Program selesai.
7) Tampilan program

Anda mungkin juga menyukai