Dalam kesempatan kali ini, kita akan membahas cara menganalisis data jumlah siswa laki-laki SMA berdasarkan tingkatan kelas di Kabupaten Bone Bolango pada tahun 2023 menurut sumber Portal Data Kemendikbudristek.

Dengan data sebagai berikut:

Atau kita dapat mengakses datanya secara online dengan link berikut ini

https://data.kemdikbud.go.id/dataset/p/peserta-didik/jumlah-siswa-laki-laki-menurut-tingkat-tiap-provinsi-kab-bone-bolango-sma-2023

 

Untuk itu pada kesempatan kita akan menggunakan Python, khususnya library numpy dan scipy, untuk melakukan analisis statistik. Mari kita lihat langkah-langkahnya secara bertahap.

1. Memuat Library yang Diperlukan

Di sini, kita memuat dua library:

  • numpy (diberi alias np) untuk melakukan operasi numerik dan manipulasi array.
  • scipy.stats untuk melakukan analisis statistik, seperti menghitung modus.

Pastikan numpy dan scipy telah terinstall

 

2. Mempersiapkan Data

Di sini, kita mendefinisikan data siswa laki-laki dalam bentuk array 2D menggunakan numpy (np.array()). Setiap baris mewakili kelas yang berbeda, dan setiap kolom mewakili kelompok siswa yang berbeda.

 

3. Menampilkan Data

Kita mencetak data siswa untuk memverifikasi bahwa data telah dimuat dengan benar.

 

4. Menghitung Rata-rata

Kita menghitung rata-rata dari semua nilai dalam array menggunakan np.mean(). Hasilnya dibulatkan ke bilangan bulat dengan int() dan dicetak.

 

5. Menghitung Median

Median adalah nilai tengah dari dataset. Kita menghitung median menggunakan np.median() dan juga membulatkannya ke bilangan bulat (menggunakan int()).

 

6. Menghitung Modus

Di sini, kita menghitung modus untuk setiap kolom. Kita menggunakan list comprehension untuk mendapatkan modus dan frekuensinya. Kemudian, kita mencetak hasilnya.

 

7. Menghitung Standar Deviasi

Standar deviasi mengukur seberapa jauh data tersebar dari rata-ratanya. Kita menghitung standar deviasi untuk setiap kolom dan baris, lalu mencetak hasilnya.

 

8. Menghitung Persentil

Persentil adalah nilai yang membagi dataset menjadi bagian-bagian. Kita menghitung Q1 (25%), Q2 (median atau 50%), dan Q3 (75%) untuk setiap kolom dan mencetak hasilnya.

 

9. Menghitung Varians

Varians adalah ukuran seberapa jauh data bervariasi dari rata-ratanya. Kita menghitung varians untuk setiap kolom dan baris, kemudian mencetak hasilnya.

 

10. Menghitung Nilai Maksimum dan Minimum

Kita mencari nilai maksimum dan minimum untuk setiap kolom dan baris menggunakan np.max() dan np.min(), lalu mencetak hasilnya.

 

11. Menghitung Jumlah

Kita menghitung jumlah total siswa per kolom dan per baris menggunakan np.sum(), kemudian mencetak hasilnya.

 

12. Menghitung Jumlah Total Siswa

Di sini, kita menghitung jumlah total siswa laki-laki di semua kelas dengan menjumlahkan seluruh elemen dalam array.

 

13. Menghitung Hasil Kali

Kita menghitung hasil kali untuk setiap kolom dan baris menggunakan np.prod(), dengan pengaturan tipe data ke int64 untuk menghindari overflow. Hasilnya kemudian dicetak.

 

14. Menghitung Hasil Kali Semua Elemen

Kita menghitung hasil kali semua elemen dalam array dengan menggunakan np.prod(). Kita juga memeriksa apakah hasilnya tidak NaN (not an number) atau infinity sebelum mengonversinya ke integer.

 

