Senin, 12 Desember 2011

EFISIENSI ALGORITMA

APA ITU EFISIENSI ALGOTIMA?          

Analisa yang paling sering dilakukan pada suatu algoritma adalah waktu proses. Menentukan waktu proses secara tepat merupakan pekerjaan yang sangat sulit karena waktu proses secata eksak sangat terhgantung pada implementasi algoritma dan perangkat keras yang dipakai. Analisa yang di inginkan untuk menyatakan efisiensi algoritma haruslah dibuat se umum mungkin sehingga bias dipakai  pada semua algoritma, terlepas dari implementasi dan juga compiler yang di pakai maupun perangkat keras yang digunakan. Akbiatnya analisa tidak dipakai pada waktu proses secata eksak. Kompleksitas algoritma cukup di nyatakan dalam order waktu proses (Big-Oh) secara fungsi jumlah data masukan yang diberikan. Dalam analisa tersebut kita menfokuskan diri pada operasi aktif yang merupakan pusat algoritma, yaitu bagian algoritma yang paling sering di eksekusi. Bagian-bagian lain seperti pemasukan data,penugasan (asigment), dan lain-lain dapat diabaikan karena bagian-bagian tersebut tidak sesering operasi aktif. Jumlah eksekusi operasi aktif itulah yang selanjutnya dihitung

KOMPLEKSITAS ALGORITMA


Sebuah pertanyaan yang sering muncul adalah 
“Seberapa  efisienkah suatu algoritma atau potongan kode?” Efisiensi tergantung dari beberapa 
hal, diantaranya:
· Kinerja CPU
· Kinerja Memori
· Kinerja Disk
· Kinerja Jaringan
Semua aspek tersebut sangat penting, tapi
makalah ini akan membahas mengenai poin
pertama, yaitu CPU. Berhati-hatilah ketika
membandingkan antara 
1. Performa: Berapa banyak waktu /
memori / disk yang digunakan ketika
program berjalan. Tergantung dari
mesin, compiler, dan kode.
2. Kompleksitas: Apa yang akan terjadi
ketika ukuran masalah semakin besar.
Kompleksitas memengaruhi performa, namun tidak sebaliknya. Waktu yang diperlukan untuk 
melakukan suatu baris kode / algoritma
sebanding dengan operasi dasar yang dilakukan. 
Beberapa contoh operasi dasar : 
· Satu operasi aritmatika (misal: +, *)
· Satu assignment
· Satu ekspresi (misal: x==0)
· Pembacaan input
· Penulisan output (primitif)Beberapa algoritma melakukan jumlah operasi
yang sama dalam setiap kali pemanggilannya.. 
Algoritma seperti ini dikatakan memerlukan
waktu yang konstan. 
Beberapa algoritma lain melakukan jumlah
operasi yang berbeda, tergantung dari jumlah 
masukan pada parameter-nya. Misalnya, 
algoritma pemanggilan berurutan  (sequence), 
jumlah operasi yang dilakukan tergantung dari 
jumlah pemanggilan.  Parameter yang nilainya
memengaruhi jumlah operasi yang dilakukan
disebut problem size atau input size.
Ketika kita mengukur kompleksitas suatu
algoritma, kita bukan memerlukan jumlah
operasi yang tepat, kita memerlukan bagaimana 
hubungan antara jumlah operasi tersebut dengan 
ukuran masalah  (problem size). Jika  problem 
size-nya  double, apakah jumlah operasi akan
tetap dua kali lipat? Ataukah bekembang dengan 
cara tertentu? Untuk algoritma yang memerlukan 
waktu yang konstan, melipatgandakan ukuran 
masalah tidak memengaruhi jumlah operasi yang 
dilakukan.
Lebih jauh lagi, biasanya kita tertarik dengan 
worst case, atau kasus terburuk; yaitu jumlah 
operasi terbanyak yang mungkin dilakukan
sebuah algoritma untuk ukuran masalah yang 
diberikan (selain itu, terdapat juga kasus rata-rata 
–average case- dan kasus terbaik –best case-)

MODEL PERHITUNGAN KEBUTUHAN WAKTU/RUANG

Waktu/Ruang
• Kita dapat mengukur waktu yang diperlukan oleh sebuah 
algoritma dengan menghitung banyaknya 
operasi/instruksi yang dieksekusi. 
• Jika kita mengetahui besaran waktu (dalam satuan detik) 
untuk melaksanakan sebuah operasi tertentu, maka kita 
dapat menghitung berapa waktu sesungguhnya untuk 
melaksanakan algoritma tersebut.

