Monday, May 21, 2012

PENGGUNAAN/PENERAPAN KOMPUTASI

Pada pembahasan yang lalu, penulis telah membahas mengenai Model Komputasi. Di kesempatan kali ini, penulis akan membahas tentang contoh penggunaan/penerapan komputasi. Adapun contoh penggunaan/penerapan komputasi, yaitu :

Petri Net

Petri net merupakan salah satu model untuk merepresentasikan sistem terdistribusidiskret. Sebagai sebuah model, Petri net merupakan grafik 2 arah yang terdiri dari placetransition, dan tanda panah yang menghubungkan keduanya. Di samping itu, untuk merepresentasikan keadaan sistem, token diletakkan pada tempat tertentu. Ketika sebuah transition terpantik, token akan bertransisi sesuai tanda panah.Petri net ini pertama kali diajukkan oleh Carl Adam Petri pada tahun 1962.

Gambar 1. Petri Net

Mesin Moore 
Dalam teori komputasi sebagai prinsip dasar komputer, mesin Moore adalah otomasi fase berhingga (finite state automaton) di mana keluarannya ditentukan hanya oleh fase saat itu (dan tidak terpengaruh oleh bagian masukan/input). Diagram fase (state diagram) dari mesin Moore memiliki sinyal keluaran untuk masing-masing fase. Hal ini berbeda dengan mesin Mealy yang mempunyai keluaran untuk tiap transisi.
Mesin Mealy
Dalam teori komputasi sebagai konsep dasar sebuah komputer, mesin Mealy adalah otomasi fase berhingga (finite state automaton atau finite state tranducer) yang menghasilkan keluaran berdasarkan fase saat itu dan bagian masukan/input. Dalam hal ini, diagram fase (state diagram) dari mesin Mealy memiliki sinyal masukan dan sinyal keluaran untuk tiap transisi. Prinsip ini berbeda dengan Mesin Moore yang hanya menghasilkan keluaran/output pada tiap fase.
 
Gambar 2. Mesin Mealy
 
Sumber :

MODEL KOMPUTASI

Model komputasi mempunyai 3 model, yaitu :
  1. fungsional,
  2. logika, dan 
  3. imperatif.
Sebagai tambahan terhadap satuan nilai-nilai dan operasi yang berhubungan, masing-masing model komputasi memiliki satu set operasi yang digunakan untuk menggambarkan komputasi.
Model Fungsional
Model ini terdiri dari satu set nilai, fungsi, dan operasi aplikasi fungsi dan komposisi fungsi. Fungsi ini dapat mengambil fungsi lain sebagai argumentasi dan mengembalikan fungsi tersebut sebagai hasil (higher-order function). Suatu program adalah kumpulan definisi fungsi sedangkan suatu komputasi adalah aplikasi fungsi.
Contoh model fungsional :
Fungsi linier y = 3x + 2 dapat didefinisikan sebagai berikut fx = 3*x + 2.
Model fungsional ini menjadi sangat penting karena telah dikembangkan dari ratusan tahun yang lalu dan sebagai bentuk metode dasar dari sebagian besar metode penyelesaian masalah.
Model Logika
Model ini terdiri dari satu set nilai, definisi hubungan, dan kesimpulan logis. Program terdiri dari definisi hubungan dan suatu komputasi adalah suatu bukti (suatu urutan kesimpulan).
Contoh model logika :
Fungsi linier y = 3x + 2 dapat didefinisikan sebagai berikut F(X,Y) if Y is 3*x + 2
Model logika penting karena merupakan perumusan proses pemberian alasan dan itu berhubungan dengan relatioanl database dan expert system.
Model Imperatif
Model ini terdiri dari satu set nilai yang mencakup suatu keadaan dan operasi tugas untuk memodifikasi pernyataan. Pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Program terdiri dari urutan tugas dan suatu komputasi terdiri dari urutan pernyataan.
Contoh model imperatif :
Fungsi linier y = 2x + 3 dapat didefinisikan sebagai berikut y:= 2*x +3
Model imperatif penting karena model berubah dan perubahan adalah bagian dari lingkungan. Model imperatif merupakan pendekatan yang paling tepat untuk pemodelan perangkat keras yang mengeksekusi program.
Sumber : 

APLIKASI SMTP CLIENT PADA DESKTOP MENGGUNAKAN JAVA

SMTP (Simple Mail Transfer Protocol) merupakan cara yang praktis, efisien, dan dapat diandalkan untuk melakukan pengiriman email. Untuk dapat membuat aplikasi SMTP client pada desktop menggunakan Java, ketik kode program berikut ini pada text editor apa saja, seperti notepad, editplus, Eclipse for Java Developer :

import java.io.*;
import java.net.*;
public class SmtpClient {
    public static void main (String argv[]) {
        Socket smtpSocket = null;
        DataOutputStream os = null;
        BufferedReader is = null;      
        try {
            smtpSocket = new Socket("mail.uajy.ac.id",25);
            os = new DataOutputStream(smtpSocket.getOutputStream());
            is = new BufferedReader(new InputStreamReader(smtpSocket.getInputStream()));
        } catch (UnknownHostException e) {
            System.err.println("Nama komputer tidak dikenali");
        } catch (IOException e) {
            System.err.println("Tidak dapat melakukan operasi io");
        }       
        if(smtpSocket!=null && os!=null && is!=null) {
            try {
                //mengirim dan mencetak pesan
                System.out.println(is.readLine());
                os.writeBytes("HELO\r\n");
                    System.out.print("HELLO\n");
                    System.out.println(is.readLine());
                os.writeBytes("MAIL From:nyuyu7@gmail.com\r\n");
                    System.out.print("MAIL From:nyuyu7@gmail.com\n");
                    System.out.println(is.readLine());
                os.writeBytes("RCTP To: kusnadi@mail.uajy.ac.id\r\n");
                    System.out.print("RCTP To: kusnadi@mail.uajy.ac.id\n");
                    System.out.println(is.readLine());
                os.writeBytes("DATA\r\n");
                    System.out.print("DATA\n");
                    System.out.println(is.readLine());
                os.writeBytes("From: nyuyu7@gmail.com\r\n");
                    System.out.print("From: nyuyu7@gmail.com\n");
                    System.out.println(is.readLine());
                os.writeBytes("Subject: testing\r\n");
                    System.out.print("Subject: testing\n");
                    System.out.println(is.readLine());
                os.writeBytes("Hi, ini percobaan kirim email\n");
                    System.out.print("Subject: testing\n");
                    System.out.println(is.readLine());
                os.writeBytes("\r\n.\r\n");
                    System.out.print(".\n");
                    System.out.println(is.readLine());
                os.writeBytes("QUIT\r\n");
                    System.out.print("QUIT\n");
                    System.out.println(is.readLine());
                //Menutup semua objek
                    os.close();
                    is.close();
                    smtpSocket.close();
            } catch (UnknownHostException e) {
                System.err.println("Nama komputer tidak dikenali");
            } catch (IOException e) {
                System.err.println("Tidak dapt melakukan Operasi io");
            }
        }
    }
}

1. Simpan dengan nama SmtpClient.java pada direktori mana saja, misal di D:\workspace\SmtpClient\src
2. Buka cmd (command prompt). ubah root-nya ke direktori penyimpanan kode program tadi (lihat Gambar 1).
3. Kompilasi kode program tersebut dengan perintah javac SmtpClient.java [enter]
4. Eksekusi kode programnya dengan perintah java SmtpClient [enter]

 Gambar 1. Output Program

Selamat mencoba.. :)