Anda di halaman 1dari 8

SOAL SOAL PTS

Mata pelajaran : PemDas ( Pemrograman Dasar )

1. Manakah dari berikut ini yang bukan merupakan jenis data primitif dalam pemrograman?

a. Integer

b. String

c. Boolean

d. Array

Jawaban: d. Array Penjelasan: Dalam pemrograman, array bukan merupakan jenis data primitif. Data
primitif umumnya mencakup tipe data seperti integer, string, dan boolean, yang merupakan tipe data
dasar yang telah didefinisikan dalam bahasa pemrograman.

2. Apa output dari kode program berikut ini?

x=5

y=2

result = x / y

print(result)

a. 2.5

b. 2

c. 2.0

d. 2.50

Jawaban: c. 2.0 Penjelasan: Pada operasi pembagian (/) dalam Python, jika kedua operan merupakan
bilangan bulat (integer), hasilnya akan menjadi float (pecahan). Dalam kasus ini, 5 dibagi dengan 2
menghasilkan 2.5, yang akan ditampilkan sebagai 2.0.

3. Apa yang dilakukan oleh pernyataan if dalam pemrograman?

a. Menjalankan blok kode berulang kali sampai kondisi terpenuhi.

b. Menjalankan blok kode jika kondisi terpenuhi.

c. Menjalankan blok kode jika kondisi tidak terpenuhi.

d. Menjalankan blok kode tanpa memeriksa kondisi.

Jawaban: b. Menjalankan blok kode jika kondisi terpenuhi. Penjelasan: Pernyataan if digunakan untuk
melakukan pengecekan kondisi. Jika kondisi yang ditentukan benar (True), maka blok kode yang
berada di dalamnya akan dijalankan. Jika kondisi tidak terpenuhi, blok kode tersebut akan dilewati.
4. Dalam pemrograman, manakah dari berikut ini yang tidak sesuai dengan sintaks Python yang
benar?

a. if x > y:

b. for i in range(5):

c. print("Hello, world!")

d. while x > 0:

Jawaban c adalah sintaks Python yang benar. Pernyataan print("Hello, world!") digunakan untuk
mencetak teks "Hello, world!" ke output. Pernyataan if, for, dan while pada pilihan a, b, dan d juga
merupakan sintaks Python yang benar.

5. Berikut ini adalah contoh program Python. Manakah output yang akan ditampilkan jika program
dijalankan?

x = 10

if x > 5:

print("x is greater than 5")

elif x == 5:

print("x is equal to 5")

else:

print("x is less than 5")

a. x is greater than 5

b. x is equal to 5

c. x is less than 5

d. Tidak ada output yang ditampilkan.

Jawaban: a. x is greater than 5 Penjelasan: Nilai x adalah 10. Karena 10 lebih besar dari 5, kondisi x >
5 pada pernyataan if terpenuhi, dan output "x is greater than 5" akan ditampilkan.

6. Apa yang dimaksud dengan "variabel" dalam pemrograman?

a. Pernyataan yang menentukan tindakan yang harus dilakukan oleh program.

b. Sekumpulan instruksi yang membentuk tugas tertentu dalam program.

c. Tempat penyimpanan yang digunakan untuk menyimpan data yang dapat berubah.

d. Proses memecah program menjadi bagian-bagian kecil yang lebih mudah dikelola.
Jawaban: c. Tempat penyimpanan yang digunakan untuk menyimpan data yang dapat berubah.
Penjelasan: Variabel adalah tempat penyimpanan yang digunakan untuk menyimpan data dalam
pemrograman. Data yang disimpan dalam variabel dapat berubah nilainya selama eksekusi program.

7. Manakah dari pernyataan berikut ini yang bukan merupakan operator perbandingan dalam
pemrograman?

a. ==

b. !=

c. <=

d. **

Jawaban: d. ** Penjelasan: Operator ** (pangkat) bukan merupakan operator perbandingan dalam


pemrograman. Operator perbandingan yang umum digunakan meliputi == (sama dengan), != (tidak
sama dengan), <= (kurang dari atau sama dengan), dan sebagainya.

8. Apa yang dilakukan oleh pernyataan else dalam pemrograman?