15. Menemukan Indeks Maksimum dan Minimum

Kita mencari indeks dari nilai maksimum dan minimum dalam array menggunakan np.argmax() dan np.argmin(). Hasilnya ditampilkan dalam format koordinat (baris, kolom).

 

 

Dengan menggunakan algoritma ini, kita dapat dengan mudah menganalisis data jumlah siswa laki-laki berdasarkan tingkatan kelas dan mendapatkan wawasan penting yang dapat digunakan untuk keperluan pendidikan atau perencanaan lainnya. Jika ada pertanyaan lebih lanjut tentang bagian tertentu dari kode ini, jangan ragu untuk bertanya!

 

Nama: Moh. Taufik Wirajaya

Nim: 411423038

Prodi/Kelas: Pendidikan Matematika UNG/B 23

Mata Kuliah: Komputasi dan Pemrograman

Dosen Pengampu: Agusyarif Rezka Nuha, S.Pd. M.Pd

 

Pada Blog Kali ini kita akan menyelesaikan Latihan 4.7

 

1. Apa itu Fungsi?

Fungsi adalah sekelompok kode yang dirancang untuk menjalankan tugas tertentu dan menghasilkan nilai sebagai keluaran. Fungsi sering digunakan untuk menghindari penulisan ulang kode yang sama berulang kali, cukup memanggil fungsi saat kita membutuhkan hasilnya.

Contoh Fungsi Sederhana:

Penjelasan:

  • def adalah kata kunci untuk mendefinisikan fungsi di Python.
  • tambah adalah nama fungsi, dan a, b adalah parameter yang diberikan kepada fungsi ini.
  • return a + b artinya fungsi ini akan menjumlahkan nilai a dan b, lalu mengembalikan hasil penjumlahannya.

Ketika fungsi tambah dipanggil seperti ini:

Hasil yang dicetak adalah 7.

 

2. Apa itu Prosedur?

Prosedur adalah sekelompok kode yang juga menjalankan tugas tertentu, tapi tidak mengembalikan nilai. Prosedur hanya menjalankan perintah di dalamnya, biasanya digunakan untuk mencetak sesuatu ke layar atau memodifikasi variabel.

Contoh Prosedur Sederhana:

Penjelasan:

  • cetak_pesan adalah nama prosedur.
  • Di dalamnya hanya ada satu baris kode print("Ini adalah prosedur"), yang akan mencetak kalimat tersebut ke layar.

Ketika kita memanggil prosedur ini:

Output yang muncul di layar adalah:

Tidak ada hasil yang dikembalikan karena prosedur hanya menjalankan aksi cetak.

 

3. Perbedaan Fungsi dan ProsedurFungsi mengembalikan nilai setelah menjalankan tugasnya, sedangkan prosedur hanya melakukan tindakan tanpa memberikan hasil. Jadi, fungsi bisa digunakan ketika kita butuh hasil (seperti hasil perhitungan), sedangkan prosedur hanya untuk melakukan aksi (seperti mencetak pesan).

 

4. Apa itu Iteratif dan Rekursif?

  • Iteratif adalah metode menggunakan perulangan (loop) seperti for atau while untuk mengulang serangkaian instruksi hingga kondisi tertentu tercapai.
  • Rekursif adalah metode di mana fungsi memanggil dirinya sendiri untuk menyelesaikan masalah yang lebih kecil, hingga mencapai kondisi akhir yang disebut "base case".

Contoh Iteratif (Menghitung Faktorial):

 

Penjelasan:

  • Kita mendefinisikan fungsi faktorial_iteratif yang menerima input n.
  • hasil dimulai dari 1, dan kemudian kita menggunakan loop for untuk mengalikan hasil dengan angka dari 1 hingga n.
  • Setelah perulangan selesai, hasil berisi faktorial dari n dan dikembalikan.

Contoh Rekursif (Menghitung Faktorial):

