Sequential Search


ada beberapa banyak metode yang digunakan dalam proses searching antara lain Binary Search dan juga sequential Search....
Kali ini saya akan mnshare kepada kita semua bagaimana membuat program searching menggunakan metode Sequential Search menggunakan bahasa pemrograman Java. Berikut adalah ssource code dari program tersebut : 

package prak_mod3;
import java.util.Scanner;

public class sequential_no2 {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("Masukkan banyak data : ");
        int n = in.nextInt();
        int isi[] = new int[n];
        //input data
        for(int i=1;i<=n;i++){
            System.out.print("data ke-"+i+" : ");
            isi[i-1] = in.nextInt();
        }
        System.out.print("Data yang dicari = ");
        int search = in.nextInt();
        //proses pencarian
        int x=0;
        for(int j=1;j<=n;j++){
            if(isi[j-1]==search){

Metodologi Pengembangan Perangkat Lunak


1.1. Latar Belakang
Pada pertengahan tahun 60 sampai 70-an banyak dikembangkan sistem-sistem perangkat lunak yang besar. Sistem-sistem yang dikembangkan ini banyak yang dipandang tidak efisien, kurang berhasil, bahkan banyak yang gagal. Kegagalan ini disebabkan karena tidak tersedianya teknik pengembangan perangkat lunak yang baik. Pada awal tahun 70-an mulai muncul metodologi-metodologi pengembangan perangkat lunak yang cukup baik.
Pengembangan perangkat lunak dapat diartikan sebagai proses membuat suatu perangkat lunak baru untuk menggantikan perangkat lunak lama secara keseluruhan atau memperbaiki perangkat lunak yang telah ada. Agar lebih cepat dan tepat dalam mendeskripsikan solusi dan mengembangkan perangkat lunak, juga hasilnya mudah dikembangkan dan dipelihara, maka pengembangan perangkat lunak memerlukan suatu metodologi khusus. Metodologi pengembangan perangkat lunak adalah suatu proses pengorganisasian kumpulan metode dan konvensi notasi yang telah didefinisikan untuk mengembangkan perangkat lunak. Secara prinsip bertujuan untuk membantu menghasilkan perangkat lunak yang berkualitas. Penggunaan suatu metodologi sesuai dengan persoalan yang akan dipecahkan dan memenuhi kebutuhan pengguna akan menghasilkan suatu produk perekayasaan yang berkualitas dan terpelihara serta dapat menghindari masalah-masalah yang sering terjadi seperti estimasi penjadwalan dan biaya, perangkat lunak yang tidak sesuai dengan keinginan pengguna dan sebagainya.
Metodologi pengembangan perangkat lunak (atau disebut juga model proses atau paradigma rekayasa perangkat lunak) adalah suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools).
Menurut Pressman (1997) Komponen metodologi pengembangan perangkat lunak dapat dibagi dalam tiga unit, yaitu :
  1. Metode, yaitu suatu cara atau teknik pendekatan yang sistematik yang dipergunakan untuk mengembangkan perangkat lunak. Metode ini mencakup : Perencanaan proyek dan perkiraan, analisis keperluan sistem dan perangkat lunak, perancangan struktur data, arsitektur program, prosedur algoritma, Coding, uji coba dan pemeliharaan.
  2. Alat bantu (Tools), yaitu alat-alat (manual atau otomatis) yang mendukung pengembangan perangkat lunak. Terdapat 2 alat Bantu yang dapat digunakan yaitu : alat Bantu manual dan alat Bantu otomatis.
  3. Prosedur, yang dipergunakan untuk mendefinisikan urut-urutan pekerjaan (daur) dari metode dan alat bantu tersebut.

Program Pecah Kata (Netbeans)

Waahhh ternyata sudah lama nee saya gak posting sesuatu di blog ini....
mumpung ada waktu, saya sekarang akan share bagaimana membuat program pemecah kata menggunakan Java Netbeans tentunya dengan interfacenya..
:) berikut tampilan awal dari interfacenya :
Nah untuk komponen - komponen yang saya gunakan antara lain : 
Komponen Swing Controls
Name
Variable Name
JLabel1
Program Pemecah Kata
-
JLabel2
Sistem Temu Kembali Informasi (B)
-
JLabel3
Kalimat :
-
JTextArea
-
AreaInput
JButton1
Proses
btnProses
JButton2
Reset
btnReset
JTable1
Kata
TabelOut
Varible name bisa di ubah sesuai dengan keinginan anda sendiri, dan akan melakukan sedikit perubahan pada source code...

membuat stopwatch menggunakan java (netbeans)

nah.,, kali ini saya akan mencoba share membuat stopwatch dengan java desktop aplication yaitu tepatnya menggunakan netbeans...
langsung ajah sorce codenya :


public class FormUtama extends javax.swing.JFrame implements Runnable {
     Thread th;
     int ms = 0;
     int s = 0;
     int m = 0;
     public FormUtama() {
           initComponents();
     }
     public void run(){
     try{
          while(true){
          ms++;

Jam Digital dengan java (Netbeans)

sekarang saya akan mempraktekkan membuat jam digital menggunakan java desktop aplication yaitu netbeans, untuk sdource codenya :


public class FormUtama extends javax.swing.JFrame implements Runnable{
  Thread th;
    public FormUtama() {
      initComponents();
      th = new Thread(this);
      th.start();
   }

Mendeteksi dan Memperbaiki Deadlock


Deadlock dalam system Operasi
Deadlock dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau tidak ada komunikasi lagi antar proses.
Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain, proses lain itu pun sedang menunggu sumber daya yang dipegang olehnya. Dengan kata lain saat proses masuk dalam status menunggu, ia tidak akan pernah selesai menunggu, sebab sumber daya yang dibutuhkan sedang digunakan oleh proses lain yang sedang menunggu pula. Jadi tidak ada satu pun proses yang bisa running, melepaskan sumber daya, atau dibangunkan.
Deadlock tidak hanya terjadi pada dua proses dan dua sumber daya, deadlock dapat terjadi dengan melibatkan lebih dari dua proses dan dua sumber daya.
Syarat terjadinya Deadlock yaitu :
1.      Mutual exclusion (mutual exclusion condition)
Sumber daya saat itu diberikan pada tepat satu proses.
2.      Kondisi genggam dan tunggu (hold and wait condition)
Proses-proses yang sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru.
3.      Kondisi non-preemption (non-preemption condition)
Sumber daya-sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses yang sedang menggenggamnya. Sumber daya-sumber daya harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
4.      Kondisi menunggu secara sirkuler (circular wait condition)
Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
Penanganan DeadlockBanyak cara untuk menanggulangi deadlock:
1.      Mengabaikan masalah deadlock.
2.      Mendeteksi dan memperbaiki
3.      Penghindaran yang terus menerus dan pengalokasian yang baik dengan menggunakan protokol untuk memastikan sistem tidak pernah memasuki keadaan deadlock . Yaitu dengan deadlock avoidance sistem untuk men- data informasi tambahan tentang proses mana yang akan meminta dan menggunakan sumber daya.
4.      Pencegahan yang secara struktur bertentangan dengan 4 kondisi terjadinya deadlockdengan deadlock prevention sistem untuk memasti- kan bahwa salah satu kondisi yang penting tidak dapat menunggu.
Penjelasan  :  

Program Polinomial Java

Nah saat ini saya akan mencoba membuat program regresi polinomial yang sebenarnya program ini saya buat untuk menyelesaikan tugas kuliah Metode Numerik..
langsung ajah ke source code.a....

public class polinomial {
    public static void main (String[]args){
        Scanner in = new Scanner(System.in);
        double x[] = new double[20];
        double y[] = new double[20];
        double x_y[] = new double[20];
        double x_x_y[] = new double [20];
        double x_x[] = new double [20];
        double x_x_x[] = new double [20];
        double x_x_x_x[] = new double [20];
        double x_total=0;
        double y_total=0;
        double xy_total=0;
        double xxy_total=0;
        double xx_total=0;
        double xxx_total=0;
        double xxxx_total=0;
        int n;


        //banyak x dan y; x=y
        System.out.print("Masukkan Nilai x dan y = ");
        n=in.nextInt();

Evolusi dan Kinerja Komputer


1.1. Sejarah Singkat Komputer
1.1.1 Generasi Pertama : Tabung Vakum (1945 – 1955)
ENIAC
ENIAC (Electronic Numerical Integrator And Computer), pada tahun 1946 dirancang dan dibuat oleh John Mauchly dan John Presper Eckert di Universitas Pennsylvania merupakan komputer digital elektronik untuk kebutuhan umum pertama di dunia. ENIAC dibuat di bawah lembaga Army’s Ballistics Research Laboratory (BRL). Sebuah badan yang bertanggung jawab dalam pembuatan jarak dan tabel lintasan peluru kendali senjata baru. Sebelumnya tugas ini dilakukan oleh kurang lebih 200 personil dengan menggunakan kalkulator untuk menyelesaikan persamaan matematis peluru kendali yang memakan waktu lama.
ENIAC mempunyai berat 30 ton, bervolume 15.000 kaki persegi, dan berisi lebih dari 18.000 tabung vakum. Daya listrik yang dibutuhkan sebesar 140 KW. Kecepatan operasi mencapai 5.000 operasi penambahan per detik. ENIAC masih merupakan mesin desimal, representasi data bilangan dalam bentuk desimal dan arimetiknya dibuat dalam bentuk desimal. Memorinya terdiri atas 20 akumulator, yang masing – masing akumulatornya mampu menampung 10 digit desimal. Setiap digit direpresentasikan oleh cincin yang terdiri atas 10 buah tabung vakum. Kekurangan utama mesin ini adalah masih manual pemrogramannya, yaitu dengan menyetel switch – switch, memasang dan menanggalkan kabel – kabelnya. ENIAC selesai pada tahun 1946 sejak proposal diajukan tahun 1943, sehingga tahun 1946 merupakan gerbang bagi zaman baru komputer elektronik.
John Van Neumann seorang ahli matematika yang merupakan konsultan pembuatan ENIAC pada tahun 1945 mencoba memperbaiki kelemahan ENIAC dengan rancangan komputer barunya, bernama EDVAC (Electronic Discrete Variable Computer) dengan konsep program tersimpan (storedprogram concept)
Tahun 1946 komputer dengan stored-program concept dipublikasikasikan, yang kemudian di kenal dengan Komputer IAS (Computer of Institute for Advanced Studies). Struktur komputer IAS terlihat pada gambar 1.1. Komputer ini terdiri :

  • Memori Utama, untuk menyimpan data maupun instruksi.
  • Arithmetic Logic Unit (ALU), untuk mengolah data binner.
  • Control Unit, untuk melakukan interpretasi instruksi – instruksi di dalam memori sehingga adanya eksekusi instruksi tersebut.
  • I/O, untuk berinteraksi dengan lingkungan luar.
Gambar 1.1 Struktur Komputer IAS

Perbedaan JDK, JRE, JVM dan SDK

Keempat istilah ini mungkin seringkali membuat para pengguna Java menjadi sedikit bingung. Apa sih sebenernya masing-masing JDK, JRE, JVM & SDK itu?  ini dia..

1. JVM (Java Virtual Machine)
JVMadalah merupakan jantung dari Java Platform. JVM ini adalah pihak yang bertanggung jawab untuk mengeksekusi program Java menjadi bahasa mesin untuk diproses oleh prosesor. JVM mampu menerjemahkan code-code Java ke hampir semua platform. JVM ini-lah yang membuat Java "write once, run everywhere" alias multi-platform

HELP


“HELP “

Ada sebagian pendapat menyatakan bahwa system yang interaktif dijalankan tanpa membutuhkan bantuan atau training. Hal ini mungkin ideal akan tetapi jauh dari kenyataan. Pendekatan yang lebih membantu adalah dengan mengasumsikan bahwa user akan membutuhkan bantuan pada suatu waktu dan merancang bantuan (help) ini ke dalam system.

• Ada empat jenis bantuan yang dibutuhkan user :
o Quick reference
Digunakan sebagai pengingat untuk user dari tool yang detail yang secara dasar sangat familiar dan biasa digunakan. Seperti menggunakan opsi perintah umum, atau mengingatkan user akan sintaks dari perintah.
o Task-specific help
Membantu user menghadapi masalah atau tidak pasti dalam mengambil tindakan memecahkan masalah yang khusus atau tidak pasti dalam mengaplikasikan tool.
o Full explanation
Suatu alat bantu atau perintah yang dapat membantu memahami secara lengkap. Penjelasan ini mencakup informasi dimana user tidak membutuhkannya pada saat itu.
o Tutorial
Khusus untuk user baru yang menyediakan perintah secara step by step bagaimana menggunakan tool.

CSCW (Computer Support Cooperative Work)


Pengertian
Computer - Supported Cooperative Work (CSCW) adalah bidang studi yang berfokus pada perancangan dan evaluasi teknologi baru untuk mendukung proses sosial kerja, sering di antara mitra yang berjauhan.Hasil dari Computer -Supported Cooperative Work (CSCW) biasanya disebut dengan Groupware.
Groupware adalah jenis software yang membantu kelompok kerja (workgroup) yang terhubung ke jaringan untuk mengelola aktivitas mereka.

Tujuan dari Computer - Support Cooperative Work (CSCW)

Adapun beberapa tujuan dari adanya Computer - Supported Cooperative Work (CSCW) adalah sebagai berikut :
  • Kemitraan terfokus: kerja sama antara dua pemakai yang saling membutuhkan untuk menyelesaikan tugas.
  • Kuliah atau demo. Seseorang membagikan informasi kepada banyak pemakai di tempat lain. Waktunya dijadualkan.
  •   Konferensi. Komunikasi kelompok dengan tempat dan waktu yang berbeda.
  •  Proses kerja terstruktur. Orang yang peranannya berbeda bekerja sama dalam tugas yang berhubungan.
  •  Electronic commerce. Kerja sama jangka pendek untuk mencari informasi dan memesan produk, dan jangka panjang untuk perjanjian atau kontrak bisnis.
  •  Rapat dan dukungan keputusan. Rapat tatap muka menggunakan komputer dengan membuat kontribusi simultan.
  •  Teledemokrasi. Pemerintah melakukan rapat jarak jauh, menampilkan komentar dewan, mencari konsensus melalui konferensi, debat, dan pemungutan suara online.
Pengelompokan Sistem Kerja dalam Computer – Supported Cooperative Work

1.      Asinkron Tersebar
Maksudnya adalah Sistem kerja sama yang dilakukan di tempat atau waktu yang berbeda.

Struktur CPU


1.1 Komponen Utama CPU
CPU merupakan komponen terpenting dari sistem komputer. CPU adalah komponen pengolah data berdasarkan instruksi – instruksi yang diberikan kepadanya. Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen sebagai bagian dari struktur CPU, seperti terlihat pada gambar 1.1 dan struktur detail internal CPU terlihat pada gamber 1.2. CPU tersusun atas beberapa komponen, yaitu :

  • Arithmetic and Logic Unit (ALU), bertugas membentuk fungsi – fungsi pengolahan data komputer. ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri.
  • Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi – instruksi dari memori utama dan menentukan jenis instruksi tersebut.
  • Registers, adalah media penyimpan internal CPU yang digunakan saat proses pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya.
  • CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register – register dan juga dengan bus – bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan/keluaran.
Gambar 1.1 Komponen Internal CPU 

CASE (Computer Aided Software Engineering)


Dalam software engineering telah dikenal banyak tools (computer-base system) yang dikenal dengan Computer-Aided Software Engineering (CASE). CASE merupakan suatu teknik yang digunakan untuk membantu satu atau beberapa fase dalam life-cycle software, termasuk fase analisis, desain, implementasi dan maintenance dari software tersebut. Manfaat CASE tools dalam software engineer adalah sebagai berikut:
1.      CASE tools memperbesar kemungkinan otomatisasi pada setiap fase life-cycle software.
2.      CASE tools sangat membantu dalam meningkatkan kualitas design model suatu software sebelum software itu dibangun/dikembangkan, baik itu untuk software yang dibangun dalam simple maupun complex environment.

Ada banyak tools yang mendukung pembangunan/pengembangan suatu software. Agar tidak membingungkan, CASE tools dibagi menjadi beberapa kategori:
1.      Information engineering-supporting products. Ada beberapa proses dari life-cycle, yang dihasilkan dari rencana strategis dari perusahaan dan yang menyediakan suatu repository untuk membuat dan memelihara enterprise models, data models dan process models.
2.      Structured diagramming-supporting products. Produk ini sangat mendukung dalam memodelkan data flow, control flow dan entity flow.
3.      Structured development aids-providing products. Merupakan produk yang cocok digunakan oleh sistem analis, karena didukung oleh suatu proses terstruktur sehingga penganalisaan lebih cepat dan akurat.
4.      Application-code-generating products. Produk ini mampu menghasilkan application-code untuk tujuan tertentu yang telah ditetapkan oleh designer.

CASE tools diklasifikasikan sebagai berikut:
1.      Upper CASE. CASE tools yang didesain untuk mendukung perencanaan, identifikasi, dan seleksi proyek (permulaan dari perencanaan proyek), tepatnya pada fase analisis dan desain dari suatu system development life cycle (SDLC). Tools yang termasuk kelas ini adalah jenis Diagramming tools, Form and report generators, dan Analysis tools. Contoh CASE tools: Cradle, PRO-IV Workbench, ProKit*WORKBENCH.

POLYMORPHISME

           Metode disebut polimorfis jika aksi yang dilakukan oleh suatu metode berbeda-beda tergantung pada objek aktual pada saat metode itu dijalankan. Polimorfisme adalah salah satu fitur utama dalam pemrograman berorientasi objek. Sebagai contoh, sebuah class induk dengan nama Student mempunyai subclass StudentGrad, dan ditambahkan class lain dengan nama StudentInfo.
CONTOH :
              kita membuat tiga object class dengan nama Student, subclass StudentGrad dan class StudentInfo. Class Student mempunyai method Write yang digunakan untuk melewatkan argumen untuk kemudian ditampilkan dengan menggunakan method Display.
class student {
    private int m_ID, m_Graduation;
    private String m_First;
    private String m_Last;
    public void write(int ID, int Grad, String Fname, String Lname){
        m_ID = ID;
        m_Graduation = Grad;
        m_First = Fname;
        m_Last = Lname;
    }
    public void Display(){
        System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
    }
}

INHERITANCE

Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state (variabel-variabel) dan behaviour (method-method) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya.
contoh Program Inheritance  :
menurunkan 2 buah kelas turunan dari kelas induk yang berupa lingkaran dimana program ini dapat menghitung luas dan keliling lingkaran.
Source code : 
class lingkaran {
    protected int r = 7;
    void info(){
        System.out.println("Jari - Jari = "+r);
    }
}
class luas extends lingkaran{
    private int r;
    public double hasil(){
        r = super.r;
        return 3.14*r*r;
    }
}

method accesor dan method mutator

method accesor -> method yang berfungsi untuk mengambil nilai dari suatu variable.
method mutator -> method yang berfungsi mengisi/mengeset nilai pada suatu variable dan juga dapat merubah nilai.
contoh program yang menggunakan method di atas : 
sorce code : 
class kucing {
    private int umur;
    private double berat;
    private String nama;
    //method accesor
    public int getUmur(){
        return umur;
    }
    public double getBerat(){
        return berat;
    }