a. Menjalankan blok kode jika kondisi terpenuhi.

b. Menjalankan blok kode jika kondisi tidak terpenuhi.

c. Melompati satu iterasi dalam perulangan.

d. Menghentikan perulangan dan keluar dari blok perulangan.

Jawaban: b. Menjalankan blok kode jika kondisi tidak terpenuhi. Penjelasan: Pernyataan else
digunakan Bersama

9. Apa yang akan menjadi output dari kode program berikut ini?

for i in range(1, 6):

print(i * "*")

a. ***

b. *****

c. ****

d. *********

Jawaban : b. *****. Program ini menggunakan loop for dengan rentang nilai dari 1 hingga 6. Pada
setiap iterasi, nilai i akan bertambah satu. Pada setiap iterasi, i * "*" digunakan untuk mencetak
karakter '*' sebanyak nilai i. Sehingga, output yang dihasilkan adalah sebagai berikut:
10. Dalam pemrograman, apa yang dimaksud dengan "fungsi"?

a. Sekumpulan instruksi yang membentuk tugas tertentu dalam program.

b. Tempat penyimpanan yang digunakan untuk menyimpan data yang dapat berubah.

c. Pernyataan yang menentukan tindakan yang harus dilakukan oleh program.

d. Proses memecah program menjadi bagian-bagian kecil yang lebih mudah dikelola.

Jawaban yang benar adalah:

a. Sekumpulan instruksi yang membentuk tugas tertentu dalam program.

Fungsi adalah blok kode yang berisi serangkaian instruksi yang dirancang untuk melakukan tugas
tertentu. Fungsi dapat menerima argumen (input), melakukan operasi tertentu, dan mengembalikan
nilai (output). Fungsi digunakan untuk memecah program menjadi bagian-bagian yang lebih kecil dan
terorganisir, sehingga memudahkan dalam pengembangan dan pemeliharaan kode.
Essai

1. Misalkan Anda sedang mengembangkan sebuah program untuk menganalisis data kuantitatif
yang terdiri dari rentang angka yang besar. Salah satu tugasnya adalah menemukan nilai
maksimum dalam rentang data tersebut. Namun, Anda tidak diperbolehkan menggunakan
fungsi built-in atau metode yang telah disediakan oleh bahasa pemrograman Anda untuk
mencari nilai maksimum.

Berikan algoritma atau pseudocode yang Anda gunakan untuk menemukan nilai maksimum dari
rentang angka yang diberikan tanpa menggunakan fungsi built-in. Jelaskan langkah-langkah dan
logika yang Anda terapkan untuk menyelesaikan masalah ini secara efisien.

Jawaban:

Untuk menemukan nilai maksimum dalam rentang angka tanpa menggunakan fungsi built-in, berikut
adalah algoritma atau pseudocode yang dapat digunakan:

1. Inisialisasi variabel max_value dengan nilai terkecil yang mungkin dalam rentang angka.
2. Inisialisasi variabel current_value dengan angka pertama dalam rentang.
3. Ulangi langkah-langkah berikut untuk setiap angka dalam rentang: a. Jika current_value lebih
besar dari max_value, perbarui max_value dengan current_value. b. Pindah ke angka
berikutnya dalam rentang.
4. Setelah selesai melalui seluruh rentang, max_value akan berisi nilai maksimum dari rentang
angka.

Penjelasan:

Algoritma ini menggunakan pendekatan iteratif untuk membandingkan setiap angka dalam rentang
dengan nilai maksimum yang saat ini diketahui (max_value). Jika angka saat ini (current_value) lebih
besar dari max_value, maka nilai max_value akan diperbarui. Langkah ini akan diulangi untuk setiap
angka dalam rentang, sehingga pada akhirnya, max_value akan berisi nilai maksimum dalam rentang
angka.

Algoritma ini efisien karena hanya memerlukan satu kali iterasi melalui seluruh rentang angka, tanpa
perlu melakukan perbandingan berulang-ulang. Dengan pendekatan ini, kita dapat mencari nilai
maksimum dalam rentang angka tanpa menggunakan fungsi built-in yang biasanya disediakan oleh
bahasa pemrograman.
2. Anda ditugaskan untuk mengembangkan sebuah program yang dapat mengurutkan sebuah
array bilangan bulat dalam waktu yang sangat cepat, bahkan untuk kasus terburuk sekalipun.
Namun, Anda diberikan batasan bahwa Anda tidak dapat menggunakan algoritma
pengurutan yang sudah ada seperti Quicksort atau Mergesort.