Penjelasan:

  • Di sini kita menggunakan rekursi, di mana fungsi faktorial akan memanggil dirinya sendiri.
  • Jika n bernilai 0 atau 1, fungsi mengembalikan 1 (base case).
  • Jika tidak, ia akan mengembalikan n * faktorial(n - 1), yang berarti fungsi akan terus memanggil dirinya sendiri dengan nilai yang lebih kecil hingga mencapai base case.

 

5. Membuat Fungsi untuk Mengecek Bilangan Positif atau NegatifFungsi ini akan mengecek apakah sebuah bilangan positif, negatif, atau nol.

Penjelasan:

  • Fungsi cek_positif_negatif menerima satu parameter bilangan.
  • if mengecek apakah bilangan lebih besar dari 0. Jika iya, fungsi akan mengembalikan string "Positif".
  • elif mengecek apakah bilangan lebih kecil dari 0. Jika iya, fungsi mengembalikan "Negatif".
  • Jika tidak keduanya, artinya bilangan adalah nol, dan fungsi mengembalikan "Nol".

 

6. Membuat Fungsi untuk Mengecek Bilangan Bulat atau GanjilFungsi ini mengecek apakah bilangan tersebut genap atau ganjil.

Penjelasan:

  • cek_bulat_ganjil menerima satu input bilangan.
  • if mengecek apakah bilangan tersebut habis dibagi 2 (bilangan % 2 == 0), jika iya, artinya bilangan tersebut genap (bilangan bulat).
  • Jika tidak, maka bilangan tersebut ganjil.

 

7. Membuat Fungsi untuk Mengecek Tahun KabisatFungsi ini mengecek apakah suatu tahun adalah tahun kabisat atau bukan.

Penjelasan:

  • Fungsi menerima input tahun.
  • Tahun kabisat adalah tahun yang habis dibagi 4, tapi bukan kelipatan 100, kecuali tahun tersebut juga kelipatan 400.
  • Jika salah satu kondisi ini terpenuhi, fungsi akan mengembalikan "Tahun Kabisat", jika tidak, "Bukan Tahun Kabisat".

 

8. Program Rekursif (Faktorial)Berikut adalah program rekursif untuk menghitung faktorial:

Penjelasan:

  • Fungsi ini akan menghitung faktorial dengan cara memanggil dirinya sendiri.
  • Jika n adalah 0 atau 1 (base case), hasilnya adalah 1.
  • Jika tidak, fungsi mengembalikan hasil n * faktorial(n - 1), yang berarti fungsi akan terus berjalan sampai mencapai base case.

Sebagai contoh, jika kita memanggil faktorial(5), maka program akan berjalan seperti berikut:

  • 5 * faktorial(4)
  • 5 * (4 * faktorial(3))
  • 5 * (4 * (3 * faktorial(2)))
  • 5 * (4 * (3 * (2 * faktorial(1))))
  • 5 * 4 * 3 * 2 * 1 = 120

 

 

Nama: Moh. Taufik Wirajaya

Nim: 411423038

Prodi/Kelas: Pendidikan Matematika UNG/B 23

Mata Kuliah: Komputasi dan Pemrograman

Dosen Pengampu: Agusyarif Rezka Nuha, S.Pd. M.Pd

 

Pada Blog Kali ini kita akan menyelesaikan Latihan 3.9

 

 

1. Counted Loop dan Uncounted Loop

  • Counted loop merupakan jenis perulangan di mana jumlah pengulangan ditentukan sebelum eksekusi perulangan dimulai. Biasanya, kita sudah tahu berapa kali loop akan berjalan. Di banyak bahasa pemrograman, counted loop menggunakan perulangan `for`.

Contoh:

Jika kamu ingin mencetak angka dari 1 hingga 7, kamu tahu akan ada 7 iterasi.

Input

 

Output

