Sabtu, 14 Januari 2012

Penggunaan Substring pada Java

Substring fungsinya untuk mengambil kata tertentu dari suatu string.
ingat Substring dihitung mulai dari nol ..

Contoh program menggunakan substring :

public class Substring {
public static void main (String Args [] ){
String data = "Mencoba String Pada Java";
String sub = data.substring(8);
String sub2 =data.substring(8,14);
System.out.println(data);
System.out.println(sub);
System.out.print(sub2);
}
}

Setelah program tsb di run, hasilnya adalah sbb :
Mencoba String Pada Java
String Pada Java
String
========================================

jadi :
M = 0
e = 1
n = 2
c = 3
o = 4
b = 5
a = 6
(spasi)= 7
S = 8
t = 9
r = 10
i = 11
n = 12
g = 13
(spasi)= 14
P = 15
a = 16
d = 17
a = 18
(spasi)= 19
J = 20
a = 21
v = 22
a = 23

*)String sub = data.substring(8);
dimulai dari huruf ke 8 yaitu S dan seterusnya sampai huruf terakhir ..
hasilnya: String Pada Java

*)String sub2 =data.substring(8,14);
dimulai dari huruf ke 8 yaitu S sampai huruf ke 13 (huruf sebelum 14)..
hasilnya : String

Terima Kasih, semoga membantu :)
Gbu

Minggu, 27 November 2011

Multiprocessor vs Multi Core-Processor

Definisi Mikroprosesor

· Mikroprosesor berasal dari microprocessor, yang secara kasar dapat

diterjemahkan sebagai pemroses mikro atau mengolah mikro. Secara

fisik, mikroprosesor adalah subuah keping (chip) kecil, yang dirancang

untuk mengerjakan pekerjaan-pekerjaan yang cukup kompleks.

· Mikroprosesor adalah sebuah sirkuit terpadu yang dikemas pada

sekeping silicon yang tipis. sebuah prosesor berisi ribuan atau bahkan

jutaan komponen ekuivalen transistor, yang masing masing saling

terhubung oleh jalur aluminium yang sangat halus. semua transistor itu

bekerja sama sama untuk menyimpan dan memanipulasi data, dengan

demikian mikroprosesor dapat melakukan berbagai fungsi dan tugas

yang bermacam macam. Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.

Gambar diatas mengilustrasikan perilaku dari multiprocessor yang digunakan untuk multiprogramming. Beberapa proses terpisah dialokasikan didalan memori. Ruang alamat proses terdiri dari halaman-halaman sehingga hanya sebagian saja dari proses tersebut yang berada dalam memori pada satu waktu. Hal ini memungkinkan banyak proses dapat aktif dalam sistem.

