Sabtu, 10 Desember 2011

MANFAAT EFISIENSI ALGORITMA

Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu (seberapa cepat algoritma dieksekusi) dan efisiensi memori (berapa banyak memori yang dibutuhkan untuk menjalankan algoritma). Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.


·         Faktor-faktor yg mempengaruhinya adalah :
-          Banyak langkah
-          Tipe data                                  kecepatan
-          Operator-operator
- Alokasi memori      ->  space memori, berkaitan dgn * struktur data dinais
* procedure/function 
   call
* recursif

·         Tipe Data
-          integer
-          real
Dua nilai yg sama dgn operator yg sama tapi dgn variabel yg 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.17)*103
                                      = 0.267*103
                                      = 267.0

·         Operator
          Urutan penggunaan operator/penempatan operator bisa mempengaruhi efisiensi.
Contoh perkalian (*) lebih lama daripada penjumlahan (+)

·         Tetapi dalam perkembangan teknologi, perbedaan penggunaan operator maupun tipe data dasar tidak terlalu signifikan.
·         Yang perlu diperhatikan adalah banyaknya operasi aritmatika dan logika yang dilakukan.

Operator aritmatika : +,-,*,/,^,div,mod

Operator logika : AND,OR,NOT masing-masing 1.

Operator adalah jika hasil perhitungannya termasuk dalam himpunan itu sendiri.

2 < 5 -> bukan operator tapi konstanta logika karena tidak menghasilkan nilai yang sejenis

Operator : H x H -> H

 

x = 2<5

x = True                     Tidak ada operation ( 0 operation)

y = 5 
y = 5+0    -> 1 operation
y = 2+3*5         -> 2 operation
y = 3*5+2         -> 2 operation

·         Banyak langkah dalam suatu algoritma dinyatakan dengan banyaknya operasi aritmatika dan logika yang dilakukan. Dengan demikian hal ini bergantung pada statement dan  jenis algoritma :
-          sequensial
-          branching
-          looping
-          subroutine call (bisa memanggil prosedur dan bisa memanggil fungsi)
Banyak langkah (waktu tempuh) + memori
= kompleksitas waktu

-          Sequensial
Statement s1 dgn banyak langkah n(s1)
Statement s2 dgn banyak langkah n(s2)
   banyak langkah = n(s1)+n(s2)

Assigment dgn konstanta mempunyai waktu tempuh 0

x = 0

y = 1                   1 operation
n = x+y

Built in subroutine call mempunyai waktu tempuh 1

Sin(x)                         -> 1 op

Sin(x*pi/1000) -> 3 op



-          Branching (percabangan)
If (kondisi) Then statement s1
   Else statement s2

                                                                                    contoh
Jika n(kondisi) = waktu tempuh kondisi         -> 2 op
     n(s1) = waktu tempuh statement s1      -> 5 op
    n(s2) = waktu tempuh satement s2       -> 3 op
Maka
    waktu tempuh = n(kondisi) + max(n(s1),n(s2))
                                 = 2 + 5
                                 = 7

-          Loop
For Loop

For var ß awal to akhir step diff.

    Statement S(var)

Statement S(var)          tidak tergantung var
                                     tergantung var

Jika statement dalam inner loop tidak bergantung pada var,
maka statement tersebut diulang sebanyak





à


Misalnya waktu tempuh untuk statement tersebut adalah Ts, maka waktu tempuh dengan loop tsb adalah t*Ts.
Waktu tempuh untuk control loop adalah t*1.
Jadi waktu tempuh untuk loop tersebut adalah t * Ts + t = t (Ts+1)








Contoh :

1.      for i ß 2 to 30 step 5


Ts = 2
 
x ß x+1

y ß x+y

              Berapa waktu tempuhnya ?


          T = t (Ts+1)
             = 6 (2+1)
          = 18

2.     n=20

for i ß 2 to 2*n step 5


Ts = 2
 
x ß x+1

y ß x+y

              Berapa waktu tempuhnya ?

 

Looping à


        Tfor = t (Ts+1)
                = 8 (2+1)
               = 24
   Waktu tempuh perkalian 2*n  à T2*n = 1
   Jadi waktu tempuhnya = T = 24 + 1
                                                  = 25