Di sini, variabel `i` akan berubah dari 1 ke 7, dan program akan mencetak angka-angka tersebut.

 

  • Uncounted loop merupakan jenis perulangan di mana pengulangan tidak diketahui sejak awal. Perulangan ini bergantung pada suatu kondisi yang dapat berubah secara dinamis selama eksekusi program. Contoh yang sering digunakan adalah `while`, di mana perulangan akan terus berjalan selama kondisi tertentu terpenuhi.

Contoh:

Input

Output

Dalam perulangan ini, kamu tidak secara langsung menentukan berapa kali loop akan berjalan, tetapi hanya menentukan kondisi yang harus dipenuhi.

 

2. Nested loop adalah perulangan di dalam perulangan lain. Setiap kali loop luar (outer loop) berjalan satu kali, loop dalam (inner loop) akan berjalan sepenuhnya. Ini biasanya digunakan untuk bekerja dengan data yang berbentuk tabel atau matriks, di mana dua dimensi (baris dan kolom) perlu diakses secara simultan.

Contoh:

Jika kamu ingin mencetak matriks 2D berukuran 3x3:

Input

 

Output

Di sini, `i` mewakili baris dan `j` mewakili kolom. Untuk setiap iterasi dari `i`, `j` akan berjalan sepenuhnya dari 0 hingga 2.

 

3. Controlled jump adalah perintah yang memungkinkan program untuk melompat ke bagian tertentu dari kode tanpa mengikuti urutan eksekusi normal. Ini sering digunakan untuk mengendalikan alur program dalam loop atau struktur pengambilan keputusan. Contoh umum dari controlled jump adalah `break`, `continue`, dan `goto`.

  • `break`: Digunakan untuk keluar dari loop sebelum loop mencapai batas akhirnya.
  • `continue`: Digunakan untuk melewati iterasi saat ini dan langsung melompat ke iterasi berikutnya.
  • `goto`: Digunakan untuk melompat ke label tertentu dalam kode (tidak direkomendasikan dalam kebanyakan bahasa modern karena dapat membuat kode sulit dipahami).

Contoh (break dan continue):

Input

 

Output

 

Program di atas akan mencetak angka ganjil dari 1 hingga 5 dan berhenti ketika `i` mencapai 5.

 

4. Iteratif berarti perulangan yang dilakukan dalam langkah-langkah yang berulang, biasanya dengan memperbarui nilai variabel kontrol pada setiap iterasi. Pada perulangan iteratif, kamu menambah atau mengurangi variabel secara bertahap hingga kondisi berhenti terpenuhi. Perulangan iteratif bisa berbentuk `for`, `while`, atau bentuk perulangan lainnya.

 Contoh (for loop):

 Input

 

 

Output

 

Dalam contoh ini, `i` akan bertambah 1 setiap kali loop dieksekusi, sehingga program akan mencetak angka dari 1 hingga 5.

 

5. Membuat Tabel Perkalian (Menggunakan Perulangan)

  • Mulailah dengan perulangan `for` untuk `i` dari 1 sampai 10.
  • Di dalamnya, buat perulangan `for` lagi untuk `j` dari 0 hingga 10.
  • Pada setiap iterasi dari loop dalam, cetak hasil perkalian `i * j`.
  • Tambahkan tanda tabulasi (`\t`) untuk merapikan output sehingga setiap hasil berada dalam kolom yang tepat.
  • Setelah loop dalam selesai, buat baris baru dengan `print()` agar hasilnya tersusun dalam baris-baris.

Input

 

 

Output

  • Loop pertama bertanggung jawab untuk memilih angka `i` yang akan dikalikan.
  • Loop kedua berfungsi untuk mengalikan `i` dengan semua angka dari 0 hingga 10.
  • Setiap hasil perkalian ditampilkan dalam satu baris dan ketika satu baris selesai (setelah `j` berulang dari 0 sampai 10), program pindah ke baris baru.

 

