Algoritma dan Pemrograman (C++)
Algoritma dan Pemrograman
Algoritma
Algoritma adalah
suatu upaya dengan urutan operasi yang disusun secara logis dan sistematis
untuk menyelesaikan suatu masalah untuk menghasilkan suatu output tertentu
(Kani, 2020, 1.19). Algoritma merupakan solusi detail secara prosedural dari
suatu persoalan dalam notasi algoritmik.
Paradigma
Paradigma
adalah sudut pandang tertentu yang diprioritaskan, terhadap kelompok problema,
realitas, keadaan, dan lainnya. Paradigma membatasi dan mengkondisikan alur
berpikir kita, mengarahkan kita terhadap beberapa atribut dan membuat kita
mengabaikan atribut lainnya. Jelas disini sebuah paradigma hanya memberikan pandangan
yang terbatas terhadap sebuah realitas.
Flowchart
Flowchart adalah gambaran langkah-langkah terpisah dari suatu proses secara berurutan. Flowchart dapat diadaptasi untuk berbagai tujuan, dan dapadt digunakan untuk menggambarkan proses manufaktur, proses administrasi, atau rencana proyek. Flowchart sendiri memiliki simbol simbol sebagai inisialisasi fungsi eksekusi, seperti di bawah ini.
Contoh
flowchart :
Notasi
Notasi Algoritmik akan dipakai sebagai standard dalam
menuliskan teks algoritma. Notasi akan merangkum semua konsep pemrograman
prosedural yang harus dapat dengan mudah dituliskan di atas kertas. Notasi
lebih berorientasi kepada detail design dibandingkan coding. Notasi ini
hanyalah alat untuk menyusun rancangan secara prosedural yang selanjutnya akan
diubah menjadi salah satu program dalam bahasa tertentu. Notasi juga dapat
disesuaikan dan dibuat lebih dekat dengan bahasa pemrograman yang dipakai.
Teks
algoritma selalu terdiri dari tiga bagian, yaitu :
-
Judul
-
Kamus
-
Deskripsi
Contoh
notasi algoritmik :
|
|
|
|
|
|
|
|
|
Programming
Programming adalah suatu kegiatan
dimana kita menuliskan kode program dan mengujikan program yang kita buat agar
menjadi sebuah program yang sudah kita rancang dan sesuai dengan tujuan.
Perbedaan Pemrograman dan Belajar
Bahasa Pemrograman
Apa perbedaan pemrograman dengan
kita belajar bahasa pemrograman? Seperti yang dijelaskan sebelumnya,
pemrograman atau programming adalah suatu kegiatan dimana kita menuliskan kode
program dan mengujikan program yang kita buat agar menjadi sebuah program yang
sudah kita rancang dan sesuai dengan tujuan. Ketika suatu kasus masalah diberi
paradigma yang cocok, maka program yang dihasilkan akan baik pula. Belajar memprogram
lebih bersifat pemahaman persoalan, analisis, sintesis.
Belajar bahasa pemrograman adalah
belajar menggunakan suatu bahasa, aturan sintaks (tata bahasa), setiap
instruksi yang ada, dan tata cara pengoperasian kompilator bahasa yang
bersangkutan pada mesin tertentu. Kita belajar untuk memanfaatkan instruksi dan
kiat yang hanya dapat dipakai secara spesifik pada bahasa pemrograman yang
dipakai. Belajar bahasa pemrograman lebih bersifat keterampilan daripada
analisis dan sintesa.
Tahapan membuat program
Dalam pembuatan sebuah program ada
tahapan atau urutan yang harus dilalui agar pada saat pemrograman kita tidak
terlalu kesulitan dan memiliki gambaran bagaimana program itu akan dinyatakan
selesai. Tahapannya adalah :
- Analisis Kebutuhan Program
Sebelum program dibuat, hal yang
harus dilakukan adalah analisis kebutuhan program. Hal ini dikarenakan agar
kita mengetahui apa saja yang harus dipikirkan dalam membuat program, komponen
apa saja yang dibutuhkan, data yang dibutuhkan, sehingga menghasilkan output
yang kita inginkan.
- Rencana Design
Pada tahap ini kita mendesign proses
yang menerangkan bagaimana alur program itu berjalan dalam menyelesaikan
masalah. Tahap ini biasanya menggunakan flowchart sebagai arah alur program
kita bekerja dan dibuatlah notasi algoritmik sebagai awal rancangan program.
- Implementasi Coding
Tahap ini adalah tahap dimana kita
memulai coding. Setelah kita rancang menggunakan flowchart dan membuat notasi
algoritmik, saatnya algoritma itu diimplementasikan. Tahap ini juga saat dimana
kita merevisi error, karena biasanya akan terjadi error.
- Dokumentasi
Dokumentasi diperlukan untuk
mengarsipkan program yang pernah dibuat. Ini penting karena suatu saat bisa
saja kita membutuhkan catatan atau code lagi untuk pengembangan program baru
- Pengujian Program
Tahap pengujian adalah proses menguji
program yang sudah selesai dengan kita mencoba dan menguji dengan inputan data
apakah hasilnya sesuai dengan tujuan atau tidak.
- Pengembangan Program
Pengembangan program dilakukan dengan
update fitur terbaru dan memperbaiki bug yang muncul.
Aksi Sekuensial
Sequential statement adalah sederetan instruksi
primitif atau aksi yang akan dieksekusi oleh komputer berdasarkan urutan
penulisannya secara urut. Aksi sekuensial merupakan struktur kontrol algoritmik
yang paling sederhana. Initial state
adalah state awal yang harus dipenuhi dan Final
state adalah final state atau tujuan akhir setelah instruksi/aksi terakhir.
Pada intinya, urutan penulisan instruksi/aksi pada suatu sequential sangat
penting. Hal ini dikarenakan komputer memproses program secara urut.
Conditional
Conditional atau percabangan adalah sebuah kondisi
yang diberi statement bernilai boolean (true / false). Conditional dapat berupa
if, else if, dan else. Selain itu terdapat juga kondisi di dalam kondisi atau
disebut nested if (conditional bersarang).
Contoh
penggunaan :
|
Judul //Conditional //M
Naufal Taqiyuddin |
|
Kamus Integer
: a |
|
Deskripsi Output
(“Masukkan Nilai : ”) Input
(a) if
(a<=100 && a>=80) output (“Grade A”) else
if(a<=79 && a>=60) output (“Grade B”) else
if(a<=59 && a>=40) output (“Grade C”) else
if(a<=39 && a>=20) output (“Grade D”) else
if (a<=19 && a>=0) output (“Grade E”) else output (“Angka Tidak Valid”) |
Misalkan kita menginputkan a adalah angka 65, maka
output yang keluar adalah “Grade B”. Mengapa? Karena kita memberikan sebuah
kondisi dimana jika nilai inputan a ada di rentang antara 60 hingga 79 maka
akan memberi output “Grade B”. Jika kita memberi angka diatas 100 atau dibawah 0, maka output
akan memberi “Angka Tidak Valid”. Hal ini terjadi karena kita hanya memberi
kondisi pada 0 samai dengan 100, grade E hingga grade A.
Looping
Looping adalah sebuh aksi perintah dimana progrm akan
diminta untuk mengulang suatu aksi tertentu hingga batas yang ditentukan atau
bisa saja mengulang selamanya atau disebut dengan infinite loop. Perulangan ada
3 jenis, yaitu for, while, do while. Lalu apa bedanya diantara 3 perulangan
tersebut?
- Perulangan yang diketahui kapan
berakhirnya
Jika kita mengetahui kapan
berhentinya suatu perulangan, maka kita bisa menggunakan perulangan for. Contohnya
adalah kita akan mengulang mengoutputkan kata "hello” sebanyak 10 kali,
dalam C++ kita dapat mengetikkan for(int i=1;i<=10;i++) lalu outputkan “hello”.
Cara membacanya adalah i dimulai dari hitungan 1 mengecek kondisi di depannya
apakah masih kurang dari atau sama dengan 10? Jika iya i ditambah 1, outputkan
hello. Itu akan mencetak “hello” pertama. Selanjutnya i dimulai dari 2 dan
seterusnya sampai 10.
- Perulangan yang tidak diketahui kapan
berakhirnya
Jika kita tidak mengetahui kapan berhentinya, maka
kita bisa menggunakan looping while(kondisi)
atau do while(kondisi). Looping while
akan terus mencetak apa yang kita outputkan selama kondisi di dalamnya memenuhi
dan bisa saja terjadi infinite loop. Bedanya dengan do while adalah do while
berarti do mencetakkan minimal satu kali apa yang kita outputkan baru
mengulangi dengan mengecek kondisi apakah benar atau tidak. Jadi, do while
minimal mengoutputkan 1 kali kemudian akan mengecek kondisi.
Function
Fungsi adalah sebuah transformasi akibat pemetaan
suatu nilai (dari “domain”) ke nilai lain (dalam “range”). sebuah fungsi akan
menerima suatu harga yang diberikan lewat parameter formal bertype tertentu
(jika ada) dan menghasilkan suatu nilai sesuai dengan domain yang didefinisikan
dalam spesifikasi fungsi. Fungsi yang didefinisikan dapat “dipanggil” untuk
dieksekusi lewat namanya, dan dengan diberikan parameter aktualnya.
Contoh
notasi algoritmik :
|
Judul Menghitung
2 bilangan dengan fungsi |
|
Kamus x,
y , jawab: integer tambah(a
: integer, b : integer) : integer |
|
Deskripsi //buat
inputan input(x,y) //panggil
fungsi tambah jawab
<- tambah(x,y) output
(jawab) |
|
Dekomposisi function tambah(a : integer, b :
integer) : integer judul Proses
penjumlahan kamus
lokal hasil
: integer deskripsi hasil
= a + b |
Prosedur
Prosedur adalah sederetan instruksi algoritmik yang
diberi nama, dan akan menghasilkan efek neto yang terdefinisi. Prosedur
mendefinisikan keadaan awal (Initial State, I.S.) dan keadaan akhir (Final
State, F.S.) dari prosedur tersebut.
Contoh
notasi algoritmik :
|
Judul Swap
Nilai |
|
Kamus a,
b : integer swap(x
: integer, y : integer) : integer |
|
Deskripsi //membuat
inputan input
(a,b) //panggil
fungsi swap(a,b) //outputkan
hasil output
(a,b) |
|
Dekomposisi prosedur swap(x : integer, y :
integer) : integer judul proses
swap nilai kamus
lokal penampung
: integer deskripsi penampung
<- a a
<- b {disini proses
swap nilai a menjadi b dan nilai b menjadi a} b
<- penampung |
Parameter
Parameter adalah tempat menyimpan sebuah variabel
dalam function yang digunakan untuk melakukan pemberian data saat memanggil
function. Letak dari parameter sendiri ada di tanda kurung () setelah identitas
dari function. Contohnya function namaFunction
(parameter).
Function sendiri bisa diisi dengan beberapa parameter yang dipisahkan tanda
koma. Contohnya function namaFunction
(parameter1,
parameter2).
Perbedaan Function dan Prosedur
|
Prosedur |
Function |
|
Nilai
balik terdapat pada parameter yang dikirim secara acuan |
Nilai
balik terdapat pada nama function |
|
Nama
prosedur tidak dapat digunakan secara langsung |
Dapat
langsung digunakan untuk cetak hasil |
|
Parameter
dengan nilai balik yang digunakan |
Nilai
fungsi dapat langsung dipindahkan ke pengenalan variabel lainnya |
|
Tidak
ada nilai balik atau return value |
Memiliki
nilai balik atau return value |
Latihan
Mengoutputkan “hello world”
Notasi
algoritmik :
|
Judul Mencetak
hello world |
|
Kamus a,x,y,i
: string hello(),
helloParam(x : string), helloFun(y : string) : integer |
|
Deskripsi //output
"hello world" output
("hello world") {beri enter}
//output
"hello world" dengan variabel a
<- ("hello world") output
(a) {beri enter}
//output
"hello world" dengan prosedur //panggil
prosedur hello()
//output
"hello world" dengan prosedur berparameter //panggil
prosedur dan beri parameter helloParam(x)
//output
"hello world" dengan function berparameter //panggil
function dan beri parameter helloFun(y) |
|
Dekomposisi procedure hello() : void judul Prosedur
tanpa parameter kamus
lokal - deskripsi output
("hello world") {beri enter}
procedure helloParam(x : string) :
void judul Prosedur
dengan parameter kamus
lokal - deskripsi x
<- ("hello world") output
(x) {beri enter}
function helloFun(y : string) :
integer judul function
dengan parameter kamus
lokal - deskripsi y
<- ("hello world") output
(y) {beri enter} |
Source
Code :
#include
<iostream>
using
namespace std;
int
main()
{
string a,x,y,i;
int hello(), helloParam(string x),
helloFun(string y);
//output "hello world"
cout << "hello world"
<< "\n";
//output "hello world" dengan
variabel
a = "hello world";
cout << a << "\n";
//output "hello world" dengan
prosedur
hello();
//output "hello world" dengan
prosedur berparameter
helloParam(x);
//output "hello world" dengan
function berparameter
helloFun(y);
return 0;
}
void
hello()
{
cout << "hello world"
<< "\n";
}
void
helloParam(string x)
{
x = "hello world";
cout << x << "\n";
}
int
helloFun(string y)
{
y = "hello world";
cout << y << "\n";
}
Hasil :
Menghitung Penjumlahan
Notasi
Algoritmik :
|
Judul Penjumlahan |
|
Kamus a,b,hasil
: integer x,y,tambah(),tambahParam(int
x, int y),tambahFun(int i, int j) : integer |
|
Deskripsi //penjumlahan a
<- 5 b
<- 10 hasil
<- a+b cout
(a, "+", b, " = ", hasil) {beri enter}
//penjumlahan
dengan prosedur //panggil
procedure tambah()
//penjumlahan
dengan prosedur berparameter x
<- 20 y
<- 5 hasil
<- tambahParam(x,y) cout
(x, "+", y, " = ", hasil) {beri enter}
//penjumlahan
dengan function berparameter //panggil
function tambahFun(15,15) |
|
Dekomposisi procedure tambah() : void judul procedure
tambah kamus
lokal x,y,hasil
: integer deskripsi x
<- 10 y
<- 7 hasil
<- x+y cout
(x, "+", y, " = ", hasil) {beri enter}
procedure tambahParam(x : int, y :
int) : void judul procedure
dengan parameter kamus
lokal hasil
: integer deskripsi hasil
<- x+y
function tambahFun(int i, int j) :
integer judul function
berparameter kamus
lokal hasil
: integer deskripsi hasil
<- i+j cout
(i, "+", j, " = ", hasil) //beri
nilai balikan return ke hasil return
hasil |
Source
Code :
#include
<iostream>
using
namespace std;
int
main()
{
int a,b,hasil;
int x,y,i,j,tambah(),tambahParam(int x, int
y),tambahFun(int i, int j);
//penjumlahan
a = 5;
b = 10;
hasil = a+b;
cout << a << "+"
<< b << " = " << hasil << "\n";
//penjumlahan dengan prosedur
tambah();
//penjumlahan dengan prosedur berparameter
x = 20;
y = 5;
hasil = tambahParam(x,y);
cout << x << "+"
<< y << " = " << hasil << "\n";
//penjumlahan dengan function berparameter
tambahFun(15,15);
return 0;
}
void
tambah()
{
int x,y,hasil;
x = 10;
y = 7;
hasil = x+y;
cout << x << "+"
<< y << " = " << hasil << "\n";
}
void
tambahParam(int x, int y)
{
int hasil;
hasil = x+y;
}
int
tambahFun(int i, int j)
{
int hasil;
hasil = i+j;
cout << i << "+"
<< j << " = " << hasil;
return hasil;
}
Menghitung Luas dan Volume Segi Empat
Notasi
Algoritmik :
|
Judul Menghitng
luas dan volume |
|
Kamus s,
lpersegi(int s), vkubus(int s) : integer |
|
Deskripsi output
("Masukkan Panjang Sisi : ") input
(s) //panggil
fungsi lpersegi(s) vkubus(s) |
|
Dekomposisi function lpersegi(s : int) :
integer judul fungsi
menghitung luas persegi kamus
lokal hasil
: integer deskripsi hasil
<- s*s output
("Luas Persegi = ", hasil) {beri enter} //beri
nilai balikan return ke hasil return
hasil
function vkubus(s : int) : integer judul fungsi
menghitung volume kubus kamus
lokal hasil
: integer deskripsi hasil
<- s*s*s output
("Volume Kubus = ", hasil) //beri
nilai balikan ke hasil return
hasil |
Source
Code :
#include
<iostream>
using
namespace std;
int
main()
{
int s, lpersegi(int s), vkubus(int s);
cout << "Masukkan Panjang Sisi :
";
cin >> s;
lpersegi(s);
vkubus(s);
return 0;
}
int
lpersegi(int s)
{
int hasil;
hasil = s*s;
cout << "Luas Persegi = "
<< hasil << "\n";
return hasil;
}
int
vkubus(int s)
{
int hasil;
hasil = s*s*s;
cout << "Volume Kubus = "
<< hasil;
return hasil;
}
Membuat Nilai Maximum
Notasi
Algoritmik :
|
|
|||
|
|
|||
|
|
Source
Code :
#include
<iostream>
using
namespace std;
//Judul
//MAX2,MAX3,MAX5,MAX10
Tanpa Function
//Muhammad
Naufal Taqiyuddin
int
main()
{
//Kamus
float
a, b, c, d, e, f, g, h, i, j;
//Deskripsi
//MAX2
cout
<< "MAX2" << "\n";
cin
>> a;
cin
>> b;
if
(a >= b)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
{
cout
<< "Nilai Max = " << b << "\n";
}
//MAX3
cout
<< "MAX3" << "\n";
cin
>> a;
cin
>> b;
cin
>> c;
if
(a >= b && a>= c)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
if (b >= a && a>= c)
{
cout
<< "Nilai Max = " << b << "\n";
}
else
{
cout
<< "Nilai Max = " << c << "\n";
}
//MAX5
cout
<< "MAX5" << "\n";
cin
>> a;
cin
>> b;
cin
>> c;
cin
>> d;
cin
>> e;
if
(a >= b && a>= c && a>=d && a>=e)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
if (b >= a && b>= c && b>=d && b>=e)
{
cout
<< "Nilai Max = " << b << "\n";
}
else
if (c >= a && c>= b && c>=d && c>=e)
{
cout
<< "Nilai Max = " << c << "\n";
}
else
if (d >= a && d>= b && d>=c && d>=e)
{
cout
<< "Nilai Max = " << d << "\n";
}
else
{
cout
<< "Nilai Max = " << e << "\n";
}
//MAX10
cout
<< "MAX10" << "\n";
cin
>> a;
cin
>> b;
cin
>> c;
cin
>> d;
cin
>> e;
cin
>> f;
cin
>> g;
cin
>> h;
cin
>> i;
cin
>> j;
if
(a >= b && a>= c && a>=d && a>=e &&
a>=f && a>=g && a>=h && a>=i &&
a>=j)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
if (b >=a && b>=c && b>=d && b>=e
&& b>=f && b>=g && b>=h && b>=i
&& b>=j)
{
cout
<< "Nilai Max = " << b << "\n";
}
else
if (c >=a && c>=b && c>=d && c>=e
&& c>=f && c>=g && c>=h && c>=i
&& c>=j)
{
cout
<< "Nilai Max = " << c << "\n";
}
else
if (d >=a && d>=b && d>=c && d>=e
&& d>=f && d>=g && d>=h && d>=i
&& d>=j)
{
cout
<< "Nilai Max = " << d << "\n";
}
else
if (e >=a && e>=b && e>=c && e>=d
&& e>=f && e>=g && e>=h && e>=i
&& e>=j)
{
cout
<< "Nilai Max = " << e << "\n";
}
else
if (f >=a && f>=b && f>=c && f>=d
&& f>=e && f>=g && f>=h && f>=i
&& f>=j)
{
cout
<< "Nilai Max = " << f << "\n";
}
else
if (g >=a && g>=b && g>=c && g>=d
&& g>=e && g>=f && g>=h && g>=i
&& g>=j)
{
cout
<< "Nilai Max = " << g << "\n";
}
else
if (h >=a && h>=b && h>=c && h>=d
&& h>=e && h>=f && h>=g && h>=i
&& h>=j)
{
cout
<< "Nilai Max = " << h << "\n";
}
else
if (i >=a && i>=b && i>=c && i>=d
&& i>=e && i>=f && i>=g && i>=h
&& i>=j)
{
cout
<< "Nilai Max = " << i << "\n";
}
else
{
cout
<< "Nilai Max = " << j << "\n";
}
return
0;
}
Nilai Max dengan Function
Notasi
Algoritmik :
|
|
|
|
|
|
|
|
|
|
//membuat
inputan angka input
(a) input
(b) //membuat
kondisi akan tampi a jika a>=b dan sebaliknya if
(a >= b) then output
("Nilai Max = ", a) else
output
("Nilai Max = ", b) //nilai
balikan return
(a) return
(b) function
max3(float:a ->real, float:b ->real, float:c ->real) ->real judul
MAX3
kamus
lokal - deskripsi
output
("MAX3") //membuat
inputan angka input
(a) input
(b) input
(c); //membuat
kondisi akan tampil a jika a>=b dan a>=c, dan seterusnya if
(a >= b && a>= c) then output
("Nilai Max = ", a) else
if (b >= a && a>= c) then output
("Nilai Max = ", b) else
output ("Nilai Max = ", c) //nilai
balikan return
(a) return
(b) return
(c) function
max5(float:a ->real, float:b ->real, float:c ->real, float:d
->real, float:e ->real) ->real judul
MAX5
kamus
lokal - deskripsi
output
("MAX5") //membuat
inputan angka input
(a) input
(b) input
(c) input
(d) input
(e) //membuat
kondisi akan tampil a jika a>= b dan a>= c dan a>=d dan a>=e, dan
seterusnya if
(a >= b && a>= c && a>=d && a>=e) then output
("Nilai Max = ", a) else
if (b >= a && b>= c && b>=d && b>=e) then
output
("Nilai Max = ", b) else
if (c >= a && c>= b && c>=d && c>=e) then
output
("Nilai Max = ", c) else
if (d >= a && d>= b && d>=c && d>=e) then
output
("Nilai Max = ", d) else
output ("Nilai Max = ", e //nilai
balikan return
(a) return
(b) return
(c) return
(d) return
(e) float
max10(float a, float b, float c, float d, float e, float f, float g, float h,
float i, float j) ->real judul
MAX10
kamus
lokal - deskripsi
output
("MAX10") //membuat
inputan angka input
(a) input
(b) input
(c) input
(d) input
(e) input
(f) input
(g) input
(h) input
(i) input
(j) //membuat
kondisi akan tampil a jika a>= b dan a>= c dan a>=d dan a>=e dan
a>=f dan a>=g dan a>=h dan a>=i dan a>=j if
(a >= b && a>= c && a>=d && a>=e
&& a>=f && a>=g && a>=h && a>=i
&& a>=j) then output ("Nilai Max = ", a) else
if (b >=a && b>=c && b>=d && b>=e
&& b>=f && b>=g && b>=h && b>=i
&& b>=j) then output
("Nilai Max = ", b) else
if (c >=a && c>=b && c>=d && c>=e
&& c>=f && c>=g && c>=h && c>=i
&& c>=j) then output
("Nilai Max = ", c) else
if (d >=a && d>=b && d>=c && d>=e
&& d>=f && d>=g && d>=h && d>=i
&& d>=j) then output
("Nilai Max = ", d) else
if (e >=a && e>=b && e>=c && e>=d
&& e>=f && e>=g && e>=h && e>=i
&& e>=j) then output
("Nilai Max = ", e) else
if (f >=a && f>=b && f>=c && f>=d
&& f>=e && f>=g && f>=h && f>=i
&& f>=j) then output
<< "Nilai Max = ", f) else
if (g >=a && g>=b && g>=c && g>=d
&& g>=e && g>=f && g>=h && g>=i
&& g>=j) then output
("Nilai Max ", g) else
if (h >=a && h>=b && h>=c && h>=d
&& h>=e && h>=f && h>=g && h>=i
&& h>=j) then output
("Nilai Max = ", h) else
if (i >=a && i>=b && i>=c && i>=d
&& i>=e && i>=f && i>=g && i>=h
&& i>=j) then output
("Nilai Max = ", i) else
output
("Nilai Max = ", j) //nilai
balikan return
(a) return
(b) return
(c) return
(d) return
(e) return (f) return (g) return (h) return (i) return (j) |
Source
Code :
#include
<iostream>
using
namespace std;
//Judul
//MAX2,MAX3,MAX5,MAX10
//Muhammad
Naufal Taqiyuddin
int
main()
{
//Kamus
float
a, b, c, d, e, f, g, h, i, j;
float
max2(float a, float b);
float
max3(float a, float b, float c);
float
max5(float a, float b, float c, float d, float e);
float
max10(float a, float b, float c, float d, float e, float f, float g, float h,
float i, float j);
//Deskripsi
max2(a,b);
max3(a,b,c);
max5(a,b,c,d,e);
max10(a,b,c,d,e,f,g,h,i,j);
return
0;
}
//Dekomposisi
float
max2(float a,float b)
{
cout
<< "MAX2" << "\n";
cin
>> a;
cin
>> b;
if
(a >= b)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
{
cout
<< "Nilai Max = " << b << "\n";
}
return
a;
return
b;
}
float
max3(float a, float b, float c)
{
cout
<< "MAX3" << "\n";
cin
>> a;
cin
>> b;
cin
>> c;
if
(a >= b && a>= c)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
if (b >= a && a>= c)
{
cout
<< "Nilai Max = " << b << "\n";
}
else
{
cout
<< "Nilai Max = " << c << "\n";
}
return
a;
return
b;
return
c;
}
float
max5(float a, float b, float c, float d, float e)
{
cout
<< "MAX5" << "\n";
cin
>> a;
cin
>> b;
cin
>> c;
cin
>> d;
cin
>> e;
if
(a >= b && a>= c && a>=d && a>=e)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
if (b >= a && b>= c && b>=d && b>=e)
{
cout
<< "Nilai Max = " << b << "\n";
}
else
if (c >= a && c>= b && c>=d && c>=e)
{
cout
<< "Nilai Max = " << c << "\n";
}
else
if (d >= a && d>= b && d>=c && d>=e)
{
cout
<< "Nilai Max = " << d << "\n";
}
else
{
cout
<< "Nilai Max = " << e << "\n";
}
return
a;
return
b;
return
c;
return
d;
return
e;
}
float
max10(float a, float b, float c, float d, float e, float f, float g, float h,
float i, float j)
{
cout
<< "MAX10" << "\n";
cin
>> a;
cin
>> b;
cin
>> c;
cin
>> d;
cin
>> e;
cin
>> f;
cin
>> g;
cin
>> h;
cin
>> i;
cin
>> j;
if
(a >= b && a>= c && a>=d && a>=e &&
a>=f && a>=g && a>=h && a>=i &&
a>=j)
{
cout
<< "Nilai Max = " << a << "\n";
}
else
if (b >=a && b>=c && b>=d && b>=e
&& b>=f && b>=g && b>=h && b>=i
&& b>=j)
{
cout
<< "Nilai Max = " << b << "\n";
}
else
if (c >=a && c>=b && c>=d && c>=e
&& c>=f && c>=g && c>=h && c>=i
&& c>=j)
{
cout
<< "Nilai Max = " << c << "\n";
}
else
if (d >=a && d>=b && d>=c && d>=e
&& d>=f && d>=g && d>=h && d>=i
&& d>=j)
{
cout
<< "Nilai Max = " << d << "\n";
}
else
if (e >=a && e>=b && e>=c && e>=d
&& e>=f && e>=g && e>=h && e>=i
&& e>=j)
{
cout
<< "Nilai Max = " << e << "\n";
}
else
if (f >=a && f>=b && f>=c && f>=d
&& f>=e && f>=g && f>=h && f>=i
&& f>=j)
{
cout
<< "Nilai Max = " << f << "\n";
}
else
if (g >=a && g>=b && g>=c && g>=d
&& g>=e && g>=f && g>=h && g>=i
&& g>=j)
{
cout
<< "Nilai Max = " << g << "\n";
}
else
if (h >=a && h>=b && h>=c && h>=d
&& h>=e && h>=f && h>=g && h>=i
&& h>=j)
{
cout
<< "Nilai Max = " << h << "\n";
}
else
if (i >=a && i>=b && i>=c && i>=d
&& i>=e && i>=f && i>=g && i>=h
&& i>=j)
{
cout
<< "Nilai Max = " << i << "\n";
}
else
{
cout
<< "Nilai Max = " << j << "\n";
}
return
a;
return
b;
return
c;
return
d;
return
e;
return
f;
return
g;
return
h;
return
i;
return
j;
}
Type Bentukan
Seperti
contoh kasus di bawah, misal pada function mulai() terdapat tipe
"ja1" bentukan bernilai integer. "ja1"
disini diartikan sebagai inisialisasi jam pertama atau jam pada awal waktu
dimulai.
Contoh
kasus : Menghitung Selisih Waktu
Notasi
Algoritmik :
|
Judul Fungsi
Menghitung Selisih Waktu Tanggal
18 Maret 2022 Dibuat
oleh Muhammad Naufal Taqiyuddin |
|
Kamus integer
: konv_jam1(), konv_jam2() ->integer integer
: mulai(), selesai(), selisih() ->integer |
|
Deskripsi mulai() konv_jam1() selesai() konv_jam2() selisih() |
|
Dekomposisi function mulai() ->void judul Waktu
Mulai kamus
lokal ja1,
me1, de1 deskripsi output
("Masukkan Waktu dimulai di bawah ini") output
("Jam = ") input
(ja1) output
("Menit = ") input
(me1) output
("Detik = ") input
(de1) output
("Waktu dimulai adalah ",ja1 , ":", me1, (":"),
de1)
function konv_jam1() ->integer judul Konversi
Waktu kamus
lokal integer
: ja1, me1, de1, detik1 ->integer deskripsi //Konversi
Jam ke Detik if
(24 > ja1 >= 0) then ja1 = ja1 * 3600 else output ("Gunakan Format 24
jam") //Konversi
Menit ke Detik if
(60 > me1 >= 0) then me1 = me1 * 60 else output ("Gunakan waktu antara
0 sampai 59 menit") //Konversi
detik ke detik if
(60 > de1 >= 0) then de1 = de1 else output ("Gunakan waktu antara
0 sampai 59 detik") //hitung
total detik detik1
= ja1 + me1 + de1; return
detik1
function selesai() ->void judul Waktu
Selesai kamus
lokal ja2,
me2, de2 deskripsi output
("Masukkan Waktu Selesai di bawah ini") output
("Jam = ") input
(ja2) output
("Menit = ") input
(me2) output
("Detik = ") input
(de2) output
("Waktu dimulai adalah ",ja2, ":", me2, (":"),
de2)
function konv_jam2() ->integer judul Konversi
Waktu kamus
lokal integer
: ja2,me2,de2 ->integer deskripsi //Konversi
Jam ke Detik if
(24 > ja2 >= 0) then ja2 = ja2 * 3600 else output ("Gunakan Format 24
jam") //Konversi
Menit ke Detik if
(60 > me2 >= 0) then me2 = me2 * 60 else output ("Gunakan waktu antara
0 sampai 59 menit") //Konversi
detik ke detik if
(60 > de2 >= 0) then de2 = de2 else output ("Gunakan waktu antara
0 sampai 59 detik") return
de2
function selisih() ->void judul Menghitung
Selisih Waktu kamus
lokal integer
: j, m, ja2, me2, de2, detik1, hasil ->integer deskripsi //hitung
total detik hasil
= (ja2 + me2 + de2)-detik1; //konversi
detik ke detik, menit, jam j
= hasil/3600 hasil
= hasil- (j*3600) m
= hasil/60 hasil
= hasil- (m*60) output
("Jam : ", j) output
("Menit :", m) output
("Detik :", hasil) output
("Jadi, lama waktunya adalah ", j, "jam ", m, "menit
", hasil, "detik") |
Source
Code :
#include
<iostream>
using
namespace std;
int
main()
{
//Judul
//Fungsi Menghitung Antar Waktu
//Tanggal 18 Maret 2022
//Dibuat oleh Muhammad Naufal Taqiyuddin
//Kamus
int konv_jam1(), konv_jam2();
int mulai(), selesai(), selisih();
//Deskripsi
mulai();
konv_jam1();
selesai();
konv_jam2();
selisih();
return 0;
}
//Dekomposisi
void mulai()
{
//judul
//Waktu Mulai
//kamus lokal
int ja1, me1, de1;
//deskripsi
cout << "Masukkan Waktu
dimulai di bawah ini \n";
cout << "Jam = ";
cin >> ja1;
cout << "Menit = ";
cin >> me1;
cout << "Detik = ";
cin >> de1;
cout <<"Waktu dimulai adalah
" << ja1 << ":" << me1 << ":"
<< de1 << "\n" ;
}
konv_jam1()
{
//judul
//Konversi Waktu
//kamus lokal
int ja1, me1, de1, detik1;
//deskripsi
//Konversi Jam ke Detik
if (24 > ja1 >= 0){
ja1 = ja1 * 3600;
}
else{
cout << "Gunakan Format
24 jam";
}
//Konversi Menit ke Detik
if (60 > me1 >= 0){
me1 = me1 * 60;
}
else{
cout << "Gunakan waktu
antara 0 sampai 59 menit";
}
//Konversi detik ke detik
if (60 > de1 >= 0){
de1 = de1;
}
else{
cout << "Gunakan waktu
antara 0 sampai 59 detik";
}
//hitung total detik
detik1 = ja1 + me1 + de1;
return detik1;
}
void selesai()
{
//judul
//Waktu Selesai
//kamus lokal
int ja2, me2, de2;
//deskripsi
cout << "Masukkan Waktu
Selesai di bawah ini \n";
cout << "Jam = ";
cin >> ja2;
cout << "Menit = ";
cin >> me2;
cout << "Detik = ";
cin >> de2;
cout << "Waktu selesai
adalah " << ja2 << ":" << me2 <<
":" << de2 << "\n";
}
int konv_jam2()
{
//judul
//Konversi Waktu
//kamus lokal
int ja2,me2,de2;
//deskripsi
//Konversi Jam ke Detik
if (24 > ja2 >= 0){
ja2 = ja2 * 3600;
}
else{
cout << "Gunakan Format
24 jam";
}
//Konversi Menit ke Detik
if (60 > me2 >= 0){
me2 = me2 * 60;
}
else{
cout << "Gunakan waktu
antara 0 sampai 59 menit";
}
//Konversi detik ke detik
if (60 > de2 >= 0){
de2 = de2;
}
else{
cout << "Gunakan waktu
antara 0 sampai 59 detik";
}
return de2;
}
void selisih()
{
//judul
//Menghitung Selisih Waktu
// kamus lokal
int j, m, ja2, me2, de2, detik1, hasil;
//deskripsi
//hitung total detik
hasil = (ja2 + me2 + de2)-detik1;
//konversi detik ke detik, menit, jam
j =
hasil/3600;
hasil = hasil- (j*3600);
m = hasil/60;
hasil = hasil- (m*60);
cout << "Jam : "
<< j << "\n";
cout << "Menit :"
<< m << "\n";
cout << "Detik :"
<< hasil << "\n";
cout << "Jadi, lama waktunya
adalah " << j << "jam " << m <<
"menit " << hasil << "detik";
}
Contoh
lainnya
Seperti
contoh kasus di bawah, misal pada function lpersegi(s) dan function vkubus(s)
terdapat tipe "s" bentukan bernilai integer. "s" disini
diartikan sebagai inisialisasi panjang sisi.
Contoh
kasus : Menghitung luas dan volume segi empat
Notasi
Algoritmik :
|
Judul Menghitng
luas dan volume |
|
Kamus s,
lpersegi(int s), vkubus(int s) : integer |
|
Deskripsi output
("Masukkan Panjang Sisi : ") input
(s) //panggil
fungsi lpersegi(s) vkubus(s) |
|
Dekomposisi function lpersegi(s : int) :
integer judul fungsi
menghitung luas persegi kamus
lokal hasil
: integer deskripsi hasil
<- s*s output
("Luas Persegi = ", hasil) {beri enter} //beri
nilai balikan return ke hasil return
hasil
function vkubus(s : int) : integer judul fungsi
menghitung volume kubus kamus
lokal hasil
: integer deskripsi hasil
<- s*s*s output
("Volume Kubus = ", hasil) //beri
nilai balikan ke hasil return
hasil |
Source
Code :
#include
<iostream>
using
namespace std;
int
main()
{
int s, lpersegi(int s), vkubus(int s);
cout << "Masukkan Panjang Sisi :
";
cin >> s;
lpersegi(s);
vkubus(s);
return 0;
}
int
lpersegi(int s)
{
int hasil;
hasil = s*s;
cout << "Luas Persegi = "
<< hasil << "\n";
return hasil;
}
int
vkubus(int s)
{
int hasil;
hasil = s*s*s;
cout << "Volume Kubus = "
<< hasil;
return hasil;
}
---------------------------------------------------------------------
Pointer
Pointer adalah sebuah variabel atau object yang
merujuk ke variable atau object lainnya dan menyimpan suatu alamat memori. Pada
memori memiliki block memori yang diisi alamat dari program yang berjalan.
Seperti dibawah ini.
|
Alamat 1 |
Alamat 2 |
Alamat 3 |
Alamat 4 |
Alamat 5 |
Dst… |
Misalkan kita memiliki Integer x = 2 Maka, x dengan
tipe data integer memiliki alamat di salah satu block memori dan memiliki nilai
2. Lalu bagaimana kita mengetahui alamat dari x? Kita bias menggunakan * atau
&. Contohnya : Integer *pointerx = &x Output (pointerx) Maka akan
muncul alamat dari integer x pada memori. Tetapi jika kita outputkan hanya x
maka akan muncul nilai dari integer x. Program akan memanggil dimana alamat x
berada dari memori dan akan memunculkan nilainya. Contohnya seperti dibawah ini
:
|
Judul Cara Kerja Pointer 22 Mei 2022 Muhammad Naufal Taqiyuddin |
|
Kamus x = 2 ->integer *pointerx = &x ->integer |
|
Deskripsi output ("Nilai x = ",
x) output ("Alamat x ada di =
", pointerx) |
Penggunaan
Pointer :
Source
Code :
#include
<iostream>
#include
<string.h>
using
namespace std;
char*
GetString1()
{
char *st="String";
return st;
}
char*
GetString2()
{
char st[]="String";
return st;
}
char*
GetString3()
{
char *st=new char[6];
strcpy(st,"String");
return st;
}
int
main()
{
char *st=GetString2();
printf("Say :%s\n", GetString1());
printf("Say :%s\n", st);
printf("Say :%s\n", GetString3());
return 0;
}
Penjelasan
:
Function
GetString1()
Pada
function GetString1(), pointer diakses dengan cara memanggil fungsinya pada
main.
Hal
ini dikarenakan variabel “st” dengan tipe data char sudah mengggunakan sintak
untuk
mengakses
pointer. Setelah itu diberi nilai balikan ke variabel “st”. Pada function juga
sudah
menggunakan
sintak untuk mengakses pointer yaitu “char* GetString1()”. Pada main dapat
diakses
dengan “printf("Say :%s\n", GetString1());” atau “cout <<
GetString1() << “\n”;”.
Function
GetString2()
Pada
function GetString2() menghasilkan nilai null atau kosong dikarenakan ketika
mengakses
array, setelah mendefinisikan tipe data pada variabel tidak dilanjutkan dengan
membentuk
sintak “new char []”. Jika ingin menampilkan dengan tidak menghasi;kan nilai
null
atau
kosong, pada function seharusnya :
char*
GetString2()
{
char *st = new char [6];
st = “String”;
return st;
}
Kemudian
pada main untuk mengoutputkan langsung memanggil fungsinya
printf(GetString2());
Function
GetString3()
Pada
function GetString3() dicetak menggunakan array dengan pointer. Di function
“st”
meggunakan
sintak untuk mengakses pointer dengan tipe data char kemudian memiliki nilai
“new
char[6]”.
Selanjutnya menggunakan strcpy dalam library string.h yang fungsinya adalah
untuk
mencetak
string dan baris selanjutnya diberi nilai balikan ke variabel “st”. Untuk
mengoutputkan
bisa
diakses dengan memanggil nama fungsinya “printf("Say :%s\n",
GetString3());” atau “cout
<<
GetString3() << “\n”;”
Dynamic Array dengan Pointer
Array
-> Objek dengan tipe sama dapat diacu dengan single name.
Pointer
-> Variabel berisi nilai dari alamat memori.
Pointer dapat digunakan seperti array begitu juga
sebaliknya array dapat juga seperti
pointer.
Hal ini dikarenakan array adalah sebuah pointer yang merujuk ke dirinya sendiri
dan
pointer
tersebut dapat merujuk ke sebuah alamat array. Bagaimana caranya?
Array 1D
Sintak
yang digunakan :
<tipe
data> *<nama pointer> = new <tipe data> [ukuran]
Source
Code :
#include
<iostream>
using
namespace std;
int
main ()
{
int *p = new int[3];
p[0]=12; p[1]=23; p[2]=34;
cout << "Alamat = " <<p
<< "\n";
cout << "Array [0] = "
<<*p << "\n";
cout << "Array [1] = "
<<*(p+1) << "\n";
cout << "Array [2] = "
<<*(p+2);
return 0;
Array 2D
Sintak
yang digunakan :
<tipe
data> **<nama pointer> = new <tipe data> *[ukuran]
Source
Code :
#include
<iostream>
using
namespace std;
int
main()
{
int **p = new int *[3];
p[0] = new int [4];
p[1] = new int [4];
cout << "Alamat = " <<*p
<< "\n";
cout << "Nilai Array = "
<<**p << "\n";
cout << "Nilai Array = "
<<*(*(p+1)+0);
return 0;
}
Abstract Data Type (ADT)
ADT merupakan jenis spesial
dari tipe data dan dibentuk oleh tipe data primitif yang sudah ada, tetapi
operasi logika yang ada didalamnya disembunyikan.
Absatract Data Type termasuk dalam Object Oriented Programming (OOP), yaitu
pemrograman berorientasi objek.
Structure
Structure
adalah kumpulan dari variable yang berkaitan yang sering digunakan untuk mendefinisikan
object – orang, tempat, atau record dalam database atau file.
Contoh
kasus ADT :
Menghitung
Volume Bola
Notasi
Algoritmik :
|
Judul ADT Volume Bola 11-06-2022 Muhammad Naufal Taqiyuddin |
|
Dekomposisi judul Struct Bola kamus lokal bola -> struct phi -> float r -> float deskripsi public: Vbola(phi
->float, r ->float, hasil ->float) ->void judul Menghitung Volume Bola kamus lokal - deskripsi bola ->void :: Vbola(phi
->float, r ->float, hasil ->float) hasil = 1.33 * phi * pow(r,3) output("Volume Bola = ", hasil) |
|
Kamus hasil ->float ball ->bola |
|
Deskripsi ball.Vbola(3.14,14,hasil) |
Source
Code :
#include
<iostream>
#include
<math.h>
using
namespace std;
struct
bola
{
float phi;
float r;
public:
void Vbola(float phi, float r, float hasil);
};
void
bola::Vbola(float phi, float r, float hasil)
{
hasil = 1.33 * phi * pow(r,3);
cout << "Volume Bola = "
<< hasil << "\n";
}
int
main()
{
float hasil;
bola ball;
ball.Vbola(3.14,14,hasil);
return 0;
}
Typedef
Typedef adalah alternatif dalam mendeklarasikan variabel tanpa harus menyertakan struct. Strukturnya adalah “typedef definisiStruct namaAlias” contohnya “typedef int hitung”. Implementasi dalam program :
|
Judul Typedef Kali 2 Bilangan 14-06-2022 Muhammad Naufal Taqiyuddin |
|
Dekomposisi judul Membuat Typedef kamus lokal - deskripsi angka -> typedef int |
|
Kamus x ->angka y ->angka hasil ->angka |
|
Deskripsi x = 2 y = 3 hasil = x * y output (x, " * ", y, " =
", hasil) |
Source
Code :
#include
<iostream>
using
namespace std;
typedef
int angka;
int
main()
{
angka x;
angka y;
angka hasil;
x = 2;
y = 3;
hasil = x * y;
cout << x << " * "
<< y << " = " << hasil << "\n";
return 0;
}
Array
of Structure
Contoh
array dalam structure
|
Judul Array of Struct Menghitung
Nilai dalam Array 15-06-2022 Muhammad Naufal Taqiyuddin |
|
Dekomposisi judul Struct kamus lokal arr ->struct n, hasil ->integer deskripsi public : judul Function
Hitung Array function hitungArr() ->void kamus lokal n ->integer deskripsi output ("Masukkan Panjang Angka ") input (n) kamus lokal //didefinisikan disini agar tidak bug nilai[n] ->integer for(i=0 ->integer, i<n, i++) input (nilai[i]) for(int j=0; j<n; j++) hasil = hasil + nilai[j] output (hasil) |
|
Kamus Array ->arr |
|
Deskripsi Array.hitungArr() |
Source
Code :
#include
<iostream>
using
namespace std;
struct
arr
{
int n, hasil;
public
:
void hitungArr()
{
int n;
cout << "Masukkan Panjang Angka
\n";
cin >> n;
int nilai[n];
for(int i=0; i<n; i++)
{
cin >> nilai[i];
}
for(int j=0; j<n; j++)
{
hasil = hasil + nilai[j];
}
cout << hasil;
}
};
int
main()
{
arr Array;
Array.hitungArr();
return 0;
}
Pointer
of Structure
Contoh
program pointer dalam structure
|
Judul Pointer of Struct Membagi 2
Bilangan 15-06-2022 Muhammad Naufal Taqiyuddin |
|
Dekomposisi judul Sruct kamus lokal point ->struct a = 4 ->float b = 2 ->float hasil = a/b ->float deskripsi point pointer point *pt = &pointer |
|
Kamus a,b,hasil ->float |
|
Deskripsi pointer.a pointer.b pointer.hasil output (pointer.hasil) |
Source
Code :
#include
<iostream>
using
namespace std;
struct
point
{
float a = 4;
float b = 2;
float hasil = a/b;
};
point
pointer;
point
*pt = &pointer;
int
main()
{
float a,b,hasil;
pointer.a;
pointer.b;
pointer.hasil;
cout << pointer.hasil;
return 0;
}
Class
Class adalah salah satu bentuk dari
konsep Object Oriented Programming (OOP) yang fungsinya untuk menampung data
abstraksi dan mendefinisikan atau menggambarkan isi sebuah object. Class dan
structure adalah dua fitur yang mirip penggunaannya. Bedanya adalah class
memiliki kemampuan untuk membuat suatu method, inheritance dan lainnya. Sedangkan
struct tidak bisa melakukannya. Tetapi ini berlaku di bahasa C, jika C++ struct
dapat melakukan seperti class. Maka dari itu sangat mirip. Dibawah ini adalah
contoh program dengan class dan penjelasannya.
Source
Code :
include
<iostream>
include
<string>
class kartukeluarga
{
string kepala[50];
string nokk[50];
string istri[50];
int anak[10];
int counter = -1;
public :
int validasikk(string KK)
{
for(int i=0; i<=counter; i++){
if( kepala[i] == KK ){
return 0;
}
}
return 1;
}
void tambahkk()
{
string KK = "";
cout<<"Masukkan Nama Kepala
Keluarga : ";
cin>>KK;
if( validasikk(KK) == 1 ){
counter++;
kepala[counter] = KK;
}else{
cout << "\n"
<< "Kartu Keluarga Ini Sudah Ada" << "\n";
return;
}
cout << "Masukkan Nama
Istri : ";
cin >> istri[counter];
cout << "Masukkan Jumlah
Anak : ";
cin >> anak[counter];
cout << "Masukkan Nomor
Kartu Keluarga : ";
cin >> nokk[counter];
}
void print(int tmpCounter)
{
if( kepala[tmpCounter] == ""
)
return;
if( counter > -1 ){
cout << "Nama Kepala
Keluarga : " <<kepala[tmpCounter] <<"\n";
cout << "Nama Istri : " << istri[tmpCounter]
<< "\n";
cout << "Jumlah
Anak : " <<
anak[tmpCounter] << "\n";
cout << "Nomor Kartu
Keluarga : " <<nokk[tmpCounter] <<"\n"<<"\n";
getch();
}
}
void printAll()
{
if( counter > -1 ){
for(int i=0; i<=counter; i++){
print(i);
}
}
}
};
int main(){
kartukeluarga kk;
char pilih;
do{
system("cls");
cout << "-----Data Singkat
Keluarga Desa X-----" << "\n";
cout << "1. Input Nama Kepala
Keluarga" << "\n";
cout << "2. Daftar Kartu
Keluarga" << "\n";
cout << "3. Exit" <<
"\n" << "\n";
cout << "Masukkan Pilihan 1-3 :
";
cin >> pilih;
switch(pilih){
case '1':
{
kk.tambahkk();
cout << "klik
dimanapun untuk melanjutkan..." << "\n";
getch();
break;
}
case '2':
{
kk.printAll();
break;
}
case '3':
{
continue;
break;
}
}
}while(pilih != '3');
return 0;
}
Penjabaran
:
Aplikasi yang dibuat oleh kelompok
kita adalah menampilkan data singkat dari kartu keluarga di Desa X. Pada
aplikasi ini terdapat switch case dimana user diberi pilihan untuk input data,
menampilkan data, dan exit dari program.
Class
Class yang digunakan hanya ada 1
class bernama “kartukeluarga”. Dalam class ini mengandung tipe data dan
function yang akan digunakan dalam aplikasi. Terdapat 5 tipe data yaitu :
string
kepala[50]; //untuk nama kepala keluarga
string
nokk[50]; // untuk nomor kartu keluarga
string
istri[50]; // untuk nama istri
int
anak[10]; // untuk jumlah anak
int
counter = -1; // sebagai counter atau
penghitung looping
Function
Di dalam class terdapat function
yang dapat dipanggil di main. Function yang ada di public yaitu :
· int
validasikk(string KK)
Function ini berfungsi sebagai validasi, apakah data
sebelumnya sudah ada atau belum dan akan dipanggil di function void tambahkk()
· void tambahkk()
Function ini memiliki fungsi utama untuk menambahkan
data. Di awal baris terdapat kondisi if else yang memanggil function int
validasikk(string KK). Disinilah validasi itu berjalan. Jika terdapat nama
kepala keluarga yang sama maka akan menuju kondisi else, jika beda maka akan
tercatat sebagai data baru. Kemudian pada baris selanjutnya menginputkan data.
· void print(int
tmpCounter)
Function ini memiliki fungsi utama untuk menampilkan
data yang sudah diinputkan.
· void printAll()
Function ini terdapat perulangan untuk menampilkan
semua data yang sudah diinputkan. Disini function void print(int tmpCounter)
juga dipanggil agar dapat menampilkan isi.
Int
main()
Pada int main pertama yang dilakukan
adalah mendefinisikan tipe data. Kita membuat variabel “kk” dengan tipe data
“kartukeluarga” dari class. Dalam main juga terdapat perulangan do while yang
berfungsi agar program tetap berjalan selama user tidak memilih exit dari
program. Perulangan do while berisi output menu pilihan dan switch case yang
memanggil function dari public di dalam class.
Switch case berisi 3 pilihan yaitu
input data, menampilkan data, dan exit dari program. Switch case pertama untuk
menginputkan data akan memanggil function tambahkk() dengan cara menggunakan
variabel “kk”. Switch case kedua untuk menampilkan data akan memanggil function
printAll() dengan cara yang sama seperti pertama. Switch case ketiga berisi
continue untuk mengakhiri program.
Link
Video :
https://drive.google.com/drive/folders/1YJKmx3OnjzwCe-DXCCS6zuM1L_kUX3Pr


Komentar
Posting Komentar