Anda di halaman 1dari 7

Penjabaran Masalah sesuai dengan konsep pemikiran komputasional

Penjabaran masalah sesuai dengan konsep pemikiran komputasional dimulai dengan


mengidentifikasi masalah yang ingin dipecahkan dan menentukan solusi yang diinginkan.
Selanjutnya, dilakukan analisis masalah untuk memahami struktur dan kompleksitasnya.
Kemudian, dipilih algoritma yang tepat untuk memecahkan masalah dan dianalisis
kompleksitas waktu dan ruangnya.

Setelah itu, langkah selanjutnya adalah mengimplementasikan algoritma dalam bahasa


pemrograman tertentu. Pada tahap ini, masalah dapat diperbaiki dan dianalisis kembali
untuk memastikan keakuratannya. Terakhir, setelah memastikan keakuratan solusi, dapat
dilakukan uji coba untuk memastikan keefektifan dan efisiensi algoritma.

Dalam proses penjabaran masalah sesuai dengan konsep pemikiran komputasional, perlu
diperhatikan aspek-aspek seperti struktur data, kompleksitas waktu dan ruang, keakuratan,
keefektifan, dan efisiensi algoritma. Dengan memperhatikan aspek-aspek tersebut, dapat
dipastikan bahwa solusi yang dihasilkan memenuhi standar dan dapat diimplementasikan
secara efektif dan efisien.

Algoritma Program dan Kompleksitas

Mulai program

Buat list kosong untuk menampung data mahasiswa, beri nama "data_mahasiswa"

Buat menu utama dengan pilihan berikut:

Tampilkan data

Tambah data

Ubah data

Urutkan data

Cari data

Keluar

Jika pengguna memilih "Tampilkan data" :

Cek apakah "data_mahasiswa" masih kosong

Jika tidak, buat tabel dengan library prettytable, lalu tampilkan data menggunakan
fungsi "tampilkan_data()"

Jika kosong, tampilkan pesan "Data mahasiswa masih kosong"


Kompleksitas waktu dari algoritma ini adalah O(n), di mana n adalah jumlah mahasiswa yang
tersimpan.

Jika pengguna memilih "Tambah data":

Mintalah pengguna untuk memasukkan jumlah data yang ingin ditambahkan

Lakukan pengulangan sebanyak jumlah data yang diminta, dan mintalah pengguna
memasukkan data mahasiswa satu per satu, kemudian tambahkan ke
"data_mahasiswa"

Tampilkan pesan "Data mahasiswa berhasil ditambahkan"

Kompleksitas waktu dari algoritma ini adalah O(n), di mana n adalah jumlah mahasiswa yang akan
ditambahkan.

Jika pengguna memilih "Ubah data":

Mintalah pengguna untuk memasukkan NIM mahasiswa yang ingin diubah

Lakukan pengulangan untuk mencari data mahasiswa dengan NIM yang sesuai

Jika ditemukan, tampilkan data mahasiswa tersebut dan mintalah pengguna


memasukkan data baru

Jika tidak ditemukan, tampilkan pesan "Mahasiswa dengan NIM {nim} tidak
ditemukan"

Tampilkan pesan "Data mahasiswa berhasil diubah"

Kompleksitas waktu dari algoritma ini adalah O(n), di mana n adalah jumlah mahasiswa yang
tersimpan.

Jika pengguna memilih "Urutkan data":

Mintalah pengguna untuk memilih kategori pengurutan (NIM/Nama/Program


Studi/Tahun Masuk)

Urutkan data mahasiswa berdasarkan kategori yang dipilih menggunakan algoritma


bubble sort

Tampilkan pesan "Data mahasiswa berhasil diurutkan berdasarkan {kategori}"


Kompleksitas waktu dari algoritma ini bervariasi tergantung pada jenis algoritma pengurutan yang
digunakan. Untuk algoritma bubble sort, kompleksitas waktu terburuk adalah O(n^2), sedangkan
untuk algoritma merge sort dan quick sort, kompleksitas waktu terburuk adalah O(nlogn).

Jika pengguna memilih "Cari data":

Mintalah pengguna untuk memasukkan NIM mahasiswa yang ingin dicari

Lakukan pencarian menggunakan algoritma binary search

Jika ditemukan, tampilkan data mahasiswa tersebut

Jika tidak ditemukan, tampilkan pesan "Mahasiswa dengan NIM {nim} tidak
ditemukan"

Jika pengguna memilih "Keluar", tampilkan pesan "Terima kasih telah menggunakan
program ini" dan keluar dari program

Jika pengguna memilih opsi yang tidak valid, tampilkan pesan "Opsi tidak valid"

Kompleksitas waktu algoritma tersebut adalah O(n log n )

Anda mungkin juga menyukai