6. Konversi Suhu (Celcius ke Reamur, Kelvin, Fahrenheit)

  • Pertama, minta input batas bawah dan atas suhu.
  • Buat loop untuk setiap nilai Celsius dalam rentang tersebut.
  • Hitung nilai Reamur, Kelvin, dan Fahrenheit menggunakan rumus konversi:
  • Reamur: \(R = \frac{4}{5} \times C\)
  • Kelvin: \(K = C + 273\)
  • Fahrenheit: \(F = \frac{9}{5} \times C + 32\)
  • Cetak hasil konversi dalam format tabel.

Input

 

 

Output

 

  • Program pertama-tama meminta pengguna untuk memasukkan batas bawah dan atas suhu yang ingin dihitung.
  • Program kemudian menghitung konversi untuk setiap suhu dalam rentang yang diberikan.
  • Hasil akhirnya ditampilkan dalam tabel, di mana setiap baris mewakili satu suhu dalam Celsius dan konversi ke tiga skala suhu lainnya.

 

7. Menampilkan Pola Segitiga Angka

  • Mulailah dengan meminta input `n` untuk menentukan jumlah baris.
  • Gunakan loop pertama untuk setiap baris (loop `i` dari 1 hingga `n`).
  • Gunakan loop kedua untuk mencetak angka yang jumlahnya sesuai dengan baris saat itu.
  • Tambahkan angka ke setiap iterasi dan pindah ke baris berikutnya setelah satu baris selesai dicetak.

Input

 

 

Output

 

  • `n` adalah jumlah baris segitiga.
  • Program menggunakan dua loop: loop luar untuk baris, loop dalam untuk mencetak angka dalam setiap baris.
  • Setiap angka ditingkatkan setelah dicetak, sehingga pola angka terus berlanjut dari baris pertama hingga baris terakhir.

 

8. Menampilkan Pola Segitiga Huruf

  • Mulailah dengan meminta input `n` untuk menentukan jumlah baris.
  • Gunakan loop pertama untuk iterasi melalui setiap baris (`i` dari 1 hingga `n`).
  • Pada setiap baris, cetak huruf yang sesuai dengan urutan alfabet berdasarkan nomor baris tersebut.
  • Ulangi huruf sebanyak nomor baris.

Input

 

 

Output

 

  • Program menerima input `n` untuk jumlah baris yang akan dicetak.
  • Untuk setiap baris, program menghitung huruf berdasarkan urutan alfabet dengan menggunakan fungsi `chr()`.
  • Huruf yang sesuai dengan nomor baris akan dicetak sebanyak nomor baris itu sendiri. Misalnya, baris ke-1 mencetak 'A', baris ke-2 mencetak 'B B', dan seterusnya.

 

Itulah jawaban dan sedikit penjelasan untuk setiap soal pada latihan soal 3.9!

Nama: Moh. Taufik WirajayaNim: 411423038Prodi/Kelas: Pendidikan Matematika/BMata Kuliah: Komputasi dan PemrogramanDosen Pengampu: Agusyarif Rezka Nuha, S.Pd. M.Pd

 

Pada Blog kali ini kita akan membuat sebuah algoritma untuk perpustakaan yang memungkinkan pustakawan menghitung denda berdasarkan keterlambatan pengembalian buku. Setiap peminjam diberikan batas waktu pengembalian 3 hari setelah jadwal pengembalian resmi. Jika mereka terlambat, denda Rp1.000 per hari akan dikenakan. Algoritma ini juga harus bisa menangani kesalahan input tanggal dari pengguna, seperti salah format penulisan tanggal.

Tahap Pembuatan:

1. Mengimpor Modul datetime: Program ini memerlukan manipulasi tanggal untuk menghitung selisih hari antara tanggal pengembalian dan jadwal pengembalian. Oleh karena itu, kita mengimpor modul datetime yang memiliki fungsi-fungsi khusus untuk menangani objek tanggal dan waktu.

 

