Object Oriented Programming

Object Oriented Programming atau Pemrograman Berorientasi objek merupakan sebuah paradigma pemrograman yang didasarkan dan dibuat berdasarkan sebuah objek. Contohnya seperti kita memiliki sebuah mainan radio control dimana mobil radio control tersebut merupakan objeknya dan remote controlnya merupakan sebuah alat kendalinya. Mobil RCnya dapat kita kendalikan maju, mundur, kekanan dan kekiri melalui remote controlnya, hal tersebut merupakan contoh konsep dasar dari pemrograman berorientasi objek. Bahasa Pemrograman C/C++ sudah mendukung adanya Object Oriented Programming, yaitu dengan adanya fitur function (fungsi).

Function (Fungsi)

Sebelum mengenal sebuah fungsi, ada baiknya kita kembali ke materi sebelumnya yaitu pengertian tentang variable. Fungsi kegunaannya hampir mirip dengan variable, jika variable digunakan untuk menyimpan sebuah nilai, maka fungsi digunakan untuk menyimpan sebuah potongan blok program. Fungsi dalam C/C++ merupakan suatu bagian (blok program) dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya. Pada pembuatan program yang kompleks dan memiliki banyak fitur, kita diharuskan menggunakan fungsi. Fungsi diperlukan agar mempermudah kita dalam membaca sebuah kode program dan mempermudah untuk merawat kodenya. Dengan adanya sebuah fungsi, kita tidak perlu menulis kode sepanjang gerbong kereta api di program utama, dan kita dapat memecah atau membaginya lalu tinggal memanggil fungsinya saja didalam program utama. Dan itu juga akan mempersingkat penulisan dari program utama tersebut nantinya.

Fungsi memiliki parameter yang dapat dipergunakan untuk memasukkan atau menampung variabel kedalam sebuah fungsi. Dalam pendeklarasian parameter pada sebuah fungsi, kita juga dapat memasukkan default argument/parameter.

Fungsi juga dapat mengembalikan nilai dengan cara menggunakan keyword return yang di taruh didalam blok program fungsi itu sendiri, untuk mengembalikan nilai yang ingin kita kembalikan kedalam program utama.

Tujuan utama sebuah fungsi adalah bertujuan untuk menghindari terjadinya duplikasi kode. Tujuannya tak lain agar kode tersebut bisa digunakan kembali, hanya dengan memanggil nama fungsinya saja.

Dalam C/C++ terdapat beberapa hal yang perlu diperhatikan dalam mendeklarasikan sebuah fungsi

  1. Menggunakan keyword return (Fungsi yang mengembalikan nilai)
  2. Terdapat parameter/argument fungsi
  3. Fungsi di C/C++ mendukung parameter yang memiliki initial value/default parameter(nilai awal)

Umumnya fungsi dibedakan menjadi 2 kategori

  1. Fungsi yang tidak mengembalikan Nilai
  2. Fungsi yang mengembalikan Nilai

Fungsi yang tidak mengembalikan nilai (Fungsi Void)

Merupakan sebuah fungsi yang berguna untuk menampung sebuah blok program dengan tujuan untuk memperpendek baris program saja, biasanya fungsi ini dipanggil secara independen dalam blok program seperti contoh dibawah ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

// Contoh Fungsi Void/Fungsi yang tidak mengembalikan nilai
// Tujuannya untuk mengeluarkan sebuah potongan blok program saja
void f_iniFungsi(){ // Deklarasi fungsinya
printf("Ini adalah sebuah fungsi void dalam C/C++"); // Didalam Blok Program Fungsi
}

int main() {

f_iniFungsi(); // Memanggil Fungsi secara independen | Blok Program Utama/Main (Blok Program File Dasar)

return 0;
}

Fungsi yang mengembalikan Nilai

Merupakan sebuah fungsi yang akan mengembalikan nilai tertentu. dan biasanya fungsi ini dipanggil lalu disimpan kedalam sebuah variable seperti contoh dibawah ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

// Contoh Fungsi yang mengembalikan nilai
string fg_str_fungsiKembalian(){ // Deklarasi fungsinya
return "Ini adalah sebuah fungsi kembalian dalam C/C++"; // Didalam Blok Program Fungsi
}

int main() {

string g_str_text = fg_str_fungsiKembalian(); // Memanggil fungsi lalu nilai kembaliannya disimpan ekdalam variabel x

cout<<g_str_text<<endl; // Mencetak hasilnya

return 0;
}

Blok Program di Dalam Fungsi

Setelah mengetahui Fungsi, kategori dan penggunaannya maka yang selanjutnya kita pelajari adalah isi didalam blok program fungsinya. Sebelum mempelajari isi dari blok program didalam sebuah fungsi, ada baiknya anda memahami konsep dasar terkait hal tersebut. Misalkan jika anda memiliki sebuah kartu debit/kredit dengan logo VISA/MASTERCARD maka anda dapat menggunakan kartu tersebut sebagai alat transaksi pembayaran secara nasional ataupun internasional, tetapi jika kartu debit/kredit anda tidak terdapat logo VISA/MASTERCARD, maka anda tidak dapat menggunakan kartu tersebut sebagai alat transaksi pembayaran secara internasional dan hanya berlaku di nasional saja. Dari konsep pembatasan akses dan fitur pada kartu kredit/debit tersebut maka blok program didalam fungsi dan diluar fungsi pun juga memiliki konsep yang sama. Jika sudah memahami konsep tersebut maka selanjutnya kita akan berkenalan dengan variable global dan lokal.

Variable Global

Variable yang dapat digunakan di blok program manapun (didalam blok program fungsi ataupun diluar blok program deklarasi fungsi). karena berlaku secara global, maka variable global dapat dipanggil dan digunakan di manapun entah itu di satu file yang sama ataupun di luar file yang berbeda.

Variable Lokal

Merupakan variable yang hanya dapat digunakan didalam sebuah blok program fungsi/class. karena bersifat terbatas, maka dia hanya dapat digunakan dalam blok program deklarasi fungsi/class dan tidak bisa digunakan diluar blok program fungsi.

Contoh-Contoh Fungsi:

Fungsi dengan parameter yang mengembalikan nilai:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

// Contoh fungsi dengan parameter

int g_int_hasil = 0; // Mendeklarasikan Variable Global

int fg_int_fungsiTambahBerparameter( int l_int_nilai1, int l_int_nilai2 ) { // Deklarasi Fungsi Berparameter
int l_int_hasil = l_int_nilai1 + l_int_nilai2; // Mendeklarasikan Variable lokal untuk menampung hasil

// Mengeluarkan nilai variable lokal dalam sebuah fungsi

// 1. Cara Pertama dengan memindahkannya kedalam variable global (Untuk Bahasa Pemrograman C/C++)
// g_int_hasil = l_int_hasil;
// printf("%i", g_int_hasil);

// 2. Cara Kedua menjadikan fungsi mengembalikan nilai variable lokal tersebut (Berfungsi di Python dan C/C++)
return l_int_hasil;
}

int main() {

// (void) fg_int_fungsiTambahBerparameter(4, 5); // Cara 1 (Menampung nilai penjumlahan di variabel Global)
g_int_hasil = fg_int_fungsiTambahBerparameter(5, 6); // Cara 2 (Memanggil fungsi lalu nilai kembaliannya/return disimpan kedalam variabel g_int_hasil)

printf("%i", g_int_hasil);

return 0;
}

Fungsi dengan default parameter/initial value yang tidak mengembalikan nilai:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

void fg_fungsiKurangBerparameter( int l_int_nilai1 = 1, int l_int_nilai2 = 1 ) { // Deklarasi Fungsi dengan Default parameter

int l_int_hasil = l_int_nilai1 + l_int_nilai2;
printf("%i", l_int_hasil);

}

