Senin, 25 Februari 2013

Pointer



POINTER

1 PENGERTIAN POINTER
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu
variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam
memori. Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertama
dikatakan menunjuk ke variabel kedua
Operator Pointer ada dua, yaitu :
Ø  Operator &
Operator & bersifat unary (hanya memerlukan satu operand saja).
Operator & menghasilkan alamat dari operandnya.
Ø  Operator *
Operator * bersifat unary (hanya memerlukan satu operand saja).
Operator * menghasilkan nilai yang berada pada sebuah alamat.

2 DEKLARASI POINTER

Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan.
Bentuk Umum :
Tipe_data *nama_pointer;

//Contoh9_1
int *px;
char *sh;
Contoh Program :
#include “IOSTREAM.h”
#include “conio.h”
void main()
{ int x, y; /* x dan y bertipe int */
int *px; /* px pointer yang menunjuk objek */
clrscr();
x = 87;
px = &x; /* px berisi alamat dari x */
y = *px; /* y berisi nilai yang ditunjuk px */
cout<<“Alamat x =”<<&x <<\n”;
cout<<“Isi px = \n”, px);
cout<<“Isi x = \n”, x);
cout<<“Nilai yang ditunjuk oleh px = \n”, *px);
cout<<“Nilai y = \n”, y);
getch();
}

3 OPERASI POINTER
Ø  Operasi Penugasan
Suatu variable pointer seperti halnya variable yang lain, juga bisa mengalami operasi
penugasan. Nilai dari suatu variable pointer dapat disalin ke variable pointer yang lain.


//Contoh9_2
#include "iostream.h"
#include "conio.h"
void main()
{ float *x1,y, *x2;
clrscr();
y = 13.45;
x1 = &y;            /* Alamat dari y disalin ke variabel x1 */
x2 = x1;            /* Isi variabel x1 disalin ke variabel x2 */
cout<<"Nilai variabel y =  "<<y<< " ada di alamat "<< x1<<"\n";
cout<<"Nilai variabel y =  "<<y<< " ada di alamat "<< x2<<"\n";
 getch();
}
Ø  Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer
saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.
Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index
selanjutnya) dalam memori. Begitu juga operasi pengurangan.
//Contoh9_3
#include <iostream.h>
#include <conio.h>
void main()
{ int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
cout<<"Nilai "<<*penunjuk <<" ada di alamat memori " <<penunjuk<<"\n";
cout<<"Nilai "<<*(penunjuk+1) <<" ada di alamat memori " <<penunjuk+1<<"\n";
cout<<"Nilai "<<*(penunjuk+2) <<" ada di alamat memori " <<penunjuk+2<<"\n";
getch();
}

Ø  Operasi Logika
Suatu pointer juga dapat dikenai operasi logika.
//Contoh9_4
#include<iostream.h>
#include "conio.h"
void main()
{ int a = 100, b = 200, *pa, *pb;
clrscr();
pa = &a;
pb = &b;
cout<<"nilai pa= "<<pa<< " nilai pb= "<<pb<<"\n";
if(pa < pb)
cout<<"pa menunjuk ke memori lebih rendah dari pb\n";
if(pa == pb)
cout<<"pa menunjuk ke memori yang sama dengan pb\n";
if(pa > pb)
cout<<"pa menunjuk ke memori lebih tinggi dari pb\n";
getch();}
4 POINTER DAN STRING

//Contoh9_5
#include <iostream.h>
#include <conio.h>
void misteri1(char *);
void main() {
char string[] = "amikom";
cout<< "String sebelum proses adalah " << string <<"\n" ;
misteri1(string);
cout<<"String setelah proses adalah "<<string;
getch();
}
void misteri1(char *s) {
while ( *s != '\0' ) {
if ( *s >= 'a' && *s <= 'z' )
*s -= 32;
++s;
}
}
5 POINTER MENUNJUK SUATU ARRAY
//Contoh9_6
#include "iostream.h"
#include "conio.h"
void main()
{ static int tgl_lahir[] = { 13,9,1982 };
int *ptgl;
ptgl = tgl_lahir; /* ptgl berisi alamat array */
cout<<"Diakses dengan pointer\n";
cout<<"Tanggal = "<< *ptgl<<"\n";
cout<<"Bulan = "<< *(ptgl + 1) <<"\n";
cout<<"Tahun = "<<*(ptgl + 2) <<"\n";
cout<<"\nDiakses dengan array biasa\n";
cout<<"Tanggal = "<< tgl_lahir[0] <<"\n";
cout<<"Bulan = "<< tgl_lahir[1] <<"\n";
cout<<"Tahun = "<< tgl_lahir[2] <<"\n";
getch();
}

MEMBERI NILAI ARRAY DENGAN POINTER
//contoh9_7
#include "iostream.h"
#include "conio.h"
void main()
{ int x[5], *p, k;
clrscr();
p = x;
x[0] = 5;
x[1] = x[0];
x[2] = *p + 2;
x[3] = *(p+1) - 3;
x[4] = *(x + 2);
for(k=0; k<5; k++)
cout<<"x["<<k<<"] = "<< x[k]<<"\n";
getch();
}

Tugas:
1.      Buatlah Program untuk menggambarkan konsep Pointer: menampilkan alamat pointe dan isi pointer, dengan ketentuan sbb,
      Variabel  bilangan bulat   bil= 20;
      dan variabel pointer  bulat   *pnt.
2.       Buatlah  program  untuk  menampilkan  isi dan alamat pointer larik (array)   
int    * bilangan[]={5,7,8,3};



MEMORI DINAMIS

Pada contoh program di samping kiri sejumlah memori secara ekplisit disisihkan untuk menampung array titik yang mempunyai 10 elemen. Sebenamya alokasi memori ini, hanya yang dibutuhkan saja, dapat dilakukan secara dinamis yaitu dilakukan pada saat run-time, Untuk melakukan hal ini kita perlu array yang elemen elemennya adalah pointer ke suatu struktur seperti dijelaskan pada program di samping kanan.
             Alokasi memori secara dinamis dilakukan dengan operator new dan dealokasi dilakukan dengan operator delete. Keduanya merupakan operator baru pada C++.


#include <iostream.h>

struct ttk
{
int x;
int y;
};
main()
{
int i;
struct ttk titik[10];

for (i=0; i < 10; ++i)
{
titik[i].x = i ;
titik[i].y=i;}
for(i=0;i< 10;++i)
{cout << titik[i].x << ", " << titik[i].y << "\n";
}
return 0;}

#include <iostream.h>

  struct ttk
  {
  int x;
  int y;
  };
  main()
  {
  int i;
  struct ttk *titik[10];
 
  for(i=0;i<10;++i)
  {
  titik[i] = new ttk;
  titik[i]->x=i;
  titik[i]->y = i;
  }
  for (i=0;i< 10;++i)
  {
cout << titik[i]->x  <<  ", "  <<  titik[i]->y << "\n";
                }
  for(i=0;i< 10;++i)
  {
  // free(titik[i]);
  delete titik[i];
  }
  return 0;
  }

Perbedaan Intel dan Amd



I.                    Pendahuluan
                Dari sebuah produk pasti mempunyai  keunggulan sendiri - sendiri dari produk lain dari produsen yang berbeda, begitu pula pada produk procesor komputer yaitu intel dan Amd yang di ciptakn dari perusahaan yang berbeda. Intel Corporation adalah sebuah perusahaan multinasional yang berpusat di AS dan terkenal dengan rancangan dan produksi mikroprosesor dan mengkhususkan dalam sirkuit terpadu. Sedangkan AMD (Advanced Micro Devices) adalah sebuah perusahaan pembuat sirkuit terpadu, prosesor atau IC (integrated circuit) yang bermarkas di Sunnyvale, California, Amerika. Untuk mengetahui perbedaan perbedaan yang lebih mendalam dari kedua procesor tersebut maka saya memnuat makalah ini. Semoga bermanfaat untuk kita semua