Sejarah Mikroprosesor (Intel)

  • Th. 1971 :Mikroprosesor pertama di dunia adalah Intel 4004 merupakan prosesor 4bit
  • Th. 1972 :Intel mengeluarkan mikroprosesor 8-bit yaitu Intel 8008
  • Th. 1973 :Intel memperkenalkan mikroprosesor 8-bit modern pertama Intel 8080 (10x lebih cepat dari 8008), dan diikuti Motorola MC6800.
  • Th. 1977 :Intel memperkenalkan 8085 yang merupakan mikroprosesor 8-bit terakhir yang dibuat Intel dengan frek.clock dan kecepatan lebih tinggi.
  • Perusahaan lain yang mampu menyaingi Intel 8085 adalah Zilog Corporation dengan Z80.
  • Th. 1978 :Intel mengeluarkan mikroprosesor 16-bit yaitu 8086,setahunkemudian mengeluarkan 8088 dengan kecepatan eksekusi dan memori lebih besar dari 8085, serta mulai digunakannya cache memori (sistem antrian yang mengatur pemberian instruksi sebelum menjalankannya).
  • Intel 8086/8088 disebut juga CISC (Complex Instruction Set Computer) karena jumlah dan kompleksitas instruksinya.
  • Th. 1981 :IBM membuat PC menggunakan mikroprosesor 8088 untuk menjalankan aplikasi seperti spreadsheet dan pengolah kata.
  • Th. 1983 :Intel mengeluarkan mikroprosesor 16-bit 80286, dengan kemampuan memori 16 MB.
  • Th. 1986 :Intel mengeluarkan mikroprosesor 32-bit pertama 80386, dengan kemampuan memori 4 GB.
  • Th. 1989 :Intel mengeluarkan mikroprosesor 32-bit 80486, dengan kemampuan memori 4 GB + 8K Cache
  • Th. 1993 : Intel memperkenalkan mikroprosesor 32-bit Pentium I, Th. 1997
  • Pentium II,kemudian berturut-turut Pentium III dan Pentium 4 pada Th. 2000,dimana mulai digunakan teknologi memori RAMBUS menggantikan teknologi SDRAM.
  • Th.1995: Intel® Pentium® Pro Processor
  • Th.1997: Intel® Pentium® II Processor
  • Th.1998: Intel® Pentium II Xeon® Processor
  • Th.1999: Intel® Celeron® Processor
  • Intel® Pentium® III Processor
  • Intel® Pentium® III Xeon® Processor
  • Th.2000: Intel® Pentium® 4 Processor
  • Th.2001: Intel® Xeon® Processor
  • Intel® Itanium® Processor
  • Th.2002: Intel® Itanium® 2 Processor
  • Th.2003: Intel® Pentium® M Processor
  • Th.2004: Intel Pentium M 735/745/755 processors
  • Th.2005: Intel Pentium 4 Extreme Edition 3.73GHz
  • Intel Pentium D 820/830/840
  • Th.2006 : Intel Core 2 Quad Q6600
  • Th.2006 : Intel Quad-core Xeon X3210/X3220
  • Th.2007 : Intel Core Duo
  • Th.2008 : Intel i3
  • Th. 2009 :Intel i5
  • Th.2010 : intel i7

Fungsi Mikroprosesor

Adalah sebagai pengontrol atau pengolah utama dalam suatu rangkaian

elektronik. Mikroprosesor biasa disebut juga CPU (Central Processing Unit).

Cara kerja

Sebuah Mikroprosesor diarahkan oleh suatu program dalam kode-kode

bahasa mesin yang telah dimasukkan terlebih dahulu ke dalam sebuah

memori. Di dalam Mikroprosesor minimal terdiri dari rangkaian digital, register,

pengolah logika aritmatika, rangkaian sekuensial.

Karakteristik Mikroprosesor

Berikut adalah karakteristik penting dari mikroprosesor :

1. Ukuran bus data internal (internal data bus size): Jumlah saluran yang

terdapat dalam mikroprosesor yang menyatakan jumlah bit yang dapat

ditransfer antar komponen di dalam mikroprosesor.

2. Ukuran bus data eksternal (external data bus size): Jumlah saluran yang

digunakan untuk transfer data antar komponen antara mikroprosesor dan

komponen-komponen di luar mikroprosesor.

3. Ukuran alamat memori (memory address size): Jumlah alamat memori

yang dapat dialamati oleh mikroprosesor secara langsung.

4. Kecepatan clock (clock speed): Rate atau kecepatan clock untuk

menuntun kerja mikroprosesor.

5. Fitur-fitur spesial (special features): Fitur khusus untuk mendukung

aplikasi tertentu seperti fasilitas pemrosesan floating point, multimedia

dan sebagainya.

Keuntungan:

1. Meningkatkan jumlah proses yang dapat ditangani oleh processor (bukan mening-

katkan waktu komputasinya)

2. Jika dihitung-hitung lebih hemat

3. Jika satu processor mengalami masalah, proses masih dapat terus berjalan.

Kerugian:

1. Kebutuhan arusnya yang malar.

2. Membutuhkan banyak daya.

3. Adanya waktu tunda.

4. Waktu naik semakin lambat karena adanya waktu tunda.

Jenis-jenis multiprosesor

