Ads

Welcome to My Blog

Semoga Artikel ini bermanfaat bagi para viewers :)

Welcome to My Blog

Semoga Artikel ini bermanfaat bagi para viewers :)

Welcome to My Blog

Semoga Artikel ini bermanfaat bagi para viewers :)

Welcome to My Blog

Semoga Artikel ini bermanfaat bagi para viewers :)

Welcome to My Blog

Semoga Artikel ini bermanfaat bagi para viewers :)

Thursday 28 May 2015

Belajar dengan program C#

Ini adalah contoh Source Code untuk menampilkan tanggal,bulan,tahun,jam,menit, dan detik beserta penjelasannya dengan C#

using System;// import library ,untuk mengimport class yang sudah disediakan oleh c#

namespaceAnshar// penamaan program
{
publicclassTime// public untuk mengakses class, time adalah nama class
    {
int tahun, bulan, tanggal, jam, menit, detik;// pendeklarasian nama variabel dan int adalah tipe data integer
publicvoid Displaycurrentime()//public void adalah prosedur yang tidak bisa mengembalikan nilai
        {
Console.WriteLine("SEKARANG TANGGAL " + tanggal + " BULAN " + bulan + " TAHUN " + tahun + " jam " + gethour() + " : " + menit + " : " + detik);// console.writeline untuk mencetak hasil proses dan line itu untuk enter
        }
publicint gethour()// public int berarti fungsi integerdan gethour() itu menunjukan jika itu adalah fungsi
        {
return jam;//jam itu untuk mengembalikan nilai ke fungsi gethour()
        }
publicvoid gettime(refint h, refint m, refint s)// ref mengembalikan output ke class lain/method lain
        {
            h = gethour();
            m = menit;
            s = detik;
// pemberian nilai pada variable nilai
        }
public Time(System.DateTime dt)// parameter DateTime adalah constructor dan dt adalah variabelnya
        {
            tahun = dt.Year;
            bulan = dt.Month;
            tanggal = dt.Day;
            jam = dt.Hour;
            menit = dt.Minute;
            detik = dt.Second;// tahun,bulan,tanggal,jam,menit,dad detik itu untuk menentukan nilai yg sedang berlangsung seperti year, month dan seterusnya
        }
    }
classansharkeren// class dengan nama class “ansharkeren”
    {
staticvoid Main(string[] args)// indeks program
        {
DateTime currentime = System.DateTime.Now;// memanggil waktu yang sedang berjalan dengan nama variabel “currentime”
Time a = newTime(currentime);// objek ‘a’ bertipe class time dengan memanggil constructor dengan parameter “currentime”
            a.Displaycurrentime();//pemanggilan method displaycurrentime() dalam class time
inthour = 0;
intminute = 0;
intsecond = 0;//untuk pengondisian nilai (not null)

            a.gettime(refhour, refminute, refsecond);//pemanggilan method gettime dengan parameter hour,time,second
Console.WriteLine("current time " + hour + " : "+ minute + " : " + second);//mencetak dari method gettime
Console.ReadKey();// semua input dibaca enter agar program tidak langsung close
        }
    }
}





using System; // import library ,untuk mengimport class yang sudah disediakan oleh c#

namespace Ansharkerenlagi// penamaan program
{
publicclassTime // public untuk hak akses class dan time adalah nama class
    {
int tahun, bulan, tanggal, jam, menit, detik; // pendeklarasian nama variabel
publicvoid Displaycurrentime() //public void menunjukkan prosedur yang tidak dapat mengembalikan nilai
        {
Console.WriteLine("SEKARANG TANGGAL " + tanggal + " BULAN " + bulan + " TAHUN " + tahun + " jam " + gethour() + " : " + menit + " : " + detik); // console.writeline untuk mencetak hasil proses dan line itu buat enter
        }

public Time(DateTime dt) // constructor dengan parameter datetime dan variabel dt
        {
            tahun = dt.Year;
            bulan = dt.Month;
            tanggal = dt.Day;
            jam = dt.Hour;
            menit = dt.Minute;
            detik = dt.Second; //tahun,bulan,tanggal,jam,menit,dad detik itu untuk menentukan nilai yg sedang berlangsung seperti year, month dan seterusnya
        }
    }
classSelalukeren// class dengan nama class Selalukeren
    {
staticvoid Main(string[] args)// indeks program
        {
DateTime currentime = System.DateTime.Now; // memanggil waktu yang sedang berjalan  dengan variabel currentime
Time a = newTime(currentime); // objek ‘a’ bertipe class time dengan memanggil constructor dengan parameter currentime
            a.Displaycurrentime(); //pemanggilan method displaycurrentime() dalam class time

Console.ReadKey(); // semua input dibaca enter agar program tidak langsung close
        }
    }
}





Wednesday 20 May 2015

Cara Menghitung Berat Badan Ideal dan Kebutuhan Kalori (Penentuan Status Gizi)

Cara Menghitung Berat Badan Ideal dan Kebutuhan Kalori


Perhitungan jumlah kalori ditentukan oleh status gizi, umur, ada tidaknya stres akut, dan kegiatan jasmani. Penentuan status gizi dapat dipakai indeks masa tubuh (IMT) atau rumus Broca. 

Penentuan Status Gizi Berdasarkan IMT 
IMT dihitung berdasarkan pembagian berat badan (dalam kilogram) dibagi dengan tinggi badan (dalam meter) kuadrat. 
Klasifikasi status gizi berdasarkan IMT : 


