er

Berbagai Tutorial dan Info Menarik

Belajar, Berjuang, dan Bertaqwa

Wednesday 29 May 2013

Niat yang Salah Adanya Pemain Asing

Sering kita dengar dari para pengurus kompetisi atau pengurus klub yang mengatakan bahwa pemain asing diharapkan mampu memberi dampak positif berupa pelajaran skill atau pengalaman bermain kepada para pemain lokal. Alasan tersebut diatas yang selalu dikatakan demi dalih sebuah klub bisa membeli pemain asing. Termasuk juga menjadi dalih penyelenggara kompetisi untuk terus bisa menambah kuota pemain asing.
 


Bagus memang, jika niatan itu bisa terbukti, tapi sayangnya fakta di lapangan berkata lain. Mungkin benar, beberapa pemain asing di Indonesia sukses menelurkan ilmunya di Indonesia, tapi beberapa diantaranya justru menjadi penghalang kemajuan sepakbola Indonesia. Dengan gaji besar, beberapa pemain justru menunjukan kualitas yang tidak jauh beda dengan para pemain lokal, namun uniknya, mereka selalu diberi kepercayaan oleh pelatih. Kepercayaan berlebih yang diberikan pelatih kepada pemain asing inilah yang menghambat perkembangan sepakbola Indonesia. Beberapa nama pemain muda berpotensi jadi tersingkirkan. Mereka terpinggirkan, dan dampaknya regenerasi pemain untuk Timnas jadi terhambat. Inilah yang terjadi di Indonesia, bahkan juga terjadi di beberapa liga di Eropa. Pemain-pemain muda yang seharusnya diberi porsi bermain untuk mendapatkan pengalaman bermain justru terpinggirkan oleh keberadaan pemain asing. Niat awal untuk sharing pengalaman dan kemampuan dari pemain asing justru malah menghambat perkembangan sepakbola Nasional.
Hal ini perlu dievaluasi oleh para pengurus sepakbola negeri ini, jumlah pemain asing yang semakin tahun semakin banyak belum memberikan sesuatu yang awalnya kita harapkan. Lebih parah lagi, beberapa pemain asing punya tempramen yang tinggi yang justru merugikan tim. Akhirnya, silahkan saja memakai jasa pemain asing, asalkan kualitasnya memang diatas rata-rata pemain lokal sehingga bisa menjadi contoh yang baik, tapi jangan sampai juga para pemain asing itu sampai mendominasi, karena hal itu bisa menghambat perkembangan pemain-pemain muda,yang dampaknya akan mengena kepada Timnas. Mungkin lebih baik dana untuk mengontrak pemain asing digunakan untuk seleksi bibit-bibit muda lokal dan melatihnya dalam sebuah tim muda sehingga nanti pada waktunya diharapkan bisa menjadi pemain-pemain berkualitas. Bangsa ini menunggu Bambang Nurdiansyah atau Widodo Putro atau Bambang Pamungkas selanjutnya, bukan pemain asing yang dinaturalisasi secara instan. (Amin)


Thursday 23 May 2013

Slawi, Kota Wangi Teh Melati