2. Input Data dari Pengguna: Program meminta beberapa input dari pengguna, yaitu:

  • Nama peminjam (sebagai string)
  • Judul buku yang dipinjam (sebagai string)
  • Jadwal pengembalian buku (sebagai string yang akan diubah menjadi tanggal)
  • Tanggal pengembalian aktual (sebagai string yang akan diubah menjadi tanggal)

Input ini akan ditangani dalam blok try-except untuk memastikan bahwa format input sesuai harapan.

 

 

3. Mendefinisikan Format Tanggal: Untuk memproses input tanggal, kita harus mendefinisikan format tanggal yang diinginkan. Dalam kasus ini, format yang diharapkan adalah dd-mm-yyyy (tanggal-bulan-tahun).

 

 

4. Konversi Input String Menjadi Objek datetime: Agar program bisa menghitung selisih tanggal, string yang diinput pengguna (jadwal pengembalian dan tanggal pengembalian) perlu dikonversi menjadi objek datetime. Kita menggunakan fungsi strptime dari modul datetime untuk mengonversi string menjadi objek tanggal sesuai format yang telah didefinisikan sebelumnya.

 

 

5. Validasi Tanggal Pengembalian Lebih Awal dari Jadwal: Setelah konversi, dilakukan validasi apakah pengguna memasukkan tanggal pengembalian yang lebih awal dari jadwal pengembalian. Jika benar, program akan menampilkan pesan bahwa tanggal pengembalian tidak boleh lebih awal dari jadwal pengembalian.

 

 

6. Menghitung Selisih Hari dan Keterlambatan: Jika tanggal pengembalian valid, program menghitung selisih hari antara jadwal pengembalian dan tanggal pengembalian aktual. Karena perpustakaan memberikan toleransi 3 hari, maka selisih hari dikurangi 3 untuk menentukan apakah peminjam terlambat, tepat waktu, atau lebih cepat mengembalikan buku.

 

 

7. Mengecek Keterlambatan dan Denda: Setelah mengetahui jumlah hari keterlambatan (atau kecepatan pengembalian), program akan mengecek kondisi keterlambatan:

  • Jika keterlambatan positif (> 0), maka peminjam terlambat, dan dikenakan denda Rp1.000 per hari keterlambatan. Program akan menampilkan pesan jumlah keterlambatan dan total denda.
  • Jika keterlambatan negatif (< 0), peminjam mengembalikan lebih cepat dari batas waktu, dan ditampilkan berapa hari lebih cepat.
  • Jika tepat waktu (keterlambatan = 0), peminjam mengembalikan tepat waktu, dan program akan mengucapkan terima kasih.

 

 

8. Penanganan Error Input Format Tanggal: Jika pengguna tidak memasukkan tanggal dalam format yang benar (misalnya, salah format atau huruf alih-alih angka), program akan memunculkan pesan kesalahan yang menyarankan pengguna untuk mengulang input dengan format yang benar.

 

 

9. Informasi Tambahan: Terakhir, program menampilkan informasi tambahan kepada pengguna, seperti batas waktu pengembalian (3 hari) dan denda yang berlaku. Juga, disertakan nomor layanan pelanggan untuk menghubungi jika terjadi kesalahan.

 

 

Kesimpulan:

Algoritma ini memudahkan pustakawan dalam menghitung keterlambatan pengembalian buku dan denda yang berlaku dengan mempertimbangkan toleransi 3 hari. Selain itu, algoritma juga menangani validasi input tanggal serta kesalahan format input yang mungkin terjadi.

 

PS Note:

Blog ini ditujukan untuk menyelesaikan tugas Komputasi dan Pemograman, pembuat blog bukanlah ahli dalam membuat algoritma python, jika ada kesalahan dalam algoritma ataupun pada penjelesan, sangat diapresiasi untuk koreksinya. Saya harap Program ini dapat membantu

PKKMB 2023

16 August 2023 11:19:28 Dibaca : 9

Hanya untuk dikenang tidak untuk diulangi :)

#SIGMASATU

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong