b. Outline solution
bikin solusi scr grs bsr , dia ada apa ada yg d proses
biasanya yg dibuat adalah sbb:
- Proses utama yg diliat. Step by stepnya dia apa aja prosesnya
- Subtask utama ada / ga?
- UI / user interfacenya ada / ga?
- Control structurenya (selection, repetition)
- Variabel nya apa aja + data structurenya ada / ga ?
- Mainline logic [inti prosesnya yg hrs dilakukan]
Procedure Driven
- Melakukan pendekatan lwt fungsi2 dlm program dan apa aja sih yg dia lakukan.
- Tiap fungsi dipecah jadi aliran data yg lbh kecil dan spesifik
Event Driven
- Melakukan pendekatan lwt event / interaksi tertentu dri luar yg bikin ada
perubahan pd program jd bentuk yg baru.
- Pas program dpt trigger dri user, program akan pindah dari 1 state ke state lain
Data Driven
- Melakukan pendekatan lwt kestabilan data dalam program dan proses2 yg
terlibat. Analisis data + hubungan antar data utk nentuin jenis data struktur yg hrs
digunakan
- Stlh input output udh ditentuin, baru kt nentuin proses yg akan dilakukan.
Procedural OOP
Fokus pd apa aj yg dilakukan program, Berfokus pd objek dan bgmn objek tsb
identifikasi dan organisir proses dlm bekerja
program
Problem dipecah jd bbrp tugas / modul Problem dipecah jd sekumpulan objek yg
terpisah yg saling berkaitan
Make pendekatan top-down Tiap objek punya tugas dan tanggungjawab
tertentu
FlowChart
Pelajarin!
Ketika komputer diperlukan untuk menerima informasi atau masukan dari sumber
tertentu, keyword Read dan Get digunakan dalam pseudocode tersebut. Read
biasanya digunakan ketika algoritma adalah untuk menerima masukan dari file,
sedangkan Get digunakan ketika algoritma adalah untuk menerima input dari
keyboard (saat lu ngetik inputan).
Contoh pseudocodenya:
Contoh pseudocodenya:
Catatan: biasanya instruksi output Prompt dibutuhkan sebelum instruksi input Get. Keyword
Prompt menyebabkan pesan dikirimkan ke layar, kemudian membutuhkan respon dari user
yang biasanya berupa pemasukan input. Contoh pseudocodenya:
Contoh PseudoCode:
Contoh pseudocode:
Catatan : perulangan dengan fungsi for memakai variabel i, j, dan k karena fungsi tsb
memakai vektor.
- Variabel adalah kumpulan memori yang ditugaskan untuk menyimpan data tertentu.
Isi dari variable bisa saja berubah selama program berjalan.
- Constant adalah data yang tidak akan berubah baik nama maupun isinya selama
program berjalan.
- Literal adalah constant yang namanya adalah representasi dari nilainya.
Data Type:
- Sequential atau text files: data disimpan dan diambil secara berurutan.
- Direct atau random-access files: data disimpan dan diambil secara acak
menggunakan key atau index.
- Selection
IF -> ada IF simple, IF simple dgn null ELSE, IF yg dicombine, dan Nested IF
CASE
Cth pseudocode:
CASE of tax_code
0 : sales_tax = 0
1 : sales_tax = purch_amt * 0.03
2 : sales_tax = purch_amt * 0.05
3 : sales_tax = purch_amt * 0.07
ENDCASE
- Repetition
REPEAT
statement
statement
….
UNTIL…
1. Array Processing
a. Array adalah kumpulan data dengan data type yang sejenis.
b. Operasi yang umum di array:
- Memasukkan value ke dalam array.
- Processing value di dalam array.
- Mencari array dengan linear dan binary search.
- Mencetak value di array.
c. Paired arrays adalah array yang punya ukuran yang sama dan dipasangkan
karena elementnya saling berkaitan.
2. Modularisasi
a. Modularisasi adalah pembagian problem menjadi tugas-tugas tertentu.
b. Keuntungan modularisasi:
- Lebih mudah dipahami.
- Mencegah penggunaan code yang sama berulang-ulang.
- Bisa digunakan kembali di program lain.
- Lebih mudah dimaintain.
c. Hierarchy chart: proses yang lebih dulu dikerjakan terletak di sebelah kiri.
d. Langkah-langkah modularisasi:
- Tentukan problem.
- Pecah menjadi modul-modul.
- Buat hierarchy chart.
- Buat logika utama dari algoritma dengan pseudocode.
- Kembangkan pseudocode dari modul-modul kecil di hierarchy chart.
- Desk checking.
b. Konsep:
- Master file: file yang mengandung informasi permanen dan semi-
permanen tentang data yang terkandung di dalamnya.
- Transaction file: mengandung semua data dan aktivitas yang ada di
master file. Biasanya ada 3 operasi di sini:
Tambah record baru.
Update atau ubah record tertentu.
Delete record.
- Audit report: list detail mengenai transaksi yang dilakukan di master file.
- Error report: list detail mengenai error yang terjadi saat update.
1. Flow of Information
Flow of information bisa diselesaikan dengan:
a. Scope of Variable (Local or Global)
Tergantung dari tempat deklarasi variable.
Yang bisa digunakan di semua modul/function : global variable.
Yang dideklarasikan di dalam submodule : lokal variable.
b. Passing Parameter
- Formal parameter: parameter yang muncul ketika submodule
dideklarasikan.
- Actual parameter: parameter yang muncul saat pemanggilan modul.
- Value parameter: melemparkan nilai suatu variable ke submodule.
- Reference parameter: melemparkan alamat memori suatu variable ke
submodule.
- Data parameter:
- Status parameter:
2. Module Coupling
- Data coupling terjadi ketika sebuah modul melempar elementary data
non-global kepada modul lainnya.
- External coupling terjadi ketika dua atau lebih modul menggunakan data
elementary global / variabel global.
- Coincidental:
ketika elemen-elemen ditempatkan dalam suatu modul karena kebetulan
dijalankan bersamaan. Gaada relasi yg meaningful antar elemen, krn tiap
algo antar elemn ga sama dan ga saling berhubungan.
Contoh:
File_processing
open employee updates file
read employee record
print_page_heading
open employee master file
set page_count to one
set error_flag to false
END
- Logical:
ketika elemen-elemen ditempatkan dalam suatu modul karena mereka
melakukan hal yang sejenis.
Contoh:
Read_all_files(file_code)
CASE of file_code
1 : Read customer transaction record
IF not EOF
increment customer_transaction_count
ENDIF
2 : Read customer master record
IF NOT EOF
increment customer_master_count
ENDIF
3 : Read product master record
IF NOT EOF
increment product_master_count
ENDIF
ENDCASE
END
Contoh:
Initialisation
open transaction file
read transaction record
transaction_count = 0
line = 0
number = 0
END
- Procedural:
ketika elemen-elemen ditempatkan dalam suatu modul karena mereka
beroperasi berdasarkan prosedur tertentu. Elemen-elemen tersebut
dieksekusi berdasarkan urutan tertentu. (simplenya, tiap elemen dlm
modul yg berelasi dia lakuin prosesnya bersamaan dlm 1 wkt.)
Contoh:
Read_student_record_and_total_student_ages
set number_of_records to zero
set total_age to zero
read student record
DOWHILE more records exist
add age to total_age
add 1 to number_of_records
ENDDO
print number_of_records, total_age
END
Contoh:
validate_product_record
IF transaction_type NOT=‘0’’ THEN
error_flag = true
error_message = ‘invalid transaction type’
print_error_report
ENDIF
IF customer_number is NOT= numeric THEN
error_flag = true
error_message = ‘invalid customer number’
print_error_report
ENDIF
IF product_no = blanks OR produc_no has leading blanks THEN
error_flag = true
error_message = ‘invalid product no’
print_error_report
ENDIF
END
- Sequential:
ketika elemen-elemen ditempatkan dalam suatu modul karena mereka
menggunakan data hasil dari proses elemen sebelumnya.
Contoh:
Process_purchases
set total_purchases to zero
prompt and get number_of_purchases
DO loop_index = 1 to number_of_purchases
prompt and get purchase
add purchase to total_purchases
ENDDO
sales_tax = total_purchases*sales_tax_percent
amount_due = total_purchases + sales_tax
END
Contoh:
Calculate_sales_tax
IF price < $50 THEN
sales_tax = product_price * 0.25
ELSE
IF price < $100 THEN
sales_tax = product_price * 0.20
ELSE
sales_tax = product_price * 0.10
ENDIF
ENDIF
END
a. DFD adalah diagram yang menggambarkan proses bisnis dan data yang ada di
dalamnya. DFD adalah model konseptual, bukan merepresentasikan program
komputer.
b. Elemen:
- Process: harus dinamakan dengan kata kerja dan diakhiri kata benda,
harus punya minimal satu input dan satu output.
- Data flow: satu data atau kumpulan data logical, harus diberi nama
dengan kata benda.
- Data store: kumpulan data yang disimpan dengan cara tertentu, diberi
nama dengan kata benda, disertakan dengan nomor identifikasi dan
deskripsi.
- External entity: orang, organisasi, atau sistem yang berada di luar sistem,
tetapi berinteraksi dengan sistem. External entity menyediakan data
kepada system atau menerima data dari sistem.
c. Level-level DFD:
- Context diagram:
1. DFD pertama di setiap business model.
2. Hanya ada satu context diagram di setiap business model.
3. Di dalam context diagram menggambarkan keseluruhan business
model dengan satu proses saja dan menunjukkan data flow dari dan
ke external entity.
4. Biasanya semua input dan output adalah berasal dari dan menuju ke
external entity.
5. Jika ada input atau output yang terhubung ke data store di external
system, lebih baik dituliskan sebagai external entity.
- Level 0 DFD:
1. Menunjukkan semua proses di level pertama (diberi nomor 1, 2, 3,
dst.).
2. Menunjukkan semua proses high-level dari sistem dan bagaimana
mereka terhubung.
3. Business model hanya punya satu DFD level 0.
4. Kunci dalam membuat DFD adalah balancing (memastikan informasi
yang ada di dalam DFD sesuai dengan DFD level berikutnya).