Nama Slawi memang jauh kurang populer dibanding Tegal. Bahkan kota Slawi identik juga dengan Kota Tegal. Padahal keduanya merupakan dua buah kota yang berbeda. Kota Tegal merupakan salah satu kota tersendiri di Provonsi Jawa Tengah, sementara Kota Slawi merupakan sebuah kecamatan di Kabupaten Tegal yang juga merupakan Ibu Kota Kabupaten Tegal. Letak Kota Slawi sendiri kurang lebih 14 km sebelah selatan Kota Tegal.
Ada satu yang unik dari kota Slawi ini, yaitu bau harum teh melati hampir disetiap sudut kotanya. Jika Anda masuk ke kota Slawi dari arah utara atau dari arah kota Tegal, bahkan bau wangi teh melati sudah mulai tercium sebelum Anda memasuki kota Slawi. Setelah Anda memasuki kota, dan berada di daerah sekitar Ruko terbesar di Kota Slawi, wanginya teh melati akan kembali tercium. Dan masih banyak beberapa titik lain harumnya teh melati di kota Slawi. Bagi yang belum pernah ke Slawi, silakan Anda bayangkan bagaimana segarnya aroma teh melati yang menghiasi beberapa sudut kota.
Hal ini menjadi aneh karena Slawi merupakan dataran rendah yang tidak memiliki kebun teh. Lalu apa penyebab dari wangi teh melati dibeberapa titik di kota Slawi? Dan jawabannya adalah di daerah Slawi dan sekitarnya terdapat empat pabrik teh besar yang menguasai pasar dalam negeri, yaitu teh 2 Tang, Teh Poci, Teh Tong Tji, dan Teh Gopek. Keempat pabrik teh itu berdiri hampir bersamaan, yaitu sekitar tahun 1940-an. Salah satu ciri dari keempat produk teh tersebut adalah teh beraroma melati, itulah yang menjadi sebab kota Slawi wangi teh melati.
Kedepan diharapkan, pemerintah bisa ikut membantu agar semakin memajukan produksi teh di Slawi ini, karena terbukti perusahaan teh ini mempu menyerap ribuan tenaga kerja. Namun sayangnya melihat acara debat calon gubernur dan wakil gubernur Jawa Tengah yang kemarin-kemarin disiarkan di Kompas TV saat dilaksanakan games dan ada salah satu pertanyaan kota mana di Jawa Tengah yang identik dengan tehnya, ketiga pasangan calon gubernur dan wakilnya tidak ada satupun yang tahu, miris. (Amin)

Friday 17 May 2013

PKS Hubbud Dunya?



Siang ini ada berita KPK mau menyita mobil-mobil yang diduga ada hubungannya dengan kasus korupsi yang dilakukan oleh LHI mantan presiden PKS. Termasuk mobil yang akan disita adalah mobil di area markas PKS di Jl TB Simatupang, Jaksel. Dan seperti yang kita ketahui, petugas KPK dihalang-halangi untuk melakukan eksekusi tersebut.
Banyak yang heran atas terjadinya kejadian ini. Beberapa kader PKS (kalau tidak mau dikatakan keseluruhan) yang katanya partai dakwah menghalangi eksekusi penyitaan mobil. Mobil merupakan rejeki berlebih yang diberikan oleh Allah. Karena rezeki itu diberikan oleh Allah, kalau suatu saat rezeki itu diambil oleh Allah (entah bagaimana caranya hanya Allah yang tahu), harusnya sebagai seorang manusia apalagi yang katanya partai dakwah harusnya bisa menerima dengan ikhlas (istilah Jawanya legowo). Tapi apa yang terjadi dan apa yang kita lihat di media-media, partai dakwah itu ternyata sangat mencintai dunia. Mencintai dunia yang dalam Islam biasa disebut Hubbud dunya. Padahal hubbud dunya merupakan penyakit yang bisa menjadi sumber kehancuran umat. Bahkan Rosul menggolongkan hubbud dunya sebagai fitnah terbesar bagi umatnya sebagaimaana diterangkan Nabi dalam hadis “Setiap umat memiliki fitnah dan ujian, dan fitnah terbesar bagi umatku adalah harta dunia.”(H.R. Muslim).
Jika PKS peka, harusnya PKS yang katanya partai dakwah bisa menjadikan perkara penyitaan mobil menjadi ladang dakwah dengan mengatakan seperti apa yang sudah saya tulis di atas, bukan malah mendakwahkan kepada masyarakat seakan-akan mereka sangat cinta pada mobil yang hanya merupakan hiasan dunia semata.
Ah, saya telah berburuk sangka! Astaghfirullah! Mari berbaik sangka, semoga buruk sangka saya yang ditulis diatas tidaklah benar. (Amin)

Sunday 12 May 2013

Pengenalan Bahasa C++ Newbie


SEKILAS MENGENAI BAHASA PEMROGRAMAN C DAN C++

Bahasa pemrograman C++ merupakan superset dari bahasa pendahulunya yaitu bahasa pemrograman C. Bahasa pemrograman C dikembangkan oleh Dennis Ritchie pada tahun 1972 di Laboratorium Bell. Bahasa pemrograman C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (berorientase mesin) dan bahasa tingkat tinggi (bahasa berorientase pada manusia). Bahasa pemrograman C berada satu tingkat di atas bahasa yang berorientasi pada mesin, namun tetap satu tingkat dibawah sebagian besar bahasa yang berorientasi persoalan. Bahasa pemrograman C cukup dekat dengan komputer untuk memberikan kendali yang besar terhadap detil implementasi pemakaian, namun cukup jauh untuk mengabaikan detil hardware. Karena itulah bahasa pemrograman C suatu ketika dipandang sebagai bahasa high-level dan pada saat yang lain dilihat sebagai bahasa low-level.
Bahasa pemrograman C merupakan bahasa pemrograman terstruktur, yang membagi program kedalam bentuk sebuah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa pemrograman C mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya standarisasi bahasa pemrograman C yaitu berupa standar ANSI (American National Standards Institute) yang dijadikan acuan oleh para pembuat kompiler C.