3.     for iß1 to 10
x ß x+1                  à 1 op
if x>=1 then


2 op
 
x ß x-2

max(2,1)
 
y ß x^2
else
       y ß x+y   à 1 op
Berapa waktu tempuhnya ?


          Waktu tempuh dlm percabangan = max(2,1)
Ts = 1 + max(2,1) = 3
T = t (Ts+1)  = 10 (3+1) = 40

Jika statement tergantung nilai var
       For var ß awal to akhir step diff
               S(var)
    



Rabu, 21 September 2011

INTEL Core i7 2600 K

            Perubahan besar kedua Anda akan melihat tahun ini dapat ditemukan di dalam prosesor seperti yang kita akan mulai melihat core prosesor grafis terintegras. Tahun lalu, persis setahun lalu tepat, kami sudah dibiasakan diri dengan Core i5 650, 660 dan 661 prosesor. CPU ini sudah memiliki GPU dalam diri mereka, dengan satu perbedaan, mereka memiliki dua chip kecil sedikit pada prosesor matiIntel tidak pernah cukup mencapai 4GHz dengan Pentium 4. Meskipun pada quest khusus untuk gigahertz perusahaan berhenti dan terbaik yang pernah kami dapatkan adalah 3.8GHz. Dalam setahun adalah ulang dan kami semua berjalan Core 2 Duo di bawah 3GHz. Dengan setiap generasi berikutnya Intel beringsut kecepatan tersebut clock yang lebih tinggi, tetapi lebih suka untuk mendapatkan kinerja melalui efisiensi daripada frekuensi.
 
Hari ini tentu saja kita akan meninjau arsitektur Intel terbaru, yang dikembangkan di bawah Jembatan codename keluarga Sandy. Intel hari ini secara resmi mengumumkan Core i5 2500 dan 2600 Core i7 prosesor. Core i7 baru-2600K (3,4 GHz) adalah CPU quad-core, Core i7-2600K dilengkapi dengan teknologi Hyper-Threading, yang berarti bahwa sistem operasi mengenali delapan CPU, dua per core CPU. Tentu saja ini ekstra "core" yang disimulasikan.
 
Dengan empat core dan delapan thread (berkat teknologi Hyper-Threading Intel), Core i7-2600K prosesor pasti menempati posisi di atas rentang baris baru Intel Sandy Bridge Ia memiliki kecepatan clock dasar 3,4 GHz, tetapi dapat setinggi 3,8 GHz saat Turbo Boost diaktifkan, 8MB L3 cache, dan memiliki TDP 95 watt. K dalam nama CPU berarti bahwa, di samping kekuasaan laten, ia juga memiliki multiplier unlocked untuk kemudahan yang lebih besar dari overclocking. Yang membuat chip yang diarahkan untuk dompet-menonton peminat yang ingin banyak kinerja manfaat top-of-the-line Intel chip tanpa sakit bank account yang dapat menyertai uang untuk membeli sesuatu seperti Core i7-980X .
 
Core i7-2600K dilengkapi dengan unit kipas heat sink baru yang mirip dengan yang diperkenalkan dengan tahun i7-980X core terakhir, dan yang membutuhkan braket khusus untuk dipasang di bawah motherboard, ini adalah mudah jika Anda merakit sistem dari awal, tetapi tidak jika Anda ingin mengganti chip dalam satu Anda sudah dibangun.

Rabu, 14 September 2011

PROGRAM KOMPUTER





PENJELASAN DAN CONTOH-CONTOH PENGGUNAAN OPERATOR

1. Assigment Operator

   
    Assignment operator = merupakan operator  yang digunakan untuk memberi nilai ke suatu variabel atau variabel ke variabel lain.menggunakan simbol titik dua diikuti oleh tanda sama dengan (:=).  Type : integer

 Contoh :
                        A:=B;

2. Binary Operator
  

Binary Operator = Digunakan untuk mengoperasikan dua buah operand. Operand dapat berbentuk konstanta ataupun variabel. Operator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe data integer dan real.

Operator
Operasi
Tipe operand
Tipe hasil
*
Perkalian
real,real
integer,integer
real,integer
real
integer
real
DIV
Pembagian bulat
integer,integer
integer
/
Pembagian real
real,real
integer,integer
real,integer
real
real
real
MOD
Sisa pembagian
integer,integer
integer
+
Pertambahan
real,real
integer,integer
real,integer
real
integer
real
-
pengurangan
real,real
integer,integer
real,real
real
integer
real