Penentuan Status Gizi Berdasarkan Rumus Broca 
Pertama-tama dilakukan perhitungan berat badan idaman berdasarkan rumus : 
Berat badan idaman (BBI) = ( TB cm - 100 ) - TB X10 %. 
Untuk laki-laki < 160 cm, wanita < 150 cm, perhitungan BB idaman tidak dikurangi 10 %. 

Penentuan status gizi dihitung dari : (BB aktual : BB idaman) x 100% 
- Berat badan kurang BB < 90 % BBI 
- Berat badan normal BB 90 - 110 % BBI 
- Berat badan lebih BB 110 - 120 % BBI 
- Gemuk BB > 120 % BBI 

Untuk kepentingan praktis dalam praktek di lapangan, digunakan rumus Broca. 
Penentuan kebutuhan kalori per hari : 
1. Kebutuhan basal : 
Laki-laki : BB idaman (kg) X 30 kalori 
Wanita : BB idaman (kg) X 25 kalori 

2. Koreksi atau penyesuaian : 
Umur diatas 40 tahun : - 5 % 
Aktivitas ringan : + l0 % (duduk-duduk, nonton televisi dll) 
Aktivitas sedang :+20% (kerja kantoran, ibu rumah tangga, perawat, dokter) 
Aktivitas berat :+30% (olahragawan, tukang becak dll) 
Berat badan gemuk :-20% 
Berat badan lebih : -l0 % 
Berat badan kurus :+20% 

3. Stres metabolik : +10-30 % (infeksi, operasi, stroke, dll) 

4. Kehamilan trimester I dan II : + 300 Kalori 

5. Keharnilan trimester III dan menyusui : + 500 Kalori 

Makanan tersebut dibagi dalam 3 porsi besar untuk makan pagi (20%), makan siang (30%), makan malam (25%) serta 2-3 porsi ringan (10-15%) di antara makan besar. Pengaturan makan ini tidak berbeda dengan orang normal, kecuali dalam pengaturan jadwal makan dan jumlah kalori. Usahakan untuk merubah pola makan ini secara bertahap sesuai dengan kondisi dan kebiasaan penderita. 

Contoh : 
Amin adalah seorang laki laki pengusaha yang ingin mendaki ke Gunung Semeru. Ia memiliki postur tinggi 170 cm dan Berat 50 kg. Ia mendaki dalam keadaan sehat jasmani dan rohani. Tetapi, amin membutuhkan cara untuk memanajemeni ransum nya. Berapakah kalori yang di butuhkan amin untuk melakukan aktifitas mendaki ke semeru?

Perhitungan Kebutuhan kalori :
BBI = (TB - 100) kg - (TB X 10%) 
       = 70 - 7
       = 63 kg

Status Gizi = (BB Aktual : BBI ) X 100% 
                  = (70 : 63) X 100%
                  = 111 % ( Termasuk Berat Badan Lebih)

Jumlah kebutuhan kalori per hari :
Kebutuhan kalori basal =
BBI X 30 (X 30 karena laki-laki) =
63 X 30 = 1890 kalori

Kebutuhan untuk aktifitas berat (mendaki termasuk aktifitas berat) ditambah 30% = 30 % X 1890 = 567 kalori

Koreksi atau penyesuain:
Koreksi krn kelebihan BB dikurangi 10% = 10% X 1890 = 189 kalori

Jadi, Total Kebutuhan Kalori per hari adalah
1890 kalori + 567 kalori - 189 kalori = 2268 kalori.
Untuk mempermudah perhitungan dalam konsultasi gizi digenapkan menjadi 2200 kalori. 

Distribusi makanan : 
1. Karbohidrat 60% = 60% x 2200 kalori =1320 kalori dari karbohidrat yang setara dengan 330 gram karbohidrat (1320 kalori : 4 kalori / gram karbohidrat) 
2. Protein 20% = 20% x 2200 kalori = 440 kalori dari protein yang setara dengan 85 gram protein (340 kalori : 4 kalori / gram protein) 
3. Lemak 20% = 20% x 2200 kalori = 440 kalori dari lemak yang setara dengan 48.8 gram lemak (440 kalori : 9 kalori/gram lemak)

Contoh lain:
Pasien seorang laki-laki berusia 48 tahun, mempunyai tinggi 160 cm dan berat badan 63 kg, mempunyai pekerjaan sebagai penjaga toko. Perhitungan kebutuhan kalori : 
Berat badan ideal = (TB cm - 100) kg - 10% = (160 cm - 100) kg -10% =60 kg – 6 kg = 54 kg. 
Status gizi = ( BB aktual : BB ideal ) x 100 % = (63kg:54kg)x100% = 116 % ( termasuk berat badan lebih ) 
Jumlah kebutuhan kalori perhari : 
- kebutuhan kalori basal = BB ideal x 30 kalori = 54 x 30 kalori = 1620 kalori 
- kebutuhan untuk aktivitas ditambah 20% = 20% x 1620 kalori = 324 kalori 
- koreksi karena kelebihan berat badan dikurangi 10% = 10% x 1620 = 162 kalori 
Jadi total kebutuhan kalori perhari untuk penderita 1620 kalori + 324 kalori - 162 kalori = 1782 kalori. Untuk mempermudah perhitungan dalam konsultasi gizi digenapkan menjadi 1700 kalori. 