ELEMEN DASAR BAHASA PEMROGRAMAN C++

1. Identifier (Pengenal) Bahasa C++

Identifier adalah nama yang digunakan untuk mempresentasikan variabel, konstanta, jenis (type), fungsi, dan nama program. Identifier dalam pendeklarasian variabel, jenis, atau fungsi pada bahasa pemrograman C++ dimulai dengan sebuah huruf atau garis bawah. Karakter-karakter lain dalam sebuah identifier dapat berupa huruf, angka, garis bawah, atau tanda dollar. Compiler C++ membedakan huruf kecil dan besar. Variabel NAMA_PEGAWAI dan nama_pegawai dipandang sebagai dua identifier yang menggambarkan variabel memori yang berbeda. Contoh identifier yang diperkenankan untuk dipakai: a atau akelas atau kelas$ atau _kelas atau _KELAS$, sedangkan identifier yang tidak diperbolehkan untuk dipakai: $KELAS atau 7kelas atau kelas! atau ..kelas.

2. Himpunan Karakter


Himpunan karakter pada C++ terdiri dari huruf, digit maupun simbol-simbol lainnya (termasuk spasi, karakter kontrol)
Huruf: A B C D E F G H I J K L M N O P Q R S T U V W X Z Y a b c d e f g h i j k l m n o p q r s t u v w x y z
Digit: 0 1 2 3 4 5 6 7 8 9
Simbol dan lain-lain: _ - + * dan sebagainya.


3. Kata-kata Kunci

Kata kunci (keyword) adalah pengenal sistem yang mempunyai makna khusus bagi kompiler. Kegunaan dari golongan ini tidak dapat diubah. Karena itu kata kunci tidak dapat digunakan sebagai pengenal yang dibuat oleh pemrogram.

Kata kunci diusulkan ANSI:
auto, double, int, struct, break, else, loop, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while



Sedangkan turbo C memperluasnya dengan menambahkan beberapa kata kunci:
_cs, _ss, far, near, _ds, asm, huge, pascal, _es, cdecl, interrupt



Sementara itu, Microsoft C/C++ menambah beberapa kata kunci:
_asm, _loadds, _cdecl, _huge, _far, _pascal, _export, _interrupt, _fortran, _segname, _near, _saveregs, _segment, _syscall, _self, _stdcall, _fastcall, _based


4. Tipe Data Bahasa C++

