Modul Praktikum MAPP
-
Upload
ytheodoric -
Category
Documents
-
view
396 -
download
1
Transcript of Modul Praktikum MAPP
1
2009/2010
Modul Praktikum
IF-110
Metoda Analysis dan
Perancangan Program
Ir. Inge Martina, MT.
Departemen Teknik Informatika
INSTITUT TEKNOLOGI HARAPAN BANGSA
2009/2010
2
MODUL 1 : REKURSIF
1.1 Tujuan Tujuan dari modul ini adalah :
1. Memahami cara kerja algoritma rekursif
2. Mampu mengimplementasikan program rekursif dalam salah satu bahasa pemrograman.
1.2 Kegiatan
Membuat program rekursif untuk masalah-masalah :
1. Faktorial
2. Perkalian
3. Mencetak array
1.3 Teori Penunjang
Sebuah objek disebut rekursif jika ada bagiannya yang didefinisikan sebagai dirinya sendiri. Rekursif
tidak hanya dipakai dalam bidang matematika, tetapi juga dalam kehidupan sehari-hari. Coba
perhatikan gambar rekursif di bawah ini.
Gambar 1.1 Contoh Rekursif dalam Kehidupan Sehari-hari
3
Gambar 1.2 Contoh Rekursif : Segitiga Sierpinski
Setiap masalah rekursif didefinisikan dengan sebuah kasus dasar (base case) dan aturan-aturan
yang mereduksi kasus-kasus lain menuju ke kasus dasar.
Contoh masalah-masalah rekursif :
1. Leluhur seseorang, dengan definisi rekursif :
• Orang tua seseorang adalah leluhurnya (base case)
• Orang tua dari leluhur juga leluhur (rekursif)
2. Bilangan asli, dengan definisi rekursif :
• 1 adalah bilangan asli
• Successor dari sebuah bilangan asli adalah bilangan asli
3. Function faktorial = n!, untuk bilangan bulat non-negatif :
• 0! = 1
• Jika n > 0, maka n! = n • (n-1)!
Definisi rekursif harus mempunyai dua bagian yaitu :
• Bagian non rekursif, yang merupakan titik berhenti dari program
• Bagian rekursif
Keistimewaan rekursif adalah kemampuan untuk mendefinisikan sejumlah objek
yang tidak terbatas dengan pernyataan yang terbatas.
4
Kapan algoritma rekursif diperlukan ? Algoritma rekursif diperlukan jika suatu masalah atau data yang
akan diproses didefinisikan secara rekursif. Tetapi, hal ini tidak berarti bahwa definisi rekursif
menjamin bahwa algoritma rekursif adalah solusi terbaik untuk menyelesaikan masalah.
Contoh : Bilangan Fibonaci dengan definisi rekursif sebagai berikut :
Bilangan Fibonaci, untuk bilangan bulat non-negatif :
• Fibonaci(0) = 0
• Fibonaci(1) = 1
• Fibonaci(n) = Fibonaci(n-1) + Fibonaci(n-2), untuk n > 1
Penghitungan Fibonaci(n) menyebabkan pemanggilan rekursif. Berapa frekuensinya ? Perhatikan,
bahwa setiap pemanggilan Fibonaci(n) untuk n>1 akan memanggil dua kali function tersebut secara
rekursif, dan banyaknya pemanggilan akan bertambah secara eksponensial seperti yang ditunjukkan
oleh Gambar 1.3
5
4 3
12
1 0
3 2
011
01
Gambar 1.3 Pemanggilan Fibonaci(5)
1.4 Kasus Praktikum
Catatan : Untuk setiap kasus rekursif yang diberikan, sebelum membuat programnya, buatlah definisi dari setiap kasus yang terdiri dari dua bagian, yaitu bagian base case dan bagian rekursif.
Kasus 1 : Buatlah program rekursif untuk menghitung faktorial. Contoh :
0! = 1
1! = 1
2! = 2
5! = 120
Kasus 2 : Buatlah program rekursif untuk menghitung m * n, dengan batasan m dan n
adalah bilangan bulat positif.
5
Kasus 3 : Sebuah array dengan 5 elemen berisi data-data berikut : 12, 6, 4, 10, 3.
Buatlah program rekursif untuk mencetak elemen-elemen tersebut secara terbalik
sehingga tampilannya adalah :
3
10
4
6
12
Kasus 4 : Sebuah array dengan 5 elemen berisi data-data berikut :
12, 6, 4, 10, 3.
Buatlah program rekursif untuk membalik elemen-elemen tersebut, sehingga isi array
menjadi :
3, 10, 4, 6, 12
Setelah membalik array, tampilkan dari elemen pertama sampai elemen terakhir.
Catatan : Bedakan kasus 3 dengan kasus 4. Kasus 3 hanya mencetak secara terbalik tetapi isi array
tetap. Kasus 4 membalik isi array kemudian ditampilkan dari elemen pertama sampai elemen terakhir.
6
MODUL 2 : ALGORITMA LANJUT
2.1 Tujuan Tujuan dari modul ini adalah :
1. Memahami algoritma Greedy
2. Memahami algoritma Divide-and-conquer
3. Memahami cari kerja BinarySearch dan pencarian maksimum atau minimum
2.2 Kegiatan
1. Membuat program dengan algoritma Greedy untuk menyelesaikan masalah uang pecahan
kembalian.
2. Membuat program rekursif untuk BinarySearch dengan algoritma divide-and-conquer
3. Membuat program rekursif untuk mencari nilai maksimum dan minimum dengan algoritma divide-
and-conquer
2.3 Teori Penunjang : Algoritma Greedy
Algoritma Greedy merupakan salah satu algoritma untuk masalah optimisasi. Tujuannya adalah untuk
mencari sebuah solusi dari problem yang diberikan yang akan meminimisasi atau memaksimasi nilai
dari beberapa parameter.
Algoritma Greedy secara berulang menjalankan sebuah procedure yang mencoba mencari hasil
maksimal berdasarkan pemeriksaan kondisi lokal, dengan harapan hasilnya akan menuju ke hasil
akhir
Cara kerja algoritma Greedy adalah memilih yang “kelihatannya” terbaik pada setiap langkah
(optimum lokal). Pada saat algoritma Greedy menemukan sebuah solusi, kita harus menentukan
apakah solusi tersebut optimal. Untuk itu, kita dapat membuktikan bahwa solusi tersebut optimal atau
menunjukkan keadaan yang menyatakan bahwa solusi lain tidak optimal.
Misalnya, solusi optimal dalam uang kembalian kasir adalah banyaknya uang kertas atau koin yang
diberikan kepada pelanggan haruslah seminimal mungkin. Misalnya, seorang kasir mempunyai koin
dengan nominal 25, 10, dan 1. Berapakah banyaknya koin yang diterima pelanggan jika total
kembalian adalah 30 ? Algoritma Greedy akan mengambil koin dengan nominal terbesar yaitu 25.
Sisanya adalah 5. Pecahan berikutnya adalah 10 tetapi tidak mencukupi. Jadi dipakai koin berikutnya
yaitu 1 sebanyak 5 buah. Sehingga banyaknya koin yang dipakai adalah 1 koin 25-an dan 5 koin 1-
an.
Cara di atas “kelihatannya” merupakan solusi optimal yaitu dengan 6 buah koin yang dipakai, tetapi
sebenarnya ada yang lebih optimal yaitu menggunakan 3 koin 10-an.
7
2.4 Kasus Praktikum : Uang Kembalian (Algoritma Greedy)
Kasir sebuah pasar swalayan mempunyai uang dengan nominal ; Rp 50.000, Rp 20.000, Rp 10.000,
Rp 5.000, Rp 2.000, Rp 1.000, Rp 500, Rp 200, Rp 100. Buatlah program untuk menghitung pecahan
berapa saja yang diterima langganan untuk sejumlah uang kembalian.
Contoh : Jika uang kembalian Rp 69.800 maka pecahan yang diterima adalah :
1 lembar Rp 50.000
1 lembar Rp 10.000
1 lembar Rp 5.000
2 lembar Rp 2.000
1 buah Rp 500
1 buah Rp 200
1 buah Rp 100
Proses tersebut dikerjakan dengan cara mencari hasil bagi bulat (menggunakan operator DIV)
dengan pecahan terbesar, dalam hal ini Rp 69800 dibagi dengan 50000, hasilnya adalah 1 yang
merupakan 1 lembar RP 50.000. Sisa pembagian tersebut (menggunakan operator MOD) adalah Rp
19800, akan mengalami proses yang sama untuk pecahan yang lebih kecil berikutnya. Proses
tersebut dapat digambarkan sebagai berikut :
Rp 69800 1 lembar Rp 50000
Div 50000
0 lembar Rp 20000
Div 20000
Rp 19800
mod 50000
mod 20000
1 lembar Rp 10000
Div 10000
Rp 9800mod 10000
Rp 19800
… dst
8
2.5 Teori Penunjang : Relasi Rekursif Divide-and-Conquer
Sebuah algoritma rekursif membagi sebuah masalah dengan ukuran n menjadi a subproblem. Ukuran
setiap subproblem adalah n/b, artinya a*b = n. Tetapi pada kenyataannya problem-problem yang
lebih kecil akan berukuran lebih kecil dari n/b. Kemudian, pada tahapan conquer, diperlukan operasi
tambahan dengan total g(n) untuk menggabungkan solusi dari subproblem-subproblem menjadi
solusi dari problem awal. Jika f(n) menyatakan banyaknya operasi yang diperlukan untuk
menyelesaikan masalah dengan ukuran n, maka f mempunyai hubungan rekursif sebagai berikut :
f(n) = a*f(n/b) + g(n)
2.6 Kasus Praktikum : Binary Search
Algoritma search adalah algoritma untuk mencari apakah sebuah data ada di dalam sekumpulan data
yang telah diberikan. Binary Search adalah algoritma pencarian yang bekerja pada sekumpulan data
yang terurut secara ascending (menaik), dari kecil ke besar. Cara kerja algoritma ini adalah dengan
membandingkan elemen yang ada di tengah daftar. Kemudian, daftar dibagi menjadi dua bagian
yang lebih kecil dengan ukuran sama, atau beda sebanyak satu elemen. Pencarian dilanjutkan
dengan membatasi pencarian pada sublist yang sesuai berdasarkan perbandingan pada elemen
tengahnya. Misalnya diberikan daftar dengan 8 elemen berikut :
3 7 10 12 13 14 16 20
Misalnya kita akan mencari data 9. Pertama, bagi daftar tersebut menjadi dua bagian sehingga setiap
sublist berisi 4 data. Kedua sublist tersebut adalah :
3 7 10 12
dan
13 14 16 20
Bandingkan 9 dengan elemen tengahnya yaitu 12 (karena ada 8 data maka elemen tengahnya
adalah data keempat yaitu 12). Ada tiga kemungkinan :
1. Data yang dicari sama dengan elemen tengah, maka data tersebut ditemukan dan proses
berhenti.
2. Data yang dicari lebih kecil dari elemen tengah, maka proses binary search akan diulang
pada sublist kiri tetapi elemen tengah tidak disertakan karena sudah dicek pada kasus
pertama.
3. Data yang dicari lebih besar dari elemen tengah, maka proses binary search akan diulang
pada sublist kanan tetapi elemen tengah tidak disertakan karena sudah dicek pada kasus
pertama.
Kasus 2 dan 3 adalah proses rekursif.
Buatlah program binary search dengan algoritma rekursif divide-and-conquer.
9
2.7 Kasus Praktikum : Mencari maksimum dan minimum
Diberikan sekumpulan elemen a1, a2, . . ., an, Jika n = 1, maka a1 adalah maksimum dan minimum.
Jika n > 1, bagi menjadi dua sublist. Masalah ini dibagi menjadi pencarian maksimum dan minimum
pada sublist yang lebih kecil. Solusi dari masalah awal didapatkan dengan membandingkan antara
maksimum atau minimum dari kedua sublist.
Buatlah program untuk mencari maksimum dan minimum dengan algoritma rekursif divide-and-
conquer.
10
MODUL 3 : QuickSort dan MergeSort
3.1 Tujuan Tujuan dari modul ini adalah :
1. Memahami cara kerja algoritma rekursif yang dipakai pada pengurutan data
2. Memahami cari kerja MergeSort dan QuickSort yang memakai metoda divide-and-conquer
3. Mampu mengimplementasikan MergeSort dan QuickSort dalam salah satu bahasa
pemrograman.
3.2 Kegiatan
Membuat program rekursif untuk masalah-masalah :
1. MergeSort
2. QuickSort
3.3 Teori Penunjang
MergeSort dan QuickSort adalah dua algoritma pengurutan yang menggunakan metoda divide-and-
conquer. Kedua algoritma tersebut mempunyai tiga langkah utama :
1. Bagilah array awal yang tidak terurut menjadi dua subarray
2. Urutkan kedua subarray
3. Gabungkan kedua subarray yang terurut menjadi solusi akhir
Misalnya kita mempunyai data (7, 2, 8, 1, 3, 9, 6). Jika ketiga proses tersebut diterapkan pada
MergeSort, hasilnya adalah :
1. Dua subarray hasil pembagian array awal adalah (7, 2, 8) dan (1, 3, 9, 6)
2. Hasil pengurutan kedua subarray adalah (2, 7, 8) dan (1, 3, 6, 9)
3. Hasil merge adalah (1, 2, 3, 6, 7, 8, 9)
Kompleksitas MergeSort adalah O(n log n).
Bagaimana jika ketiga langkah tersebut diterapkan pada QuickSort ? Mula-mula Anda harus memilih
sebuah kunci sebagai pivot. Kunci pivot akan dipakai untuk membagi array menjadi dua subarray,
yaitu :
• Partisi kiri yang berisi data-data yang nilainya lebih kecil dari pivot
• Partisi kanan yang berisi data-data yang nilainya lebih besar atau sama dengan pivot
Pemartisian tersebut dikerjakan secara rekursif pada partisi kiri dan partisi kanan. Dengan cara ini,
array semula akan terurut secara menaik (ascending).
11
3.4 Kasus Praktikum
Kasus 1 : Buatlah program rekursif untuk MergeSort dengan pseudocode sebagai
berikut :
MergeSort(m,n)
If (ada lebih dari satu elemen)
Then
Bagi menjadi dua array yaitu ArrayKiri dan ArrayKanan,
dengan titik tengah adalah mid
MergeSort(m, mid) {rekursif ArrayKiri }
MergeSort(mid+1, n) {rekursif ArrayKanan }
Gabungkan (merge) ArrayKiri dan ArrayKanan
Endif
End MergeSort
Kasus 2 : Buatlah program rekursif untuk QuickSort dengan pseudocode sebagai
berikut:
QuickSort(m,n)
If (ada lebih dari satu elemen)
Then
Bagi menjadi dua array yaitu ArrayKiri dan ArrayKanan,
dengan titik tengah adalah mid
MergeSort(m, mid) {rekursif ArrayKiri }
MergeSort(mid+1, n) {rekursif ArrayKanan }
Gabungkan (merge) ArrayKiri dan ArrayKanan
Endif
End QuickSort
12
MODUL 4 : REKURSIF LANJUT
4.1 Tujuan Tujuan dari modul ini adalah untuk memperdalam pemahaman cara kerja algoritma rekursif.
4.2 Kegiatan
Membuat program rekursif untuk masalah-masalah :
1. Pemangkatan
2. Faktor Persekutuan Terbesar (FPB)
3. Akar kuadrat
4.3 Kasus Praktikum
Kasus 1 : Buatlah sebuah program rekursif untuk menghitung xn, x adalah bilangan real dan n adalah
bilangan bulat positif. Definisi rekursifnya adalah :
• xn = 1, jika n = 0
• xn = x * xn-1, jika n > 0
Kasus 2 : Kasus 1 dapat dibuah dengan cara membagi n menjadi dua bagian (divides in halves).
Contoh :
• x11 = x5 * x5 * x
• x10 = x5 * x5
Catatan : carilah base case yang cocok untuk memberhentikan eksekusi.
Kasus 3 : Algoritma Euclid’s dipakai untuk mencari factor persekutuan terbesar (FPB). Untuk mencari
FPB dari dua bilangan bulat positif m dan n, Anda harus memakai dua buah sisa hasil bagi secara
suksesif. Jika salah satu hasil bagi adalah 0, hasil bagi lainnya adalah FPB. Contoh : akan dicari FPB
dari 24 dan 15, prosesnya digambarkan sebagai berikut :
24 dibagi 15 => 1 sisa 9
15 dibagi 9 => 1 sisa 6
9 dibagi 6 => 1 sisa 3
6 sisa 3 => 2 sisa 0 =>karena sisa hasil bagi adalah 0 maka FPB adalah 3.
Buatlah program rekursif untuk menghitung FPB.
13
Kasus 4 : Akar kuadrat dari sebuah bilangan x dapat dihitung dengan metoda Newton. Beda antara
kuadrat solusi dengan x merupakan akurasi dari perhitungan yang disebut epsilon. Proses
perhitungan diawali dengan perkiraan yaitu :
a = x/2.
Jika |a*a – x| <= epsilon, maka proses selesai dan hasilnya adalah a. Jika tidak, a diganti dengan
perkiraan selanjutnya yang didefinisikan dengan :
(a + x/a)/2
Buatlah program rekursif untuk menghitung akar kuadrat dan bandingkan hasilnya dengan
perhitungan menggunakan fungsi yang sudah ada di bahasa pemrograman.
14
MODUL 5 : Memakai Power Designer
5.1 Tujuan Tujuan dari modul ini adalah :
1. Memahami cara kerja ProcessAnalyst dari Power Designer 6.
2. Memahami tools palette yang ada
3. Membuat DFD menggunakan ProcessAnalyst
5.2 Kegiatan
1. Membuat diagram konteks dari contoh yang diberikan
2. Membuat DFD dari diagram konteksMembuat program rekursif untuk masalah-masalah :
5.3 Teori Penunjang
ProcessAnalyst dari Power Designer 6 adalah perangkat lunak bantu untuk menggambarkan proses-
proses di dalam sebuah system informasi. Process Analyst Model (PAM) menggambarkan
bagaimana data ditransformasikan dan menggambarkan proses-proses fungsional diaplikasikan pada
data. ProcessAnalyst membantu Anda dalam membuat data flow model/data flow diagram. Dengan
perangkat lunak ini Anda dapat :
1. Membuat data flow diagram (DFD) untuk merepresentasikan proses-proses di dalam
sebuah system.
2. Memakai symbol-simbol dari metoda-metoda yang ada yaitu : OMT, Yourdon/DeMarco,
Gane&Sarson, dan SSADM.
3. Membuat hirarki proses
Model OMT merupakan model fungsional yang menggambarkan aspek-aspek sebuah system
mencakup fungsi, representasi, constrain, dan ketergantungan fungsional (functional dependency)
untuk mentransformasi nilai. Cara ini adalah untuk menganalisis system dengan berorientasi objek.
Metoda-metoda yang lain, Yourdon/DeMarco, Gane&Sarson, and SSADM berdasarkan pada
metodologi analisis terstruktur. Metoda-metoda ini menggunakan DFD untuk menggambarkan aliran
data secara grafis. Aliran data melibatkan :
1. Dari sumber ke proses
2. Dari sebuah proses ke proses lain
3. Dari proses ke tujuan
Pada pelajaran ini kita akan memakai metoda Yourdon/DeMarco.
15
Menjalankan ProcessAnalyst dari Power Designer 6
1. Panggil ProcessAnalyst dengan cara klik iconnya. Ditampilkan main windownya.
Perhatikan di bagian bawah windows, tertera : OMT Functional Model, yang merupakan model
default.
2. Untuk mengubah metoda yang dipakai, pilih menu File|Model Options.
Ditampilkan jendela Model Options.
3. Pada kotak Method pilih Yourdon/DeMarco. Lalu klik Ok.
Tools pallete akan berubah dan berisi tool yang sesuai dengan metoda yang Anda pilih.
16
Tombol-tombol di dalam palette mewakili fungsi-fungsi utama yang diperlukan untuk membangun
dan mengubah sebuah DFD. Tabel berikut memberikan nama dan fungsi setiap tool yang ada pada
metodologi Yourdon/DeMarco.
Tool Nama Fungsi
Pointer Memilih simbol
Lasso Memilih simbol-simbol di dalam sebuah area
Grabber Memilih, memindahkan, dan mengubah ukuran
simbol
Zoom Memperbesar gambar
Zoom In Menambah skala penampilan
Zoom Out Mengurangi skala penampilan
Properties
Decomposition Mendekomposisi sebuah proses ke level
berikutnya
Drag & Drop Drag & Drop untuk memindahkan sebuah
objek
17
Process Menambahkan symbol proses
Data store Menambahkan symbol data store
External Entity Menambahkan symbol external entity
Split/Merge
Data Flow Menambahkan symbol data flow
Text Menampilkan teks
Line Menggambar garis
Rectangle Menggambar segi empat
Oval Menggambar oval
Rounded Rectangle Menggambar segi empat dengan ujung bulat
Polyline Menggambar poliline
Polygon Menggambar polygon
Semua metodologi di dalam ProcessAnalyst memakai konsep yang sama untuk pemrosesan data :
1. Process : Merupakan sebuah “black box” yang menerima data,
mentransformasi (memproses) dan member hasil
2. Process decomposition : Melakukan breakdown pada sebuah proses menjadi beberapa level
yang lebih rendah.
3. External entity : Sumber dari data yang dipakai di dalam model
4. Data store : Lokasi untuk menyimpan data baik secara sementara atau
permanen, di dalam system.
5. Data flow : Transfer data antara beberapa komponen di dalam system.
18
Membuat Diagram Konteks 1. Pilih menu File|New.
Pada praktikum ini kita memakai model Yourdon/DeMarco, Anda dapat mengubah pilihan model
dengan cara yang sudah dijelaskan di atas.
Pada praktikum ini kita akan membuat Diagram Konteks dan DFD dari SafeHone SoftWare yang
ada di buku Software Engineering …Diagram konteks yang akan dibuat adalah seperti pada
gambar berikut.
2. Pertama-tama kita akan menambahkan external entity. Klik tool External Entity pada palette,
yaitu dengan lambang segiempat. Gerakkan mouse ke lembar kerja sehingga ditambahkan
sebuah external entity dengan nama Entt_1, penomoran tersebut berdasarkan pada urutan
penciptaan objek. Pada keadaan ini, tool tersebut masih aktif yang ditandai dengan segi empat
lebih kecil di dalamnya, artinya jika Anda klik sekali lagi maka akan ditambahkan external entity
lainnya. Untuk memberhentikannya, aktifkan tool Pointer.
3. Klik ganda pada External Entity yang telah Anda tambahkan untuk melengkapi property nya.
Ditampilkan jendela External Entity Properties.
4. Pada textbox Name ketikkan Control Panel.
5. Di sebelah kanan textbox Code terdapat tanda =. Klik tombol tersebut untuk membuat Code secara otomatis sama dengan Name.
19
6. Klik Ok, dan nama external entity akan berubah.
7. Tambahkan keempat external extity lainnya.
8. Tambahkan sebuah Process, dengan Name = SafeHomeSoftware.
9. Selanjutnya kita harus menambahkan Data Flow. Data Flow pertama yang akan kita buat adalah
User commands and data yang menghubungkan Control panel dan proses SafeHome Software. Untuk itu klik external entity Control Panel dan drag ke proses SafeHome Software. Akan digambarkan anak panah yang melambangkan data flow dari Control Panel ke SafeHome Software, urutan klik tidak boleh terbalik karena akan menentukan arah anak panah.
10. Klik ganda pada data flow tersebut untuk melengkapi property nya.
Tampilan data flow dapat diatur sehingga tidak saling tumpang tindih. Garis pada data flow dapat
dipatahkan. Pilih data flow yang akan dipatahkan.
Tekan tombol CTRL sambil klik bagian tengah data flow, lalu drag ke arah yang Anda kehendaki.
Cara lian adalah dengan klik kanan pada sebuah data flow, lalu pilih menu Line Style.
20
11. Tambahkan data flow yang lain.
21
Mendekomposisi proses Setelah membuat diagram konteks, kita harus mendekomposisi menjadi proses-proses yang lebih
detil. DFD pada level selanjutnya adalah seperti pada gambar di bawah ini.
Langkah-langkah untuk mendekomposisi proses :
1. Pilih proses yang akan didekomposisi, dalam hal ini proses SafeHome Software yang ada pada
diagram konteks, yang bernomor 1.
2. Klik kanan pada proses tersebut, kemudian pilih Decompose, ditampilkan jendela lain yang
merupakan lembar kerja bagi DFD level selanjutnya. Pada DFD ini akan ada migrated flow, yaitu
data flow yang terhubung ke proses yang lebih tinggi Data flow dari level sebelummnya yang
berhubungan dengan proses yang didekomposisi secara otomatis sudah terbentuk tetapi
ujungnya belum terhubung ke sebuah proses. Migrated flow tersebut nantinya akan kita
hubungkan dengan proses proses hasil dekomposisi. Tetapi, satu hal yang harus diingat yaitu
flow tersebut tidak boleh langsung terhubung ke data store.
22
3. Lengkapi DFD tersebut menjadi seperti contoh yang diberikan.
4. Tambahkan sebuah Process untuk Interact with user dan proses tersebut akan diberi nomor
1.1 karena merupakan subproses pertama dari hasil dekomposisi proses 1 pada level yang lebih
atas.
5. Arahkan data flow User commands and data ke proses 1.1 yang baru ditambahkan.
6. Lengkapi DFD tersebut dengan data flow, process, dan data store yang lain.
23
7. Selanjutnya, kita akan mendekomposisi proses Monitor sensors, seperti gambar di bawah ini.
8. Lengkapi DFD sehingga terbentuk DFD seperti berikut ini.
9. Anda dapat kembali ke level sebelumnya dengan menu Dictionary|Subprocsess|Up One Level.
Proses 1.5 Monitor Sensors akan diberi tanda + yang artinya telah didekomposisi.
24
Menampilkan Process Tree Untuk melihat hirarki proses dan subproses yang terbentuk, pilih menu
Dictionary|Subprocesses|Process Tree.
Memeriksa model ProcessAnalyst dapat memeriksa apakah model yang dibuat sudah benar. Pilih menu
Dictionary|Check Model. Akan ditampilkan hasil pengecekan.
25
MODUL 6 : DFD : Travel Antar Kota
6.1 Tujuan Tujuan dari modul ini adalah untuk latihan membuat DFD berdasarkan masalah yang diberikan.
6.2 Kegiatan
Membuat diagram konteks dan DFD untuk masalah travel antar kota.
6.3 Kasus Praktikum
Sebuah perusahaan jasa travel antar kota memerlukan system perangkat lunak untuk mengelola
sumber daya yang dimiliki untuk meningkatkan efisiensi. Sumber daya yang dimiliki perusahaan ini
adalah :
1. Kendaraan dengan berbagai tipe dan kapasitas, misalnya bis, minibus dan lain-lain.
2. Trayek-trayek dengan berbagai tujuan yang berbeda dan jam keberangkatan yang berbeda.
3. Sopir dengan berbagai kualifikasi yang menunjukkan pengalaman kerja, gaji, tunjangan, uang
makan, upah trayek dan daerah jangkauan untuk seorang sopir diperbolehkan membawa
penumpang
4. SPBU-SPBU yang sudah menjalin kerja sama sehingga kendaraan-kendaraan hanya boleh
mengisi di SPBU-SPBU tersebut dengan hanya mengisi buku pengisian (tidak membayar
secara tunai) karena pembayaran akan dilakukan secara kolektif.
5. Bengkel internal untuk perbaikan sederhana dan bengkel-bengkel rekanan untuk perbaikan
yang lebih rumit.
6. Kantor-kantor administrasi serta staf-staf administrasi.
Fungsi-fungsi yang diinginkan :
1. Calon penumpang melakukan reservasi (pesan tempat duduk) melalui telepon dan tiket harus
diambil sekaligus dibayar sekian lama (misalnya 1 jam) sebelum jadwal keberangkatan.
2. Penjadwalan kendaraan dan sopir untuk trayek-trayek yang ada dengan mempertimbangkan
kecukupan penumpang dan kapasitas kendaraan. Jika penumpang sedikit dipakai mobil kecil
jika penumpang banyak dipakai mobil yang lebih besar.
3. Pencatatan pengisian bahan bakar untuk setiap kendaraan.
4. Penggajian sopir termasuk gaji tetap, tunjangan dan upah trayek.
5. Pengelolaan pinjaman uang beserta cicilan pembayarannya.
6. Pencatatan pemeliharaan dan perbaikan rutin dan non rutin untuk setiap kendaraan.
26
7. Pembayaran kepada perusahaan rekanan, SPBU dan bengkel
8. Tiket gratis untuk penumpang yang telah memenuhi kualifikasi misalnya pergi ke tujuan yang
sama sebanyak 10 kali maka akan mendapat tiket gratis satu kali. Fasilitas ini dapat diubah
oleh pihak yang berwewenang di perusahaan travel ini.
9. Setiap kantor administrasi mempunyai pengelolaan keuangan sendiri-sendiri. Kantor
adminsitrasi menerima pemasukan dari hasil penjualan tiket dan pengeluarannya adalah
biaya operasional yang diberikan kepada sopir pada saat berangkat. Biaya tersebut dipakai
untuk membayar tol dan uang saku sopir dan kenek.
10. Laporan keuangan secara berkala yang mencakup pemasukan dan pengeluaran, baik untuk
setiap kantor administrasi atau secara keseluruhan.
11. Laporan kinerja trayek : trayek yang padat penumpang, untung rugi trayek dan lain-lain
Buatlah diagram konteks dan DFD untuk masalah tersebut. Pakailah Power Designer beserta semua
fasilitas yang dimiliki untuk membuat DFD yang benar.
27
MODUL 7 : DFD : Pengelolaan Minimarket
7.1 Tujuan Tujuan dari modul ini adalah untuk latihan membuat DFD berdasarkan masalah yang diberikan.
7.2 Kegiatan
Membuat diagram konteks dan DFD untuk masalah pengelolaan minimarket.
7.3 Kasus Praktikum
Sebuah minimarket memerlukan perangkat lunak yang dapat mengintegrasikan semua fungsi yang
ada. Sumber daya yang dimiliki minimarket pada umumnya adalah :
1. Beberapa kasir yang masing-masing dilengkapi dengan mesin cash register yang
terhubung dengan komputer pusat.
2. Beberapa jenis rak dengan kapasitas dan jenis berbeda (contoh rak pendingin berbeda
dengan rak makanan kering)
3. Berbagai barang dengan warna, ukuran yang berbeda, serta kemasan satuan dan grosir
(satu dus atau satu pak)
4. Member minimarket dengan fasilitas-fasilitas khusus
Fungsi-fungsi yang diperlukan :
1. Minimarket buka dari jam 6.30 sampai 22.00. Oleh sebab itu kasir akan dibagi menjadi 2 shift.
Pada saat satu shift berakhir akan dilakukan rekapitulasi penjualan oleh kasir tersebut dan
kasir akan menyetorkan uang hasil transaksi.
2. Aliran barang adalah supplier (gudang pusat) -> gudang minimarket -> rak display ->
pembeli. Setiap barang baik di gudang minimarket atau di rak display mempunyai stok
minimum. Jika satu barang sudah mencapai stok minimum maka store manager akan
melakukan penambahan stok.
3. Untuk menjaga mutu barang yang dijual di minimarket maka barang yang mendekati
kadaluarsa akan dijual dengan harga murah atau bonus khusus misalnya beli 1 gratis 1.
4. Pengelolaan barang kadaluarsa diperlukan untuk mencegah barang kadaluarsa dibeli oleh
pembeli jadi barang tersebut akan dimusnahkan dan ada pencatatan barang yang
dimusnahkan serta mengurangi stok.
5. Menambah dan mengubah data barang misalnya perubahan harga
6. Mengubah letak barang yang ada di rak display
28
7. Promosi barang dengan beberapa alternatif : khusus member atau semua pembeli, beli 2
gratis 1, beli 2 bonus satu barang yang berbeda jenis, dan lain-lain
8. Laporan persediaan barang di gudang minimarket, di rak display
9. Laporan penjualan per perioda, per kasir, per barang, dan seterusnya
10. Stock opname untuk mencocokkan antara persediaan barang yang ada dengan data di
komputer, jika ada perbedaan akan dilakukan penyesuaian.
Buatlah diagram konteks dan DFD untuk masalah tersebut. Pakailah Power Designer beserta semua
fasilitas yang dimiliki untuk membuat DFD yang benar.
29
MODUL 8 : DFD : Sistem Informasi Akademik
8.1 Tujuan Tujuan dari modul ini adalah untuk latihan membuat DFD berdasarkan masalah yang diberikan.
8.2 Kegiatan
Membuat diagram konteks dan DFD untuk masalah system informasi akademik.
8.3 Kasus Praktikum
Sistem informasi akademik ITHB mempunyai beberapa modul utama yaitu :
1. Modul penjadwalan kuliah dan ujian
2. Modul pengelolaan nilai
Modul penjadwalan kuliah dan ujian
Sistem penjadwalan kuliah ITHB melibatkan beberapa pihak :
1. Dosen dengan kesediaaan waktu mengajar tertentu
2. Mahasiswa yang mengambil matakuliah-matakuliah yang berbeda. Mahasiswa dibagi
menjadi 3 tingkatan/level hirarki, yaitu grup tahun ajaran (level 1), grup jurusan (level 2), dan
grup kelas (level 3). Pembuatan hirarki ini diperlukan karena ada beberapa aturan
penjadwalan :
a. Suatu grup angkatan-jurusan tidak boleh kuliah lebih dari 1 pada saat yang
bersamaan, kecuali untuk grup kelas berbeda dengan mata kuliah berbeda atau
matakuliah sama dengan dosen berbeda
b. Jumlah kuliah dalam sehari untuk seorang mahasiswa dibatasi
3. Bagian-bagian di ITHB yang mengadakan kegiatan-kegiatan khusus dan memerlukan ruang
dan peralatan misalnya CRC, HIMA.
4. Asisten untuk kelas praktikum dan tutorial
Sumber daya yang terlibat dalam penjadwalan adalah :
1. Ruangan dengan kapasitas masing-masing dan karakteristik khusus misalnya kelas teori,
praktikum, studio.
2. Peralatan di antaranya notebook, LCD proyektor, OHP
3. Kuliah yang tidak sama dengan matakuliah. Kuliah merupakan kegiatan atau aktivitas yang
terjadi sebagai kombinasi dari suatu matakuliah, grup mahasiswa, dosen, dan
perlengkapannya. Dalam satu kuliah mungkin melibatkan satu atau lebih grup mahasiswa,
30
dosen, dan perlengkapan. Suatu kuliah juga dapat dibagi menjadi satu atau beberapa sesi.
Misalnya satu matakuliah dibagi menjadi 2 grup, dengan dua orang dosen. Maka matakuliah
tersebut dibagi menjadi 2 kuliah, masing-masing untuk tiap grup dengan dosen masing-
masing.
4. Sesi kuliah merupakan sesi pertemuan yang dimiliki oleh sebuah kuliah. Misalnya sebuah
matakuliah berbobot 4 SKS, maka kuliah tersebut dibagi menjadi 2 sesi kuliah, artinya dalam
seminggu ada 2 jadwal masing-masing 2 SKS.
Fungsi-fungsi yang diperlukan adalah :
1. Input kehadiran dosen dengan fingerprint
2. Membuat jadwal per dosen, per matakuliah dengan bentrok seminim mungkin
3. Jadwal dibuat secara permanen (per semester) atau insidentil (jadwal pengganti)
4. Peringatan keterlambatan dosen dengan toleransi tertentu
5. Rekapitulasi jam mengajar dosen yang selanjutnya dipakai oleh bagian keuangan untuk
penggajian
6. Kehadiran mahasiswa yang akan dipakai untuk rekapitulasi pada akhir semester untuk
menentukan apakah seorang mahasiswa boleh mengikuti UAS
7. Membuat jadwal ujian yang berisi data mata kuliah, ruangan, dan daftar mahasiswa di
sebuah ruangan
Modul pengelolaan nilai
Sistem pengelolaan nilai menerima input nilai dari dosen berupa :
1. Komponen-komponen nilai yaitu UAS, UAS, Tugas, Quis, Presentasi, dan lain-lain
2. Bobot setiap komponen nilai
Laporan-laporan yang dihasilkan adalah :
1. Transkrip nilai
2. Laporan nilai dan kehadiran yang dikirimkan ke orang tua mahasiswa.
3. Laporan nilai untuk kopertis
4. Rekapitulasi nilai per mata kuliah, per dosen dan lain-lain
Buatlah diagram konteks dan DFD untuk masalah tersebut. Pakailah Power Designer beserta semua
fasilitas yang dimiliki untuk membuat DFD yang benar.