NO 1
#include <iostream>
#include <string>
#define MAX 100 // Maksimum kapasitas stack
using namespace std;
// Struktur untuk barang
struct Barang {
string nama;
int jumlah;
};
// Kelas Stack untuk menyimpan daftar barang
class Stack {
private:
Barang barang[MAX];
int top;
public:
Stack() { top = -1; }
// Mengecek apakah stack kosong
bool isEmpty() {
return (top == -1);
}
// Mengecek apakah stack penuh
bool isFull() {
return (top == MAX - 1);
}
// Menambahkan barang ke dalam stack
void push(string nama, int jumlah) {
if (isFull()) {
cout << "Stack penuh! Tidak dapat menambahkan barang.\n";
return;
}
top++;
barang[top].nama = nama;
barang[top].jumlah = jumlah;
cout << "Barang " << nama << " dengan jumlah " << jumlah << " telah
ditambahkan ke dalam stack.\n";
}
// Menghapus barang dari stack dan menampilkan detailnya
void pop() {
if (isEmpty()) {
cout << "Stack kosong! Tidak ada barang yang bisa diperiksa.\n";
return;
}
cout << "Barang " << barang[top].nama << " dengan jumlah " <<
barang[top].jumlah << " dihapus dari stack.\n";
top--;
}
// Menampilkan barang yang ada di stack
void display() {
if (isEmpty()) {
cout << "Stack kosong! Tidak ada barang yang tersedia.\n";
return;
}
cout << "Daftar barang di stack:\n";
for (int i = top; i >= 0; i--) {
cout << "Barang: " << barang[i].nama << ", Jumlah: " <<
barang[i].jumlah << endl;
}
}
};
int main() {
Stack stack;
int pilihan;
string nama;
int jumlah;
while (true) {
cout << "\nMenu:\n";
cout << "1. Tambah Barang ke Stack\n";
cout << "2. Periksa Barang dari Stack\n";
cout << "3. Tampilkan Semua Barang di Stack\n";
cout << "4. Keluar\n";
cout << "Pilih: ";
cin >> pilihan;
switch (pilihan) {
case 1:
cout << "Masukkan nama barang: ";
cin >> nama;
cout << "Masukkan jumlah barang: ";
cin >> jumlah;
stack.push(nama, jumlah);
break;
case 2:
stack.pop();
break;
case 3:
stack.display();
break;
case 4:
exit(0);
break;
default:
cout << "Pilihan tidak valid!\n";
}
}
return 0;
}
no 2
#include <iostream>
#include <stack>
#include <string>
using namespace std;
// Struktur untuk menyimpan informasi transaksi
struct Transaction {
string type;
double amount;
string date;
};
// Fungsi untuk menampilkan menu
void displayMenu() {
cout << "=============================" << endl;
cout << "Menu Transaksi Keuangan" << endl;
cout << "=============================" << endl;
cout << "1. Tambah Transaksi" << endl;
cout << "2. Lihat Sejarah Transaksi" << endl;
cout << "3. Keluar" << endl;
cout << "Pilih opsi: ";
}
// Fungsi untuk menambahkan transaksi baru ke dalam stack
void addTransaction(stack<Transaction>& transactions) {
Transaction newTransaction;
cout << "Masukkan jenis transaksi (debit/kredit): ";
cin >> newTransaction.type;
cout << "Masukkan jumlah: ";
cin >> newTransaction.amount;
cout << "Masukkan tanggal (DD-MM-YYYY): ";
cin >> newTransaction.date;
transactions.push(newTransaction);
cout << "Transaksi berhasil ditambahkan!" << endl;
}
// Fungsi untuk menampilkan sejarah transaksi
void viewTransactionHistory(const stack<Transaction>& transactions) {
stack<Transaction> tempStack = transactions;
if (tempStack.empty()) {
cout << "Tidak ada transaksi yang tercatat." << endl;
} else {
cout << "Sejarah Transaksi:" << endl;
while (!tempStack.empty()) {
Transaction transaction = tempStack.top();
tempStack.pop();
cout << "Tanggal: " << transaction.date << ", Jenis: " <<
transaction.type << ", Jumlah: " << transaction.amount << endl;
}
}
}
int main() {
stack<Transaction> transactions;
int choice;
do {
displayMenu();
cin >> choice;
switch (choice) {
case 1:
addTransaction(transactions);
break;
case 2:
viewTransactionHistory(transactions);
break;
case 3:
cout << "Terima kasih telah menggunakan program ini." << endl;
break;
default:
cout << "Pilihan tidak valid, coba lagi." << endl;
}
} while (choice != 3);
return 0;
}
no 3
#include <iostream>
#include <string>
using namespace std;
// Struktur untuk menyimpan informasi tujuan kuliner
struct CulinaryDestination {
string restaurantName;
string location;
CulinaryDestination* next;
};
// Fungsi untuk menambahkan tujuan kuliner baru ke dalam linked list
void addDestination(CulinaryDestination*& head, const string& restaurantName, const
string& location) {
CulinaryDestination* newDestination = new CulinaryDestination;
newDestination->restaurantName = restaurantName;
newDestination->location = location;
newDestination->next = head;
head = newDestination;
cout << "Tujuan kuliner berhasil ditambahkan!" << endl;
}
// Fungsi untuk menampilkan semua tujuan kuliner
void displayDestinations(CulinaryDestination* head) {
CulinaryDestination* current = head;
if (current == nullptr) {
cout << "Tidak ada tujuan kuliner yang tercatat." << endl;
return;
}
cout << "Daftar Tujuan Kuliner 2024:" << endl;
while (current != nullptr) {
cout << "Nama Restoran: " << current->restaurantName << ", Lokasi: " <<
current->location << endl;
current = current->next;
}
}
// Fungsi untuk menghapus tujuan kuliner berdasarkan nama restoran
void deleteDestination(CulinaryDestination*& head, const string& restaurantName) {
CulinaryDestination* current = head;
CulinaryDestination* previous = nullptr;
while (current != nullptr && current->restaurantName != restaurantName) {
previous = current;
current = current->next;
}
if (current == nullptr) {
cout << "Restoran dengan nama '" << restaurantName << "' tidak ditemukan."
<< endl;
return;
}
if (previous == nullptr) {
head = current->next;
} else {
previous->next = current->next;
}
delete current;
cout << "Tujuan kuliner berhasil dihapus!" << endl;
}
int main() {
CulinaryDestination* head = nullptr;
int choice;
string restaurantName, location;
do {
cout << "=============================" << endl;
cout << "Menu Tujuan Kuliner 2024" << endl;
cout << "=============================" << endl;
cout << "1. Tambah Tujuan Kuliner" << endl;
cout << "2. Lihat Daftar Tujuan" << endl;
cout << "3. Hapus Tujuan Kuliner" << endl;
cout << "4. Keluar" << endl;
cout << "Pilih opsi: ";
cin >> choice;
cin.ignore(); // Mengabaikan newline character setelah pilihan
switch (choice) {
case 1:
cout << "Masukkan nama restoran: ";
getline(cin, restaurantName);
cout << "Masukkan lokasi: ";
getline(cin, location);
addDestination(head, restaurantName, location);
break;
case 2:
displayDestinations(head);
break;
case 3:
cout << "Masukkan nama restoran yang ingin dihapus: ";
getline(cin, restaurantName);
deleteDestination(head, restaurantName);
break;
case 4:
cout << "Terima kasih telah menggunakan program ini." << endl;
break;
default:
cout << "Pilihan tidak valid, coba lagi." << endl;
}
} while (choice != 4);
// Membersihkan memori
while (head != nullptr) {
CulinaryDestination* temp = head;
head = head->next;
delete temp;
}
return 0;
}
no 4
#include <iostream>
#include <string>
using namespace std;
// Struktur untuk menyimpan informasi anggota keluarga
struct FamilyMember {
string name;
int age;
string gender;
string city;
FamilyMember* next;
};
// Fungsi untuk menambahkan anggota keluarga baru ke dalam linked list
void addFamilyMember(FamilyMember*& head, const string& name, int age, const
string& gender, const string& city) {
FamilyMember* newMember = new FamilyMember;
newMember->name = name;
newMember->age = age;
newMember->gender = gender;
newMember->city = city;
newMember->next = head;
head = newMember;
cout << "Anggota keluarga berhasil ditambahkan!" << endl;
}
// Fungsi untuk menampilkan semua anggota keluarga
void displayFamilyMembers(FamilyMember* head) {
FamilyMember* current = head;
if (current == nullptr) {
cout << "Tidak ada anggota keluarga yang tercatat." << endl;
return;
}
cout << "Daftar Anggota Keluarga:" << endl;
while (current != nullptr) {
cout << "Nama: " << current->name << ", Umur: " << current->age
<< ", Jenis Kelamin: " << current->gender << ", Kota: " << current-
>city << endl;
current = current->next;
}
}
// Fungsi untuk menghapus anggota keluarga berdasarkan nama
void deleteFamilyMember(FamilyMember*& head, const string& name) {
FamilyMember* current = head;
FamilyMember* previous = nullptr;
while (current != nullptr && current->name != name) {
previous = current;
current = current->next;
}
if (current == nullptr) {
cout << "Anggota keluarga dengan nama '" << name << "' tidak ditemukan." <<
endl;
return;
}
if (previous == nullptr) {
head = current->next;
} else {
previous->next = current->next;
}
delete current;
cout << "Anggota keluarga berhasil dihapus!" << endl;
}
int main() {
FamilyMember* head = nullptr;
int choice;
string name, gender, city;
int age;
do {
cout << "=============================" << endl;
cout << "Menu Anggota Keluarga" << endl;
cout << "=============================" << endl;
cout << "1. Tambah Anggota Keluarga" << endl;
cout << "2. Lihat Daftar Anggota Keluarga" << endl;
cout << "3. Hapus Anggota Keluarga" << endl;
cout << "4. Keluar" << endl;
cout << "Pilih opsi: ";
cin >> choice;
cin.ignore(); // Mengabaikan newline character setelah pilihan
switch (choice) {
case 1:
cout << "Masukkan nama: ";
getline(cin, name);
cout << "Masukkan umur: ";
cin >> age;
cin.ignore(); // Mengabaikan newline character setelah umur
cout << "Masukkan jenis kelamin: ";
getline(cin, gender);
cout << "Masukkan kota tinggal: ";
getline(cin, city);
addFamilyMember(head, name, age, gender, city);
break;
case 2:
displayFamilyMembers(head);
break;
case 3:
cout << "Masukkan nama anggota keluarga yang ingin dihapus: ";
getline(cin, name);
deleteFamilyMember(head, name);
break;
case 4:
cout << "Terima kasih telah menggunakan program ini." << endl;
break;
default:
cout << "Pilihan tidak valid, coba lagi." << endl;
}
} while (choice != 4);
// Membersihkan memori
while (head != nullptr) {
FamilyMember* temp = head;
head = head->next;
delete temp;
}
return 0;
}
no 5
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
// Inisialisasi nama lengkap
string fullName = "johan setia budi";
string address = "JL Rawa Dolar, Cibubur, Bekasi";
// Menampilkan nama lengkap dengan format yang diinginkan
cout << "Nama Lengkap: " << fullName << endl;
// Menampilkan karakter pertama
char firstChar = toupper(fullName[0]);
cout << "Karakter Pertama: " << firstChar << endl;
// Menampilkan karakter terakhir
char lastChar = toupper(fullName[fullName.length() - 1]);
cout << "Karakter Terakhir: " << lastChar << endl;
// Mengubah nama
string modifiedName = fullName;
modifiedName[0] = toupper(modifiedName[0]); // Huruf pertama kapital
modifiedName[6] = ' '; // Mengubah karakter ke-7 dari 'e' menjadi ' ' (spasi)
modifiedName[7] = 'S'; // Mengubah karakter ke-8 dari 't' menjadi 'S'
modifiedName[8] = 'F'; // Mengubah karakter ke-9 dari 'e' menjadi 'F'
cout << "Nama Setelah Diubah: " << modifiedName << endl;
// Menggabungkan nama yang telah diubah dengan alamat
string fullNameAndAddress = modifiedName + ", " + address;
cout << "Nama Lengkap dan Alamat: " << fullNameAndAddress << endl;
return 0;
}