Multiprocessing dapat dibagi ke dalam beberapa kelas, yakni:

  • Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam
  • Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam (lihat Taksonomi Flynn)
    • SISD (Single Instruction on Single Data Stream),yaitu sebuah komputer yang tidak memiliki cara untuk melakukan paralelisasi terhadap instruksi atau data. Contoh mesinSISD adalah PC tradisional atau mainframe yang tua.

o SIMD (Single Instruction on Multiple Data Stream),yaitu sebuah komputer yang mampumemproses banyak aliran data dengan hanya satu instruksi, sehingga operasi yangdilakukan adalah operasi paralel. Contoh dari SIMD adalah prosesor larik (array processor ), atau GPU.

    • MISD (Multiple Instruction on Single Data Stream), yaitu sebuah komputer yang dapatmelakukan banyak instruksi terhadap satu aliran data. Komputer ini, tidak memilikicontoh, karena meski pernah dibuat, hal itu dibuat sebagai purwarupa (prototipe), dantidak pernah dirilis secara massal.
    • MIMD (Multiple Instruction on Multiple Data Stream),yaitu sebuah komputer yangmemiliki beberapa prosesor yang bersifat otonomus yang mampu melakukan instruksiyang berbeda pada data yang berbeda. Sistem terdistribusi umumnya dikenal sebagaiMIMD, entah itu menggunakan satu ruangan memori secara bersama-sama atau sebuahruangan memori yang terdistribusi.
  • Berdasarkan kedekatan antar prosesor, dapat dibagi ke dalam

Ada juga yag membedakan sistem multiprosesor menjadi : SMP, prosesor vektor, prosesor paralel, dan MMP.

  • SMP (symetric multiprocessor) merupakan sistem multiprosesor dengan masing-masing prosesor bekerja secara-sendiri-sendiri (tidak saling bergantung). Pada sistem ini, sebuah CPU bisa jadi sedang menangani suatu proses misalkan sedang mengolah lembar kerja dan CPU lain sedang melakukan proses grafis.
  • Prosesor vektor menyatakan suatu sistem multiprosesor dengan masing-masing prosesor dapat bekerja secara serentak dalam menangani proses perhitungan vektor.
  • Prosesor paralel menyatakan sistem yang memiliki sejumlah prosesor yang memilki karakteristik sebagai berikut:
    • Tidak ada prosesor yang bertindak sebagai prosesor utama.
    • Sejumlah prosesor tidak selalu mengerjakan operasi yang sama dalam waktu yang sama.

Dengan menggunakan prosesor paralel, bagian-bagian sebuah program dapat dikerjakan oleh prosesor-prosesor yang berbeda. Penanganan aktifitas prosesor ini ditangani oleh program. Prosesor jenis ini biasa digunakan pada superkomputer.

  • Prosesor paralel masif (Massively Parallel Processor atau MPP) adalah sistem yang mengandung ratusan atau bahkan ribuan prosesor yang dapat saling berinteraksi dengan pendekatan jaringan syaraf tiruan. Lihat gambar dibawah, prosesor seperti ini sudah diterapkan dalam bisnis salah satu penggunaannya adalah Wal-Mart.

MULTI CORE-PROCESSOR

Definisi Multi Core-Processor

· Multicore processor adalah kombinasi dua atau lebih prosesor independen kedalam sebuah integrated circuit(IC). Umumnya, multicore mengizinkan perangkat komputasi untuk memeragakan suatu bentuk thread level paralelism(TLP) tanpa mengikutsertakan banyak prosesor terpisah. TLP lebih dikenal sebagai chip-level multiprocessing.

Fungsi Multi Core-Processor

Untuk memproses data yang diterima dari masukka (input), seterusnya akan menghasilkan keluaran (output). Semasa kerja memproses data tersebut, processor juga akan senantiasa berhubungan dengan komponen komputer yang lain, terutamanya hard disk dan RAM. Ia juga digambarkan sebagai “otak” kepada komputer dimana setiap data akan melalui processor bagi menghasilkan keluaran (output) yang sepautnya. Sesuai dengan fungsinya, ia juga dikenal sebagai CPU. Apabila processor tidak berfungsi, maka komponen – komponenkomputer yang lain juga tidak dapat berfungsi.

