Modul Praktikum MAPP

30
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

Transcript of Modul Praktikum MAPP

Page 1: 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

Page 2: Modul Praktikum MAPP

  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

 

 

Page 3: Modul Praktikum MAPP

  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.

 

Page 4: Modul Praktikum MAPP

  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.

Page 5: Modul Praktikum MAPP

  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.

Page 6: Modul Praktikum MAPP

  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.

Page 7: Modul Praktikum MAPP

  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

Page 8: Modul Praktikum MAPP

  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.

Page 9: Modul Praktikum MAPP

  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.

Page 10: Modul Praktikum MAPP

  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).

Page 11: Modul Praktikum MAPP

  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

Page 12: Modul Praktikum MAPP

  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.

Page 13: Modul Praktikum MAPP

  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.

Page 14: Modul Praktikum MAPP

  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.

Page 15: Modul Praktikum MAPP

  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.

Page 16: Modul Praktikum MAPP

  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

Page 17: Modul Praktikum MAPP

  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.

Page 18: Modul Praktikum MAPP

  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.

Page 19: Modul Praktikum MAPP

  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.

Page 20: Modul Praktikum MAPP

  20

11. Tambahkan data flow yang lain.

Page 21: Modul Praktikum MAPP

  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.

Page 22: Modul Praktikum MAPP

  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.

Page 23: Modul Praktikum MAPP

  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.

Page 24: Modul Praktikum MAPP

  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.

Page 25: Modul Praktikum MAPP

  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.

Page 26: Modul Praktikum MAPP

  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.

Page 27: Modul Praktikum MAPP

  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

Page 28: Modul Praktikum MAPP

  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.

Page 29: Modul Praktikum MAPP

  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,

Page 30: Modul Praktikum MAPP

  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.