>>> Tipe data yang digunakan adalah :
- integer
- real
Dua nilai yang sama dengan operator yang sama tetapi dengan variabel yang berbeda, maka terdapat perbedaan kecepatan / proses penyelesaiannya.
Contoh :
 250 + 17 = 267 (lebih cepat dari)
 250.0 + 17.0 = 0.25*103 + 0.17*102
= 0.25*103 + 0.017*103
= (0.25+ 0.017)*103
= 0.267*103
= 267.0
sumber:

Kamis, 22 September 2011

Intel® Core™2 Duo Processor

Intel core 2 Duo adalah Processor yang dikembangkan oleh intel setelah kesuksesan Intel Core Duo yang muncul terlebih dahulu. Penggunaan Core 2 ini juga menandai era processor intel yang baru, dimana brand Intel Pentium yang sudah di gunakan sejak tahun 1993 diganti menjadi Intel Core. Dengan menggunakan processor Intel Core 2 Duo, komputer akan jauh lebih responsif, penggunaan energi yang efisien, dan penggunaan akan jauh lebih cepat. Dengan 6 MB L2 cache dan 1333 MHz front side bus, kinerja prosesor meningkat hingga 40 persen dan efisiensi daya meningkat hingga 40 persen bila dibandingkan dengan prosesor intel generasi sebelumnya.

Intel Core 2 Duo memiliki beberapa inovasi, yaitu:

  1. Dual Core Processing, yang mengkombinasikan 2 prosesor core dalam satu paket dan bekerja pada frekuensi yang sama,
  2. Intel Wide Dynamic Execution, mampu meningkatkan kinerja dan efisiensi
  3. Intel Smart Memory Access, meningkatkan peforma sistem dengan mengoptimalkan penggunaan bandwith
  4. Intel Advance Smart Cache, menyediakan peforma gemilang dengan subsistem cache yang lebih efisien
  5. Intel Intelligent Power Capability, desain yang lebih efisien dalam penggunaan energi dan baterai yang tahan lama
  6. Intel Advance Digital Media Boost, secara efektif menggandakan kecepatan eksekusi untuk instruksi2 yang banyak digunakan di aplikasi2 multimedia



Sumber:
http://www.intel.com/products/processor/core2duo/index.htm
http://dedenthea.wordpress.com/2007/03/29/apa-seeh-intel-core-2-duo-dan-intel-core-2-extreme/
http://id.wikipedia.org/wiki/Intel_Core_2_Duo
http://ark.intel.com/products/33911/Intel-Core2-Duo-Processor-E8500-(6M-Cache-3_16-GHz-1333-MHz-FSB)
http://www.bioperf.org/Pra07.pdf

Kamis, 15 September 2011

Pengertian dan Penggunaan Operator

Assignment operator
Operator yang digunakan untuk memberikan sebuah nilai pada sebuah variabel atau struktur data. Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda sama dengan (: =)
Contoh : A: = B
Binary Operator
Disebut dengan binary operator (tanda operasi biner) karena operator ini digunakan untuk mengoperasikan 2 buah operand. Operand dapat berbentuk konstanta ataupun variabel. Operator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe integer dan real.
Contoh :
Begin
WriTeln (15*5);
WriTeln (20/3);
WriTeln (20 div 3);
WriTeln (20 mod 3);
End.

Unary Operator

Disebut Unary karena operator ini hanya menggunakan sebuah operand saja. Unary operator dapat berupa unary minus dan unary plus. Unary minus adalah operator yang berupa tanda minus yang ganya digunakan pada sebuah numerik operand saja untuk menunjukan nilai negatif, baik pada operand numerik real, maupun numerik integer. Unary plus adalh operator untuk memberi tanda plus.

Contoh:

-5
-7                                 a+(-b)
-2.5                              a+(+b)
+2.5

Bitwise Operator

Bitwise operator digunakan untuk operasi bit per bit pada nilai integer.