Distribusi makanan : 
1. Karbohidrat 60% = 60% x 1700 kalori =1020 kalori dari karbohidrat yang setara dengan 255 gram karbohidrat (1020 kalori : 4 kalori / gram karbohidrat) 
2. Protein 20% = 20% x 1700 kalori = 340 kalori dari protein yang setara dengan 85 gram protein (340 kalori : 4 kalori / gram protein) 
3. Lemak 20% = 20% x 1700 kalori = 340 kalori dari lemak yang setara dengan 37.7 gram lemak (340 kalori : 9 kalori/gram lemak)

Sumber referensi : http://www.dragung.com

Download Kumpulan Soal SBMPTN 2008 - 2014 Lengkap dengan pembahasannya

Misi gan gua punya soal-soal SBMPTN nih buat para lulusan SMA atau anak kuliah yang pengen daftar universitas lagi hehe..


Buat yang mau ikut lagi SBMPTN, bisa Download soal-soal SBMPTN dari tahun 2008-2014 GRATIS di sini:



Broadcast ke teman2 kamu supaya bisa sama2 belajar bareng. Nggak usah saingan sama temen sendiri, toh kalian ngambil jurusan yang berbeda2 :)
Semoga Bermanfaat yah :)

sumber referensi : jogjastudent 

Tuesday 19 May 2015

Cara Menghapus ID COC Kita Yang Nyangkut Di Hp Android Lain atau Iphone

Sangat jengkel, marah, dan kesal jika Another device is connected to this village seketika muncul dan mungkin berlanjut saat sobat sedang bermain game COC. Ini artinya, ID COC sobat telah di buka / di mainkan oleh orang lain  dengan perangkat yang lain pula. Hal ini banyak terjadi terhadap kebanyakan orang ketika akun mereka di banned. Padahal meng upgrade th dll itu memakan waktu yang sangat lama. Nah, ini ada hal yang mungkin dapat membantu keluhan anda.


Ada beberapa hal yang menjadi penyebabnya, mungkin sobat sudah menjual smartphone sobat dan lupa menghapus COC dari perangkat sobat. Atau mungkin sobat pernah membeli ID dari orang lain yang sama sekali tidak sobat kenal, yang kemudian terjadi masalah setelah beberapa hari.


Sebenarnya sangat beresiko sekali jika kita membeli ID COC dari orang lain, apalagi dari orang yang tidak kita kenal dekat sebelumnya. Ada beberapa tips aman untuk sobat yang ingin membeli ID COC supaya tidak ada masalah di kemudian hari, dan untuk tips nya akan saya bahas pada postingan selanjutnya.


Setelah mengetahui kemungkinan penyebab dari petaka ini :D, sekarang mari kita langsung ke pokok pembahasan dari masalah ini. Satu kunci untuk dapat mengatasi masalah ini adalah, sobat memiliki akses bebas terhadap akun goole yang bersangkutan dengan ID COC, sobat harus memegang kendali penuh, tentunya harus tau email dan password nya.


Langkah Cara Menghapus ID COC Di Perangkat Android Lain / Cara Mengatasi Another device is connected to this village



  • Pastikan sobat sudah login ke akun google sobat, jika belum silahkan login dulu. Dan pastikan juga bahwa password sudah di ganti sebelummnya, (hanya sobat yang mengetaui password login). Kemudian lihat ke pojok kanan atas, ada lingkaran yang berisi gambar. klik gambar tersebut sehingga keluar pop-up kecil, klik pada akun, untuk lebih jelasnya perhatikan gambar di atas !.







  • Setelah klik akun, maka halaman yang muncul akan seperti gambar di atas, silahkan geser kebawah dan cari account permission,  (lihat yang saya lingkari merah ) pilih dan klik lihat semua / view all.






  • Selanjutnya yang akan muncul adalah sederatan nama perangkat dan aplikasi yang sudah di berikan izin akses sebelumnya. Untuk menghapus hak akses silahkan klik nama perangkat, kemudian klik cabut akases di sebelah kanan (yang saya lingkari merah).


  • Jika ada peringatan seperti gambar di bawah, klik saja OK.





  • Untuk keamanan, cabutlah semua hak akses dari perangkat dan aplikasi. Sehingga halaman berubah menjadi seperti di bawah ini.







Dan apa yang akan terjadi setelah kita melakukan langkah di atas, yang akan terjadi adalah semua perangkat dan aplikasi yang terhubung dengan akun google, akan di minta untuk login kembali termasuk pada ID COC sobat. Penampakannya seperti di bawah ini.



Saat membuak game COC, sobat akan di minta login kembali, silahkan login seperti biasa, masukkan email dan password. Dan selamat, kini ID COC sobat sudah bebas dari gangguan orang lain.

Cara ini akan bekerja apabila pengguna lain memiliki 2 ID, jika pengguna lain ini login ke ID satunya, maka dia tidak akan bisa akses COC yang bukan miliknya lagi. Dan jika si pengguna lain ini membuat ID baru, maka otomatis ID yang bukan menjadi haknya akan terhapus dari perangkat / meminta login ulang.

Ini lebih mending dari pada tidak ada solusi sama sekali, silahkan menunggu beberapa saat / beberapa hari sampai si pemilik tidak sah ini login ke ID lain, maka otomatis dia tidak akan bisa mengakses ID sobat lagi.

OK sobat, saya rasa cukup sampai di situ yang dapat saya bagikan mengenai cara menghapus ID COC dari perangkat lain. Semoga bisa membantu sobat semuanya yang sedang mengalami masalah seperti di atas, dan selamat bermain kembali.

Wednesday 13 May 2015

Soal Latihan Ujian dan Pembahasan CBT UII