Keuntungan:

  • Meningkatkan performa dari operasi cache snoop (bus snooping). Bus snooping adalah suatu teknik yang digunakan dalam sistem pembagian memori terdistribusi dan multiprocessor yang ditujukan untuk mendapatkan koherensi pada cache. Hal ini dikarenakan sinyal antara CPU yang berbeda mengalir pada jarak yang lebih dekat, sehingga kekuatan sinyal hanya berkurang sedikit. Sinyal dengan kualitas baik ini memungkinkan lebih banyak data yang dikirimkan dalam satu periode waktu dan tidak perlu sering di- repeat.
  • Secara fisik, desain CPU multicore menggunakan ruang yang lebih kecil pada PCB ( Printed Circuit Board) dibanding dengan desain multichip SMP
  • Prosesor dual-core menggunakan sumber daya lebih kecil dibanding sepasang prosesor dual-core
  • Desain multicore memiliki resiko design error yang lebih rendah daripada desain single-core

Kerugian:

  • Dalam hal sistem operasi, butuh penyesuaian kepada software yang ada untuk memaksimalkan kegunaan dari sumberdaya komputasi yang disediakan oleh prosesor multicore. Kemampuan prosesor multicore untuk meningkatkan performa aplikasi juga bergantung pada penggunaan banyaknya thread dalam aplikasi tersebut.
  • Dari sudut pandang arsitektur, pemanfaatan daerah permukaan silikon dari desain single-core lebih baik daripada desain multicore.
  • Pengembangan chip multicore membuat produksinya menjadi menurun karena semakin sulitnya pengaturan suhu pada chip yang padat.

Pengaruh multicore terhadap software

Keuntungan software dari arsitektur multicore adalah kode-kode dapat dieksekusi secara paralel. Dalam sistem operasi, kode-kode tersebut dieksekusi dalam thread-thread atau proses-proses yang terpisah. Setiap aplikasi pada sistem berjalan pada prosesnya sendiri sehingga aplikasi paralel akan mendapatkan keuntungan dari arsitektur multicore. Setiap aplikasi harus tertulis secara spesifik untuk memaksimalkan penggunaan dari banyak thread.

Banyak aplikasi software tidak dituliskan dengan menggunakan thread-thread yang concurrent karena kesulitan dalam pembuatannya. Concurrency memegang peranan utama dalam aplikasi paralel yang sebenarnya.

Langkah-langkah dalam mendesain aplikasi paralel adalah sebagai berikut:

  • Partitioning . Tahap desain ini dimaksudkan untuk membuka peluang awal pengeksekusian secara paralel. Fokus dari tahap ini adalah mempartisi sejumlah besar tugas dalam ukuran kecil dengan tujuan menguraikan suatu masalah menjadi butiran-butiran kecil.
  • Communication . Tugas-tugas yang telah terpartisi diharapkan dapat langsung dieksekusi secara paralel tapi tidak bisa, karena pada umumnya eksekusi berjalan secara independen. Pelaksanaan komputasi dalam satu tugas membutuhkan asosiasi data antara masing-masing tugas. Data kemudian harus berpindah-pindah antar tugas dalam melangsungkan komputasi. Aliran informasi inilah yang dispesifikasi dalam fase communication.
  • Agglomeration . Pada tahap ini kita pindah dari sesuatu yang abstrak ke yang konkret. Kita tinjau kembali kedua tahap diatas dengan tujuan untuk mendapatkan algoritma pengeksekusian yang lebih efisien. Kita pertimbangkan juga apakah perlu untuk menggumpalkan ( agglomerate) tugas-tugas pada fase partition menjadi lebih sedikit, dengan masing-masing tugas berukuran lebih besar.
  • Mapping . Dalam tahap yang keempat dan terakhir ini, kita menspesifikasi dimana setiap tugas akan dieksekusi. Masalah mapping ini tidak muncul pada uniprocessor yang menyediakan penjadwalan tugas.