Contoh:
# include <iostream.h>
void main ( )
{
       int m = 82, n = 26;
       count<<m<<" << 2"<<" = "<< ( m << 2 ) << endl;
       count<<m<<" >> 2"<<" = "<< ( m >> 2 ) << endl;
       count<<m<<" & "<< n <<" = "<< ( m & n ) << endl;
       count<<m<<" ! "<< n <<" = "<< ( m ! n ) << endl;
       count<<m<<" ^ "<< n <<" = "<< ( m ^ n ) << endl;
       count<<"~"<<m<<" = "<<~m<<endl;
}
Output:
82 << 2 = 328
82 >> 2 = 20
82 & 26 = 18
82 ! 26 = 90
82 ^ 26 = 72
~82 = -83

Relational Operator
Relational operator (Operator Hubungan) digunakan untuk membandingkan hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, yaitu true atau false.

Contoh:
Var
            a, b : integer;
Begin
a = 5;
b = 3;
            Writeln (a=b);
            Writeln (a=5);
            Writeln (a<>b);
            Writeln (a>b);
            Writeln (a>=b);
            Writeln (a<b);
            Writeln (a<=b)
End.

Bila dijalankan:
False
True
True
True
True
False
False

Logical Operator
Terdapat 4 buah logical operator, yaitu Not, And, Or dan Xor. Bentuk operator ini sama dengan bitwise operator, tetapi penggunaanya lain. Logical operator bekerja dengan nilai – nilai logika, yaitu True dan False.

Contoh:
Begin
            Writeln (not True);
            Writeln (not False);
            Writeln (True And False);
            Writeln (True Or False);
            Writeln (True Xor False);
End.

Bila dijalankan:
False
True
False
True
True

Set Operator
Set operator digunakan unt/uk operasi himpunan.

Contoh:
Type
     BilanganHex = Set of char;
Ver
     Hexa : Bilangan Hex;
Begin
     Hexa := ['0', , '9','A', , 'F'];
     -
     -
     -

String Operator
String operator digunakan untuk operasi string. Hanya ada sebuah operator string saja, yaitu operator + yang digunkan untuk menggabung 2 buah nilai string.

Contoh:
            Nama1, Nama2, Nama3 : string[15];
Begin
            Nama1 := ‘Arief’;
            Nama2 := ‘Kurniawan’
            Nama3 := Nama1 + Nama2;
            Writeln (Nama3)
End.

Bila dijalankan:
Arief Kurniawan

Pengertian Array
Array merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian yang menyusun array disebut elemen array, yang masing-masing elemen dapat diakses tersendiri melalui indeks array.
“Elektronika”
“Telekomunikasi”
“Elektro Industri”
“Teknologi Informasi”
“Teknik Kimia”
Elemen – Elemen Array
Array Jurusan
Dalam terminology array, array jurusan diatas bias dikatakan mempunyai 5 buah elemen. Setiap elemen mempunyai sebuah nilai. Elemen pertama berisi string “Elektronika”, elemen kedua berisi string “Telekomunikasi”, dan seterusnya.

Contoh:
Uses crt ;
Var

Nama : array [1..30 ] of string ;

Tugas, uts, uas, absen : array [1..30] of integer ;

Rata : array [1..30] of real ;

x , jd : byte;
BEGIN
CLRSCR ;
Write ( 

Masukan Jumlah data : 


) ; readln ( jd ) ;
For x : = 1 to jd do
begin

Writeln ( 


***************************** 


) ;

Writeln ( 


PENILAIAN UJIAN MAHASISWA BSI 


) ;

Writeln ( 


***************************** 


) ;

Write ( 


Input Nama : 


) ; readln (nama[x] ) ;

Write ( 


Input Nilai Tugas : 


) ; readln (tugas[x] ) ;

Write ( 


Input Nilai Absen : 


) ; readln (absen[x] ) ;

Write ( 


Input Nilai UTS : 


) ; readln (uts[x] ) ;

Write ( 


Input Nilai UAS : 


) ; readln (uas[x]) ;


Rata[x]:=(0.1*tugas[x])+(0.2*absen[x])+(0.3*uts[x])+(0.4*uas[x]);
End ;
CLRSCR ; 
For i : = 1 to j do
Begin

Writeln ( 


***************************** 


) ;

Writeln ( 


PENILAIAN UJIAN MAHASISWA BSI 


) ;

Writeln ( 


***************************** 


) ;

Writeln ( 


Nama : 


, nama[i] ) ;

Writeln ( 


Nilai Tugas : 


, tugas[i] ) ;

Writeln ( 


Nilai Absen : 


, absen[i] ) ;

Writeln ( 


Nilai UTS : 


, uts[i] ) ;

Writeln ( 


Nilai UAS : 


, uas[i]) ;

Writeln ( 


**************************** 


) ;

Writeln ( 


Rata-rata : 


, rata : 1: 0 ) ;

Readln ;


End;

END.
Pengertian Record

Adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan, masing-nasing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda, walaupun field-field tersebut berada dalam satu kesatuan namun masing-masing field dapat diakses secara individual.
Contoh:

uses
crt;
type
TSiswa = record
nim : string[8];
nama : string[25];
agama : string[10];
ktp : string[25];
end;
var
s : TSiswa;
umur : integer;
ts : integer;
tl : integer;
begin
clrscr;
write (’Masukkan tahun sekarang: ‘);
readln (ts);
writeln (’Isikan data anda dalam Form ini’);
write (’NIM : ‘);
readln (s.nim);
write (’NAMA : ‘);
readln (s.nama);
write (’TAHUN LAHIR : ‘);
readln (tl);
umur := (ts-tl);
write (’AGAMA : ‘);
readln (s.agama);
write (’NO.KTP : ‘);
readln (s.ktp);
writeln;
writeln (’Berikut ini informasi yang anda berikan: ‘);
writeln (’NIM : ‘, s.nim);
writeln (’NAMA : ‘, s.nama);
writeln (’Umur : ‘, umur);
writeln (’AGAMA : ‘, s.agama);
writeln (’NO.KTP : ‘, s.ktp);
READLN;
end.

Rabu, 07 September 2011

KOMPUTER : DARI MASA KE MASA

Di zaman sekarang ini, tidak mungkin ada orang yang tidak mengenal komputer. Komputer sudah seperti sebuah kebutuhan sekarang ini, apalagi jika kita melihat perkembangan IT yang begitu pesat. Namun, tahukah kalian apa yang di maksud dengan komputer itu sendiri? Dan jika kita menelusuri sejarah, maka kita akan mangetahui bahwa komputer zaman dahulu sangatlah berbeda dengan komputer yang kita gunakan sekarang ini. Nah,, sekarang saya akan mencoba menjelaskan tentang sejarah komputer dari generasi pertama, sampai keempat. 

Komputer adalah alat yang dipakai untuk mengolah data menurut perintah yang telah dirumuskan. Kata komputer semula dipergunakan untuk menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Secara luas, Komputer dapat didefinisikan sebagai suatu peralatan elektronik yang terdiri dari beberapa komponen, yang dapat bekerja sama antara komponen satu dengan yang lain untuk menghasilkan suatu informasi berdasarkan program dan data yang ada. Yah.. bisa dibilang komputer itu sebagai alat bantu hitung gitu dehh..

Dalam sejarahnya, komputer terbagi menjadi 5 generasi, yaitu:

GENERASI 1

Dengan dimulainya perang dunia kedua, banyak negara mulai mengembangkan teknologi komputer untuk mencari informasi tentang hal yang terjadi di dunia. Pendanaan terhadap bidang teknologi pun semakin di perbesar. Hal inilah yang mengakibatkan pesatnya perkembangan teknologi pada zaman ini. Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer, Z3, untuk mendesain pesawat terbang dan peluru kendali. Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvard-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks. Perkembangan komputer lain pada masa kini adalah :


  1.  ENIAC (1946), komputer generasi pertama yang pertama. ENIAC = Electronic Numerical Integrator and CalculatorKomputer digital elektronik serbaguna pertama, merupakan awal dari abad komputer. Dikembangkan oleh John Presper Eckert dan John Mauchly dari Universitas Pennsylvania. Dibuat sebagai kebutuhan militer Amerika (tracjectory table for new weapons)
    1.  Diusulkan tahun 1943, digunakan 1946-1955
    2.  Komputasi desimal (bukan biner)
    3.  Memiliki 20 akumulator @ 10 digit
    4.  Dapat melakukan 5000 penjumlahan per detik
    5.  Diprogram manual menggunakan saklar
    6.  Terdiri dari 18,000 vacuum tube
    7.  Dimensi 15000 square feet
    8.  Konsumsi daya 140 kW
    9.  Berat 30 ton
  2. IAS(1946), komputer stored-program pertama. John von NeumannAhli matematika, konsultan proyek ENIAC, pencetus konsep stored-program, tahun 1946 Von Neumann merancang komputer dengan konsep stored-program : diberi nama komputer IAS, dikembangkan di Princeton Institute for Advanced Studies, walaupun proyek ini tidak selesai, IAS adalah prototipe dari semua general-purpose computer.
  3. UNIVAC(1951), komputer dengan pita magnetik pertama.
    UNIVAC = Universal Automatic Computer. Komputer pertama yang menggunakan pita magnetik sebagai media input dan outputnya, digunakan di biro sensus Amerika Serikat.
GENERASI 2

Pada tahun 1948, penemuan transistor sangat memengaruhi perkembangan komputer. Transistor menggantikan tube vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis. Ciri-ciri komputer generasi 2 adalah :
- Menggunakan komponen transistor.
- Program dibuat dengan bahasa tingkat tinggi (FORTRAN, COBOL).
- Kapasitas memori cukup besar, menggunakan magnetic core storage.
- Menggunakan simpanan luar magnetic tape dan magnetic diskyang berbentuk removable.
- Mempunyai kemampuan proses real-time dan time-sharing.

Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas, dan di pemerintahan. Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor. Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket, memory, sistem operasi, dan program.
Salah satu contoh penting komputer pada masa ini adalah 1401 yang diterima secara luas di kalangan industri. Pada tahun 1965, hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memproses informasi keuangan.

GENERASI 3
Dimulai tahun 1964-1970. Walaupun transistor dalam banyak hal mengungguli tube vakum, namun transistor menghasilkan panas yang cukup besar, yang dapat berpotensi merusak bagian-bagian internal komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini. Jack Kilby, seorang insinyur di Texas Instrument, mengembangkan sirkuit terintegrasi (IC : integrated circuit) di tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa. Pada ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor. Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer. Ciri-ciri komputer generasi ini adalah :
- Komponen IC (integrated Circuit).
- Kecepatan 10.000 kali komputer generasi pertama.
- Kapasitas memori dapat menyimpan ratusan ribu karakter.
- Menggunakan memori eksternal yang bersifat random access.
- Dapat melakukan multiprocessing.
- Menggunakan visual display terminal yang dapat menampilkan gambar dan grafik, dapat menerima dan mengeluarkan suara, penggunaan alat pembaca tinta magnetik.
- Melakukan komunikasi data.

GENERASI 4
Setelah IC, tujuan pengembangan menjadi lebih jelas: mengecilkan ukuran sirkuit dan komponen-komponen elektrik. Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip. Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal. Berikut ini adalah beberapa perkembangan generasi keempat :
- 1970 IBM 370, merupakan komputer generasi ke-4 pertama.
- 1971Intel 4004, mikroprosesor pertama.
- 1974 Altair, komputer mikro komersial pertama.
- 1975 Cray-1, komputer super komersial pertama.
- 1977 ARCNET, Local Area Network pertama.
- 1977 Apple II, komputer PC pertama.
- 1981 Xerox Star, komputer window pertama.
- 1981 IBM PC/XT, komputer IBM PC pertama.
- 1984 IBM PC/AT, menggunakan mikropresesor Intel 80286.
- 1984 Macintosh dan GUI pertama.
- 1987 IBM PS/2.
- 1988 IBM PC/386, komputer 32 bit pertama.
- 1990 IBM PC/486.
- 1997 Pentium I(66-200 MHz), Pentium II


GENERASI 5
Bisa dibilang generasi komputer hanya ada 4 generasi. Namun generasi ke 5 ini bisa dibilang baru. Karena sifatnya yang masih baru, saya kurang yakin dengan generasi kelima ini. Karena itu, saya hanya berani membahasnya menurut sumber yang saya baca. Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001: Space Odyssey. HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima. Dengan kecerdasan buatan (artificial intelligence atau AI), HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia, menggunakan masukan visual, dan belajar dari pengalamannya sendiri. Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan, banyak fungsi-fungsi yang dimilikinya sudah terwujud. Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia. Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin. Fasilitas ini tampak sederhana. Namun fasilitas tersebut menjadi jauh lebih rumit dari yang diduga ketika programmer menyadari bahwa pengertian manusia sangat bergantung pada konteks dan pengertian ketimbang sekedar menterjemahkan kata-kata secara langsung.

Itulah kelima generasi komputer dan sejarahnya..
Semoga bermanfaat bagi pembaca dan juga saya tentunya... :D


sumber : http://id.wikipedia.org/wiki/Sejarah_komputer