Disini saya pengen ngeshare buat agan agan yang ingin mengetahui bentuk soal cbt uii sebagai bahan pembelajaran untuk menghadapi tes cbt uii gan:))
Soal ini juga berguna sebagai bahan pembelajaran tes kampus lain karena menurut pengalaman saya pribadi, tes UII itu jauh lebih susah dibanding kampus UGM dan semacamnya baik itu dalam bentuk SBMPTN atau Tes Mandiri. 
Nah untuk yang fokus UII, Soal Ujian Masuk CBT UII ini berguna untuk pembelajaran kalian sebelum tes CBT supaya ga ngabisin duit buat tes terus terusan hehe..
Disini juga lengkap dengan kunci jawaban dan pembahasan nya loh hehe.

Semoga bermanfaat dan kalian bisa lulus di kampus mentereng seperti uii yaa:))


@jokisuperyk
Ini adalah bentuk test CBT UII..
Silahkan klik link dibawah tapi maaf teman-teman karena soal ini sangat langka dan bisa gugel sendiri kalo nemu kayak punya saya ehe. Jadi, sebagai bentuk kausalitas (timbal-balik) nya. Ini ga gratis ya, cukup donasikan shopee pay teman-teman sekalian Rp. 50.000 udah bisa dimiliki selamanya. For more info, agan bisa hubungi saya lewat email disini yaaaa ;)

Oh iya satu lagi teman-teman...
Bagi kalian yang mager nugas, skripsi, jurnal, makalah, olah data, TOEFL, dll. Disini kami ada jasa joki yang super hebat karena di handle oleh superteam juga nih. Follow for more info yaaa.
Instagram: @jokisuperyk
https://bit.ly/jokiinskripsimu

cp: jokisuperyk@gmail.com

Penjelasan Kegunaan Pointer C++ Lengkap

Saya akan ngeshare penjelasan tentang kegunaan pointer C++ secara lengkap gan..
Silahkan di baca
semoga artikel saya bermanfaat gan hehe:))



Dalam ilmu komputer, pointer adalah tipe data bahasa pemrograman yang nilainya mengacu untuk menunjuk langsung nilai lain yang tersimpan di tempat lain dalam suatu memori komputer menggunakan alamat yang ada. Untuk bahasa pemrograman tingkat tinggi, pointer secara efektif dapat mengambil tempat pada general purpose registers di bahasa tingkat rendah seperti bahasa assembly atau kode mesin, tetapi bila memori tersedia.

Pointer adalah implementasi sederhana, lebih konkret tentang tipe data referensi yang lebih abstrak. Beberapa bahasa mendukung beberapa jenis pointer, walaupun ada yang memiliki lebih banyak pembatasan penggunaannya dari pada yang lain. Sebagai analogi, sebuah nomor halaman dalam buku dapat dianggap sebagai pointer ke halaman yang sesuai; dereferencing seperti pointer akan dilakukan dengan membalik ke halaman dengan nomor halaman yang diberikan.

Pointer dapat meningkatkan kinerja data secara signifikan agar operasi berulang seperti traversing string, tabel lookup, tabel kontrol dan struktur pohon. Secara khusus, sering jauh lebih efisien dalam waktu dan space untuk pointer dari pada menggunakan variable tipe data biasa.

Pointer juga digunakan untuk menyimpan alamat dari titik masuk untuk memanggil subrutin dalam pemrograman prosedural dan untuk run-time penghubung ke dynamic link libraries (DLL). Dalam pemrograman berorientasi objek, pointer ke fungsi yang digunakan untuk mengikat/menjilid method, ini sering disebut tabel method virtual.

Sementara "pointer" telah digunakan untuk merujuk pada referensi yang ada pada umumnya, hal ini berlaku lebih baik bagi struktur data yang secara eksplisit memungkinkan antarmuka (interface) pointer untuk dimanipulasi (secara aritmetik melalui aritmetik pointer) sebagai alamat memori. Karena pointer memungkinkan akses yang baik dilindungi maupun tidak dilindungi ke memori yang dituju.

Pointer primitif adalah pointer sering disimpan dalam format yang sama dengan integer. Namun, mencoba untuk dereference atau "mencari" pointer yang nilainya tidak pernah menjadi alamat memori yang valid akan menyebabkan program menjadi crash.

Deskripsi Formal:
Dalam ilmu komputer, pointer adalah macam referensi. Sebuah data primitive (primitive) adalah setiap datum yang dapat dibaca dari atau ditulis ke memori komputer menggunakan satu akses memori (misalnya, kedua byte dan kata (word) yang primitif).


Sebuah data agregat (aggregate) adalah sekelompok data primitif yang logis berdekatan di memori dan yang dipandang secara kolektif sebagai satu datum (misalnya, agregat bisa saja 3 byte logis berdekatan, maka nilai-nilai itu lah yang mewakili 3 koordinat titik di dalam ruang memori), ketika seluruh agregat yang terdiri dari jenis primitive yang sama, agregat dapat disebut sabagai sebuah array, dalam arti, multi-byte primitif adalah array dari byte.

Dalam konteks definisi ini, byte adalah primitif terkecil, masing-masing menentukan alamat memori byte yang berbeda. Alamat memori dari byte pertama pada sebuah datum dianggap sebagai alamat memori (atau base alamat memori) dari seluruh datum.

Sebuah pointer memori adalah primitive, nilai yang dimaksudkan untuk digunakan sebagai alamat memori itu disebut sebagai pointer petunjuk ke alamat memori. Hal ini juga disebut bahwa pointer menunjuk ke datum [dalam memori] ketika nilai pointer berupa alamat memori datum itu.