Tipe data dasar pada C++, yakni: teks (char), nilai integer (int, short, long), nilai floating-point (float, double, long double), dan enumerated (enum). Jika jenis data yang didefinisikan adalah variabel enumerated, maka ini terkait dengan konstanta integer yang telah diberi nama enumeration set. Dalam bahasa pemrograman C, jenis enum dianggap ekivalen dengan jenis int, sehingga memungkinkan sebuah program untuk memberikan nilai integer langsung pada variabel enumerated. Namun dalam bahasa pemrograman C++, ada mekanisme pemeriksaan jenis data yang ketat, dan tidak memperkenankan operasi campuran seperti ini.
Setiap bahasa memakai seperangkat karakter untuk mengekspresikan pernyataan yang mengandung arti. Bahasa pemrograman C++ ditulis menggunakan sejumlah karakter yang meliputi: 26 huruf kecil (a, b, c, ... dstnya) dan 26 huruf besar (A, B, C, ... dstnya); 10 angka (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); dan lambang-lambang (+ - * = / . , : ; ? ' \ " ! @ # $ % ^ & * ( ) { } [ ]).
Ukuran memori yang diperlukan untuk masing-masing tipe data sangat bergantung pada perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan dari masing-masing tipe data juga bisa berlainan antara satu jenis mesin dengan mesin lainnya. Nilai yang tercakup pada tipe data bilangan (bulat maupun pecahan) pada arsitektur PC yang berbasis DOS, adalah sebagai berikut:


Tipe data Ukuran memori Jangkauan nilai 
char 1 byte -128 s/d +127
int 2 byte -32768 hingga +32767
short 2 byte -32.768 s/d 32.767
long 4 byte -2.147.438.648 s/d 2.147.438.647
float 4 byte 3,4x10-36 s/d 3,4x10+38
double 8 byte 1,7x10-308 s/d 1,7x10+308
long double 10 byte 3,4x10_4932 s/d 1,1x10+4932
enum 2 byte -32.768 s/d 32.767
pointer 2 byte (near, based)
pointer 4 byte (far, huge)

4.1. Tipe Data Tertentu


Modifier unsigned:

Yang termasuk jenis data modifier unsigned yang dapat diterapkan pada char, int, short, long adalah void dan pointer. Bila salah satu jenis data di atas dimodifikasi menjadi usigned, dapat dipandang range nilai yang bisa dijangkau mempresentasikan bilangan seperti pada angka yang ditunjukkan oleh jumlah kilometer yang telah ditempuh pada mobil atau sepeda motor. Angka tersebut dimulai dari 0000... dan mencapai maksimum 9999..., dan kembali ke 0000... Jadi dalam unsigned, yang ditampilkan hanyalah bilangan positif keseluruhan dalam range nol sampai ke bilangan maksimum yang dapat diprepresentasikannya.


Tipe data Ukuran memori Jangkauan nilai
unsigned char 1 byte 0 s/d 255
unsigned int 2 byte 0 s/d 32767
unsigned short 2 byte 0 s/d 32.767
unsigned long 4 byte 0 s/d 2.147.438.647



Modifier signed:
Digunakan untuk memperluas tanda yang digunakan integer dan karakter. Cara ini memungkinkan untuk menyimpan suatu nilai dalam bentuk bilangan positif atau negatif.



Tipe data Ukuran memori Jangkauan nilaisigned char 1 byte -128 s/d +127
signed int 2 byte -32768 hingga +32767
signed short 2 byte -32.768 s/d 32.767
signed long 4 byte -2.147.438.648 s/d 2.147.438.647

Untuk mengetahui ukuran memori yang diperlukan oleh semua tipe data, bisa dilihat dengan meng-compiler dan mengeksekusi contoh program sederhana, berikut:

//* Menentukan ukuran memori *
#include 
#include 
void main()
{
clrscr();
cout << "Ukuran char : " << sizeof(char) << '\n';
cout << "Ukuran short : " << sizeof(short) << '\n';
cout << "Ukuran int : " << sizeof(int) << '\n';
cout << "Ukuran long : " << sizeof(long) << '\n';
cout << "Ukuran float : " << sizeof(float) << '\n';
cout << "Ukuran double : " << sizeof(double) << '\n';
cout << "Ukuran long double : " << sizeof(long double) << '\n';
}

Penjelasan program:

Pemrograman C++ tidak terlepas dari fungsi. Sebab fungsi adalah salah satu dasar penyusunan blok pada C++. Sebuah program C++ minimal mengandung sebuah fungsi main(). Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Sedangkan yang dimulai dari tanda { hingga tanda } disebut tubuh fungsi. Semua yang terletak di dalam tanda {} disebut blok. Tanda () digunakan untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke fungsi. Kata void yang mendahului main() dipakai untuk menyetakan bahwa fungsi ini tidak memiliki nilai balik.
Pengenal cout merupakan sebuah obyek di dalam C++. Obyek ini disediakan oleh C++ untuk mengarahkan data ke standard output (normalnya adalah layar), sebagai contoh tambahan misalnya:


cout << "Hallo! Selamat datang di website ideelok \n";

Tanda << merupakan sebuah operator yang disebut operator penyisipan/peletakan. Operator ini akan mengarahkan operand (data) yang terletak di sebelah kanan obyeknya ke obyek yang terletak di sebelah kiri. Pada pernyataan di atas, konstanta string "Hallo! Selamat datang di website ideelok \n" diarahkan ke cout, yang memberikan hasil berupa tampilan string tersebut ke layar. Didalam sebuah string, karakter \ diikuti dengan karakter tertentu menyatakan sebuah karakter tunggal. Pada contoh \n adalah karakter pindah baris (newline).
Pada baris #include , baris ini menginstruksikan kepada kompiler untuk menyiapkan file lain pada saat program dikompolasi. Dalam hal ini file-file yang berakhiran dengan .h disebut file header, yaitu file-file yang berisi berbagai deklarasi, seperti fungsi, variabel dan sebagainya. #include perlu disertakan pada program yang melibatkan obyek cout. Tanpa kehadiran baris tersebut akan terjadi kesalahan program sewaktu program dikompilasi. Sebab file iostream.h berisi deklarasi yang diperlukan oleh cout dan berbagai obyek yang berhubungan dengan operasi masukan-keluaran pada stream.
Pada baris clrscr(); adalah perintah untuk menghapus layar. Apabila pernyataan di atas digunakan, baris #include perlu disertakan dalam program.

5. Variabel dan Konstanta Bahasa C++

Data pada C++ tersusun dari variabel dan konstanta. Variabel merupakan komponen penting pada pemrograman. Variabel digunakan dalam program untuk menyimpan suatu nilai, dengan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung. Adapun konstanta menyatakan nilai yang tetap. Misalnya 234 adalah sebuah konstanta bilangan bulat.

5.1. Mendeklarasikan dan Mendefinisikan Variabel


Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu, maksudnya mengenalkan sebuah pengenal ke program dan menentukan jenis data yang bisa disimpan di dalamnya. Apabila suatu pendeklarasian menyebabkan pengalokasian memori, maka pendeklarasian tersebut dinamakan pendefinisian. Yang jelas pendefinisian berarti pula pendeklarasian, tetapi tidak semua pendeklarasian berarti pendefinisian.
bentuk pendefinisian variabel:



tipe daftar_variabel;
Pada pendefinisian variabel, daftar_variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma.

5.2. Memberikan Nilai ke Variabel


Bentuk pernyataan yang digunakan untuk memberikan nilai ke variabel adalah:
variabel = nilai;
Contoh:
jumlah = 10;
harga_barang = 1500;

5.3. Variabel dan Konstanta Bertipe char


Bentuk pernyataan variabel bertipe char:



char karakter;



Dalam hal ini variabel karakter bertipe char. Variabel ini dapat menampung data sebuah karakter. Untuk menuliskan sebuah konstanta bertipe char, karakter perlu ditulis di dalam tanda petik tunggal, contoh: 'A' karakter berupa huruf A.



Karakter yang ditulis dengan bentuk \karakter mempunyai arti tersendiri (karakter khusus) dan biasa disebut escape sequence characters.



Karakter-karakter khusus tersebut antara lain:
\0 artinya karakter ber-ASCII nol (karakter nul)
\a artinya karakter bel
\b artinya karakter backspace
\f artinya karakter formfeed (ganti halaman)
\n artinya karakter newline (pindah baris) 
\r artinya karakter carriage return (ke awal baris) tanpa linefeed
\t artinya karakter tab horizontal
\v artinya karakter tab vertikal
\\ artinya karakter \
\' artinya karakter '
\" artinya karakter "
\? artinya karakter ?
\ooo artinya karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh artinya karakter yang nilai heksadesimalnya adalah hh (dua digit heksadesimal)

5.4. Variabel dan Konstanta Bertipe int


Variabel bertipe int didefinisikan dengan bentuk:



int bilangan;

Setelah pendefinisian seperti itu, variabel ini dapat digunakan untuk menampung nilai bertipe int. Sebuah konstanta bertipe int adalah bilangan bulat yang terletak antara minus 32768 hingga plus 32767 (pada PC berbasis DOS) dan tidak mengandung titik desimal.

5.5. Variabel dan Konstanta Bertipe long


Apabila diinginkan untuk memproses bilangan bulat yang nilainya lebih besar daripada tipe int, Anda dapat menggunakan tipe long. Suatu variabel bertipe long didefinisikan dengan cara seperti di bawah ini:



long jumlah_penduduk;



Pada contoh ini, jumlah_penduduk didefinisikan bertipe long. Dengan demikian variabel ini dapat menampung nilai ratusan juta. Adapun konstanta bertipe long biasa ditulis dengan akhiran L. Sebagai contoh: 1543267635435L

5.6. Variabel dan Konstanta Bertipe float, double dan long double

Tipe-tipe data yang telah dibahas di depan (char, int dan long) berhubungan dengan bilangan bulat. Seandainya diinginkan untuk memproses bilangan yang mengandung nilai pecahan, bisa menggunakan tipe float, double atau long double. Ketiga tipe yang berhubungan dengan bilangan pecahan ini mempunyai perbedaan dalam hal: kepresisian data, dan jangkauan nilai yang dicakup.

Contoh pendefinisian variabel untuk menampung bilangan pecahan:
float panjang;
double phi;
long double tetapan;

5.7. Inisialisasi Variabel


Adakalanya dalam penulisan program, variabel langsung diberi nilai awal setelah didefinisikan. Sebagai contoh:
int jumlah;
jumlah = 80;
Dua pernyataan seperti di atas sebenarnya dapat diangkat melalui pendefinisian yang disertai penugasan nilai, seperti berikut:
int jumlah = 80;


OPERATOR BAHASA PEMROGRAMAN C++

Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi, misalnya untuk menjumlahkan dua buah nilai, memberikan nilai pada suatu variabel, ataupun membandingkan kesamaan dua buah nilai. Bahasa pemrograman C++ mempunyai banyak operator yang tidak didapat dalam bahasa pemrograman lain, antara lain: operator bitwise, operator inkremen dan dekremen, operator kondisional, operator koma, operator aritmatika dan lain-lain.

a) Operator bitwise

