Anda di halaman 1dari 9

Tugas Kelompok ke-2

Week 4
- BAYU SETIAWAN (2702381231)

- FETER ALEXANDER (2702359976)

- DZAKY CATRA NARARYA (2702345352)

1. Rancang algoritma yang akan menghasilkan laporan pengiriman barang dari file
pengiriman. Setiap baris catatan persediaan berisi nomor item, jumlah barang awal,
jumlah barang yang terkirim dan jumlah yang belum terkirim. Program Anda adalah
membaca file pengiriman dan mencetak baris detail untuk setiap catatan pengiriman yang
menunjukkan nomor item, jumlah persediaan barang awal, jumlah barang yang terkirim,
jumlah barang yang belum terkirim, dan jumlah barang akhir. Jumlah barang akhir
dihitung sebagai jumlah barang awal + jumlah barang terkirim – jumlah barang belum
terkirim. Di akhir laporan, cetak jumlah total barang awal, jumlah total yang terkirim,
jumlah total yang tidak terkirim, dan jumlah total barang akhir.

Terhadap permasalahan di atas, anda diminta untuk membuat solusi berikut :

a. Konstruksi permasalahannya dengan menggunakan problem definition


b. Kelompokkan aktifitas kedalam modules
c. Buat hierarchy chart
d. Buat logika utama dengan menggunakan pseudocode
e. Buat pseudocode untuk setiap succesive module di hierarchy chart
f. Desk check terhadap solution algoritm

2. Sebuah program akan melakukan perhitungan transaksi peminjaman buka yang dilakukan
pada sebuah library. Pada awalnya program akan meminta pengguna untuk memasukkan
jumlah buku pada file inventaris. Kemudian pengguna dapat melakukan 2 transaksi, yaitu
pinjam buku dan mengembalikan buku. Jika pengguna ingin membuat peminjaman buku
maka dapat dengan menginput kode ‘P’ ke dalam program, lalu program akan meminta
informasi buku seperti: judul atau kode buku. Jika pengguna ingin mengembalikan buku,
maka dapat dengan menginput kode ‘B’ kedalam program, lalu program akan meminta
jumlah buku dan informasi buku seperti: judul atau kode buku yang akan dikembalikan.
Setiap transaksi pengembalian buku akan ditambahkan ke jumlah buku yang tersedia,

Program Design Methods


sedangkan transaksi peminjaman akan mengurangi jumlah buku yang tersedia. Program
akan berulang meminta pengguna memasukkan kode transaksi, dan akan berhenti
berulang apabila pengguna memasukkan kode ‘Q’. Program akan menampilkan jumlah
dari buku yang dipinjam dan buku yang sudah dikembalikan oleh pengguna.

Terhadap permasalahan di atas, anda diminta untuk membuat solusi berikut :

a. Konstruksi permasalahannya dengan menggunakan problem definition


b. Kelompokkan aktifitas kedalam modules
c. Buat hierarchy chart
d. Buat logika utama dengan menggunakan pseudocode
e. Buat pseudocode untuk setiap succesive module di hierarchy chart
f. Desk check terhadap solution algoritm

JAWABAN

No 1

a. Konstruksi permasalahannya dengan menggunakan problem definition


Input : File pengiriman berisi catatan persediaan, setiap catatan memiliki nomor
item, jumlah awal, jumlah yang terkirim, dan jumlah yang belum terkirim.
Proses : Program membaca file pengiriman, menghitung jumlah akhir untuk setiap
catatan, dan mencetak laporan detail dan total.
Output : Laporan detail untuk setiap catatan pengiriman, termasuk nomor item,
jumlah awal, jumlah yang terkirim, jumlah yang belum terkirim, dan jumlah akhir.
Juga, laporan total untuk jumlah awal, jumlah yang terkirim, jumlah yang belum
terkirim, dan jumlah akhir.
b. Kelompokkan aktifitas kedalam modules
1) Modul Baca File Pengiriman: Membaca file pengiriman dan mengekstrak
informasi untuk diproses.
2) Modul Proses Catatan Pengiriman: Memproses setiap catatan pengiriman dan
menghitung jumlah akhir.
3) Modul Cetak Detail Pengiriman: Mencetak baris detail untuk setiap catatan
pengiriman.
4) Modul Cetak Ringkasan Total: Mencetak jumlah total awal, total yang terkirim,
total yang belum terkirim, dan total akhir.