Secara lebih umumnya, pointer adalah jenis data referensi, dan agar memperoleh  pointer dereference maka datum pointer disimpan di lokasi yang berbeda di dalam memori. Fitur yang membedakan pointer dengan jenis referensi lain adalah nilai pointer yang dimaksud  agar ditafsirkan sebagai alamat memori, yang merupakan konsep 'tingkat rendah'.

Saat membuat struktur data seperti daftar, deret dan percabangan, perlu memiliki pointer untuk membantu mengelola bagaimana struktur dapat diimplementasikan dan dikendalikan. Contoh umum dari pointer adalah start pointer, end pointer, dan stack pointer. Pointer ini dapat menjadi absolute (alamat fisik yang sebenarnya atau alamat virtual di memori virtual) atau relative (sebuah offset dari alamat awal absolute ("dasar") yang biasanya menggunakan bit yang lebih sedikit dari pada alamat lengkap, tetapi biasanya juga akan membutuhkan satu tambahan operasi aritmatika untuk menyelesaikannya).

Dua byte offset, berisi 16-bit unsigned integer, dapat digunakan untuk menyediakan pengalamatan relative sampai dengan 64 kilobyte struktur data. Secara umum, meskipun, skema seperti itu banyak masalah, dan untuk kemudahan bagi programmer maka ruang alamat datar biasanya lebih disukai.

Sebuah byte offset, seperti nilai ASCII karakter heksadesimal dapat digunakan untuk menunjuk nilai integer alternatif dalam array. Dengan cara ini, karakter dapat sangat efisien diterjemahkan dari 'data mentah' ke indeks sekuensial dapat digunakan dan kemudian ke alamat absolut tanpa menggunakan tabel lookup.

Digunakan dalam mengontrol tabel
Kontrol tabel digunakan untuk mengontrol aliran program (program flow), biasanya membuat ekstensif menggunakan pointer. Pointer biasanya tertanam dalam sebuah entry tabel. Misalnya, digunakan untuk menyimpan entry point bagi subrutin yang akan dijalankan, dan berdasarkan kondisi tertentu yang didefinisikan dalam entri tabel yang sama.

Namun pointer  hanya dapat berupa indeks untuk memisahkan data yang lain tetapi terikat, tabel terdiri dari suatu array dari alamat yang aktual atau alamat sendiri (tergantung pada konstruksi bahasa pemrograman yang tersedia).

Pointer juga dapat digunakan untuk titik (kembali) ke entri tabel sebelumnya (seperti dalam pengolahan loop) atau maju melewatibeberapa entri tabel (seperti pada switch atau "awal" keluar dari loop).

Abstraksi pointer yang sangat tipis di atas merupakan kemampuan pengalamatan yang dikembangkan dengan arsitektur paling modern. Dalam skema sederhana, alamat atau indeks numerik, ditugaskan bagi setiap unit memori dalam sistem, di mana unit ini biasanya baik byte atau kata (word), secara efektif dapat mengubah semua memori ke array yang sangat besar. Kemudian, jika kita memiliki suatu alamat, sistem itu menyediakan operasi untuk mengambil nilai yang tersimpan dalam unit memori pada alamat (biasanya menggunakan register tujuan umum didalam mesin yang digunakan).

Dalam kasus biasa, pointer itu cukup besar untuk menampung alamat lebih dari beberapa unit memori yang berada di dalam sistem. Ini memperkenalkan kemungkinan bahwa program mungkin berusaha untuk mengakses alamat bila tidak ada unit memori, baik karena memori tidak cukup dipasang (yaitu di luar jangkauan memori yang tersedia) atau arsitektur tidak mendukung alamat tersebut. Kasus pertama mungkin, dalam platform tertentu seperti arsitektur Intel x86, disebut kesalahan segmentasi (segfault). Kasus kedua adalah mungkin dalam implementasi pada AMD64, di mana pointer yang memiliki panjang 64 bit dan alamat hanya memperpanjang sampai 48 bit. Disini pointer harus sesuai dengan aturan-aturan tertentu (alamat kanonik), jadi jika pointer nonkanonik adalah dereferenced, akan berakibat prosesor melakukan kesalahan perlindungan umum (general protection fault).

Di sisi lain, beberapa sistem memiliki lebih banyak unit memori dari pada alamat. Dalam hal ini, skema yang lebih kompleks seperti segmentasi memori atau paging dikelola untuk menggunakan bagian yang berbeda dari memori pada waktu yang berbeda pula. Inkarnasi terakhir dari arsitektur x86 mendukung hingga 36 bit dari alamat memori fisik, yang dipetakan ke ruang alamat 32-bit linear melalui mekanisme paging PAE. Jadi, hanya 1 / 16 dari total memori yang mungkin dapat diakses pada suatu waktu. Contoh lain dalam kelompok komputer yang sama adalah 16-bit dalam keadaan terlindungi dari prosesor 80286 yang meskipun mempunyai 16 MiB memori fisik, dapat mengakses hingga 1 GB dari memori virtual, namun kombinasi dari 16-bit alamat dan segmen register dapat mengakses lebih dari 64 KiB dalam satu struktur data rumit. Beberapa pembatasan aritmetik pointer ANSI mungkin memiliki model memori tersegmentasi dari kelompok prosesor ini.