Operator bitwise pada bahasa pemrograman C++ memperlakukan variabel sebagai gabungan dari bit-bit dan bukan sebagai bilangan. Operator ini berguna untuk mengakses bit-bit individual dalam memori, seperti memori screen untuk display grafik, informasi CapsLock (on atau off). Operator bitwise ini hanya dapat beroperasi pada jenis data integral, bukan bilangan floating-point. Tiga operator bitwise berkelakuan seperti operator logika, namun ini terjadi pada setiap bit dalam sebuah integer, yakni: AND (&), OR(I), dan XOR (^), komplemen (~) membalik (menginversi) setiap bit, operator shift kiri (<<), dan operator shift kanan (>>).

ANDSimbol operator: &, dengan bentuk penggunaan : operand1 & operand2
Operasi AND bitwise membandingkan dua bit; jika kedua bit tersebut adalah 1, maka hasilnya 1, selain itu hasilnya 0.
Logika AND:
Bit 0 Bit 1 Hasil
0 0 0
0 1 0
1 0 1
1 1 1



OR
Simbol operator I, dengan bentuk pemakaian : operand1 I opeand2
Operasi OR bitwise membandingkan dua bit dan memberikan hasil 1 jika kedua bit yang dibandingkan itu salah satu atau keduanya 1.
Logika OR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 1



