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 :

Judul

Menghitung Total Nilai Array

Tanggal 25 Maret 2022

Dibuat oleh Muhammad Naufal Taqiyuddin

 

 

Kamus

integer i, n, jumlah ->integer

 

 

Deskripsi

output ("Masukkan Panjang Array")

input (n)

 

 

Kamus

integer larik[n] ->integer {saya memasukkan kamus lagi di bawah karena jika array tersebut didefinisikan di atas akan terjadi bug dalam program}

Deskripsi

repeat for(i=0, i<n, i++) do

input (larik[i])

jumlah += larik[i]

output ("Total = ", jumlah)

 

 

 

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. Tujuan pemrograman guna untuk menemukan urutan instruksi yang akan mengotomatisasi kinerja tugas di komputer, seringkali untuk memecahkan masalah yang diberikan.

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 :

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

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

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

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

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

  1. 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 :

 

Judul

Membuat MAX2, MAX3, MAX5, MAX10 Tanpa Function

Tanggal 19 Maret 2022

Dibuat oleh Muhammad Naufal Taqiyuddin

 

Kamus

float : a, b, c, d, e, f, g, h, i, j ->real

 

Deskripsi

//MAX2

output ("MAX2")

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

 

//MAX3

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)

 

//MAX5

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)

 

//MAX10

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)  

 

 

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 :

 

 Judul

Membuat MAX2, MAX3, MAX5, MAX10

Tanggal 19 Maret 2022

Dibuat oleh Muhammad Naufal Taqiyuddin

 

 Kamus

float : a, b, c, d, e, f, g, h, i, j ->real

float : max2(float a, float b) ->real

float : max3(float a, float b, float c) ->real

float : max5(float a, float b, float c, float d, float e) ->real

float : max10(float a, float b, float c, float d, float e, float f, float g, float h, float i, float j) ->real

 

 Deskripsi

max2(a,b) ->real

max3(a,b,c) ->real

max5(a,b,c,d,e) ->real

max10(a,b,c,d,e,f,g,h,i,j) ->real

 

 Dekomposisi

function max2(float:a ->real,float:b ->real) ->real

judul

MAX2

kamus lokal

-

deskripsi

output ("MAX2")

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