Buatlah algoritma atau pseudocode yang Anda gunakan untuk mengurutkan array bilangan bulat
dalam waktu yang sangat cepat tanpa menggunakan algoritma pengurutan yang sudah ada. Jelaskan
langkah-langkah dan logika yang Anda terapkan untuk menyelesaikan masalah ini dengan efisiensi
maksimal.

Jawaban:

Untuk mengurutkan array bilangan bulat dalam waktu yang sangat cepat tanpa menggunakan
algoritma pengurutan yang sudah ada, berikut adalah algoritma atau pseudocode yang dapat
digunakan:

1. Inisialisasi variabel array dengan array yang akan diurutkan.


2. Jika panjang array adalah 1, maka array sudah terurut.
3. Jika panjang array lebih dari 1, lakukan langkah-langkah berikut: a. Pilih sebuah elemen pivot
dari array secara acak atau dengan pendekatan lain. b. Pisahkan elemen-elemen array
menjadi dua kelompok: elemen-elemen yang lebih kecil dari pivot dan elemen-elemen yang
lebih besar dari pivot. c. Rekursif, urutkan kedua kelompok secara terpisah menggunakan
algoritma yang sama. d. Gabungkan kedua kelompok yang sudah terurut menjadi satu array
hasil urutan. e. Kembalikan array hasil urutan.

Penjelasan:

Algoritma ini menggunakan pendekatan Quicksort untuk mengurutkan array bilangan bulat tanpa
menggunakan algoritma pengurutan yang sudah ada. Quicksort adalah algoritma pengurutan yang
efisien dengan kompleksitas waktu rata-rata yang cepat.

Pendekatan ini bekerja dengan memilih sebuah elemen pivot dan membagi array menjadi dua
kelompok: elemen-elemen yang lebih kecil dari pivot dan elemen-elemen yang lebih besar dari pivot.
Setelah itu, langkah-langkah tersebut diulangi secara rekursif pada kedua kelompok tersebut.
Akhirnya, hasil urutan kedua kelompok digabungkan menjadi satu array hasil urutan.

Dalam pemilihan pivot, ada beberapa pendekatan yang dapat digunakan, seperti memilih elemen
pertama, elemen terakhir, atau elemen acak dalam array. Tujuan dari pendekatan ini adalah
membagi array secara seimbang untuk mencapai efisiensi maksimal.

Dengan pendekatan ini, kita dapat mengurutkan array bilangan bulat dengan efisiensi maksimal
dalam waktu yang sangat cepat, walaupun tanpa menggunakan algoritma pengurutan yang sudah
ada seperti Quicksort atau Mergesort.
3. Anda ditugaskan untuk mengembangkan sebuah program yang dapat memodelkan sistem
pengelolaan pustaka digital yang sangat kompleks. Sistem tersebut harus mampu mengelola
berbagai fitur, seperti pendaftaran anggota, penyimpanan data buku dan anggota,
peminjaman dan pengembalian buku, serta pencarian dan penyortiran data.

Buatlah sebuah laporan rinci yang menjelaskan struktur dan fungsi dari setiap komponen yang akan
ada dalam program pengelolaan pustaka digital yang Anda kembangkan. Jelaskan juga algoritma dan
prosedur yang Anda terapkan dalam setiap fitur program untuk memastikan pengoperasian yang
optimal dan mengatasi kemungkinan masalah yang mungkin terjadi.

Jawaban:

Laporan Pengelolaan Pustaka Digital

Pendahuluan:

Sistem pengelolaan pustaka digital yang kompleks yang kami kembangkan memiliki tujuan untuk
mengelola berbagai fitur terkait pustaka, seperti pendaftaran anggota, penyimpanan data buku dan
anggota, peminjaman dan pengembalian buku, serta pencarian dan penyortiran data. Untuk
mencapai tujuan ini, kami merancang program dengan komponen-komponen berikut:

Komponen Pendaftaran Anggota: a. Deskripsi: Komponen ini bertanggung jawab untuk menerima
data anggota baru dan menyimpannya dalam database anggota. b. Fungsi:

1. Menerima input data anggota baru, seperti nama, alamat, dan nomor telepon.
2. Memvalidasi data yang dimasukkan, misalnya memeriksa keunikan nomor identitas anggota.
3. Menyimpan data anggota baru dalam database anggota. c. Algoritma dan Prosedur: i.
Menerima input data anggota baru. ii. Memeriksa keunikan nomor identitas anggota dalam
database. iii. Jika nomor identitas unik, simpan data anggota baru dalam database anggota.
iv. Jika nomor identitas sudah ada dalam database, berikan pesan kesalahan dan minta input
ulang.

Komponen Penyimpanan Data Buku: a. Deskripsi: Komponen ini bertanggung jawab untuk
menyimpan data buku dalam database pustaka. b. Fungsi:

1. Menerima input data buku, seperti judul, penulis, dan nomor ISBN.
2. Memvalidasi data yang dimasukkan, misalnya memeriksa keunikan nomor ISBN.
3. Menyimpan data buku dalam database pustaka. c. Algoritma dan Prosedur: i. Menerima
input data buku baru. ii. Memeriksa keunikan nomor ISBN dalam database. iii. Jika nomor
ISBN unik, simpan data buku baru dalam database pustaka. iv. Jika nomor ISBN sudah ada
dalam database, berikan pesan kesalahan dan minta input ulang.

Komponen Peminjaman dan Pengembalian Buku: a. Deskripsi: Komponen ini bertanggung jawab
untuk mengelola proses peminjaman dan pengembalian buku oleh anggota. b. Fungsi:

1. Menerima input identitas anggota dan identitas buku yang ingin dipinjam atau dikembalikan.

2. Memvalidasi data yang dimasukkan, misalnya memeriksa ketersediaan buku dan status
peminjaman.

3. Mengupdate status peminjaman buku dalam database.


c. Algoritma dan Prosedur:

i. Menerima input identitas anggota dan identitas buku.

ii. Memeriksa keberadaan anggota dan buku dalam database.

iii. Memeriksa status peminjaman buku untuk menentukan apakah buku tersedia atau sedang
dipinjam.

iv. Jika buku tersedia dan anggota memenuhi syarat peminjaman, catat peminjaman buku dan ubah
status peminjaman dalam database.

v. Jika buku sedang dipinjam oleh anggota lain atau anggota tidak memenuhi syarat peminjaman,
berikan pesan kesalahan.

Komponen Pencarian dan Penyortiran Data: a. Deskripsi: Komponen ini bertanggung jawab untuk
mencari dan menyortir data buku dan anggota dalam database pustaka. b. Fungsi:

Menerima input kriteria pencarian atau penyortiran, seperti judul buku, nama anggota, atau kategori
buku.

Mencari atau menyortir data sesuai dengan kriteria yang dimasukkan.

Menghasilkan hasil pencarian atau penyortiran yang relevan. c. Algoritma dan Prosedur: i. Menerima
input kriteria pencarian atau penyortiran. ii. Memeriksa database pustaka untuk mencari atau
menyortir data sesuai dengan kriteria yang dimasukkan. iii. Menghasilkan hasil pencarian atau
penyortiran yang relevan sesuai dengan kriteria.

Kesimpulan:

Sistem pengelolaan pustaka digital yang kompleks ini memiliki komponen-komponen yang mampu
mengelola berbagai fitur terkait pustaka dengan efisiensi dan optimalitas. Setiap komponen memiliki
fungsi spesifik yang mengurus tugas-tugas tertentu dan menjalankan algoritma serta prosedur yang
tepat. Dengan demikian, program ini akan dapat mengelola pustaka digital dengan baik, mencakup
pendaftaran anggota, penyimpanan data buku dan anggota, peminjaman dan pengembalian buku,
serta pencarian dan penyortiran data secara efisien dan mengatasi kemungkinan masalah yang
mungkin terjadi.

Anda mungkin juga menyukai