XOR
Simbul operator: ^, dengan bentuk penggunaan : operand1 ^ operand2
Operasi EXCLUSIVE OR (XOR) bitwise membandingkan dua bit dan memberikan hasil 1 bila kedua bit merupakan komplementer satu sama lain.
Logika XOR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 0



Contoh program operasi I, & dan ^:



//* Efek operator I, & dan ^ *
#include 
#include 
void main()
{
unsigned char angka1 = 81;
unsigned char angka2 = 99;
unsigned char a, b, c;
clrscr();
a = angka1 I angka2; //operasi OR
b = angka1 & angka2; //operasi AND
c = angka1 ^ angka2; //operasi XOR
cout << "a= " << a << '\n';
cout << "b= " << b << '\n';
cout << "c= " << c << '\n';
}

Hasil eksekusi program di atas, adalah:
a= 115
b= 65
c= 50

Penjelasan hasil program:
Operasi OR pada a:
0000 0000 0101 0001 <- 81="81" br="br">0000 0000 0110 0011 <- 99="99" br="br">-------------------------------
0000 0000 0 1 1 0011 <- 115="115" br="br">
Operasi AND pada b:
0000 0000 0101 0001 <- 81="81" br="br">0000 0000 0110 0011 <- 99="99" br="br">-------------------------------
0000 0000 0100 0001 <- 65="65" br="br">
Operasi XOR pada c:
0000 0000 0101 0001 <- 81="81" br="br">0000 0000 0110 0011 <- 99="99" br="br">-------------------------------
0000 0000 0011 0010 <- 50="50" p="p"> 

b) Operator Shift