Contoh :
                        15*5              hasilnya         75
                        20/3               hasilnya         6.6666666667E+00
                        20 div 3         hasilnya         6
                        20 mod 3      hasilnya         2
3. Unary Operator

     Unary operator = Operator ini hanya menggunakan sebuah operand saja. Dapat berupa unary minus dan unary plus. Unary minus digunakan untuk menunjukkan nilai negatif, baik pada operang numerik real maupun integer. Unary plus adalah operator untuk memberai tanda plus.

Contoh :
                        -5        +7
                        -2.5    +2.5

4. Bitwise Operator 
  
    Bitwise Operator = Digunakan untuk operasi bit per bit pada nilai integer. Terdiri dari operator NOT, AND, OR, XOR, Shl, Shr. Type : int atau char
Bitwise operator, dari namanya sudah jelas diketahui pasti berhubungan dgn bit. Biasanya digunakan utk memanipulasi data bertipe bit dari tipe data integer atau byte. Bitwise ini sering dipakai dalam kasus enkripsi,kompresi,format file,jaringan(protokol),processing audio/video,dll.
Macam-macam Bitwise:
1.Bitwise And (&)
2.Bitwise OR / inclusive OR (|)
3.Bitwise XOR / Exclusive OR (^)
4.Bitwise Complement (~)

Bitwise AND
 Kalau kedua operand adalah 1,maka hasilnya 1. Selain itu hasilnya 0.
contoh:
 13 & 11 = 9 <--- mengapa hasilnya 9?
mari kita uraikan:
13 = 00000000 00000000 00000000 00001101
11 = 00000000 00000000 00000000 00001011
        -------------------------------------------------------------- &
       00000000 00000000 00000000 00001001 <- hasilnya 9

Bitwise OR
 Kalau kedua operand adalah 0,maka hasilnya 0. Selain itu hasilnya 1.
contoh:
 13 | 11 = 15 <--- mengapa hasilnya 11?
mari kita uraikan:
13 = 00000000 00000000 00000000 00001101
11 = 00000000 00000000 00000000 00001011
        -------------------------------------------------------------- |
       00000000 00000000 00000000 00001111 <- hasilnya 15

Bitwise XOR
 Kalau kedua operand adalah 1 atau 0,maka hasilnya adalah 0. Selain itu hasilnya 1.
contoh:
 13 ^ 11 = 6 <--- mengapa hasilnya 6?
13 = 00000000 00000000 00000000 00001101
11 = 00000000 00000000 00000000 00001011
        -------------------------------------------------------------- ^
       00000000 00000000 00000000 00000110 <- hasilnya 6

Bitwise Complement
 Nilai operand akan menjadi bernilai negatif dan dikurangi 1.
contoh:
 1.~0
 2.~5
 3.~-0
 4.~-5
~0 = -1
~5 = -6
~-0 = -1
~-5 = 4

bit 1
bit 2
AND
OR
XOR
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0


5. Relational Operator 
   
   Relational operator  = digunakan untuk  membandingkan hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, yaitu True atau False. Terdiri dari operator : =, <, >, <=, >=, <>
contoh
<HTML>
<HEAD>
<TITLE>Contoh Operator Relasional</TITLE>
</HEAD>
<BODY>

  <?php
    $a  = 1;
    $b  = 2;
    $c  = 1;

    printf("$a > $b  -> %d<BR>\n", $a > $b);
    printf("$b > $a  -> %d<BR>\n", $b > $a);
    printf("$a < $b  -> %d<BR>\n", $a < $b);
    printf("$a == $c -> %d<BR>\n", $a == $c);
    printf("$a == $b -> %d<BR>\n", $a == $b);
    printf("$a != $c -> %d<BR>\n", $a != $c);
    printf("$a <> $c -> %d<BR>\n", $a <> $c);
  ?>
</BODY>
</HTML>

Hasil :

1 > 2 -> 0
2 > 1 -> 1
1 < 2 -> 1
1 == 1 -> 1
1 == 2 -> 0
1 != 1 -> 0
1 <> 1 -> 0

