Rabu, 02 Mei 2012

Model - model Komputasi

Teori komputasi adalah cabang ilmu komputer dan matematika yang membahas apakah dan bagaimanakah suatu masalah dapat dipecahkan padamodel komputasi, menggunakan algoritma. Bidang ini dibagi menjadi dua cabang: teori komputabilitas dan teori kompleksitas, namun kedua cabang berurusan dengan model formal komputasi.
Untuk melakukan studi komputasi dengan ketat, ilmuwan komputer bekerja dengan abstraksi matematika dari komputer yang dinamakan model komputasi. Ada beberapa model yang digunakan, namun yang paling umum dipelajari adalah mesin Turing. Sebuah mesin Turing dapat dipikirkan sebagai komputer pribadi meja dengan kapasitas memory yang tak terhingga, namun hanya dapat diakses dalam bagian-bagian terpisah dan diskret. Ilmuwan komputer mempelajari mesin Turing karena mudah dirumuskan, dianalisis dan digunakan untuk pembuktian, dan karena mesin ini mewakili model komputasi yang dianggap sebagai model paling masuk akal yang paling ampuh yang dimungkinkan. Kapasitas memori tidak terbatas mungkin terlihat sebagai sifat yang tidak mungkin terwujudkan, namun setiap permasalahan yang “terputuskan” (decidable) yang dipecahkan oleh mesin Turing selalu hanya akan memerlukan jumlah memori terhingga. Jadi pada dasarnya setiap masalah yang dapat dipecahkan (diputuskan) oleh meisn Turing dapat dipecahkan oleh komputer yang memiliki jumlah memori terbatas.
Pembagian Model komputasi ada 3 yaitu :

  1. Mesin Mealy