Operator >> dan << pada bahasa pemrograman C++ berguna untuk menggeser bit-bit dalam suatu bilangan bulat ke kiri atau ke kanan. Shift kiri menggerakkan bit-bit ke kiri dan mengatur bit paling kanan (yang tidak signifikan) menjadi nol. Sedangkan bit paling kiri (paling signifikan) yang ter-shift keluar akan dibuang. Sementara itu, operator shift kanan menggerakkan bit-bit ke kanan. Bit-bit dengan orde lebih rendah yang ter-shift keluar akan dibuang. Pergeseran bit ke kiri mempunyai efek seperti perkalian, sedangkan pergeseran ke kanan memberikan efek seperti pembagian.



b.1) Operastor shift kiri
Bentuk umum dipakai: nilai << jumlah bit digeser ke kiri
Setiap pergeseran sebuah bit akan memberikan pengaruh seperti halnya perkalian dengan bilangan dua. Untuk lebih jelasnya perhatikan contoh berikut beserta hasilnya:



//* Operator SHIFT KIRI *
#include 
#include 
main()
{
unsigned char x = 93;
clrscr();
cout << "Nilai x semula = " << x << '\n';
x = x << 1; // geser ke kiri 1 bit
cout << "Nilai x kini = " << x << '\n';
}

Hasil eksekusi program:
Nilai x semula = 93
Nilai x kini = 186

Penjelasan hasil program:
0000 0000 0101 1101 <- 93="93" br="br">digeser ke kiri 1 bit
0000 0000 1011 1010 <- 186="186" br="br">di bagian kanan selalu disisipi dengan nol sebanyak bit yang digeser.

b.2) Operator shift kanan
Bentuk umum dipakai: nilai >> jumlah bit digeser ke kanan
Setiap pergeseran sebuah bit akan memberikan pengaruh seperti halnya pembagian dengan bilangan dua. Untuk lebih jelasnya perhatikan contoh berikut beserta hasilnya:

//* OPERATOR SHIFT KANAN *
#include 
#include 
void main()
{
unsigned char x = 93;
clrscr();
cout << "Nilai x semula = " << x << '\n';
x = x >> 1; // geser kekanan 1 bit
cout << "Nilai x kini = " << x << '/n';
}

Hasil eksekusi program:
Nilai x semula = 93
Nilai x kini = 46

Penjelasan hasil program:
0000 0000 0101 1101 <- 93="93" br="br">digeser ke ke kanan 1 bit
0000 0000 0010 1110 <- 186="186" br="br">di bagian kiri selalu disisipi dengan nol sebanyak bit yang digeser.

c) Operator Komplemen
Operator ini mempunyai sifat membalik (menginversi) nilai setiap bit. Jika bit operand bernilai 1 hasilnya 0, dan bila bit operand bernilai 0 hasilnya 1.
Contoh pemakaian operator komplemen:

//* Operator komplemen *
#include 
#include 
main()
{
unsigned char nilai = 81;
unsigned char a;
clrscr();
a = ~nilai; // komplemen dari nilai
cout << "a = " << a << '\n';
}

Hasil eksekusi program:
a = 65454

Penjelasan hasil program:
0000 0000 0101 0001 <- 81="81" br="br">inversinya menjadi
1111 1111 1010 1110 <- 6554="6554" br="br">
d) Operator Aritmatika 
Bahasa C++ melibatkan operator aritmatika standar untuk penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%). Operator aritmatika tersebut tergolong sebagai operator binary. Adapun operator yang tergolong sebagai operator unary yaitu tanda minus (-), dan tanda plus (+).

Prioritas operator :
Operator dengan prioritas tinggi akan diutamakan dalam hal pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.
Prioritas 1: + --
Prioritas 2: - (unary minus)
Prioritas 3: * / %
Prioritas 4: + -

Apabila operastor memiliki prioritas yang sama, operator yang terletak disebelah kiri dalam suatu ungkapan yang akan diutamakan untuk dikerjakan terlebih dahulu. 

Tanda kurung biasa digunakan untuk urutan mengerjakan, misalnya x = (2 + 3) * 2;
(2 + 3 akan dikerjakan terlebih dahulu baru dikalikan dengan 2)

Contoh program:
//* Operasi aritmatika dengan menggunakan tanda kurung) *
#include 
#include 
void main()
{
clrscr();
int x;
x = 2 + 3 * 2;
cout << "x= " << x << '\n';
x = (2 + 3) * 2;
cout << "x= " << x << '\n';
}