II.                Tujuan
1.      Mengetahui perbedaan antara processor Intel dan Amd.
2.      Mengetahui perbedaan komponen Intel dan Amd.

Beberapa perbedaan, keunggulan dan kekurangan prosesor Intel dan AMD :
1. Set instruksi pada Intel adalah MMX, SSE,SSE2, dan SSE3, tetapi pada AMD SSE2 dan 3DNow. Tetapi dari sekian banyak istruksi yang dipakai oleh intel sebetulnya telah ada dalam 3DNow-nya AMD yang tidak dimiliki oleh Intel.
2. L1 pada Intel maksimal 32K, sedang pada AMD adalah 128K. Bedasarkan beberapa test AMD dengan L1 128K lebih unggul dibanding dengan Intel.
3. Banyak transistor pada Intel 100 milyar sedang AMD 105 milyar.
4. Banyaknya Decoder, Integer, FP pada intel lebih sedikit dibanding AMD yang secara signifikan perbedaan tersebut meningkatan kinerja dari AMD.
5. Temperatur pada Intel dapat diatur oleh processornya sendiri (processor akan mengurangi kecepatan jika processor terlalu panas), pada AMD64 temperatur maksimum adalah 900C. Teknologi Intel lebih unggul dibanding AMD.
6. AMD lebih unggul dalam pengolahan komunikasi aplikasi, seperti transfer data pada modem, ADSL, MP3, dan Doubly Digital Suround Sound.
7. Pipeline pada intel lebih panjang dibanding dengan AMD, tetapi pipeline Intel bermasalah pada pertukaran tugas, sehingga pipeline intel kecepatannya melambat berada dibawah AMD.
8. Intel menang di brand image dan marketnya, sedangkan AMD harganya yang lebih murah.
9. Pada prosesor Intel Pentium 4 harga standard, kinerjanya lumanyan cepat. Memang sih, untuk urusan grafis masshi kalah dibanding dengan AMD, tapi paling tidak prosesor Intel tidak cepat panas.
10. Pada prosesor AMD Athlon harga agak murah dibanding Intel. Grafis bagus banget, kecepatannya lumayan, tapi cepet banget panas dibandingkan Intel.

v  PERBANDINGAN KECEPATAN PROSESOR INTEL DAN AMD 
Dari segi penggunaanya, perangkat keras yaitu prosesor ini bagian penting dari komputer yang berfungsi sebagai inti dari kinerja komputer ini sendiri dimana semakin besar memori dan semakin banyak prosesornya semakin cepat juga kinerja yang di hasilkan oleh prosesor itu sendiri.
Prosesor yang cepat dapat kita lihat dari core (inti prosesor) semakin banyak core yang digunkan pada prosesor semakin cepat juga kinerja komputer yang kita gunakan. Mengapa demikian, karena prosesor bekerja didalam aplikasi-aplikasi program atau game yang kita pakai semakin banyak aplikasi yang kita jalankan semakin banyak juga prosesor kita gunakan.
v  Kesimpulan sebagai berikut :
1. Untuk menggunakan prosesor Intel anda harus mengeluarkan banyak biaya   apalagi dengan performanya tinggi yang di hasilkan oleh prosesor Intel yaitu Intel i7 dimandingkan dengan prosesor AMD anda tidak akan mengeluarkan banyak biaya dan performanya juga lumanyan bagus. Oleh karena itu utuk anda yang biayanya pas-pasan pilihlah prosesor AMD tapi kalau biaya yang anda punya lebih silahkan anda memilih prosesor Intel.
2. Prosesor Intel dan Prosesor AMD telah di uji performannya ternyata prosesor intel lah yang kuat dalam hal apapun sedangkan prosesor AMD hanyalah pilihan kedua anda.
3. Prosesor Intel lebih kuat dari porsesor AMD pada aplikasi multimedia, sebaliknya prosesor AMD menang dari prosesor Intel di gaming dan program 3D nya.