Dalam teori komputasi sebagai konsep dasar sebuah komputer, mesin Mealy adalah otomasi fasa berhingga (finite state automaton atau finite state tranducer) yang menghasilkan keluaran berdasarkan fasa saat itu dan bagian masukan/input. Dalam hal ini, diagram fasa (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 fasa.
Nama Mealy diambil dari “G. H. Mealy” seorang perintis mesin-fasa (state-machine) yang menulis karangan “A Method for Synthesizing Sequential Circuits” pada tahun 1955.
 
   
  2. Mesin Moore
Dalam teori komputasi sebagai prinsip dasar komputer, mesin Moore adalah otomasi fasa berhingga (finite state automaton) di mana keluarannya ditentukan hanya oleh fasa saat itu (dan tidak terpengaruh oleh bagian masukan/input). Diagram fasa (state diagram) dari mesin Moore memiliki sinyal keluaran untuk masing-masing fasa. Hal ini berbeda dengan mesin Mealy yang mempunyai keluaran untuk tiap transisi.
Nama Moore diambil dari “Edward F. Moore” seorang ilmuwan komputer dan perintis mesin-fasa (state-machine) yang menulis karangan “Gedanken-experiments on Sequential Machines”.
 
 
3. Petri Net
Petri net adalah salah satu model untuk merepresentasikan sistem terdistribusi diskret. Sebagai sebuah model, Petri net merupakan grafik 2 arah yang terdiri dari place, transition, dan tanda panah yang menghubungkan keduanya. Di samping itu, untuk merepresentasikan keadaan sistem, token diletakkan pada place tertentu. Ketika sebuah transition terpantik, token akan bertransisi sesuai tanda panah.
Petri net pertama kali diajukkan oleh Carl Adam Petri pada tahun 1962.

sumber
http://dinchist.wordpress.com/

Mengubah HOSTNAME menjadi IP Address pada local computer

sebelumnya penulis telah membahas
Mengubah IP Adrdress menjadi hostname pada local computer

kali ini penulis akan membahas kebalikan nya, yaitu cara mengubah hostname menjadi IP Address. Tanpa berlama2, penulis akan langsung membahas langkah2 nya

  • untuk langkah awal, tulis kan source code di bawah ini pad notepad ++ atau IDE yang lain




  • simpan dengan nama NsLookup.java
  • compile pada cmd dengan cara ketikkan javac NsLookup.java
  • running dengan mengetikkan java NsLookup
  •  setelah itu kita running sekali lagi, tetapi ditambahkan hostname pada local computer kita
  • misal hostname penulis siman-pc maka yang dituliskan yaitu java NsLookup siman=pc
  • maka output nya menjadi seperti di bawah ini
    sekian dari penulis. selamat mencoba

Mengubah IP Adrdress menjadi hostname pada local computer

Dari sekian banyak kehebatan bahasa pemrograman Java, kali ini akan di bahas cara untuk mengetahui HOSTNAME pada local computer dengan IP ADDRESS. Tidak usah berlama2, langsung saja kita bahas langkah2 yang diperlukan
  • Ketik SourceCode di bawah ini ke dalam notepad ++atau IDE yang lain nya 
 
  • simpan dengan nama  IPtoName.java
  • lalu kita compile di cmd dengan mengetikkan javac IPtoName.java 
  • lalu kita running dengan mengetikkan java IPtoName
  • berhubung IPaddress pada penulis adalah 10.187.90.28 maka setelah itu ketikkan  
          java IPtoName 10.187.90.28
  • maka outputnya menjadi seperti berikut


sekian dari penulis. jika ada pertanyaan silahkan di coment
selamat mencoba

Selasa, 01 Mei 2012

cara mendapatkan IP address menggunakan Java

bahasa pemrograman java dapat digunakan untuk berbagai hal. untuk saat ini akan dibahas cara mendapatkan ip address
untuk pertama ketik program di bawah ini


setelah itu simpan dengan nama ObtainIP.java
compile di cmd dengan mengetikkan
javac ObtainIP.java
dan run dengan mengetikkan
java ObtainIP

berikut output nya

sekian salah satu kelebihan java. untuk lebih jelas nya silahkan "berselancar" di dunia maya

Membangun Client-Server sederhana menggunakan Java

Mungkin kita beranggapan client-server sangat rumit. Untuk itu penulis akan membahas tentang client-server menggunakan bahasa pemrograman Java. Ini dilakukan menggunakan local komputer yang sama.

langkah awal yaitu ketik program untuk server di bawah ini:

import java.io.*;
import java.net.*;

public class SimpleServer {
    public final static int TESTPORT = 5000;
    public static void main(String args[]) {
        ServerSocket checkServer = null;
        String line;
        BufferedReader is = null;
        DataOutputStream os = null;
        Socket clientSocket = null;
       
        try {
            checkServer = new ServerSocket(TESTPORT);
            System.out.println("Aplikasi Server hidup...");
        } catch (IOException e) {
            System.out.println(e);
        }
       
        try {
            clientSocket = checkServer.accept();
            is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            os = new DataOutputStream(clientSocket.getOutputStream());
        } catch (Exception ei) {
            ei.printStackTrace();
        }
        try {
            line = is.readLine();
            System.out.println("Terima : " + line);
            if (line.compareTo("salam") == 0) {
                os.writeBytes("salam juga");
            } else {
                os.writeBytes("Maaf, saya tidak mengerti");
            }
        } catch (IOException e) {
            System.out.println(e);
        }
       
        try {
            os.close();
            is.close();
            clientSocket.close();
        } catch (IOException ic) {
            ic.printStackTrace();
        }
    }

}

simpan dengan nama SimpleServer.java

langkah ke dua yaitu ketik program untuk clientdi bawah ini:
import java.io.*;
import java.net.*;

public class SimpleClient {
    public final static int REMOTE_PORT = 5000;
    public static void main(String args[]) throws Exception {
        Socket cl = null;
        BufferedReader is = null;
        DataOutputStream os = null;
        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        String userInput = null;
        String output = null;
       
        //Membuka koneksi ke server pada port REMOTE-PORT
        try {
            cl = new Socket(args[0], REMOTE_PORT);
            is = new BufferedReader(new InputStreamReader(cl.getInputStream()));
            os = new DataOutputStream(cl.getOutputStream());
        } catch (UnknownHostException e1) {
            System.out.println("Unknown Host: " + e1);
        } catch (IOException e2) {
            System.out.println("Error io: " + e2);
        }
       
        //Menulis ke server
        try {
            System.out.println("Dari server: " + output);
            userInput = stdin.readLine();
            os.writeBytes(userInput + "\n");
        } catch (IOException ex) {
            System.out.println("Error writing to server..." + ex);
        }
       
        //Menerima tanggapan dari server
        try {
            output = is.readLine();
            System.out.println("Dari Server: " + output);
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        //close input stream, output stream dan koneksi
        try {
            is.close();
            os.close();
            cl.close();
        } catch (IOException x) {
            System.out.println("Error writing..." + x);   
        }
    }
}

simpan dengan nama :  SimpleClient.java

Langkah ke tiga:  compile dan running SimpleServer.java



gambar 1 server hidup
 Langkah ke empat compile SimpleClient.java . untuk running ketik 
java  [nama file] [nama local computer]
java SimpleClient siman-pc setelah itu ketik "salam" dan perhatikan apa respon terjadi pada cmd server

respon dari server bila kita mengetikan salam

sekian dari penulis. bila ada pertanyaan tolong di coment ya...



Cara Mendapatkan Hostname menggunakan Java

Untuk mendapatkan hostname pada local computer ada berbagai cara. Salah satunya menggunakan perintah atau source code java. Disini akan dijelaskan langkah2 yang diperlukan.
langkah pertama ketik koding di bawah ini menggunakan notepad atau notepad ++ , atau media lain


simpan dengan nama ObtainName.java

setelah itu kita compile menggunakan comandprompt. caranya:
ketik "javac [nama file].java". dalam hal ini ketik "javac ObtainName.java"
tanpa tanda kutip

Lalu untuk running ketik
"java [nama file]". untuk itu ketik "java ObtainName"

maka outputnya:

 

Teknologi Modern Komputing

PENGERTIAN KOMPUTASI MODERN
Komputasi adalah algoritma yang digunakan untuk menemukan suatu cara untuk memecahkan masalah dari sebuah data input. Komputasi ini merupakan bagian dari ilmu matematika dan ilmu komputer. Secara umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu. Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.
Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada.
JENIS-JENIS KOMPUTASI MODERN
Komputasi modern terbagi tiga macam, yaitu
  1. komputasi mobile (bergerak),
  2. komputasi grid,
  3. komputasi cloud (awan).

1. Mobile computing
Mobile computing atau komputasi bergerak memiliki beberapa penjelasan, salah satunya komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smart phone, dan lain sebagainya.
2. Grid computing
Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar. Ada beberapa daftar yang dapat dugunakan untuk mengenali sistem komputasi grid, adalah :
  • Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
  • Sistem menggunakan standard dan protocol yang terbuka.
  • Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.
3. Cloud computing
Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet. Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT berbasis model dalam internet, dan biasanya melibatkan ketentuan dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.
Karakteristik Cloud Computing
Cloud service biasanya memiliki beberapa karakteristik, diantaranya adalah:
  1. Sangat cepat di deploy, sehingga cepat berarti instant untuk implementasi.
  2. Biaya start-up teknologi ini mungkin akan sangat murah atau tidak ada dan juga tidak ada investasi kapital.
  3. Biaya dari service dan pemakaian akan berdasarkan komitmen yang tidak fix.
  4. Service ini dapat dengan mudah di upgrade atau downgrade dengan cepat tampa adanya Penalty.
  5. Service ini akan menggunakan metode multi-tenant (Memungkinkan banyak customer dalam 1 platform).
  6. Kemampuan untuk meng-customize service akan menjadi terbatas.
Layanan cloud memiliki tiga karakteristik khusus yang membedakannya dari hosting tradisional. Layanan ini dijual berdasarkan permintaan, yang biasanya per menit atau per jam dan bersifat elastis, user boleh memiliki berapapun layanan yang diinginkan sesuai waktu yang diberikan, dan layanan ini dikelolah penuh oleh provider (pelanggan hanya perlu komputer dan akses Internet). Inovasi-inovasi yang signifikan dalam hal virtualisasi dan distributed computing, termasuk juga peningkatan akses ke Internet berkecepatan tinggi dan perbaikan ekonomi, telah meningkatkan ketertarikan orang kepada cloud computing.
Sebuah cloud bisa berlabel privat atau publik. Public Cloud menjual layanan ke siapapun di internet. (Saat ini, Amazon Web Service merupakan provider public cloud terbesar) Private Cloud adalah jaringan proprietary atau data center yang mensuplai layanan-layanan ter-host kepada orang-orang dalam jumlah terbatas. Jika sebuah service provider menggunakan sumber-sumber milik private cloud, maka hasilnya disebut virtual private cloud. Private atau publik, tujuan dari cloud computing adalah menyediakan akses yang mudah, skalabel kepada sumber-sumber komputasi dan layanan TI.
Teknologi cloud akan memberikan kontrak kepada user untuk service pada 3 tingkatan:
  1. Infrastructure as Service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service;
  2. Platform-as-a-service: hal ini memfokuskan pada aplikasi dimana dalam hal ini memungkinkan developer untuk tidak memikirkan hardware dan tetap fokus pada application development nya tampa harus mengkhawatirkan operating system, infrastructure scaling, load balancing dan lainya. Contoh nya yang telah mengimplementasikan ini adalah Force.com dan Microsoft Azure investmen.
1. Software as a Service (SaaS).

SaaS ini merupakan layanan Cloud Computing yang paling dahulu populer. Software as a Service ini merupakan evolusi lebih lanjut dari konsep ASP (Application Service Provider). Sesuai namanya, SaaS memberikan kemudahan bagi pengguna untuk bisa memanfaatkan sumberdaya perangkat lunak dengan cara berlangganan. Sehingga tidak perlu mengeluarkan investasi baik untuk in house development ataupun pembelian lisensi.
Dengan cara berlangganan via web, pengguna dapat langsung menggunakan berbagai fitur yang disediakan oleh penyedia layanan. Hanya saja dengan konsep SaaS ini, pelanggan tidak memiliki kendali penuh atas aplikasi yang mereka sewa. Hanya fitur-fitur aplikasi yang telah disediakan oleh penyedia saja yang dapat disewa oleh pelanggan.
Dan karena arsitektur aplikasi SaaS yang bersifat multi tenant, memaksa penyedia untuk hanya menyediakan fitur yang bersifat umum, tidak spesifik terhadap kebutuhan pengguna tertentu. Meskipun demikian, kustomisasi tidak serta-merta diharamkan, meskipun hanya untuk skala dan fungsi yang terbatas.
Tapi dengan berkembangnya pasar dan kemajuan teknologi pemrograman, keterbatasan-keterbatasan itu pasti akan berkurang dalam waktu tidak terlalu lama. Untuk contoh layanan SaaS, tentu saja kita harus menyebut layanan CRM online Salesforce.com–yang dikomandai Marc Benioff dan telah menjadi ikon SaaS ini.
Selain itu Zoho.com, dengan harga yang sangat terjangkau, menyediakan layanan SaaS yang cukup beragam, dari mulai layanan word processor seperti Google Docs, project management, hingga invoicing online. Layanan akunting online pun tersedia, seperti yang diberikan oleh Xero.com dan masih banyak lagi. IBM dengan Lotuslive.com nya dapat dijadikan contoh untuk layanan SaaS di area kolaborasi/unified communication.
Sayangnya untuk pasar dalam negeri sendiri, seperti sudah saya sampaikan dalam tulisan terdahulu, masih sangat sedikit yang mau berinvestasi untuk menyediakan layanan SaaS ini.
2. Platform as a Service (PaaS)
Seperti namanya, PaaS adalah layanan yang menyediakan modul-modul siap pakai yang dapat digunakan untuk mengembangkan sebuah aplikasi, yang tentu saja hanya bisa berjalan diatas platform tersebut. Seperti juga layanan SaaS, pengguna PaaS tidak memiliki kendali terhadap sumber daya komputasi dasar seperti memory, media penyimpanan, processing power dan lain-lain, yang semuanya diatur oleh provider layanan ini. Pionir di area ini adalah Google AppEngine, yang menyediakan berbagai tools untuk mengembangkan aplikasi di atas platform Google, dengan menggunakan bahasa pemrograman Phyton dan Django.
Kemudian Salesforce juga menyediakan layanan PaaS melalui Force.com, menyediakan modul-modul untuk mengembangkan aplikasi diatas platform Salesforce yang menggunakan bahasa Apex.
Dan mungkin yang jarang sekali kita ketahui, bahwa Facebook juga bisa dianggap menyediakan layanan PaaS, yang memungkinkan kita untuk membuat aplikasi diatasnya. Salah satu yang berhasil menangguk untung besar dari layanan PaaS Facebook adalah perusahaan bernama Zynga, yang tahun lalu saja berhasil meraup keuntungan bersih lebih dari US$ 100 juta, lebih besar dari keuntungan yang didapat oleh Facebook sendiri. Anda mungkin akan sedikit terkejut kalau saya beritahu bahwa Zynga ini bisa untung besar dari aplikasi yang sama sekali tidak serius, tapi mengandung zat adiktif luar biasa yaitu: Farmville, yang hingga kini telah berhasil menjadikan 80 juta lebih penduduk Facebook menjadi petani yang rajin mencangkul, menanam dan panen serta memerah susu sapi demi keuntungan mereka.
3. Infrastructure as a Service (IaaS).

IaaS terletak satu level lebih rendah dibanding PaaS. Ini adalah sebuah layanan yang “menyewakan” sumberdaya teknologi informasi dasar, yang meliputi media penyimpanan, processing power, memory, sistem operasi, kapasitas jaringan dan lain-lain, yang dapat digunakan oleh penyewa untuk menjalankan aplikasi yang dimilikinya.
Model bisnisnya mirip dengan penyedia data center yang menyewakan ruangan untuk co-location, tapi ini lebih ke level mikronya. Penyewa tidak perlu tahu, dengan mesin apa dan bagaimana caranya penyedia layanan menyediakan layanan IaaS. Yang penting, permintaan mereka atas sumberdaya dasar teknologi informasi itu dapat dipenuhi.
Perbedaan mendasar dengan layanan data center saat ini adalah IaaS memungkinkan pelanggan melakukan penambahan/pengurangan kapasitas secara fleksibel dan otomatis. Salah satu pionir dalam penyediaan IaaS ini adalah Amazon.com yang meluncurkan Amazon EC2 (Elastic Computing Cloud).
Layanan Amazon EC2 ini menyediakan berbagai pilihan persewaan mulai CPU, media penyimpanan, dilengkapi dengan sistem operasi dan juga platform pengembangan aplikasi yang bisa disewa dengan perhitungan jam-jaman. Untuk di dalam negeri sendiri, rencananya ada beberapa provider yang akan menyediakan layanan sejenis mulai pertengahan tahun ini.

sumber
http://drcipta.wordpress.com/2012/04/04/teknologi-modern-komputing/