Dalam rangka untuk mengembangkan interface yang konsisten, beberapa arsitektur menyediakan I / O yang dipetakan ke dalam memori, yang memungkinkan beberapa alamat untuk menuju ke unit memori sementara yang lain mengacu pada register perangkat perangkat lain di komputer. Ada konsep analog seperti file offset, indeks array, dan referensi object remote yang melayani beberapa tujuan yang sama sebagai alamat untuk jenis object lainnya.

Pointer secara langsung didukung tanpa pembatasan dalam bahasa seperti PL / I, C, C++, Pascal, dan kebanyakan bahasa perakitan. Ketika berhadapan dengan array, operasi pencarian kritis biasanya perhitungan alamat  disebut tahap perhitungan alamat yang melibatkan pembentukan sebuah array.

Dalam struktur data lain, seperti daftar terhubung (linked list), pointer digunakan sebagai referensi secara eksplisit yang mengikat salah satu bagian dari struktur yang lain. Pointer digunakan untuk menumpangi parameter bagi referensi. Hal ini berguna jika programmer mengingin modifikasi fungsi untuk parameter, untuk dapat dilihat ke pemanggilan fungsi itu. Ini juga berguna untuk menampikan nilai hasil perkalian dari dalam fungsi yang telah dibuat.

Pointer juga dapat digunakan untuk mengalokasikan atau DEALLOCATE variabel dinamis dan array dalam memori. Karena variable akan sering menjadikan memori penuh setelah selasai ngerjakan perintah, itu bisa menjadi pemborosan memori bila kita menyimpannya, dan oleh karena itu praktik yang baik untuk DEALLOCATE itu (menggunakan referensi pointer asli) ketika tidak lagi diperlukan. Kegagalan untuk melakukannya dapat mengakibatkan kehabisan memori (di mana memori bebas yang tersedia akan secara bertahap berkurang atau dalam kasus yang parah dengan secara cepat akan penuh).

Menurut Frieyadie. 2007. Edisi Revisi Buku Pemrograman C++ dengan Borland C++ 5.02.
Pointer adalah sebuah variabel yang berisi alamat lain. Suatu pointer dimaksudkan untuk menunjukan ke suatu alamat memori sehingga alamat dari suatu variabel dapat diketahui dengan mudah.
Contoh Program:
#include <stdio.h>         //Mengakses file pada library stdio.h
#include <stdlib.h>        //Mengakses file pada library stdlib.h
int main (void){             //Fungsi main yang harus ada dalam sebuah program C
   int A = 5, H;
   int *ptrA, *ptrH;         //Deklarasi pointer sebagai integer
   ptrA = &A;                //Alamat lokasi memori dari variabel A disimpan pada ptrA
   H = *ptrA;                 //Nilai data yang alamat lokasi memorinya disimpan pada ptrA,
                                        disimpan di variabel H
   ptrH = &H;                //Alamat lokasi memori dari variabel H disimpan pada ptrH
                                     // %x menampilkan nilai hexa
  printf("A=%d\n &A=%x \n ptrA=%x \n *ptrA=%d", A, &A, ptrA, *ptrA);
  printf("\n\nH=%d\n &H=%X\n ptrH=%X\n *ptrH=%d\n\n", H, &H, ptrH,*ptrH);
system ("pause");           //File yang terdapat pada stdlib.h
return (0);                     //Nilai balikan fungsi main() adalah 0
}
Arti pointer dalam bahasa sehari-hari adalah putunjuk atau dapat dikatakan sebagai penentu atau dapat diartikan sebagai tipe data yang nilainya mengarah pada nilai yang terdapat pada sebuah area memori (alamat memori).Namun dalam bahasa C, Pointer bisa berfungsi sebagai variabel array berarti pointer sebagai penunjuk elemen array ke-0 dalam variabel C.

Kegunaan Pointer Di C++ :
Kegunaan pointer yang utama adalah untuk menyimpan alamat memori dari sebuah variabel (data type atau object dari class), menyimpan alamat dari sebuah fungsi (function pointer) dan dapat berfungsi untuk  mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai variabel bisa diubah di dalam fungsi serta dapat membuat variabel dinamis.

Tipe Data Pointer :
Tipe_data merupakan tipe dari data yang ditunjuk, bukan tipe dari pointer- nya. Contoh :
1. Mensubstitusikan address sebuah variabel ke pointer dengan memakai address operator &
    int x;
    int *ptr;
    ptr = &x;

2. Mensubstitusikan address awal sebuah array ke pointer
    char t[5]; char *ptr; ptr = t;

3. Mensubstitusikan address salah satu elemen array dengan address operator
    char t[5] ; char *ptr; ptr = &t[3];

4. Mensubstitusikan address awal character string ke pointer char
    char *ptr;
    ptr = "jakarta"

5. Mensubstitusikan NULL pada pointer.
NULL ada pointer kosong, menunjukkan suatu status dimana pointer itu belum diinisialisasikan dengan sebuah address tertentu.

Operator Pointer :
Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.

Operator &
Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang berarti "address of". Contoh : ted = &input;

Penulisan tersebut berarti akan memberikan variable ted alamat dari variable input. Karena variabel input diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable.

Misalkan input diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb :
input = 25;  fred = input; ted = &input;