Program Design Methods


c. Buat hierarchy chart

d. Buat logika utama dengan menggunakan pseudocode


1. Inisialisasitotal_jumlah_awal,total_jumlah_terkirim,total_jumlah_belum_terkirim
, total_jumlah_akhir menjadi nol
2. Panggil ModulBacaFilePengiriman dengan file_pengiriman sebagai input
3. Untuk setiap catatan_pengiriman dalam catatan_pengiriman:
a) Panggil ModulProsesCatatanPengiriman dengan catatan_pengiriman
sebagai input
b) Panggil ModulCetakDetailPengiriman dengan catatan yang telah diproses
sebagai input
4. Panggil ModulCetakRingkasanTotal dengan total_jumlah_awal,
total_jumlah_terkirim, total_jumlah_belum_terkirim, dan total_jumlah_akhir
sebagai input

Program Design Methods


e. Buat pseudocode untuk setiap succesive module di hierarchy chart
Fungsi ModulBacaFilePengiriman(file_pengiriman):
Buka file_pengiriman untuk dibaca
Inisialisasi catatan_pengiriman sebagai daftar kosong

Untuk setiap baris dalam file_pengiriman:


Parse baris untuk mengekstrak nomor item, jumlah awal, jumlah terkirim,
dan jumlah belum terkirim
Buat catatan pengiriman dengan informasi yang diekstrak
Tambahkan catatan ke daftar catatan_pengiriman
Tutup file_pengiriman
Kembalikan catatan_pengiriman
Fungsi ModulProsesCatatanPengiriman(catatan_pengiriman):
#Ekstrak informasi dari catatan_pengiriman
nomor_item = catatan_pengiriman["nomor_item"]
jumlah_awal = catatan_pengiriman["jumlah_awal"]
jumlah_terkirim = catatan_pengiriman["jumlah_terkirim"]
jumlah_belum_terkirim = catatan_pengiriman["jumlah_belum_terkirim"]
Hitung jumlah_akhir sebagai (jumlah_awal + jumlah_terkirim -
jumlah_belum_terkirim
#Tambahkan jumlah_akhir ke catatan_pengiriman
catatan_pengiriman["jumlah_akhir"] = jumlah_akhir
#Penambahan nilai pada total_jumlah_awal, total_jumlah_terkirim,
total_jumlah_belum_terkirim
total_jumlah_awal += jumlah_awal
total_jumlah_terkirim += jumlah_terkirim
total_jumlah_belum_terkirim += jumlah_belum_terkirim
Penambahan nilai pada total_jumlah_akhir
total_jumlah_akhir += jumlah_akhir
Kembalikan catatan_pengiriman
Prosedur ModulCetakDetailPengiriman(catatan_pengiriman):

Program Design Methods


PRINT "Nomor Item:", catatan_pengiriman["nomor_item"]
PRINT "Jumlah Awal:", catatan_pengiriman["jumlah_awal"]
PRINT "Jumlah Terkirim:", catatan_pengiriman["jumlah_terkirim"]
PRINT "Jumlah Belum Terkirim:",catatan_pengiriman["jumlah_belum_terkirim"]
PRINT "Jumlah Akhir:", catatan_pengiriman["jumlah_akhir"]
Prosedur ModulCetakRingkasanTotal():
PRINT "Total Persediaan Awal:", total_jumlah_awal
PRINT "Total Produk Terkirim:", total_jumlah_terkirim
PRINT "Total Produk Belum Terkirim:", total_jumlah_belum_terkirim
PRINT "Total Persediaan Akhir:", total_jumlah_akhir

f. Desk check terhadap solution algoritm


input
Dataset No Item Jumlah awal Jumlah terkirim, Jumlah belum
terkirim
1 5461 120 50 20
2 5462 150 60 15
Expected output
Dataset No Item Jumlah awal Jumlah terkirim, Jumlah belum Jumlah akhir
terkirim
1 5461 120 50 20 150

2 5462 130 60 15 175

TOTAL:
Total jumlah awal = 250
Total jumlah terkirim = 110
Total jumlah belum terkirim = 35
Total jumlah akhir = 325

Program Design Methods


No 2

a) Input:

Jumlah buku pada file inventaris.

Transaksi pengguna (Pinjam, Kembali, Quit).

Informasi buku (judul/kode buku).

Jumlah buku yang akan dipinjam atau dikembalikan.

Output:

Jumlah buku yang dipinjam.

Jumlah buku yang dikembalikan.

Constraints:

Jumlah buku tidak boleh negatif.

Pengembalian buku tidak boleh melebihi jumlah buku yang dipinjam.

b) Modules:

Input Jumlah Buku

Transaksi Pinjam

Transaksi Kembali

Display Jumlah Buku Dipinjam

Display Jumlah Buku Dikembalikan

Main Program

Program Design Methods


c) Hierarchy Chart

Main Program
|
|-- Input Jumlah Buku
|
|-- Loop until Quit
| |-- Transaksi Pinjam
| |-- Transaksi Kembali
| |-- Display Jumlah Buku Dipinjam
| |-- Display Jumlah Buku Dikembalikan
|
|-- End Loop

d) Main Logic Pseudocode

Input Jumlah Buku


Initialize Jumlah Buku Dipinjam = 0
Initialize Jumlah Buku Dikembalikan = 0

Loop until Quit


Display Menu (Peminjaman, Pengembalian, Quit)
Input Kode Transaksi

If Kode Transaksi = 'P'


Call Transaksi Pinjam
Else If Kode Transaksi = 'B'
Call Transaksi Kembali
Else If Kode Transaksi = 'Q'
Exit Loop
Else
Display "Kode Transaksi tidak valid"

Display Jumlah Buku Dipinjam


Display Jumlah Buku Dikembalikan

Program Design Methods


e) Pseudocode for Successive Modules:
Input Jumlah Buku:
Input "Masukkan jumlah buku pada inventaris: " JumlahBuku

Transaksi Pinjam:
Input "Masukkan informasi buku (judul atau kode): " InformasiBuku
Input "Masukkan jumlah buku yang akan dipinjam: " JumlahPinjam
JumlahBukuDipinjam += JumlahPinjam

Transaksi Kembali:
Input "Masukkan informasi buku (judul atau kode): " InformasiBuku
Input "Masukkan jumlah buku yang akan dikembalikan: " JumlahKembali

If JumlahKembali > JumlahBukuDipinjam


Display "Jumlah buku yang dikembalikan melebihi jumlah buku yang dipinjam"
Else
JumlahBukuDipinjam -= JumlahKembali
JumlahBukuDikembalikan += JumlahKembali

Display Jumlah Buku Dipinjam:


Display "Jumlah buku yang dipinjam: " JumlahBukuDipinjam

Display Jumlah Buku Dikembalikan:


Display "Jumlah buku yang dikembalikan: " JumlahBukuDikembalikan

Program Design Methods


f) Desk Check:
Jumlah Buku pada Inventaris: 10

Input Jumlah Buku


JumlahBuku = 10

Loop until Quit


Display Menu (Peminjaman, Pengembalian, Quit)
Input Kode Transaksi = 'P'

Call Transaksi Pinjam


Input Informasi Buku = "ABC"
Input Jumlah Pinjam = 3
JumlahBukuDipinjam += 3

Display Jumlah Buku Dipinjam


Display "Jumlah buku yang dipinjam: 3"

Display Menu (Peminjaman, Pengembalian, Quit)


Input Kode Transaksi = 'B'

Call Transaksi Kembali


Input Informasi Buku = "ABC"
Input Jumlah Kembali = 2
JumlahBukuDipinjam -= 2
JumlahBukuDikembalikan += 2

Display Jumlah Buku Dikembalikan


Display "Jumlah buku yang dikembalikan: 2"

Display Menu (Peminjaman, Pengembalian, Quit)


Input Kode Transaksi = 'Q'

Display "Jumlah buku yang dipinjam: 1"


Display "Jumlah buku yang dikembalikan: 2"

Program Design Methods

Anda mungkin juga menyukai