int main() {

fg_fungsiKurangBerparameter(); // Tanpa diisi dengan nilai, maka si fungsi akan otomatis menggunakan nilai default parameter yaitu nilai1 sebagai 5 dan nilai2 sebagai 1

return 0;
}

Recursive Function

Adalah sebuah fungsi yang memanggil dirinya sendiri ketika dideklarasikan, biasanya digunakan sebagai pengganti perulangan, tetapi jarang digunakan karena memakan cukup banyak resource/sumber daya komputer sehingga komputer akan bekerja lebih keras dibandingkan dengan menggunakan konsep perulangan biasa.

Berikut adalah contoh penggunaan dari fungsi rekursif pada program faktorial:

1
2
3
4
5
faktorial(5) = 5 * faktorial(4)
faktorial(4) = 4 * faktorial(3)
faktorial(3) = 3 * faktorial(2)
faktorial(2) = 2 * faktorial(1)
faktorial(1) = 1

Maka faktorial(5) = 5 4 3 2 1, akan menghasilkan 120

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

int fg_int_factorial( int l_int_nilai ) {

if ( l_int_nilai <= 1 ){

return l_int_nilai;

} else {

return l_int_nilai * fg_int_factorial( l_int_nilai - 1 ); //Memanggil dirinya sendiri

}
}

int main() {

int l_int_factorial = fg_int_factorial(5);

cout<<l_int_factorial<<endl;

return 0;
}

Class & Object

Dalam C++, kelas dan objek merupakan blok dasar yang mengarah ke pemrograman Berorientasi Objek. Dalam artikel ini, kita akan mempelajari tentang kelas dan objek C++, melihat cara kerjanya, dan cara mengimplementasikannya dalam program C++.

Class

Class adalah prototype, atau blueprint, atau rancangan yang mendefinisikan variable dan method-method pada seluruh objek tertentu. Class berfungsi untuk menampung isi dari program yang akan di jalankan, di dalamnya berisi atribut / type data dan method untuk menjalankan suatu program. Dalam C++ sendiri class didefinisikan dengan keyword class dan diikuti oleh penamaan kelas tersebut “class nama_kelas {}”. Pemanggilan kelas sendiri sama seperti pemanggilan sebuah fungsi/method dalam sebuah program yaitu memanggil nama class tersebut beserta parameter classnya (jika memiliki parameter). Biasanya class berisi banyak method/fungsi yang merupakan turunan sifat dari kelas tersebut.

Class sendiri memiliki banyak bentuk dalam setiap Bahasa pemrograman yang berbeda, seperti abstrak class, data class dan lain sebagainya. Class juga dapat memiliki keterkaitan dengan class lainnya yang dapat disebut sebagai class turunan atau inheritance, Inheritance merupakan sebuah hubungan Parent Class (Kelas Induk) dengan Child Class (Kelas Anak) yang dimana memiliki pewarisan sifat dan pewarisan variabel turunan yang sama.

Contoh sederhana dalam class, kita punya sebuah mobil dimana mobil tersebut memiliki sebuah attribut berupa mesin, roda, aki, dsb. Mobil merupakan sebuah class, sedangkan mesin, roda, aki, dsb merupakan sebuah fungsi.

Ada 2 cara untuk membuat method/fungsi member pada kelas:

  • Deklarasi didalam kelas
  • Deklarasi diluar kelas

Terdapat 3 Access Specifier pada Class di C++ yaitu:

  • Public: Member yang dideklarasikan sebagai publik dapat diakses dari luar kelas.
  • Private: Member yang dideklarasikan sebagai privat hanya dapat diakses dalam kelas itu sendiri.
  • Protected: Member yang dideklarasikan sebagai protected dapat diakses dalam kelas dan kelas turunan (Inheritance).

Lalu juga terdapat 4 jenis constructor yang digunakan pada class di C++ yaitu:

  • Constructor Default: Konstruktor yang tidak mengambil argumen disebut konstruktor default.
  • Constructor Berparameter: Jenis konstruktor ini mengambil argumen untuk menginisialisasi anggota data.
  • Constructor Salinan: Konstruktor salinan membuat objek dari objek yang sudah ada dengan cara menyalinnya.
  • Constructor Pemindahan: Konstruktor pemindahan juga membuat objek dari objek yang sudah ada tetapi dengan cara memindahkannya.

Object

Class dan objek merupakan kedua hal yang tidak dapat dipisahkan. Ketika sebuah kelas dideklarasikan, itu tidak akan berjalan jika tidak membuat sebuah objek. Ketika class dideklarasikan, class merupakan spesifikasi dan hanya sebuah program blueprint. Objek akan menggunakan class sebagai spesifikasinya nanti. Untuk menggunakan dan mengakses data dan fungsi yang dideklarasikan dalam kelas, Anda perlu membuat sebuah objek.

berikut adalah contoh sederhana dalam mendeklarasikan sebuah class dan menggunakannya di objek:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

class Employee {
public: // Access Specifier (public, private, protected)

string name; // Data Member
int salary; // Data Member

// Default Constructor (Class Tanpa Parameter/Memanfaatkan Default Parameter)
Employee() {
name = "Pegawai";
salary = 5000;
}

// Parameterized Constructor (Class dengan Parameter)
Employee(string l_str_name, int l_int_salary) {
name = l_str_name;
salary = l_int_salary;
}

// Member function yang dideklarasikan didalam kelas untuk mencetak data pegawai
void f_cetakPegawai() {
cout<<"Nama Pegawainya adalah "<<name<<endl;
cout<<"Gaji Pegawainya adalah "<<salary<<" US Dollar"<<endl;
}

// Member function yang dideklarasikan diluar kelas untuk mencetak nama
void f_cetakNama();

};

// Fungsi Member yang dideklarasikan diluar kelas
void Employee::f_cetakNama()
{
cout << "Nama Pegawainya adalah: " << name;
}

int main() {

// obj1 akan menggunakan Default Constructor
Employee obj1;
cout <<"Nama Pegawainya adalah "<<obj1.name << endl;

// obj2 akan menggunakan Parameterized Constructor
Employee obj2("Azhar", 10000);
cout <<"Nama Pegawainya adalah " << obj2.name << endl;

// Merubah nama pegawai pada objek 1
obj1.name = "Test Ubah Nama";
cout <<"Nama Pegawainya adalah "<<obj1.name << endl;

// Memanggil method/fungsi cetak pegawai pada obj 1 & 2
obj1.f_cetakPegawai();
obj2.f_cetakPegawai();
obj1.f_cetakNama();

return 0;
}

Method Getter

Merupakan sebuah metode untuk melakukan pengambilan data dari class. biasanya method getter digunakan ketika ada data yang perlu di export atau dikeluarkan dari class.

Anda bisa menggunakan method getter dengan membuat dan menggunakan fungsi yang mengembalikan nilai pada deklarasi class

Method Setter

Merupakan sebuah metode untuk mengubah data pada class. Terkadang setter sangat dibutuhkan ketika terdapat data yang bersifat immutable atau data yang perlu diubah

Anda bisa menggunakan metode setter sama seperti melakukan deklarasi fungsi constructor pada class.

Berikut adalah contoh dari implementasi method getter dan setter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

class Employee {
public: // Access Specifier (public, private, protected)

string name; // Data Member
int salary; // Data Member

// Default Constructor (Class Tanpa Parameter/Memanfaatkan Default Parameter)
Employee() {
name = "Pegawai";
salary = 5000;
}

// Parameterized Constructor (Class dengan Parameter)
Employee(string l_str_name, int l_int_salary) {
name = l_str_name;
salary = l_int_salary;
}

// Member function yang dideklarasikan didalam kelas untuk mencetak data pegawai
void f_cetakPegawai() {
cout<<"Nama Pegawainya adalah "<<name<<endl;
cout<<"Gaji Pegawainya adalah "<<salary<<" US Dollar"<<endl;
}

// Member function yang dideklarasikan diluar kelas untuk mencetak nama
void f_cetakNama();

// Method Getter
string f_str_getDataName(string l_str_jenis) {
if (l_str_jenis == "Nama") {
return name;
} else {
return "Data Tidak Ada";
}
}

// Method Setter
void f_setData(string l_str_name, int l_int_salary) {
name = l_str_name;
salary = l_int_salary;
}

};

// Fungsi Member yang dideklarasikan diluar kelas
void Employee::f_cetakNama()
{
cout << "Nama Pegawainya adalah: " << name;
}

int main() {

// obj1 akan menggunakan Default Constructor
Employee obj1;
cout <<"Nama Pegawainya adalah "<< obj1.name << endl;

// obj2 akan menggunakan Parameterized Constructor
Employee obj2("Azhar", 10000);
cout <<"Nama Pegawainya adalah " << obj2.name << endl;

// Merubah nama pegawai pada objek 1
obj1.name = "Test Ubah Nama";
cout <<"Nama Pegawainya adalah "<< obj1.name << endl;

// Memanggil method/fungsi cetak pegawai pada obj 1 & 2
obj1.f_cetakPegawai();
obj2.f_cetakPegawai();
obj1.f_cetakNama();

cout<<endl;
cout<<endl;

// Memanggil Method Getter
string str_hasil = obj2.f_str_getDataName("Nama");
cout << str_hasil << endl;

// Menggunakan Method Setter
obj1.f_setData("Zulma", 15000);
obj1.f_cetakPegawai();

return 0;
}

Array/List

List/Array merupakan daftar yang memiliki banyak data didalamnya. Umumnya list memiliki index (sebuah urutan dalam kumpulan data list) yang dimulai dari 0. Untuk mendeklarasikan sebuah list dapat menambahkan kurung siku “[]” setelah nama variabel lalu dideklarasikan dengan kurung kurawal “{}” dan setiap data dalam list dipisahkan dengan koma “,”.

Contoh dasar penggunaan list:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

int main() {
int iniList[] = {25, 50, 75, 100};
printf("%d", iniList[0]);
printf("%d", iniList[3]);

return 0;
}

Latihan Object Oriented Programming

Kerjakan Latihan Berikut ini untuk mengetes pemahamanmu tentang Object Oriented Programming.

Latihan Fungsi

Buatlah sebuah fungsi yang mengembalikan nilai hasil tambah, kurang, bagi, kali, dan modulus serta memiliki 2 parameter variable dan memiliki initial value (nilainya bebas). lalu buatlah satu fungsi void untuk mencetak nama dan asal kalian di paling atas program. Buatlah program tersebut berulang hingga dihentikan oleh user. berikut adalah contoh outputnya: (estimasi 30 Menit)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
OUTPUT:
---------------------
| Azhar Rizki Zulma |
| Bintaro |
---------------------
Masukkan Menu(+|-|/|*|%|stop): + (Diinput user)
Masukkan Nilai 1: 5 (Diinput User)
Masukkan Nilai 2: 5 (Diinput User)
Hasil Penjumlahan 5 + 5 adalah 10

Masukkan Menu(+|-|/|*|%|stop): - (Diinput user)
Masukkan Nilai 1: 5 (Diinput User)
Masukkan Nilai 2: 5 (Diinput User)
Hasil Pengurangan 5 - 5 adalah 0

Masukkan Menu(+|-|/|*|%|stop): stop (Diinput user)
Program Berhenti, Terima Kasih telah menggunakan program saya.

Latihan Class & Object

Latihan Class & Object 1

Buatlah sebuah program yang mengimplementasikan sebuah class yang memiliki nama class mahasiswa dan memiliki method yang dapat digunakan untuk menampilkan biodata mahasiswa yang diinputkan oleh user. (estimasi 15 menit)