Hasil eksekusi program:
x= 8
x= 12

Operator seperti penjumlahan, pengurangan, perkalian dan pembagian merupakan hal yang umum. Adapun operator sisa pembagian (operator modulus) yang berupa % ada baiknya untuk diterangkan lebih lanjut. Operator ini diterapkan pada operan bertipe integer. Untuk lebih jelasnya perhatikan beberapa contoh berikut:
7 % 2 -> 1 sisa pembagian bilangan 7 dengan 2 adalah 1
9 % 5 -> 4 sisa pembagian bilangan 9 dengan 5 adalah 4

Contoh program
//* sisa pembagian (modulus) *
#include 
#include 
void main()
{
clrscr();
cout << 9 % 5 << '\n';
cout << 13 % 5 << '\n';
}

Hasil eksekusi program:
4
3

e) Operator Assigenment
Operator assigenment dalam bahasa pemrograman C/C++ berbeda dengan statement assigenment dalam bahasa yang lain. Assigenment dilakukan oleh operator assigenment dan bukan oleh staement assigenment. Seperti operator bahasa pemrograman C++ yang lain, hasil operator assigenment merupakan nilai yang diberikan. Misalnya :
nilai = 4 * (bilangan = 3)
Disini bilangan diberikan nilai 3. Nilai 3 ini dikali dengan 4, sehingga nilai mendapatkan hasil akhir 12.

contoh :



sumber : http://www.ideelok.com

Wednesday 8 May 2013

Sesuaikan Dirimu dengan Kebutuhan Lapangan


Memilih jurusan saat akan masuk ke jenjang pendidikan tinggi memang ibarat memilih pasangan hidup. Jika benar dan sesuai akan bisa membawa kebahagiaan kalau-kalau salah dan tidak sesuai justru bisa menghambat kehidupan kita. Ada banyak motif untuk memilih jurusan diperkuliahan. Ada yang sesuai keinginan, sesuai kemampuan, disuruh orang tua, coba-coba, ikut pacar, melihat prospek lulusannya, dan masih banyak motif lain.


Jika melihat dari kesenangan batin semata, tentu memilih jurusan sesuai dengan bidang yang disenangi dan dikuasai sangatlah bagus. Tapi bagaimana kalau bidang tersebut ternyata tidak menjanjikan prospek yang cerah? Bisa jadi karena sudah terlalu biasa atau jenuh akan terlalu banyaknya ahli dibidang tersebut. Kalau memang kesenangan akan suatu bidang dibarengi dengan prospek yang cerah itu sangat baik, tapi jika tidak?

Melihat dari banyaknya motif memilih jurusan, akan lebih baik memilih jurusan dengan mempertimbangkan prospek lulusan jurusan tersebut. Dengan begitu, kemampuan kita dibidang tersebut nantinya setelah lulus akan lebih bermanfaat karena memang banyak yang membutuhkan. Tapi muncul pertanyaan, jika memang bidang tersebut berprospek cerah tapi dalam menjalaninya tidaklah menyenangkan dan dipaksakan, hasilnya tidak akan memuaskan bukan? Iya memang sesuatu yang dipaksakan apapun itu tidaklah menyenangkan dan hasilnya tidak akan baik, untuk itu jikalau sudah memilih jurusan yang sekiranya berprospek tersebut berusahalah sebisa mungkin untuk menyenanginya. Ibarat pepatah Jawa “Nek wis kadung teles, nyemplung sisan” yang artinya kalau sudah terlanjur masuk atau memilih sesuatu termasuk itu jurusan, nikmati dan dalamilah semaksimal mungkin.

Dalam menentukan jurusan, janganlah terlalu menuruti ego diri sendiri yang berpikiran yang saya suka dan senangi hanyalah ini, jadi saya harus masuk ini tidak peduli sudah berapa banyak manusia lain yang juga menyenangi hal itu. Jadilah manusia yang beda dan fleksibel bisa masuk kesemua jurusan sesuai dengan kebutuhan dunia luar, jadi sesuaikan dirimu dengan kebutuhan lapangan janganmenyuruh lapangan untuk menyesuaikan dengan diri kita, jika kita bisa menyesuaikan diri dengan apa yang dibutuhkan lapangan, kesuksesan menanti didepan mata. (Amin)