Operator *
Operator * merupakan operator reference. Dengan menggunakan pointer,kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by". Contoh :
beth = *ted;
(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.

Macam – macam Pointer
Pointer Bertipe Void
Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, pointer semacam ini dideklarasikan dengan tipe void sehingga sering dikenal dengan istilah Void Pointer. Berikut ini contoh listing program yang menggunakan void pointer.
Pointer Aritmetika
Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang lebih efisien, yaitu dengan menggunakan pointer. Pointer semacam ini disebut dengan istilah pointer aritmetika. Konsep dasar dari pointer aritmetika ini adalah melakukan operasi aritmetika terhadap variabel yang bertipe pointer.
Pointer NULL
Pada saat program dijalankan, pointer akan menunjuk ke alamat acak pada memori, sehingga diperlukan inisialisasi agar hal tersebut tidak terjadi. Dalam C++ terdapat sebuah cara untuk membuat pointer tidak menunjuk ke alamat manapun, yaitu dengan mengisikan pointer tersebut dengan nilai NULL. Karena hal inilah maka pointer tersebut sering dinamakan pointer NULL (NULL Pointer).Se¬bagai contoh kita mempunyai pointer p, dan kita ingin melakukan inisialisasi pada pointer tersebut dengan nilai NULL, maka sintaknya adalah  P=NULL;

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();
}

Operasi-operasi Pointer
Operasi Penugasan
Suatu variabel pointer seperti halnya variabel yang lain, juga bisa mengalami operasi penugasan. Nilai sari suatu variabel pointer dapat disalin ke variabel pointer yang lain.
Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.
Operasi Logika
Operasi logika juga dapat dilakukan pada sebuah variabel pointer.

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();}


















Pointer Dalam C++
Pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer sebenarnya sangat terkait dengan "Abstract C Machine", yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalahmesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bagian : automatic memory, static memory dan free memory. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilai alamat. Hal ini disebut dengan Random Access Memory. Pointer (variabel penunjuk) juga sering di defenisikan sebagai 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 variabelkedua.
Bagaimana Cara Menggunakan Pointer ?
Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.
Operator &

Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand(&) didepan variable , yang berarti "address of". Contoh :

ted = &andy;

Penulisan tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkanandy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb :
andy = 25;
fred = andy;
ted = &andy;

Maka hasilnya : Operator *
 Operator * merupakan operator reference. Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by". Contoh :
beth = *ted;

(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.
 Ekspresi dibawah ini semuanya benar, perhatikan :

andy = 25;
&andy = 1776;
ted = 1776;
*ted = 25;

Ekspresi pertama merupakan assignation bahwa andy = 25;. Kedua, menggunakan operator alamat (address/derefence operator (&)), sehingga akan mengembalikan alamat dari variabel andy. Ketiga bernilai benar karena assignation untukted adalah ted = &andy;. Keempat menggunakan reference operator (*) yang berarti nilai yang ada pada alamat yang ditunjuk oleh ted, yaitu 25. Maka ekspresi dibawah ini pun akan bernilai benar : *ted = andy;
Alasan Mengapa Menggunakan Pointer

Adapun alas an penggunaan pointer pada C++ adalah sebagai berikut :
Mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai variabel bisa diubah di dalam fungsi.
int nama fungsi (int *b) {
*b = *b + 1;
}
main () {
int x=1;
nama_fungsi (&x);
printf (”%d”, x); // output :2, karena x diubah di dalam fungsi menjadi x=x+1;
}
Penggunaan pointer dapat meningkatkan kinerja untuk operasi yang dilakukan secara berulang.
Contoh program yang menggunakan pointer ada di bawah (contohnya menggunakan pointer terhadap parameter yang di-pass ke aplikasi ie. argv)
Code:
/**
* pointer.c - contoh penggunaan pointer
* coded by void ;)
*/
#include
#include
int main(int argc, char **argv)
{
if (argc < style=""> /* prks prmtr yg dbrkn */
printf("aturan pakai: %s \n", argv[0]); /*jk prmtr tra pngl help */
exit(1); /* keluar */
}
printf("hello %s :)\n", argv[1]); /* tmpl psn & prmetr */
return 0; /* keluar */
}

Contoh penggunaannya
Code:
bash-4.0$ # compile source codenya
bash-4.0$ gcc -s -o pointer pointer.c
bash-4.0$ # jalankan aplikasinya tanpa parameter
bash-4.0$ ./pointer
aturan pakai: ./pointer
bash-4.0$ # jalankan aplikasinya dengan parameter
bash-4.0$ ./pointer "sandra dewi"
hello sandra dewi :)
bash-4.0$
Penjelasannya adalah kira-kira sebagai berikut :
argc adalah jumlah argumen / parameter pada command line. jumlah minimalnya adalah 1, yaitu aplikasi yang sedang dieksekusi, dan nama aplikasi yang dieksekusi tersebut disimpan pada variabel argv, tepatnya argv[0]
Seperti yang saya jelaskan di atas, variabel argv menampung parameter yang berada pada command line. kira2 seperti ini
Code:
bash-4.0$ killall enemy
argc = 2
argv[0] = killall
argv[1] = enemy
Kalau masih bingung soal argc dan argv, mungkin bisa membuka lagi buku2 pemrograman C/C++ soalnya saya juga masih newbie soal pemrograman. kalau bisa, cari buku yang judulnya "C For Scientist and Engineers", sampai sekarang saya masih belajar dari buku itu.
Nah, berikut ini sample kode serta penggunaannya untuk mengetahui nilai argc dan argv
Code:
#include
int main(int argc, char **argv)
{
static int i;
printf("nilai argc: %lu\n", argc);
for (i = 0; i <>
printf("argv[%lu] -> %s\n", i, argv[i]);
}
return 0;
}
Jika dieksekusi, maka contohnya seperti ini
Code:
bash-4.0$ ./test
nilai argc: 1
argv[0] -> ./test
bash-4.0$ ./test satu dua tiga empat capedeh
nilai argc: 6
argv[0] -> ./test
argv[1] -> satu
argv[2] -> dua
argv[3] -> tiga
argv[4] -> empat
argv[5] -> capedeh

