Nama : Veni Restu Illahi NIM : H1A022001
1. C++ merupakan bahasa pemrograman computer yang merupakan evolusi dari Bahasa C yang sudah ada dan C++ adalah bahasa pemrograman yang bersifat portabel dan bisa digunakan untuk menciptakan berbagai aplikasi yang bisa beradaptasi dengan berbagai platform.
Alasan mengapa C++ masih digunakan saat ini:
 Bahasa C++ memiliki kapabilitas yang sangat baik sehingga programmer dapat memperoleh seluruh tenaga yang dimiliki komputer.
 Dapat dikembangkan di berbagai platform sehingga aplikasi yang dibangun dapat berjalan di sistem operasi yang berbeda.
 Compiler C++ yang sangat baik sehingga dapat mempercepat proses kompilasi.
 C++ merupakan bahasa terstruktur yang mendukung OOP(Object Oriented Programming).
 C++ dikategorikan sebagai bahasa tingkat menengah sehingga mendekati bahasa mesin.
 Dengan bahasa C++ kita dapat membangun aplikasi graphic processor menggunakan librari OpenGL.
 Kemudahan dalam memanipulasi data seperti merubah alamat dari suatu variabel menggunakan pointer
2. Pada dasarnya sama yaitu untuk menyimpan data dalam didalam satu variabel, didalam variabel nya kita tinggal mengatur alamat posisi data tersebut berada atau bisa dikatakan array.
- vector: vector termasuk array dinamis, yakni array yang proses memungkinkan proses insert dan delete element pada bagian tengah array dan “seakan-akan”
mengubah ukuran array tersebut.
- stack: Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain atau bertumpuk. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO(Last In First Out). Maka elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil.
- queue: queue atau bisa disebut juga antrian merupakan suatu kumpulan data yang memiliki head atau front dimana data dikeluarkan (dequeue) dan tail atau rear dimana data dimasukkan (enqueue) ke antrian.
- list: sejumlah simpul (node) yang dikaitkan dengan simpul yang lain dengan bantuan pointer dalam suatu urutan tertentu.
- trees : Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layakya struktur sebuah pohon.
3. Node, null, dan head adalah istilah yang sering digunakan dalam linked list. Linked list sendiri adalah struktur data yang terdiri dari node-node yang saling terhubung. Setiap node memiliki dua bagian, yaitu data dan pointer. Data berisi informasi yang disimpan dalam node tersebut, sedangkan pointer berisi alamat memori dari node selanjutnya.
• Node: Merupakan objek dasar dalam linked list. Setiap node terdiri dari data dan pointer ke node selanjutnya.
• Null: Merupakan nilai kosong yang digunakan untuk menandai akhir dari linked list. Pointer pada node terakhir akan menunjuk ke null.
• Head: Merupakan pointer yang menunjuk ke node pertama dalam linked list.
Head digunakan untuk mengakses node pertama dan melakukan operasi pada linked list seperti penambahan atau penghapusan node.
Pola mekanisme yang sering digunakan dalam linked list adalah sebagai berikut:
1. Menambah Node
• Pertama-tama, kita membuat node baru dan mengisi data ke dalamnya.
• Kemudian, kita mengatur pointer pada node sebelumnya agar menunjuk ke node baru dan mengatur pointer pada node baru agar menunjuk ke node selanjutnya.
2. Menghapus Node
• Pertama-tama, kita mencari node yang akan dihapus.
• Kemudian, kita mengatur pointer pada node sebelumnya agar menunjuk ke node setelah node yang akan dihapus dan menghapus node tersebut.
3. Memasukkan Node di Tengah-Tengah
• Pertama-tama, kita mencari node setelah dihapus.
• Kemudian, kita mengatur pointer pada node sebelumnya agar menunjuk ke node setelah node yang akan dihapus dan menghapus node tersebut.
3. Memasukkan Node di Tengah-Tengah
• Pertama-tama, kita mencari node setelah posisi tempat kita ingin menyisipkan node baru.
• Kemudian, kita membuat node baru dan mengatur pointer pada node sebelumnya agar menunjuk ke node baru dan mengatur pointer pada node baru agar menunjuk ke node selanjutnya.
4. Melintasi Linked List
• Pertama-tama, kita mulai dari head dan mengakses node pertama dalam linked list.
• Kemudian, kita mengakses node berikutnya dengan menggunakan pointer pada node tersebut.
• Proses ini berlanjut sampai kita mencapai akhir linked list, yaitu null.
4. //Nama:Veni Restu Illahi //NIM:H1A022001
#include <iostream > // Library output input
using namespace std; // perintah untuk menyatakan bahwa kita akan menggunakan semua fungsi dan objek yang terdapat dalam namespace”std”
int main() // fungsi utama {
cout << "## Program C++ Pencarian Array ##" << endl; //
output dalam tanda petik
cout << "==================================" << endl;
cout << endl;
int input[100], arr_count, i, num; // deklarasi variabel cout << "Input jumlah element Array: ";
cin >> arr_count;// output cari variabel
cout << "Input "<< arr_count << " angka (dipisah dengan enter): " ;
cout << endl;
// simpan setiap angka yang diinput ke dalam array for(i = 0; i < arr_count; i++){
cin >> input[i];
}
cout << endl;
cout << "Input angka yang akan dicari: ";
cin >> num;
// proses pencarian array
for(i = 0; i < arr_count; i++)//fungsi perulangan if(input[i] == num){//fungsi jika nilai true
cout << "Angka ditemukan pada index ke-" << i;
break;//mengakhiri fungsi }
}
if(i == arr_count){//fungsi jika nilai benar cout << "Angka tidak ditemukan";
}
cout << endl;
return 0;//mengembalikan ke nilai 0 }
5. //Nama:Veni Restu Illahi //NIM:H1A022001
#include <iostream>//input output pada program C++
#include <iomanip>
using namespace std;// perintah untuk menyatakan bahwa kita akan menggunakan semua fungsi dan objek yang terdapat dalam namespace”std”
int main()//fungsi utama {
cout << "## Program C++ Segitiga Angka ##" <<
endl;//output dalam tanda petik
cout << "==================================" << endl;
cout << endl;
int tinggi_segitiga,i,j,k;//dekarasi variabel cout << "Input tinggi segitiga: ";
cin >> tinggi_segitiga;//input variabel cout << endl;
for(i=1;i<=tinggi_segitiga;i++) {//fungsi perulangan for(j=1;j<=i;j++) {//fungsi perulangan
k++;
cout << setw(3) << k << " ";
}
cout << endl;
}
return 0;//mengembalikan nilai ke 0 }
6. //Nama:Veni Restu Illahi //NIM:H1A022001
#include <iostream>//input output pada program Bahasa C++
using namespace std;// perintah untuk menyatakan bahwa kita akan menggunakan semua fungsi dan objek yang terdapat dalam namespace”std”
int main()//fungsi utama {
int i, j, baris;// deklarasi variabel
cout << "Segitiga Bintang Siku Siku Terbalik\n";
cout << "Masukkan jumlah baris: ";
cin >> baris;
for (i = baris; i >= 1; i--)// fungsi perulangan {
for (j = 1; j <= i; j++)//fungsi perulangan {
cout << "* ";
}
cout << "\n";
}
return 0;//mengembalikan nilai ke 0 }
7. #include <iostream>
#include <cstring>
using namespace std;
struct node { string nama;
string kelas;
string nim;
node *next;
};
node *head = NULL;
void insert(string nama, string kelas, string nim) { node *new_node = new node;
new_node->nama = nama;
new_node->kelas = kelas;
new_node->nim = nim;
new_node->next = NULL;
if (head == NULL) { head = new_node;
} else {
node *temp = head;
while (temp->next != NULL) { temp = temp->next;
}
temp->next = new_node;
} }
void hapus() {
if (head == NULL) {
cout << "Linked list kosong" << endl;
return;
}
node *temp = head;
head = head->next;
delete temp;
cout << "Data berhasil dihapus" << endl;
}
void cetak() {
if (head == NULL) {
cout << "Linked list kosong" << endl;
return;
}
node *temp = head;
while (temp != NULL) {
cout << "Nama : " << temp->nama << endl;
cout << "Kelas : " << temp->kelas << endl;
cout << "NIM : " << temp->nim << endl;
cout << endl;
temp = temp->next;
} }
int main() {
int pilihan;
string nama, kelas, nim;
char kembali;
do {
cout << "Menu : " << endl;
cout << "1. Input data" << endl;
cout << "2. Hapus data" << endl;
cout << "3. Cetak data" << endl;
cout << "4. Exit" << endl;
cout << "Masukkan pilihan Anda : ";
cin >> pilihan;
cout << endl;
switch (pilihan) { case 1:
cout << "Masukkan nama : ";
cin >> nama;
cout << "Masukkan kelas : ";
cin >> kelas;
cout << "Masukkan NIM : ";
cin >> nim;
insert(nama, kelas, nim);
cout << endl;
break;
case 2:
hapus();
cout << endl;
break;
case 3:
cetak();
cout << endl;
break;
case 4:
return 0;
default:
cout << "Pilihan tidak valid" << endl;
cout << endl;
}
cout << "Kembali ke menu? [Y/N] : ";
cin >> kembali;
cout << endl;
} while (kembali == 'Y' || kembali == 'y');
return 0;
}