Sabtu, 31 Maret 2012

Enkapsulasi




Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Perbedaan Pemrograman Terstruktur & Berbasis Objek

Pemrograman Berorientasi Objek

Konsep utama Berorientasi objek yaitu melakukan permodelan objek dari kehidupan nyata ke dalam type data Abstrak. Pemrograman berorientasi objek (object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Bahasa pemrograman yang mendukung OOP antara lain:
1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. Perl
15. Adobe Flash AS 3.0

Pemrograman Terstruktur


Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Dalam pemrograman yang terstruktur, pendekatan pembuatan program adalah dengan menganut konsep "top-down". pada konsep ini, program dimulai dengan gambaran global, yang dinyatakan dengan nama-prosedur (sub-rutin) dan bukan isi detailnya. Selanjutnya prosedur sendiri bisa dipecah-pecah lagi menjadi prosedur yang lain. Konsep ini sangat memudahkan dalam pemodifian program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).

Bahasa pemrograman yang mendukung pemrograman terstruktur:
1. Cobol Turbo Prolog
2. C
3. Pascal
4. Delphi
5. Borland Delphi

refrensi : wikipedia.org

Minggu, 18 Maret 2012

TUGAS PBO

Nama : Subhan Rubyansyah
NPM : 56410702

Nama : Ari Surya Gunawan
NPM : 51410041




PROGRAM STATISTIKA

mencari mean, median, modus
*coding:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Stat {
public static void main(String args[]) {
BufferedReader B=new BufferedReader (new InputStreamReader(System.in));
int arrInput []; arrInput = new int[100];
int arrUrut []; arrUrut = new int[100];
int arrModus [][]; arrModus = new int[100][3];
int inputCount=0;
int N;
int i, a, b, c, d, j, temp;

/*----mean*/
float jumlah;
float mean=0;
try {
System.out.print("Masukkan banyaknya data : ");
N=Integer.parseInt (B.readLine());
System.out.println();
jumlah = 0;
try {
for (i=1; i<=N; i++) {
System.out.print("Masukkan data ke " + i + " : ");
arrInput[i]=Integer.parseInt (B.readLine());
jumlah = jumlah + arrInput[i];
arrUrut[i] = arrInput[i];
}
mean = jumlah/N;

//pengurutan
for (a=1; a<=N; a++){
b=a;
while ((b>0 ) && (arrUrut[b]<arrUrut[b-1] )) {
temp = arrUrut[b];
arrUrut[b] = arrUrut[b-1];
arrUrut[b-1] = temp;
b--;
}
}
int Nm = N/2;
int median = arrUrut[(N+1)/2];
int Q1 = arrUrut[(median+1)/2];
int Q3 = arrUrut[(N+median)/2];
int lastEmpty = 1;
int posx;
for (i=1; i<=N; i++) {
posx = 0;
for (j=1; j<=N; j++) {
if (arrInput[i]==arrModus[j][1]) posx = j;
}
if (posx!=0) {
arrModus[posx][2]++;
} else {
arrModus[lastEmpty][1] = arrInput[i];
arrModus[lastEmpty][2] = 1;
lastEmpty++;
}
}
int modus = 0;
int banyak = 0;
for (i=1; i<=N; i++) {
if (arrModus[i][2]>banyak) {
modus = arrModus[i][1];
banyak = arrModus[i][2];
}
}
System.out.println("\nData terurut::");
for (i=1; i<=N; i++) {
System.out.print(" "+ arrUrut[i]);
}
System.out.println("\n");
System.out.println("Mean = " + mean);
System.out.println("Median = " + median);
System.out.println("Q1 = " + Q1);
System.out.println("Q3 = " + Q3);
System.out.println("Modus = " + modus);
} catch (IOException e) {
System.out.println ("Error!" +e);
}
} catch (IOException e) {
System.out.println ("Error!" +e);
}
System.exit(0);
}
}




OUTPUT
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\dws\build\classes
Copied 1 empty directory to 1 empty directory under C:\Documents and Settings\user\My Documents\NetBeansProjects\dws\build\classes
compile:
run:
Masukkan banyaknya data :
5

Masukkan data ke 1 :
2
Masukkan data ke 2 :
2
Masukkan data ke 3 :
4
Masukkan data ke 4 :
5
Masukkan data ke 5 :
6

Data terurut::
 2 2 4 5 6

Mean = 3.8
Median = 4
Q1 = 2
Q3 = 5
Modus = 2
BUILD SUCCESSFUL (total time: 26 seconds)



LOGIKA

Dalam pengerjaan Program Statistika mencari Mean, Median, Modus dengan menggunakan program Java, aplikasi yang dipakai menggunakan Netbean, dengan sintax code import java.io = BufferedReader, IOException, InputStreamReader, tanpa public class untuk pengolahan masukkan coding pada satu project didalam netbean, dengan menggunakan sintax BufferedReader B=new BufferedReader (new InputStream Reader(System.in)) dengan integer 100 dengan tujuan menghasilkan integer hingga mencapai 100 dalam pemasukan angka input. dengan penjelasan BufferedReader adalah kelas abstrak yang menangani baca tulis ke suatu media. Kelas ini membutuhkan kelas lain sebagai pekerjanya, yaitu InputStreamReader Dan InputStreamReader membutuhkan media tempat baca tulis dilakukan, yaitu System.