6. Logical Operator 


     Logical Operator = digunakan untuk membandingkan dua nilai variabel
yang bertipe boolean. Hasil yang didapat dari penggunaan logical operator adalah boolean.
Terdapat 4 buah logical operator yaitu : NOT, AND, OR dan XOR. Operator ini bekerja dengan nilai-nilai logika, yaitu True dan False.
contoh  :
<HTML>
<HEAD>
<TITLE>Contoh Operator Logika</TITLE>
</HEAD>
<BODY>

  <?php
    $kar = 'a';
    printf("$kar adalah huruf kapital : %d<BR>\n",
           $kar >= 'A' and $kar <= 'Z');
    printf("$kar adalah huruf kecil : %d<BR>\n",
           $kar >= 'a' and $kar <= 'z');
    printf("$kar adalah angka : %d<BR>\n",
           $kar >= '0' and $kar <= '9');

  ?>
</BODY>
</HTML>
 hasil  :
a adalah huruf kapital : 0
a adalah huruf kecil : 1
a adalah angka : 0

7. Set Operator
    Set Operator = Digunakan untuk operasi himpunan. operator ini digunakan untuk program yang bekerja dengan suatu himpunan yang berbentuk array atau larik. Himpunan yang diperbolehkan oleh pascal untuk dijadikan suatu array adalah 256 dengan range antara 0 sampai 255. Contoh penggunaan Set Operator seperti dibawah ini :

{ Program menghitung Huruf
  by : Suryatekno@2008 }
 
uses crt;
type
  karakter = set of char;
var
  huruf      : karakter;
  teks       : string[255];
  jumlah, I  : word;
begin
  clrscr;
  writeLn('Ketiklah kata  Apa saja dibawah ini :');
  writeLn;
  readLn(teks);
  huruf := ['a'..'z','A'..'Z'];
  jumlah := 0;
   for I := 1 to ord(teks[0]) do
   if teks[I] in huruf then
  jumlah := jumlah+1;
 writeLn;
writeLn('Jumlah huruf yang anda masukan = ',jumlah,' huruf');
 writeLn('Kalau tidak percaya hitung saja sendiri !');
  writeLn;writeLn;
  writeLn('Tekan Enter untuk keluar');
 readLn;
end.

8. String Operator 


    String Operator = Digunakan untuk operasi string. Hanya ada sebuah operator string saja, yaitu operator + yang digunakan untuk menggabungkan dua buah nilai string.

Contoh : 
                        Nama1 := ‘Arief ‘;
                        Nama2 := ‘Kurniawan’;
                        Nama3 := Nama1 + Nama2;

Sumber : http://sindy.staff.gunadarma.ac.id/
               http://roulysoufinasiahaan.posterous.com/

              http://marliza.staff.gunadarma.ac.id/


PENJELASAN DAN CONTOH ARRAY dan RECORD

A. Array



Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.

Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.

Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini :
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.


B. Record 


  Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array).
Contoh , sebuah record dengan empat
buah field

Cara Pendefinisian
• Cara pendeklarasian dari record adalah sbb:
• Mendefinisikan tipe dari record (jumlah field, jenis
tipe data yang dipakai),
• Mendefinisikan variabel untuk dilakukan operasi

Sintax
type
nama_record = record
identifier_1 : tipe_data_1;
:
:
identifier_n : tipe_data_n;
end;
var variabel : nama_record;

Contoh 1
type
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : String;
Kodepos : integer;
end;
Var
x: Data_mahasiswa;

Contoh 2

VAR nilai : RECORD
Nilai_1 : integer;
Nilai_2 : integer;
END;
Contoh 3

TYPE date = RECORD
Tanggal : 1..31;
Bulan : 1…12;
Tahun : 1900..2000;
END;
VAR event1,event2 : ARRAY [1..10] OF date;


Contoh 4

TYPE account = RECORD
cust_no : integer;
cust_type : char;
cust_balance : real;
END;
VAR customer : account;
Pengaksesan Elemen Record
x.Nama
x.Usia
x.Kota
x.Kodepos
Contoh Program
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin
waktu.hari :=25;




TABEL ASCII


Ascii Table


EBCDIC and IBM Scan Codes