Latihan Class & Object 2

Buatlah sebuah kelas yang menerapkan method getter dan setter dimana menggunakan implementasi program percabangan serta perulangan seperti pada Latihan sebelumnya. Program menerima deklarasi nilai inputan dari user dan menampungnya dalam sebuah kelas dan variabel didalam kelas tersebut dapat dimanipulasi serta dirubah sesuai keinginan dan perubahan yang diberikan oleh user melalui inputan user itu sendiri serta dapat ditampilkan menggunakan method getter dan setter. (estimasi 45 menit)

Contoh Output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program
Masukkan Pilihan Berupa Angka (1/2/3/4/5): 2 (Diinput User)

Nama: null
Nilai: null

===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program
Masukkan Pilihan Berupa Angka (1/2/3/4/5): 1 (Diinput User)
Masukkan Namamu: ARZ (Diinput User)
Masukkan Nilaimu: 95 (Diinput User)
Data Berhasil Ditambahkan

===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program
Masukkan Pilihan Berupa Angka (1/2/3/4/5): 2 (Diinput User)

Nama: ARZ
Nilai: 95

===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program

Masukkan Pilihan Berupa Angka (1/2/3/4/5): 3 (Diinput User)
Apa yang ingin diubah (Nama/Nilai): Nilai (Diinput User)
Masukkan Nilai: 100 (Diinput User)
Data Nilai Berhasil Dirubah

===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program

Masukkan Pilihan Berupa Angka (1/2/3/4/5): 2 (Diinput User)

Nama: ARZ
Nilai: 100

===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program
Masukkan Pilihan Berupa Angka (1/2/3/4/5): 4 (Diinput User)
Data Berhasil Dihapus


===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program
Masukkan Pilihan Berupa Angka (1/2/3/4/5): 2 (Diinput User)

Nama: null
Nilai: null

===== Program OOP =====
1. Mendeklarasikan Objek
2. Menampilkan Objek
3. Merubah Nilai Objek
4. Menghapus Objek
5. Keluar Dari Program
Masukkan Pilihan Berupa Angka (1/2/3/4/5): 5 (Diinput User)
Terima Kasih Sudah Menggunakan Program Saya

Latihan List/Array

Buatlah sebuah list daftar nama lalu buat menu yang dapat menampilkan, mengedit dan menghapus list tersebut dan buat program tersebut secara berulang, implementasikan struktur percabangan, perulangan serta fungsi pada program tersebut. Berikut ini adalah outputnya: (estimasi 30 menit)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 8 (Diinput oleh user)
Inputan Tidak Valid

Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 1 (Diinput oleh user)
Index Ke-0: Azhar
Index Ke-1: Jordie
Index Ke-2: Ridho
Index Ke-3: Ardi
Index Ke-4: Clementius
Index Ke-5: Jasmine
Data Berhasil Ditampilkan

Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 2 (Diinput oleh user)
Masukkan Index yang Ingin diganti: 2 (Diinput oleh user)
Masukkan Yang ingin diubah: Dian (Diinput oleh user)
Data Dalam List Berhasil Diganti

Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 1 (Diinput oleh user)
Index Ke-0: Azhar
Index Ke-1: Jordie
Index Ke-2: Dian
Index Ke-3: Ardi
Index Ke-4: Clementius
Index Ke-5: Jasmine
Data Berhasil Ditampilkan

Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 3 (Diinput oleh user)
Masukkan Index yang Ingin dihapus: 4 (Diinput oleh user)
Data Berhasil Dihapus

Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 1 (Diinput oleh user)
Index Ke-0: Azhar
Index Ke-1: Jordie
Index Ke-2: Dian
Index Ke-3: Ardi
Index Ke-4:
Index Ke-5: Jasmine
Data Berhasil Ditampilkan

Menu
1. Tampil
2. Ganti
3. Hapus
0. Keluar
Masukkan Menu: 0 (Diinput oleh user)
Terima Kasih telah menggunakan program saya