Type data float, yang berisikan jumlah dan nilai, yg merupakan tipe data numerik yang berisi bagian bagian terkecil. Yang direpresentasikan dengan adanya angka desimal. Nilai dengan menggunakan float pada java, maka java akan otomatis akan mengubah type tersebut menjadi double, apabila ingin membuat suatu type data float. Jika kita lupa dengan aturannya, maka saat kita melakukan kompilasi akan terjadi eror. float jumlah; ,float mean=0;,try { untuk try disini difungsikan sebagai pencobaan fungtion buatan,

Pada sintax “for (i=1; i<=N; i++)” digunakan dalam penambahan data urut yang diinputkan secara numerik. Dan pada sintax ini “System.out.print("Masukkan data ke " + i + " : ") digunakan pada pemasukkan awal data yang ingin kita masukkan pada output. “jumlah = jumlah + arrInput[i]; , arrUrut[i] = arrInput[i]; } mean = jumlah/N;” coding tersebut digunakan untuk rumus mean pada pengolahan nilai rata rata di Statistika.




int median = arrUrut[(N+1)/2];
int Q1 = arrUrut[(median+1)/2];
int Q3 = arrUrut[(N+median)/2];
int lastEmpty = 1;
Dalam sintax tersebut memiliki rumus untuk mencari Median dalam data, Q1 dan Q3 adalah nilai tengah pada bagian kedua median data.
arrModus[lastEmpty][1] = arrInput[i];

arrModus[lastEmpty][2] = 1;
lastEmpty++;
Dalam sintax ini digunakan untuk model rumus dalam pencarian nilai Modus, angka yang sering muncul pada data statistika, lastEmpty untuk menjelaskan fungsi atau field bersangkutan.



PROGRAM RELASI


*mencari data relasi

listing:


import javax.swing.*;
class relasi {
public static void main ( String [] args ) {
int [] a = new int [10];
int [] b = new int [10];
int x = Integer.parseInt(JOptionPane.showInputDialog("masukkan jumlah elemen dari A >>> "));
for (int i = 0 ; i < x ; i++ ) {
int w = Integer.parseInt(JOptionPane.showInputDialog("masukkan elemen ke >>> " + ( i + 1)));
a[i] = w; }
int y = Integer.parseInt(JOptionPane.showInputDialog("masukkan jumlah elemen dari B >>>"));
for (int j = 0 ; j < y ; j++ ) {
int z = Integer.parseInt(JOptionPane.showInputDialog("masukkan elemen ke >>> " + ( j + 1)));
b[j] = z; }
System.out.print(" A = { ");
for (int i = 0 ; i < x ; i++ ) {
if (i==(x-1)) {
System.out.print(a[i]); }
else { System.out.print(a[i] + " , "); }}
System.out.print(" } ");
System.out.print("\t" + "\t" + " B = { ");
for (int j = 0 ; j < y ; j++ ) {
if (j==(y-1)) {
System.out.print(b[j]); }
else { System.out.print(b[j] + " , "); }}
System.out.println(" } ");
System.out.println("kemungkinan relasi...");
for (int i = 0 ; i < x ; i++ ) {
for (int j = 0 ; j < y ; j++ ) {
System.out.println(" { "+a[i]+" } " + " >>> " + " { "+b[j]+" } ");}}}}

pada gambar:



OUTPUT:

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication7\build\classes
Copied 1 empty directory to 1 empty directory under C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication7\build\classes
compile:
run:
 A = { 1 , 2 } B = { 3 , 3 , 3 }
kemungkinan relasi...
 { 1 }  >>>  { 3 }
 { 1 }  >>>  { 3 }
 { 1 }  >>>  { 3 }
 { 2 }  >>>  { 3 }
 { 2 }  >>>  { 3 }
 { 2 }  >>>  { 3 }
BUILD SUCCESSFUL (total time: 17 seconds)


LOGIKA

- pada program ini menggunakan JOptionPane.. agar pemasukan input melalui kotak dialog berisi kotak input.

- membuat 2 array untuk pembuatan relasi, dimaksudkan agar tiap elemen array yang satu akan dihubungkan ada elemen lain pada array yang lain
- dibuat batasan array agar jumpah output tidak terlalu banyak,
- setelah membuat bahan input, membuat kode dari banyaknya elemen yang ada dari 0 sampai jumlah angka yang terinput
- array tersebut di samakan oleh variabel hasil dari input sehingga dapat dihubungkan pada kalkulasi lain
- membuat susunan elemen menggunakan metode if, dimana input elemen pertama disortir sampai input terakhir sesuai urutan penginputan
- membuat kemungkinan relasi,, didapat menggunakan pengggabungan array yang pertama dengan yang kedua
  menggunakan metode for,,, dimana setiap elemen dari array mendapatkan masing elemen dari array yang satunya.
  hasil output menjadikan relasi antara elemen pertama yang mendapatkan masing2 elemen kedua......