BAB 3 ANALISIS DAN PERANCANGAN PROGRAM 3.1 Perancangan Program 3.1.1 Perangkat Lunak Perangkat lunak atau piranti lunak adalah: 1. Program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras, penerjemah peintah-perintah yang dijalankan pengguna komputer untuk diteruskan ke atau diproses oleh perangkat keras. 2. Perintah (berupa sebuah program) yang bila dieksekusi memberikan sebuah fungsi dan unjuk kerja seperti yang diinginkan oleh si pembuat. 3. Sruktur data yang memungkinkan program memanipulasi informasi secara proporsional. Perangkat lunak dibagi menjadi 3 tingkatan: 1. ingkatan program aplikasi (application program misalnya Microsoft office). 2. ingkatan system operasi (operating system misalnya Microsoft windows). 3. ingkatan bahasa pemrograman (yang dibagi lagi atas bahasa pemrograman tingkat tinggi seperti pascal dan bahasa pemrograman tingkat rendah seperti bahasa rakitan). Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras, melakukan perhitungan (memproses), berinteraksi dengan perangkat lunak yang lebih mendasar lainnya seperti sistem operasi, dan bahasa pemrograman, dan lain-lain.
22 3.2 Alat Bantu Perancangan 3.2.1 Gambaran Umum Rancangan Program aplikasi yang dirancang ini akan menerapkan Single Document Interface (SDI). SDI terdiri dari dari dua komponan utama, yaitu halaman induk (parent) dan halaman anak (child). Dalam sebuah aplikasi SDI, harus memiliki satu window utama (layar utama). Layar utama adalah layar yang bertugas sebagai pusat pengatur layar-layar lainnya. Pada layar ini biasanya terdapat menu yang merupakan menu utama aplikasi. Layar utama mempunyai menu yang disusun dalam bentuk pull down. Masing-masing menu tersebut memiliki submenu yang berfungsi sebagai fungsi. Pada saat layar utama membuat layar anak, maka layar anak akan tampil satu layar bersama layar utama. Model aplikasi yang dirancang akan digambarkan dengan menggunakan Struktur Hierarkis, State ransition Diagram (SD) dan Peseudocode. Program aplikasi ini bernama R-language versi 2.7.1. 3.2.2 State ransition Diagram (SD) State transition diagram merupakan suatu diagram yang merepresentasikan langkah-langkah perubahan keadaan (state) dari awal hingga akhir dengan memperlihatkan adanya ketergantungan terhadap waktu. Notasi yang digunakan adalah sebagai berikut: State menunjukkan satu atau lebih kegiatan atau keadaan atau atribut yang menjelaskan bagian tertentu dari program. State transition
23 Anak panah berarah menunjukkan perubahan state yang disebabkan oleh aksi (action) terhadap kondisi (condition) tertentu. Kondisi merupakan suatu event pada lingkungan eksternal yang dapat dideteksi oleh suatu sistem, misalnya sinyal, interupsi, atau data. Hal ini akan menyebabkan perubahan dari suatu state ke state lainnya atau satu aktivitas ke aktivitas lainnya. Aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, kalkulasi atau kegiatan lainnya. State 1 State 2 Gambar 3.1 State Dan State ransition Pada SD 3.2.3 Pseudocode Pseudocode adalah suatu bahasa pemrograman yang informal dan sangat fleksibel, yang tidak dimaksudkan untuk eksekusi pada mesin, tetapi hanya digunakan untuk mengatur pemikiran programmer sebelum melakukan pengkodean (Page-Jones. 1980, p11). Pseudocode dapat merupakan alternatif lain dalam perancangan perangkat lunak di samping alat-alat bantu berupa diagram. idak ada standarisasi dalam hal penulisan pseudocode. Programmer dapat menulisnya dalam bahasa apa saja yang mereka suka, dipadukan dengan bahasa pemrograman tertentu. Programmer juga bebas menggunakan teknik dan aturannya sendiri. Aturan untuk menulis pseudocode adalah sebagai berikut: Pernyataan ditulis dalam bahasa inggris sederhana.
24 Setiap perintah ditulis pada baris tersendiri. Kata kunci atau identasi (penulisan yang menjorok ke dalam) digunakan untuk menandai struktur control khusus. Setiap bimbingan perintah ditulis dari atas ke bawah dengan hanya satu awal dan satu akhir program. Kumpulan pernyataan-pernyataan dapat dibentuk dalam modul-modul yang diberi nama tertentu. 3.3 Perancangan Sistem 3.3.1 Struktur Hierarkis Menu Utama 1.1 Korelasi 1.2 Distribusi t 1.Menu Utama 1.3 Distribus Binomial 1.4 Selang Kepercayaan 1.5 Sample Normal Diagram 3.1 Struktur Hierarkis Menu Utama 1.1.1 Program Korelasi 1.1 Korelasi 1.1.2 Animasi aksiran 1.1.3 Rumus Korelasi Diagram 3.2 Struktur Hierarkis Menu Korelasi
25 1.2 Distribusi t 1.2.1 Animasi t Diagram 3.3 Struktur Hierarkis Menu distribusi t 1.3.1 Program Binomial 1.3 Distribusi Binomial 1.3.2 Animasi Binomial 1.3.3 Fungsi Distribusi Binomial Diagram 3.4 Struktur Hierarkis Menu Distribusi binomial 1.4.1 Selang z dan t 1.4 Selang Kepercayaan 1.4.2 Rumus selang z dan t Diagram 3.5 Struktur Hierarkis Menu Selang Kepercayaan 1.5 Sampel Normal 1.5.2 Animasi Sampel Diagram 3.6 Struktur Hierarkis Menu Animasi Sampel
26 3.3.2 Diagram ransisi Menu Aplikasi Di bawah ini adalah diagram transisi keadaan sistem: Lingkungan Windows Pilih X Keluar Dari Program Menunggu Program Dijalankan Menunggu program Menunggu Pilihan Menu utama Pilih Korelasi Pilih Distribusi t Pilih Distribusi Binomial Pilih Selang Kepercayaan Pilih Sampel Normal ampilkan menu ampilkan menu ampilkan Menu ampilkan menu ampilkan menu Korelasi Distribusi t Distribusi Binomial Selang Kepercayaan Sampel Normal Menunggu Pilihan Menu korelasi Menunggu Pilihan Menu Distribusi t Menunggu Pilihan Menu Distribusi Binomial Menunggu Pilihan Menu korelasi Selang Kepercayaan Menunggu Pilihan Menu Sampel Normal Diagram 3.7 SD Menu Utama Menunggu program Menunggu Pilihan Menu Korelasi Pilih Program Korelasi Pilih Animasi aksiran Pilih RumusKorelasi ampilkan Program ampilkan animasi ampilkan Rumus Program Korelasi Animasi aksiran Rumus korelasi Diagram 3.8 SD Menu Korelasi
27 Menunggu program Menunggu Pilihan Menu Distribusi t Pilih Animasi aksiran ampilkan animasi Animasi Distribusi t Diagram 3.9 SD Menu Animasi t Menunggu program Menunggu Pilihan Menu Distribusi Binomial Pilih Program Binom Pilih Animasi Binomial Pilih Fungsi Distribusi ampilkan Program Binomial ampilkan Animasi Distribusi ampilkan Fungsi Distribusi Program Binomial Animasi Distribusi Rumus Binom Diagram 3.10 SD Menu Distribusi Binomial Menunggu program Menunggu Pilihan Menu Selang Kepercayaan Pilih Animasi Selang Pilih Rumus ampilkan Selang z dan t ampilkan Rumus z dan t Animasi Selang Rumus Diagram 3.11 SD Menu Selang kepercayaan
28 Menunggu program Menunggu Pilihan Menu Sampel Normal Pilih Animasi ampilkan Animasi Sampel Sampel Normal Diagram 3.12 SD Menu Sampel Normal 3.3.3 Rancangan Menu Aplikasi Di bawah ini adalah perancangan untuk menu aplikasi yang akan dibuat softwarenya, di dalam menu ini akan dijabarkan tombol-tombol apa saja yang ada, serta urutan kejadian yang terjadi setelah penekanan tombol dilakukan.
Layer Utama Korelasi Distribusi t Distribusi Binomial Selang Kepercayaan Sampel Normal Program Korelasi Animasi aksiran Rumus Korelasi Animasi t Program Binom Animasi Binom Rumus Distribusi Animasi Selang z dan t Rumus Selang Anmasi Sampel Gambar 3.2 Rancangan Menu Aplikasi 29
30 3.3.4 Perancangan Layar Program Korelasi Distribusi t Distribusi Binomial Selang Kepercayaan Sampel normal Program Korelasi Animasi aksiran Rumus Korelasi Gambar 3.3 ampilan Layar Program Menu Utama Pada layar ini, user akan memilih modul yang disediakan yang berupa button berlabel. Di antara button-button yang berlabel modul tersebut user dapat memilih modul Korelasi, Distribusi t, Distribusi Binomial, Selang Kepercayaan, Sampel Normal dimana terdapat animasi maupun penjelasan tentang modul tersebut.
31 Korelasi - X y x Koefisien korelasi R^2 Reset Keluar Gambar 3.4 ampilan Layar Korelasi Pada layar ini, user akan menggerakan dua slider yang disediakan. Dimana pada saat slider koefisien korelasi digerakan ke kanan, maka grafik data akan berubah positif, sedangkan apabila slider koefisien korelasi digerakan ke kiri, maka grafik data akan berubah negatif disaat itu juga slider R^2 akan bergeser kuadrat dari slider koefisien korelasi yang bernilai positif. Apabila user menekan button Reset maka slider akan kembali kepada nilai defaultnya yang di set. Sedangkan apabila menekan button Keluar maka Layar diatas akan ditutup.
32 Visual t - X Derajat kebebasan unjukkan Distribusi Normal Xmin min Xmax max Refresh Keluar Gambar 3.5 ampilan Layar Visual t Pada layar ini, user akan diperlihatkan grafik dimana textbox Xmin,min, Xmax, max dengan nilai default. Apabila slider derajat kebebasan digerakkan kekanan maka mendekati kurva normal karena distribusi t dengan derajat bebas yang besar nilainya akan mendekati distribusi normal. Apabila dibandingkan dengan menunjukkan distribusi normal kan terlihat animasinya.
33 Visual Binomial - X n p unjukkan Pendekatan Normal unjukkan Pendekatan Poisson Refresh Keluar Gambar 3.6 ampilan Layar Distribusi Binomial Pada layar ini, user akan menggerakan dua slider yang disediakan pertama slider n sebagai penunjuk jumlah data dan slider p sebagai penunjuk peluang suatu kejadian. Juga dipadukan dengan dua checkbox: Pendekatan normal dan Pendekatan poisson yang dapat ditandai. Menu keluar dan refresh juga disediakan. Selang Kepercayaan - X Level Kepercayaan Keluar Gambar 3.7 ampilan Layar Selang Kepercayaan Pada layar ini, user dapat menggerakkan slider Level kepercayaan dimana dapat memberi gambaran selang kepercayaan. Juga terdapat tombol keluar sehingga dapat ditutup.
34 Sampel Normal - X Nilai Mu Nilai Sd N Jumlah observasi Linear Points Both Exit Gambar 3.8 ampilan Layar Sampel Normal Pada layar ini, user akan melihat 3 slider yaitu slider Mu dan slider Sd, dan slider n. Dan 3 buah button yaitu linear, points dan both. Dimana slider mu ini digunakan sebagai rata-rata dari sampel itu bergerak. Sedangkan slider mu memperlihatkan ukuran penyebaran sampel. Apabila slider sd digerakkan kekanan maka akan terlihat tingkat keragaman yang semakin besar. Dan pada slider n apabila digerakkan kekanan maka pertambahan sampel akan semakin besar.
35 3.4 Perancangan FlowChart Di bawah ini adalah perancangan FlowChart dari program yang akan dibangun: Mulai A ampilan Menu Pilihan (Modul) Menu Korelasi Modul Korelasi? A Pilih program? A 1 Modul Distribusi t? B Pilih animasi? Animasi aksiran Keluar Refresh Modul Distribusi Binomial? Rumus Korelasi C Lihat rumus? Keluar Menu Keluar P
36 P B Modul Selang Kepercayaan? D Menu Distribusi t Animasi Visual t Keluar Menu Modul Sampel Normal? E C Menu Distribusi Binomial Selesai E Pilih program? B 1 Menu Sampel Normal Animasi Sampel Normal Pilih animasi? Animasi Binom Refresh Keluar Menu P1 Keluar
37 D P1 Menu Distribusi t Pilih Fungsi? Fungsi Distribusi Pilih animasi? Animasi Selang kepercayaan Keluar Menu A 1 Pilih rumus? Rumus Selang Data: x, y Keluar Menu Calculate Output B 1 Data: n, x, p Calculate Output Ingin keluar? Keluar Menu Ingin keluar? Keluar Menu
38 3.5 Perancangan Spesifikasi Proses Spesifikasi proses digunakan untuk menjelaskan proses transformasi aliran data yang masuk menjadi data yang keluar. Untuk menjelaskan proses-proses yang terdapat dalam setiap tampilan layar sistem yang dibuat ini, maka proses yang terjadi dapat dilihat dari spesifikasi proses dibawah ini: Modul inisialisasi BEGIN Menunggu user memilih modul yang diinginkan dengan menekan tombol modul tersebut. END Modul Korelasi Menunggu user memilih dan menekan tombol Korelasi BEGIN If tombol Korelasi dipilih then tampilkan menu pilihan If tombol Program Korelasi dipilih then tampilkan GUI Korelasi else if tombol Animasi aksiran dipilih then tampilkan Animasi aksiran else tombol Rumus Korelasi dipilih then tampilkan Rumus END Modul Distribusi t Menunggu user memilih dan menekan tombol Distribusi t BEGIN
39 If tombol Distribusi t dipilih then tampilkan menu Animasi t If tombol Animasi t dipilih then tampilkan animasi distribusi t END Modul Distribusi Binomial Menunggu user memilih dan menekan tombol Distribusi Binomial BEGIN If tombol Distribusi Binomial dipilih then tampilkan menu pilihan If tombol Program Binom dipilih then tampilkan GUI Binomial Else tombol Animasi Binom dipilih then tampilkan Animasi Binomial Else tombol Fungsi Distribusi dipilih then tampilkan Rumus Fungsi Distribusi. END Modul Selang Kepercayaan Menunggu user memilih dan menekan tombol Selang Kepercayaan BEGIN If tombol Selang Kepercayaan dipilih then tampilkan menu pilihan If tombol Animasi Selang dipilih then tampilkan menu animasi Selang z dan t. else tombol Rumus dipilih then tampilkan Rumus Selang Kepercayaan Mean z dan t END
40 Modul Sampel normal Menunggu user memilih dan menekan tombol sampel normal BEGIN If tombol Animasi Sampel dipilih then tampilkan Animasi Sampel Normal. END 3.6 Perancangan Algoritma Berikut ini akan dijelaskan perancangan algoritma Korelasi, Distribusi Binomial, Sebaran t Distribusi, Selang kepercayan, yang akan digunakan pada program: 3.6.1 Perancangan algoritma Korelasi Function korelasi (n = 100, seed) if (!missing(seed)) set.seed(seed) cor.refresh <- function(...) r <- slider(no = 1) // Membuat slider koefisien korelasi r2 <- slider(no = 2) // Membuat slider R^2 if (r!= r.old) slider(set.no.value = c(2, r^2)) r.old <<- r r2.old <<- r^2 if (r == 1) cmat <- matrix(c(1, 0, 1, 0), 2) // Membentuk matrik r positif else if (r == -1) cmat <- matrix(c(1, 0, -1, 0), 2) // Membentuk matrik r negatif else cmat <- chol(matrix(c(1, r, r, 1), 2)) // Menbentuk matrik
41 3.6.2 Perancangan algoritma Distribusi t t.refresh <- function(...) sn <- as.numeric(evalq(tclvalue(sn), env = slider.env)) xmin <- as.numeric(evalq(tclvalue(xmin), env = slider.env)) xmax <- as.numeric(evalq(tclvalue(xmax), env = slider.env)) xx <- seq(xmin, xmax, length = 500) yyt <- dt(xx, df) if (sn) yyn <- dnorm(xx) plot(xx, yyn, lwd = 3, col = "red", type = "l", xlim=c(xmin, xmax),ylim=c(ymin, ymax), xlab = "x", ylab = "") lines(xx, yyt, lwd = 2, col = "purple") else plot(xx, yyt, col = "purple", type = "l", xlim = c(xmin, xmax), ylim = c(ymin, ymax), ylab = "", xlab = "x", lwd = 2) 3.6.3 Perancangan algoritma Distribusi Binomial binom.refresh <- function(...) { n <- as.numeric(evalq(tclvalue(n), env = slider.env)) p <- as.numeric(evalq(tclvalue(p), env = slider.env)) sn <- as.numeric(evalq(tclvalue(sn), env = slider.env)) sp <- as.numeric(evalq(tclvalue(sp), env = slider.env)) mu <- p * n sd <- sqrt(n * p * (1 - p)) if (sn) { xx <- seq(-1, n + 1, length = 250) plot(xx, dnorm(xx, mu, sd), type = "l", col = "green", ylim = range(0, dnorm(mu, mu, sd), dbinom(seq(0, n), n, p)), xlab = "x", ylab = "Probability") if (sp) { points(seq(0, n), dpois(seq(0, n), mu), type = "h", col = "blue") points(seq(0, n), dpois(seq(0, n), mu), pch = "-", col = "blue", cex = 2) } abline(h = 0) lines(xx, dnorm(xx, mu, sd), col = "green") points(seq(0, n), dbinom(seq(0, n), n, p), type = "h")
42 points(seq(0, n), dbinom(seq(0, n), n, p), type = "p") } else { if (sp){ plot(seq(0, n), dpois(seq(0, n), mu), type = "h", col = "blue", xlim = c(-1, n + 1), xlab = "x", ylab = "Probability", ylim = range(0, dpois(seq(0, n), mu), dbinom(seq(0, n), n, p))) points(seq(0, n), dpois(seq(0, n), mu), pch = "-", col = "blue", cex = 2) points(seq(0, n), dbinom(seq(0, n), n, p), type = "h") } else { plot(seq(0, n), dbinom(seq(0, n), n, p), type = "h", xlim = c(-1, n + 1), xlab = "x", ylab = "Peluang") } abline(h = 0) points(seq(0, n), dbinom(seq(0, n), n, p)) } title(paste("rata-rata =", round(mu, 3), "Simpangan Baku =", round(sd,3))) } 3.6.4 Perancangan algoritma Selang Kepercayaan for (i in 1:n) plot(1:n,ylim=rg,type="n",xlab="sampel",ylab="selang Kepercayaan", main = expression("normal: [" ~ bar(x) - z[alpha/2] * sigma/sqrt(n) ~ ", " ~ bar(x) + z[alpha/2] * sigma/sqrt(n) ~ "]"), xaxt = "n") axis(1, xax[xax <= i]) abline(h = 0, lty = 2) arrows(1:i, y0[1:i], 1:i, y1[1:i], length = par("din")[1]/n * 0.5, angle = 90, code = 3, col = c("red", "green")[cvr[1:i] + 1]) points(1:i, m[1:i], col = c("red", "green")[cvr[1:i] + 1]) legend("topright", legend = table(cvr[1:i]), fill = c("red", "green"), bty = "n")
43 3.6.5 Perancangan algoritma Sample Normal refresh.code<-function(...) mu<-slider(no=1); sd<-slider(no=2); n<-slider(no=3) type= slider(obj.name="type") x<-rnorm(n,mu,sd) plot(seq(x),x,ylim=c(-20,20),type=type,col="purple")