Struktur data bahasa C
a. Konsep dasar struktur data dalam Bahasa C.
Struktur data adalah cara untuk mengorganisir dan menyimpan data dalam memori komputer agar
dapat diakses dan dikelola dengan efisien. Dalam bahasa pemrograman C, terdapat beberapa
konsep dasar struktur data yang umum digunakan untuk memanipulasi data secara efektif.
• Jenis-Jenis Struktur Data dalam Bahasa C:
✓ Array: Array adalah tipe data yang digunakan untuk menyimpan kumpulan elemen dengan
tipe data yang sama. Elemen-elemen array diindeks berdasarkan posisi mereka dalam
array.
✓ Linked List: Linked list adalah struktur data dinamis yang terdiri dari simpul-simpul yang
saling terhubung. Setiap simpul (node) menyimpan data dan pointer ke simpul berikutnya.
✓ Stack: Stack adalah struktur data yang mengikuti prinsip LIFO (Last In First Out). Operasi
penambahan (push) dan penghapusan (pop) dilakukan pada elemen teratas stack.
✓ Queue: Queue adalah struktur data yang mengikuti prinsip FIFO (First In First Out).
Operasi penambahan (enqueue) dilakukan pada ujung belakang queue, sedangkan operasi
penghapusan (dequeue) dilakukan pada ujung depan queue.
• Operasi pada Struktur Data dalam Bahasa C:
✓ Pencarian: Mencari elemen tertentu dalam struktur data.
✓ Penambahan: Menambahkan elemen baru ke dalam struktur data.
✓ Penghapusan: Menghapus elemen dari struktur data.
✓ Pengurutan: Mengurutkan elemen dalam struktur data berdasarkan aturan tertentu.
✓ Akses: Mengakses elemen dalam struktur data untuk membaca atau mengubah nilainya.
• Keuntungan Penggunaan Struktur Data dalam Bahasa C:
✓ Efisiensi: Struktur data yang tepat dapat mengoptimalkan penggunaan memori dan waktu
eksekusi program.
✓ Modularitas: Struktur data memungkinkan pemisahan dan pengelompokan data terkait
menjadi satu unit yang dapat digunakan berulang kali.
✓ Keterbacaan: Struktur data yang terorganisir dengan baik membuat kode program lebih
mudah dipahami dan dikelola.
✓ Fleksibilitas: Struktur data dalam bahasa C memungkinkan penggunaan berbagai teknik
pemrograman, seperti rekursi dan pengulangan.
b. Mengimplementasikan kelas dan objek dalam pemrograman berorientasi objek dalam
Bahasa C
Dalam pemrograman, array, linked list, stack, dan queue adalah struktur data yang digunakan
untuk mengorganisir dan menyimpan kumpulan elemen. Setiap struktur data memiliki
karakteristik dan operasi yang berbeda-beda, memungkinkan pengelolaan data secara efisien
tergantung pada kebutuhan aplikasi.
• Array:
✓ Pengertian: Array adalah struktur data statis yang terdiri dari elemen-elemen dengan tipe
data yang sama. Elemen-elemen array disimpan secara berurutan dalam memori dan
diindeks untuk pengaksesan.
✓ Implementasi: Dalam bahasa pemrograman, array dapat dideklarasikan dan diakses
menggunakan indeks. Contoh: int numbers[5]; numbers[0] = 1;
• Linked List:
✓ Pengertian: Linked list adalah struktur data dinamis yang terdiri dari simpul-simpul yang
saling terhubung melalui pointer. Setiap simpul (node) menyimpan data dan pointer ke
simpul berikutnya.
✓ Implementasi: Linked list dapat diimplementasikan menggunakan node yang berisi data
dan pointer. Operasi seperti penambahan, penghapusan, dan pencarian dapat dilakukan
dengan mengubah pointer pada simpul-simpul yang terhubung.
• Stack:
✓ Pengertian: Stack adalah struktur data yang mengikuti prinsip LIFO (Last In First Out).
Elemen terakhir yang ditambahkan akan menjadi elemen pertama yang dihapus.
✓ Implementasi: Stack dapat diimplementasikan menggunakan array atau linked list. Operasi
push (penambahan) dan pop (penghapusan) dilakukan pada elemen teratas stack.
• Queue:
✓ Pengertian: Queue adalah struktur data yang mengikuti prinsip FIFO (First In First Out).
Elemen pertama yang ditambahkan akan menjadi elemen pertama yang dihapus.
Implementasi: Queue dapat diimplementasikan menggunakan array atau linked list.
Operasi enqueue (penambahan) dilakukan pada ujung belakang queue, sedangkan operasi
dequeue (penghapusan) dilakukan pada ujung depan queue.
Keuntungan Menggunakan Struktur Data:
• Memungkinkan pengorganisasian data secara efisien.
• Memudahkan operasi pengaksesan, penambahan, dan penghapusan data.
• Meningkatkan keterbacaan dan modularitas kode program.
• Mengoptimalkan penggunaan memori dan waktu eksekusi program.
kali ini saya akan mebuat program implementasi array
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main() {
char nama[MAX_SIZE][50];
int jumlahSiswa = 0;
printf("Program Daftar Nama Siswa\n");
printf("-------------------------\n");
int pilihan;
do {
printf("Menu:\n");
printf("1. Tambahkan Nama Siswa\n");
printf("2. Cetak Semua Nama Siswa\n");
printf("3. Cari Nama Siswa Berdasarkan Indeks\n");
printf("0. Keluar\n");
printf("Pilihan Anda: ");
scanf("%d", &pilihan);
switch (pilihan) {
case 1:
if (jumlahSiswa < MAX_SIZE) {
printf("Masukkan Nama Siswa: ");
scanf("%s", nama[jumlahSiswa]);
jumlahSiswa++;
printf("Nama Siswa berhasil ditambahkan.\n");
} else {
printf("Kapasitas maksimum telah tercapai. Tidak dapatmenambahkan nama siswa lagi.\n");
}
break;
case 2:
if (jumlahSiswa > 0) {
printf("Daftar Nama Siswa:\n");
for (int i = 0; i < jumlahSiswa; i++) {
printf("%d. %s\n", i, nama[i]);
}
} else {
printf("Belum ada nama siswa yang ditambahkan.\n");
}
break;
case 3:
if (jumlahSiswa > 0) {
int indeks;
printf("Masukkan Indeks Nama Siswa: ");
scanf("%d", &indeks);
if (indeks >= 0 && indeks < jumlahSiswa) {
printf("Nama Siswa dengan Indeks %d: %s\n", indeks,
nama[indeks]);
} else {
printf("Indeks tidak valid. Masukkan indeks antara 0 hingga%d.\n", jumlahSiswa - 1);
}
} else {
printf("Belum ada nama siswa yang ditambahkan.\n");
}
break;
case 0:
printf("Terima kasih. Program selesai.\n");
break;
default:
printf("Pilihan tidak valid. Silakan pilih menu yangtersedia.\n");
break;
}
printf("\n");
} while (pilihan != 0);
return 0;
}
output :

Comments
Post a Comment