Syarat Membuat Pointer
Variabel statis adalah variabel yang dideklarasikan dan dinamai pada saat penulisan program. Memori yang dipakai oleh variabel ini akan tetap ada (dianggap terpakai) selama program dimana variabel tersebut dideklarasikan sedang dijalankan.

Variabel dinamis adalah variabel yang dibuat (dan mungkin juga dihapus/dirusak) selama eksekusi progam. Karena variabel dinamis belum nyata ada pada
saat program dikompilasi (ia nyata-nyata ada pada saat dibuat yaitu pada saat program dieksekusi), maka variabel seperti ini tidak dapat dinamai pada saat program dibuat/ditulis.

Satu-satunya cara untuk mengakses variabel dinamis adalah dengan menggunakan pointer. Saat suatu variabel dinamis dibuat, ia belum berisi data dan harus memiliki suatu tipe tertentu seperti halnya variabel biasa.

Sebaliknya variabel statis tidak dapat dibuat ataupun dihapus pada saat eksekusi program dan variabel pointer tidak dapat digunakan untuk menunjuk kepada variabel statis. Variabel statis dapat diakses hanya dengan menggunakan namanya dan bila kita ingin menunjuk pada suatu posisi dalam array maka kita dapat melakukannya dengan menggunakan indeks/variabel yang bertipe seperti indeks dari array.
Type Data Yang Dapat Menggunakan Pointer

Pointer Bertipe Void
Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, pointer semacam ini dideklarasikan dengan tipevoid sehingga sering dikenal dengan istilah Void Pointer. Berikut ini contoh listing program yang menggunakan void pointer.
 Hasilnya adalah :

Dari hasil yang diberikan oleh program di atas terlihat bahwa sebuah pointer yang bertipe void dapat digunakan untuk menunjuk tipe data int, double, dan char
Melewatkan Array Menggunakan Pointer
Selain yang telah disebutkan di atas, pointer juga dapat berfungsi untuk melewatkan variabel yang bertipe array di dalam sebuah fungsi. Berikut ini
ituliskan dua buah contoh program yang dapat menjelaskan pernyataan ini.
Program yang ditulis tanpa menggunakan pointer

Hasilnya adalah :
 Program yang ditulis menggunakan pointer

 Hasilnya adalah :


Pointer Aritmetika
Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang lebih efisien, yaitu dengan menggunakan pointer. Pointer semacam ini disebut dengan istilah pointer aritmetika. Konsep dasar dari pointer aritmetika ini adalah melakukan operasi aritmetika terhadap variabel yang bertipe pointer. Misalnya kita mempunyai 5 buah data bertipe int yang disimpan dalam bentuk array dengan nama A dan digambarkan sebagai berikut :
 Jika kita mempunyai pointer p, maka kita dapat mengakses elemen-elemen array di atas dengan cara melakukan operasi terhadap p. Berikut contoh program yang akan mengilustrasikan kasus tersebut.

Hasilnya adalah :

Tipe Reference
Pada pembahasan pointer terdapat sebuah tipe data yang kerap kali digunakan, yaitu tipe reference. Tipe reference sebenarnya merupakan alias (julukan/ nama lain) dari variabel yang dideklarasikan dengan menggunakan tipe data tertentu. Misalnya kita mendeklarasikan sebuah variabel x yang bertipe int dan kita akan membuat alias (dengan naman) dari variabel tersebut, maka hal yang harus dilakukan adalah mendeklarasikan alias tersebut menggunakan tipe reference yang dituliskan dengan int&. Berikut ini sintak yang menjelaskan contoh di atas.
Int x; //mendeklarasikan variabel x dengan int
Int& n = x; //mendeklarasikan n (yang merupakan alias x) dengan tipe reference
//(int&)


Alias n dibuat dengan cara mengakses alamat yang ditempati oleh variabel x, yaitu dengan menggunakan tanda &. Oleh karena n merupakan alias dari x, maka x dan n akan mempunyai nilai yang sama atau dengan kata lain keduanya akan saling mempengaruhi.
Pointer NULL
Pada saat program dijalankan, pointer akan menunjuk ke alamat acak pada memori, sehingga diperlukan inisialisasi agar hal tersebut tidak terjadi. Dalam C++ terdapat sebuah cara untuk membuat pointer tidak menunjuk ke alamat manapun, yaitu dengan mengisikan ponter tersebut dengan nilai NULL. Karena hal inilah maka pointer tersebut sering dinamakan pointer NULL (NULL Pointer). Sebagai contoh kita mempunyai pointer p, dan kita ingin melakukan inisialisasi pada pointer tersebut dengan nilai NULL, maka sintaknya adalah sebagai berikut.

Referensi :
Devid Harya Lesmana, Azhar Ahmad, Lilik Emi Rahayu, Bian Dwi Pamungkas : Bahasa Pemograman Terstruktur.
http://www.gamedevid.org/forum/showthread.php?t=5075
http://www.khabib.staff.ugm.ac.id/index.php?option=com_content&task=view&id=85&Itemid=33
http://www.ansav.com/forum/showthread.php?t=130
http://rizqtech.net/2008/05/11/pointer-dalam-bahasa-c/
http://alextomasoa..com